From 38ca648a3a57adc99b9ae0779d77e43cf406b0e2 Mon Sep 17 00:00:00 2001 From: Remix Run Bot Date: Thu, 19 Sep 2024 16:20:57 +0000 Subject: [PATCH 01/44] chore: format --- packages/remix-deno/CHANGELOG.md | 5 ++++- packages/remix-server-runtime/CHANGELOG.md | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/remix-deno/CHANGELOG.md b/packages/remix-deno/CHANGELOG.md index 8c7d6fb350f..85def5f4d92 100644 --- a/packages/remix-deno/CHANGELOG.md +++ b/packages/remix-deno/CHANGELOG.md @@ -4,7 +4,10 @@ ### Patch Changes -- Single Fetch: Re-export `interface Future` through `@remix-run/node`/`@remix-run/cloudflare`/`@remix-run/deno` packages so that `pnpm` doesn't complain about `@remix-run/server-runtime` not being a dependency ([#9982](https://github.com/remix-run/remix/pull/9982)) +- Single Fetch: Re-export `interface Future` through + `@remix-run/node`/`@remix-run/cloudflare`/`@remix-run/deno` packages so that + `pnpm` doesn't complain about `@remix-run/server-runtime` not being a + dependency ([#9982](https://github.com/remix-run/remix/pull/9982)) - Updated dependencies: - `@remix-run/server-runtime@2.12.1` diff --git a/packages/remix-server-runtime/CHANGELOG.md b/packages/remix-server-runtime/CHANGELOG.md index 5da4126ea30..e5dfae8975e 100644 --- a/packages/remix-server-runtime/CHANGELOG.md +++ b/packages/remix-server-runtime/CHANGELOG.md @@ -14,6 +14,7 @@ - Single Fetch: Do not try to encode a `turbo-stream` body into 304 responses ([#9941](https://github.com/remix-run/remix/pull/9941)) - Single Fetch: fix revalidation behavior bugs ([#9938](https://github.com/remix-run/remix/pull/9938)) + - With Single Fetch, existing routes revalidate by default - This means requests do not need special query params for granular route revalidations out of the box - i.e., `GET /a/b/c.data` - There are two conditions that will trigger granular revalidation: From a786f6072d537ebcdde03fab200f64f65b2de8c8 Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Wed, 2 Oct 2024 17:57:53 -0400 Subject: [PATCH 02/44] Fix adapter logic for aborting requests (#10046) --- .changeset/silly-gifts-wash.md | 6 ++++++ packages/remix-dev/vite/node-adapter.ts | 12 ++++++++---- packages/remix-express/server.ts | 12 ++++++++---- 3 files changed, 22 insertions(+), 8 deletions(-) create mode 100644 .changeset/silly-gifts-wash.md diff --git a/.changeset/silly-gifts-wash.md b/.changeset/silly-gifts-wash.md new file mode 100644 index 00000000000..f17c9084b4d --- /dev/null +++ b/.changeset/silly-gifts-wash.md @@ -0,0 +1,6 @@ +--- +"@remix-run/dev": patch +"@remix-run/express": patch +--- + +Fix adapter logic for aborting `request.signal` so we don't incorrectly abort on the `close` event for successful requests diff --git a/packages/remix-dev/vite/node-adapter.ts b/packages/remix-dev/vite/node-adapter.ts index 2783da81778..40310607b0b 100644 --- a/packages/remix-dev/vite/node-adapter.ts +++ b/packages/remix-dev/vite/node-adapter.ts @@ -46,10 +46,7 @@ export function fromNodeRequest( ); let url = new URL(nodeReq.originalUrl, origin); - // Abort action/loaders once we can no longer write a response - let controller = new AbortController(); - nodeRes.on("close", () => controller.abort()); - + let controller: AbortController | null = new AbortController(); let init: RequestInit = { method: nodeReq.method, headers: fromNodeHeaders(nodeReq.headers), @@ -61,6 +58,13 @@ export function fromNodeRequest( (init as { duplex: "half" }).duplex = "half"; } + // Abort action/loaders once we can no longer write a response iff we have + // not yet sent a response (i.e., `close` without `finish`) + // `finish` -> done rendering the response + // `close` -> response can no longer be written to + nodeRes.on("finish", () => (controller = null)); + nodeRes.on("close", () => controller?.abort()); + return new Request(url.href, init); } diff --git a/packages/remix-express/server.ts b/packages/remix-express/server.ts index 3c0d25bc404..166d3654f31 100644 --- a/packages/remix-express/server.ts +++ b/packages/remix-express/server.ts @@ -97,10 +97,7 @@ export function createRemixRequest( // Use `req.originalUrl` so Remix is aware of the full path let url = new URL(`${req.protocol}://${resolvedHost}${req.originalUrl}`); - // Abort action/loaders once we can no longer write a response - let controller = new AbortController(); - res.on("close", () => controller.abort()); - + let controller: AbortController | null = new AbortController(); let init: RequestInit = { method: req.method, headers: createRemixHeaders(req.headers), @@ -112,6 +109,13 @@ export function createRemixRequest( (init as { duplex: "half" }).duplex = "half"; } + // Abort action/loaders once we can no longer write a response iff we have + // not yet sent a response (i.e., `close` without `finish`) + // `finish` -> done rendering the response + // `close` -> response can no longer be written to + res.on("finish", () => (controller = null)); + res.on("close", () => controller?.abort()); + return new Request(url.href, init); } From 6ee69c13dd3e71df2950eba0d33c547f4538ff9c Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Wed, 2 Oct 2024 17:58:26 -0400 Subject: [PATCH 03/44] fix abort behavior for renderToReadableStream (#10047) --- .changeset/short-maps-reflect.md | 10 +++++++++ .../defaults/entry.server.cloudflare.tsx | 4 +++- .../config/defaults/entry.server.deno.tsx | 4 +++- .../cloudflare-pages/app/entry.server.tsx | 21 ++++++++++++++---- .../cloudflare-workers/app/entry.server.tsx | 21 ++++++++++++++---- .../deno/app/entry.server.tsx | 22 ++++++++++++++----- .../cloudflare-workers/app/entry.server.tsx | 21 ++++++++++++++---- templates/cloudflare/app/entry.server.tsx | 21 ++++++++++++++---- 8 files changed, 101 insertions(+), 23 deletions(-) create mode 100644 .changeset/short-maps-reflect.md diff --git a/.changeset/short-maps-reflect.md b/.changeset/short-maps-reflect.md new file mode 100644 index 00000000000..4bb701e6a97 --- /dev/null +++ b/.changeset/short-maps-reflect.md @@ -0,0 +1,10 @@ +--- +"@remix-run/dev": patch +--- + +Stop passing `request.signal` as the `renderToReadableStream` `signal` to abort server rendering for cloudflare/deno runtimes because by the time that `request` is aborted, aborting the rendering is useless because there's no way for React to flush down the unresolved boundaries + +- This has been incorrect for some time, but only recently exposed due to a bug in how we were aborting requests when running via `remix vite:dev` because we were incorrectly aborting requests after successful renders - which was causing us to abort a completed React render, and try to close an already closed `ReadableStream`. +- This has likely not shown up in any production scenarios because cloudflare/deno production runtimes are (correctly) not aborting the `request.signal` on successful renders +- The built-in `entry.server` files no longer pass a `signal` to `renderToReadableStream` because adding a timeout-based abort signal to the default behavior would constitute a breaking change +- Users can configure this abort behavior via their own `entry.server` via `remix reveal entry.server`, and the template entry.server files have been updated with an example approach for newly created Remix apps diff --git a/packages/remix-dev/config/defaults/entry.server.cloudflare.tsx b/packages/remix-dev/config/defaults/entry.server.cloudflare.tsx index e7bb7a4f4f8..a47be3fc285 100644 --- a/packages/remix-dev/config/defaults/entry.server.cloudflare.tsx +++ b/packages/remix-dev/config/defaults/entry.server.cloudflare.tsx @@ -13,7 +13,9 @@ export default async function handleRequest( const body = await renderToReadableStream( , { - signal: request.signal, + // If you wish to abort the rendering process, you can pass a signal here. + // Please refer to the templates for example son how to configure this. + // signal: controller.signal, onError(error: unknown) { // Log streaming rendering errors from inside the shell console.error(error); diff --git a/packages/remix-dev/config/defaults/entry.server.deno.tsx b/packages/remix-dev/config/defaults/entry.server.deno.tsx index cef1e72d970..0680671278e 100644 --- a/packages/remix-dev/config/defaults/entry.server.deno.tsx +++ b/packages/remix-dev/config/defaults/entry.server.deno.tsx @@ -13,7 +13,9 @@ export default async function handleRequest( const body = await renderToReadableStream( , { - signal: request.signal, + // If you wish to abort the rendering process, you can pass a signal here. + // Please refer to the templates for example son how to configure this. + // signal: controller.signal, onError(error: unknown) { // Log streaming rendering errors from inside the shell console.error(error); diff --git a/templates/classic-remix-compiler/cloudflare-pages/app/entry.server.tsx b/templates/classic-remix-compiler/cloudflare-pages/app/entry.server.tsx index 0d5c40a755e..9bbdcfaa350 100644 --- a/templates/classic-remix-compiler/cloudflare-pages/app/entry.server.tsx +++ b/templates/classic-remix-compiler/cloudflare-pages/app/entry.server.tsx @@ -9,6 +9,8 @@ import { RemixServer } from "@remix-run/react"; import { isbot } from "isbot"; import { renderToReadableStream } from "react-dom/server"; +const ABORT_DELAY = 5000; + export default async function handleRequest( request: Request, responseStatusCode: number, @@ -19,18 +21,29 @@ export default async function handleRequest( // eslint-disable-next-line @typescript-eslint/no-unused-vars loadContext: AppLoadContext ) { + const controller = new AbortController(); + const timeoutId = setTimeout(() => controller.abort(), ABORT_DELAY); + const body = await renderToReadableStream( - , + , { - signal: request.signal, + signal: controller.signal, onError(error: unknown) { - // Log streaming rendering errors from inside the shell - console.error(error); + if (!controller.signal.aborted) { + // Log streaming rendering errors from inside the shell + console.error(error); + } responseStatusCode = 500; }, } ); + body.allReady.then(() => clearTimeout(timeoutId)); + if (isbot(request.headers.get("user-agent") || "")) { await body.allReady; } diff --git a/templates/classic-remix-compiler/cloudflare-workers/app/entry.server.tsx b/templates/classic-remix-compiler/cloudflare-workers/app/entry.server.tsx index 0d5c40a755e..9bbdcfaa350 100644 --- a/templates/classic-remix-compiler/cloudflare-workers/app/entry.server.tsx +++ b/templates/classic-remix-compiler/cloudflare-workers/app/entry.server.tsx @@ -9,6 +9,8 @@ import { RemixServer } from "@remix-run/react"; import { isbot } from "isbot"; import { renderToReadableStream } from "react-dom/server"; +const ABORT_DELAY = 5000; + export default async function handleRequest( request: Request, responseStatusCode: number, @@ -19,18 +21,29 @@ export default async function handleRequest( // eslint-disable-next-line @typescript-eslint/no-unused-vars loadContext: AppLoadContext ) { + const controller = new AbortController(); + const timeoutId = setTimeout(() => controller.abort(), ABORT_DELAY); + const body = await renderToReadableStream( - , + , { - signal: request.signal, + signal: controller.signal, onError(error: unknown) { - // Log streaming rendering errors from inside the shell - console.error(error); + if (!controller.signal.aborted) { + // Log streaming rendering errors from inside the shell + console.error(error); + } responseStatusCode = 500; }, } ); + body.allReady.then(() => clearTimeout(timeoutId)); + if (isbot(request.headers.get("user-agent") || "")) { await body.allReady; } diff --git a/templates/classic-remix-compiler/deno/app/entry.server.tsx b/templates/classic-remix-compiler/deno/app/entry.server.tsx index 27f656dd448..b0af1d5cbd0 100644 --- a/templates/classic-remix-compiler/deno/app/entry.server.tsx +++ b/templates/classic-remix-compiler/deno/app/entry.server.tsx @@ -9,6 +9,8 @@ import { RemixServer } from "@remix-run/react"; import { isbot } from "isbot"; import { renderToReadableStream } from "react-dom/server"; +const ABORT_DELAY = 5000; + export default async function handleRequest( request: Request, responseStatusCode: number, @@ -16,21 +18,31 @@ export default async function handleRequest( remixContext: EntryContext, // This is ignored so we can keep it in the template for visibility. Feel // free to delete this parameter in your app if you're not using it! - loadContext: AppLoadContext ) { + const controller = new AbortController(); + const timeoutId = setTimeout(() => controller.abort(), ABORT_DELAY); + const body = await renderToReadableStream( - , + , { - signal: request.signal, + signal: controller.signal, onError(error: unknown) { - // Log streaming rendering errors from inside the shell - console.error(error); + if (!controller.signal.aborted) { + // Log streaming rendering errors from inside the shell + console.error(error); + } responseStatusCode = 500; }, } ); + body.allReady.then(() => clearTimeout(timeoutId)); + if (isbot(request.headers.get("user-agent") || "")) { await body.allReady; } diff --git a/templates/cloudflare-workers/app/entry.server.tsx b/templates/cloudflare-workers/app/entry.server.tsx index 0d5c40a755e..9bbdcfaa350 100644 --- a/templates/cloudflare-workers/app/entry.server.tsx +++ b/templates/cloudflare-workers/app/entry.server.tsx @@ -9,6 +9,8 @@ import { RemixServer } from "@remix-run/react"; import { isbot } from "isbot"; import { renderToReadableStream } from "react-dom/server"; +const ABORT_DELAY = 5000; + export default async function handleRequest( request: Request, responseStatusCode: number, @@ -19,18 +21,29 @@ export default async function handleRequest( // eslint-disable-next-line @typescript-eslint/no-unused-vars loadContext: AppLoadContext ) { + const controller = new AbortController(); + const timeoutId = setTimeout(() => controller.abort(), ABORT_DELAY); + const body = await renderToReadableStream( - , + , { - signal: request.signal, + signal: controller.signal, onError(error: unknown) { - // Log streaming rendering errors from inside the shell - console.error(error); + if (!controller.signal.aborted) { + // Log streaming rendering errors from inside the shell + console.error(error); + } responseStatusCode = 500; }, } ); + body.allReady.then(() => clearTimeout(timeoutId)); + if (isbot(request.headers.get("user-agent") || "")) { await body.allReady; } diff --git a/templates/cloudflare/app/entry.server.tsx b/templates/cloudflare/app/entry.server.tsx index 0d5c40a755e..9bbdcfaa350 100644 --- a/templates/cloudflare/app/entry.server.tsx +++ b/templates/cloudflare/app/entry.server.tsx @@ -9,6 +9,8 @@ import { RemixServer } from "@remix-run/react"; import { isbot } from "isbot"; import { renderToReadableStream } from "react-dom/server"; +const ABORT_DELAY = 5000; + export default async function handleRequest( request: Request, responseStatusCode: number, @@ -19,18 +21,29 @@ export default async function handleRequest( // eslint-disable-next-line @typescript-eslint/no-unused-vars loadContext: AppLoadContext ) { + const controller = new AbortController(); + const timeoutId = setTimeout(() => controller.abort(), ABORT_DELAY); + const body = await renderToReadableStream( - , + , { - signal: request.signal, + signal: controller.signal, onError(error: unknown) { - // Log streaming rendering errors from inside the shell - console.error(error); + if (!controller.signal.aborted) { + // Log streaming rendering errors from inside the shell + console.error(error); + } responseStatusCode = 500; }, } ); + body.allReady.then(() => clearTimeout(timeoutId)); + if (isbot(request.headers.get("user-agent") || "")) { await body.allReady; } From 1cd02ccfc50fe397a6ec887416a87dc06b294351 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 4 Oct 2024 01:08:56 +0200 Subject: [PATCH 04/44] Bump pnpm/action-setup from 3.0.0 to 4.0.0 (#9392) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/deduplicate-lock-file.yml | 2 +- .github/workflows/deployments.yml | 10 +++++----- .github/workflows/format.yml | 2 +- .github/workflows/lint.yml | 2 +- .github/workflows/nightly.yml | 2 +- .github/workflows/release-experimental.yml | 2 +- .github/workflows/release.yml | 4 ++-- .github/workflows/shared-build.yml | 2 +- .github/workflows/shared-test-integration.yml | 2 +- .github/workflows/shared-test-unit.yml | 2 +- 10 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/deduplicate-lock-file.yml b/.github/workflows/deduplicate-lock-file.yml index 717a5e4cd9e..748d4a08994 100644 --- a/.github/workflows/deduplicate-lock-file.yml +++ b/.github/workflows/deduplicate-lock-file.yml @@ -23,7 +23,7 @@ jobs: token: ${{ secrets.FORMAT_PAT }} - name: 📦 Setup pnpm - uses: pnpm/action-setup@v3.0.0 + uses: pnpm/action-setup@v4.0.0 - name: ⎔ Setup node uses: actions/setup-node@v4 diff --git a/.github/workflows/deployments.yml b/.github/workflows/deployments.yml index 895718baa5e..4247a3c894e 100644 --- a/.github/workflows/deployments.yml +++ b/.github/workflows/deployments.yml @@ -36,7 +36,7 @@ jobs: uses: actions/checkout@v4 - name: 📦 Setup pnpm - uses: pnpm/action-setup@v3.0.0 + uses: pnpm/action-setup@v4.0.0 - name: ⎔ Setup node uses: actions/setup-node@v4 @@ -73,7 +73,7 @@ jobs: uses: actions/checkout@v4 - name: 📦 Setup pnpm - uses: pnpm/action-setup@v3.0.0 + uses: pnpm/action-setup@v4.0.0 - name: ⎔ Setup node uses: actions/setup-node@v4 @@ -111,7 +111,7 @@ jobs: uses: actions/checkout@v4 - name: 📦 Setup pnpm - uses: pnpm/action-setup@v3.0.0 + uses: pnpm/action-setup@v4.0.0 - name: ⎔ Setup node uses: actions/setup-node@v4 @@ -150,7 +150,7 @@ jobs: uses: actions/checkout@v4 - name: 📦 Setup pnpm - uses: pnpm/action-setup@v3.0.0 + uses: pnpm/action-setup@v4.0.0 - name: ⎔ Setup node uses: actions/setup-node@v4 @@ -192,7 +192,7 @@ jobs: uses: actions/checkout@v4 - name: 📦 Setup pnpm - uses: pnpm/action-setup@v3.0.0 + uses: pnpm/action-setup@v4.0.0 - name: ⎔ Setup node uses: actions/setup-node@v4 diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index e5ebc4189cc..211f5f789e2 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -22,7 +22,7 @@ jobs: token: ${{ secrets.FORMAT_PAT }} - name: 📦 Setup pnpm - uses: pnpm/action-setup@v3.0.0 + uses: pnpm/action-setup@v4.0.0 - name: ⎔ Setup node uses: actions/setup-node@v4 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 95515d2b7b9..bd639c1564b 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -20,7 +20,7 @@ jobs: uses: actions/checkout@v4 - name: 📦 Setup pnpm - uses: pnpm/action-setup@v3.0.0 + uses: pnpm/action-setup@v4.0.0 - name: ⎔ Setup node uses: actions/setup-node@v4 diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 1744b3cf68d..75815ef0aff 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -35,7 +35,7 @@ jobs: fetch-depth: 0 - name: 📦 Setup pnpm - uses: pnpm/action-setup@v3.0.0 + uses: pnpm/action-setup@v4.0.0 - name: ⎔ Setup node uses: actions/setup-node@v4 diff --git a/.github/workflows/release-experimental.yml b/.github/workflows/release-experimental.yml index b165cd722f2..06b92e282ee 100644 --- a/.github/workflows/release-experimental.yml +++ b/.github/workflows/release-experimental.yml @@ -26,7 +26,7 @@ jobs: fetch-depth: 0 - name: 📦 Setup pnpm - uses: pnpm/action-setup@v3.0.0 + uses: pnpm/action-setup@v4.0.0 - name: ⎔ Setup node uses: actions/setup-node@v4 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f63cda0d8fd..89f7c3d9eb9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -30,7 +30,7 @@ jobs: fetch-depth: 0 - name: 📦 Setup pnpm - uses: pnpm/action-setup@v3.0.0 + uses: pnpm/action-setup@v4.0.0 - name: ⎔ Setup node uses: actions/setup-node@v4 @@ -76,7 +76,7 @@ jobs: uses: actions/checkout@v4 - name: 📦 Setup pnpm - uses: pnpm/action-setup@v3.0.0 + uses: pnpm/action-setup@v4.0.0 - name: ⎔ Setup node uses: actions/setup-node@v4 diff --git a/.github/workflows/shared-build.yml b/.github/workflows/shared-build.yml index 78d4e656737..472ff67575c 100644 --- a/.github/workflows/shared-build.yml +++ b/.github/workflows/shared-build.yml @@ -15,7 +15,7 @@ jobs: uses: actions/checkout@v4 - name: 📦 Setup pnpm - uses: pnpm/action-setup@v3.0.0 + uses: pnpm/action-setup@v4.0.0 - name: ⎔ Setup node uses: actions/setup-node@v4 diff --git a/.github/workflows/shared-test-integration.yml b/.github/workflows/shared-test-integration.yml index 51190a0ec93..50dd9faec5c 100644 --- a/.github/workflows/shared-test-integration.yml +++ b/.github/workflows/shared-test-integration.yml @@ -38,7 +38,7 @@ jobs: uses: actions/checkout@v4 - name: 📦 Setup pnpm - uses: pnpm/action-setup@v3.0.0 + uses: pnpm/action-setup@v4.0.0 - name: ⎔ Setup node ${{ matrix.node }} uses: actions/setup-node@v4 diff --git a/.github/workflows/shared-test-unit.yml b/.github/workflows/shared-test-unit.yml index 70fe820602a..1b5c3287354 100644 --- a/.github/workflows/shared-test-unit.yml +++ b/.github/workflows/shared-test-unit.yml @@ -30,7 +30,7 @@ jobs: uses: actions/checkout@v4 - name: 📦 Setup pnpm - uses: pnpm/action-setup@v3.0.0 + uses: pnpm/action-setup@v4.0.0 - name: ⎔ Setup node ${{ matrix.node }} uses: actions/setup-node@v4 From f802c99ae6eb6dd8899c2116b02a0805f634b97b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 4 Oct 2024 03:42:57 +0200 Subject: [PATCH 05/44] chore(deps): bump express from 4.19.2 to 4.20.0 (#10059) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../helpers/node-template/package.json | 2 +- .../helpers/vite-template/package.json | 2 +- integration/package.json | 2 +- packages/remix-dev/package.json | 2 +- packages/remix-express/package.json | 4 +- packages/remix-serve/package.json | 2 +- pnpm-lock.yaml | 107 +++++++++++------- 7 files changed, 71 insertions(+), 50 deletions(-) diff --git a/integration/helpers/node-template/package.json b/integration/helpers/node-template/package.json index 57b73e3c4c4..f57ba9e27d5 100644 --- a/integration/helpers/node-template/package.json +++ b/integration/helpers/node-template/package.json @@ -16,7 +16,7 @@ "@remix-run/react": "workspace:*", "@remix-run/serve": "workspace:*", "@remix-run/server-runtime": "workspace:*", - "express": "^4.19.2", + "express": "^4.20.0", "isbot": "^4.1.0", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/integration/helpers/vite-template/package.json b/integration/helpers/vite-template/package.json index c825ca66055..f820053182a 100644 --- a/integration/helpers/vite-template/package.json +++ b/integration/helpers/vite-template/package.json @@ -17,7 +17,7 @@ "@remix-run/serve": "workspace:*", "@vanilla-extract/css": "^1.10.0", "@vanilla-extract/vite-plugin": "^3.9.2", - "express": "^4.19.2", + "express": "^4.20.0", "isbot": "^4.1.0", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/integration/package.json b/integration/package.json index bd94ebf2813..ffa11532ceb 100644 --- a/integration/package.json +++ b/integration/package.json @@ -23,7 +23,7 @@ "cross-spawn": "^7.0.3", "dedent": "^0.7.0", "execa": "^5.1.1", - "express": "^4.19.2", + "express": "^4.20.0", "fs-extra": "^10.0.0", "get-port": "^5.1.1", "glob": "8.0.3", diff --git a/packages/remix-dev/package.json b/packages/remix-dev/package.json index 3d4d7294a2a..d0a13875643 100644 --- a/packages/remix-dev/package.json +++ b/packages/remix-dev/package.json @@ -47,7 +47,7 @@ "esbuild-plugins-node-modules-polyfill": "^1.6.0", "execa": "5.1.1", "exit-hook": "2.2.1", - "express": "^4.19.2", + "express": "^4.20.0", "fs-extra": "^10.0.0", "get-port": "^5.1.1", "gunzip-maybe": "^1.4.2", diff --git a/packages/remix-express/package.json b/packages/remix-express/package.json index c48fbce17c8..0a48d93f7af 100644 --- a/packages/remix-express/package.json +++ b/packages/remix-express/package.json @@ -23,13 +23,13 @@ "@types/express": "^4.17.9", "@types/node": "^18.17.1", "@types/supertest": "^2.0.10", - "express": "^4.19.2", + "express": "^4.20.0", "node-mocks-http": "^1.10.1", "supertest": "^6.3.3", "typescript": "^5.1.6" }, "peerDependencies": { - "express": "^4.19.2", + "express": "^4.20.0", "typescript": "^5.1.0" }, "peerDependenciesMeta": { diff --git a/packages/remix-serve/package.json b/packages/remix-serve/package.json index 6fe1b017ef8..1108b6a0072 100644 --- a/packages/remix-serve/package.json +++ b/packages/remix-serve/package.json @@ -22,7 +22,7 @@ "@remix-run/node": "workspace:*", "chokidar": "^3.5.3", "compression": "^1.7.4", - "express": "^4.19.2", + "express": "^4.20.0", "get-port": "5.1.1", "morgan": "^1.10.0", "source-map-support": "^0.5.21" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5f5b3f9f306..ec05618b798 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -350,8 +350,8 @@ importers: specifier: ^5.1.1 version: 5.1.1 express: - specifier: ^4.19.2 - version: 4.19.2 + specifier: ^4.20.0 + version: 4.20.0 fs-extra: specifier: ^10.0.0 version: 10.1.0 @@ -505,8 +505,8 @@ importers: specifier: workspace:* version: link:../../../packages/remix-server-runtime express: - specifier: ^4.19.2 - version: 4.19.2 + specifier: ^4.20.0 + version: 4.20.0 isbot: specifier: ^4.1.0 version: 4.4.0 @@ -618,8 +618,8 @@ importers: specifier: ^3.9.2 version: 3.9.5(vite@5.1.0) express: - specifier: ^4.19.2 - version: 4.19.2 + specifier: ^4.20.0 + version: 4.20.0 isbot: specifier: ^4.1.0 version: 4.4.0 @@ -916,8 +916,8 @@ importers: specifier: 2.2.1 version: 2.2.1 express: - specifier: ^4.19.2 - version: 4.19.2 + specifier: ^4.20.0 + version: 4.20.0 fs-extra: specifier: ^10.0.0 version: 10.1.0 @@ -1168,8 +1168,8 @@ importers: specifier: ^2.0.10 version: 2.0.16 express: - specifier: ^4.19.2 - version: 4.19.2 + specifier: ^4.20.0 + version: 4.20.0 node-mocks-http: specifier: ^1.10.1 version: 1.14.1 @@ -1275,8 +1275,8 @@ importers: specifier: ^1.7.4 version: 1.7.4 express: - specifier: ^4.19.2 - version: 4.19.2 + specifier: ^4.20.0 + version: 4.20.0 get-port: specifier: 5.1.1 version: 5.1.1 @@ -6073,8 +6073,8 @@ packages: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} dev: false - /body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + /body-parser@1.20.3: + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dependencies: bytes: 3.1.2 @@ -6085,7 +6085,7 @@ packages: http-errors: 2.0.0 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.11.0 + qs: 6.13.0 raw-body: 2.5.2 type-is: 1.6.18 unpipe: 1.0.0 @@ -6922,7 +6922,7 @@ packages: object-keys: 1.1.1 object.assign: 4.1.5 regexp.prototype.flags: 1.5.2 - side-channel: 1.0.4 + side-channel: 1.0.6 which-boxed-primitive: 1.0.2 which-collection: 1.0.1 which-typed-array: 1.1.14 @@ -7166,6 +7166,10 @@ packages: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} + /encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + /end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: @@ -8057,36 +8061,36 @@ packages: jest-message-util: 29.7.0 jest-util: 29.7.0 - /express@4.19.2: - resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} + /express@4.20.0: + resolution: {integrity: sha512-pLdae7I6QqShF5PnNTCVn4hI91Dx0Grkn2+IAsMTgMIKuQVte2dN9PeGSSAME2FR8anOhVA62QDIUaWVfEXVLw==} engines: {node: '>= 0.10.0'} dependencies: accepts: 1.3.8 array-flatten: 1.1.1 - body-parser: 1.20.2 + body-parser: 1.20.3 content-disposition: 0.5.4 content-type: 1.0.5 cookie: 0.6.0 cookie-signature: 1.0.6 debug: 2.6.9 depd: 2.0.0 - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 finalhandler: 1.2.0 fresh: 0.5.2 http-errors: 2.0.0 - merge-descriptors: 1.0.1 + merge-descriptors: 1.0.3 methods: 1.1.2 on-finished: 2.4.1 parseurl: 1.3.3 - path-to-regexp: 0.1.7 + path-to-regexp: 0.1.10 proxy-addr: 2.0.7 qs: 6.11.0 range-parser: 1.2.1 safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 + send: 0.19.0 + serve-static: 1.16.0 setprototypeof: 1.2.0 statuses: 2.0.1 type-is: 1.6.18 @@ -8326,7 +8330,7 @@ packages: dezalgo: 1.0.4 hexoid: 1.0.0 once: 1.4.0 - qs: 6.11.2 + qs: 6.13.0 dev: true /forwarded@0.2.0: @@ -9017,7 +9021,7 @@ packages: dependencies: es-errors: 1.3.0 hasown: 2.0.1 - side-channel: 1.0.4 + side-channel: 1.0.6 dev: false /interpret@1.4.0: @@ -10826,12 +10830,8 @@ packages: yargs-parser: 18.1.3 dev: false - /merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} - /merge-descriptors@1.0.3: resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} - dev: true /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -12231,8 +12231,8 @@ packages: lru-cache: 10.2.0 minipass: 7.0.4 - /path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + /path-to-regexp@0.1.10: + resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==} /path-to-regexp@6.2.1: resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} @@ -12717,14 +12717,13 @@ packages: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} dependencies: - side-channel: 1.0.4 + side-channel: 1.0.6 - /qs@6.11.2: - resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} + /qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} dependencies: - side-channel: 1.0.4 - dev: true + side-channel: 1.0.6 /qs@6.5.3: resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} @@ -13408,14 +13407,34 @@ packages: transitivePeerDependencies: - supports-color + /send@0.19.0: + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} + engines: {node: '>= 0.8.0'} + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + /serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} dependencies: randombytes: 2.1.0 dev: false - /serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + /serve-static@1.16.0: + resolution: {integrity: sha512-pDLK8zwl2eKaYrs8mrPZBJua4hMplRWJ1tIFksVC3FtBEBnl8dxgeHtsaMS8DhS9i4fLObaon6ABoc4/hQGdPA==} engines: {node: '>= 0.8.0'} dependencies: encodeurl: 1.0.2 @@ -13520,10 +13539,12 @@ packages: rechoir: 0.6.2 dev: false - /side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 + es-errors: 1.3.0 get-intrinsic: 1.2.4 object-inspect: 1.13.1 @@ -13846,7 +13867,7 @@ packages: internal-slot: 1.0.7 regexp.prototype.flags: 1.5.2 set-function-name: 2.0.1 - side-channel: 1.0.4 + side-channel: 1.0.6 dev: false /string.prototype.padend@3.1.5: @@ -13985,7 +14006,7 @@ packages: formidable: 2.1.2 methods: 1.1.2 mime: 2.6.0 - qs: 6.11.2 + qs: 6.13.0 semver: 7.5.4 transitivePeerDependencies: - supports-color From 5303b3484cf457bbbb12230765f1f08f46f4f26c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 4 Oct 2024 03:43:10 +0200 Subject: [PATCH 06/44] chore(deps): bump ws from 7.5.9 to 7.5.10 (#10061) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- packages/remix-dev/package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/remix-dev/package.json b/packages/remix-dev/package.json index d0a13875643..6e79c88e00a 100644 --- a/packages/remix-dev/package.json +++ b/packages/remix-dev/package.json @@ -73,7 +73,7 @@ "set-cookie-parser": "^2.6.0", "tar-fs": "^2.1.1", "tsconfig-paths": "^4.0.0", - "ws": "^7.4.5" + "ws": "^7.5.10" }, "devDependencies": { "@remix-run/cloudflare": "workspace:*", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ec05618b798..33419569fb6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -997,8 +997,8 @@ importers: specifier: ^5.1.0 version: 5.1.6 ws: - specifier: ^7.4.5 - version: 7.5.9 + specifier: ^7.5.10 + version: 7.5.10 devDependencies: '@remix-run/cloudflare': specifier: workspace:* @@ -15225,8 +15225,8 @@ packages: imurmurhash: 0.1.4 signal-exit: 3.0.7 - /ws@7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + /ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} engines: {node: '>=8.3.0'} peerDependencies: bufferutil: ^4.0.1 From 66bb870c17a4d778a3cff66973fee5314c694f82 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 4 Oct 2024 03:44:23 +0200 Subject: [PATCH 07/44] chore(deps): bump vite from 5.1.3 to 5.1.8 (#10060) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../vite-cloudflare-template/package.json | 2 +- package.json | 2 +- packages/remix-dev/package.json | 2 +- pnpm-lock.yaml | 38 +++++++++---------- 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/integration/helpers/vite-cloudflare-template/package.json b/integration/helpers/vite-cloudflare-template/package.json index bbfc0138a52..c37cb77d972 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.3", + "vite": "5.1.8", "vite-tsconfig-paths": "^4.2.1", "wrangler": "^3.24.0" }, diff --git a/package.json b/package.json index 6ca9957809a..511e6694e4c 100644 --- a/package.json +++ b/package.json @@ -129,7 +129,7 @@ "unified": "^10.1.2", "unist-util-remove": "^3.1.0", "unist-util-visit": "^4.1.1", - "vite": "5.1.3", + "vite": "5.1.8", "vite-tsconfig-paths": "^4.2.2", "wait-on": "^7.0.1", "wrangler": "^3.72.3" diff --git a/packages/remix-dev/package.json b/packages/remix-dev/package.json index 6e79c88e00a..e9b50fefe7e 100644 --- a/packages/remix-dev/package.json +++ b/packages/remix-dev/package.json @@ -102,7 +102,7 @@ "msw": "^1.2.3", "strip-ansi": "^6.0.1", "tiny-invariant": "^1.2.0", - "vite": "5.1.3", + "vite": "5.1.8", "wrangler": "^3.28.2" }, "peerDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 33419569fb6..8ab10be2781 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -290,11 +290,11 @@ importers: specifier: ^4.1.1 version: 4.1.1 vite: - specifier: 5.1.3 - version: 5.1.3(@types/node@18.17.1) + specifier: 5.1.8 + version: 5.1.8(@types/node@18.17.1) vite-tsconfig-paths: specifier: ^4.2.2 - version: 4.3.1(typescript@5.1.6)(vite@5.1.3) + version: 4.3.1(typescript@5.1.6)(vite@5.1.8) wait-on: specifier: ^7.0.1 version: 7.0.1 @@ -336,7 +336,7 @@ importers: version: 1.14.1 '@vanilla-extract/vite-plugin': specifier: ^3.9.2 - version: 3.9.5(vite@5.1.3) + version: 3.9.5(vite@5.1.8) cheerio: specifier: ^1.0.0-rc.12 version: 1.0.0-rc.12 @@ -411,7 +411,7 @@ importers: version: 5.1.6 vite-tsconfig-paths: specifier: ^4.2.2 - version: 4.3.1(typescript@5.1.6)(vite@5.1.3) + version: 4.3.1(typescript@5.1.6)(vite@5.1.8) wrangler: specifier: ^3.28.2 version: 3.74.0(@cloudflare/workers-types@4.20240208.0) @@ -531,7 +531,7 @@ importers: version: 1.14.1 '@vanilla-extract/vite-plugin': specifier: ^3.9.2 - version: 3.9.5(vite@5.1.3) + version: 3.9.5(vite@5.1.8) getos: specifier: ^3.2.1 version: 3.2.1 @@ -588,11 +588,11 @@ importers: specifier: ^5.1.6 version: 5.1.6 vite: - specifier: 5.1.3 - version: 5.1.3(@types/node@18.17.1) + specifier: 5.1.8 + version: 5.1.8(@types/node@18.17.1) vite-tsconfig-paths: specifier: ^4.2.1 - version: 4.3.1(typescript@5.1.6)(vite@5.1.3) + version: 4.3.1(typescript@5.1.6)(vite@5.1.8) wrangler: specifier: ^3.24.0 version: 3.74.0(@cloudflare/workers-types@4.20240208.0) @@ -1079,8 +1079,8 @@ importers: specifier: ^1.2.0 version: 1.3.1 vite: - specifier: 5.1.3 - version: 5.1.3(@types/node@18.17.1) + specifier: 5.1.8 + version: 5.1.8(@types/node@18.17.1) wrangler: specifier: ^3.28.2 version: 3.74.0(@cloudflare/workers-types@4.20240208.0) @@ -5245,7 +5245,7 @@ packages: lodash: 4.17.21 mlly: 1.5.0 outdent: 0.8.0 - vite: 5.1.3(@types/node@18.17.1) + vite: 5.1.8(@types/node@18.17.1) vite-node: 1.2.2(@types/node@18.17.1) transitivePeerDependencies: - '@types/node' @@ -5282,7 +5282,7 @@ packages: - ts-node dev: false - /@vanilla-extract/vite-plugin@3.9.5(vite@5.1.3): + /@vanilla-extract/vite-plugin@3.9.5(vite@5.1.8): resolution: {integrity: sha512-CWI/CtrVW6i3HKccI6T7uGQkTJ8bd8Xl2UMBg3Pkr7dwWMmavXTeucV0I9KSbmXaYXSbEj+Q8c9y0xAZwtmTig==} peerDependencies: vite: ^2.2.3 || ^3.0.0 || ^4.0.3 || ^5.0.0 @@ -5291,7 +5291,7 @@ packages: outdent: 0.8.0 postcss: 8.4.35 postcss-load-config: 4.0.2(postcss@8.4.35) - vite: 5.1.3(@types/node@18.17.1) + vite: 5.1.8(@types/node@18.17.1) transitivePeerDependencies: - '@types/node' - less @@ -14858,7 +14858,7 @@ packages: debug: 4.3.4(supports-color@8.1.1) pathe: 1.1.2 picocolors: 1.0.0 - vite: 5.1.3(@types/node@18.17.1) + vite: 5.1.8(@types/node@18.17.1) transitivePeerDependencies: - '@types/node' - less @@ -14886,7 +14886,7 @@ packages: - typescript dev: true - /vite-tsconfig-paths@4.3.1(typescript@5.1.6)(vite@5.1.3): + /vite-tsconfig-paths@4.3.1(typescript@5.1.6)(vite@5.1.8): resolution: {integrity: sha512-cfgJwcGOsIxXOLU/nELPny2/LUD/lcf1IbfyeKTv2bsupVbTH/xpFtdQlBmIP1GEK2CjjLxYhFfB+QODFAx5aw==} peerDependencies: vite: '*' @@ -14897,7 +14897,7 @@ packages: debug: 4.3.4(supports-color@8.1.1) globrex: 0.1.2 tsconfck: 3.0.2(typescript@5.1.6) - vite: 5.1.3(@types/node@18.17.1) + vite: 5.1.8(@types/node@18.17.1) transitivePeerDependencies: - supports-color - typescript @@ -14936,8 +14936,8 @@ packages: optionalDependencies: fsevents: 2.3.3 - /vite@5.1.3(@types/node@18.17.1): - resolution: {integrity: sha512-UfmUD36DKkqhi/F75RrxvPpry+9+tTkrXfMNZD+SboZqBCMsxKtO52XeGzzuh7ioz+Eo/SYDBbdb0Z7vgcDJew==} + /vite@5.1.8(@types/node@18.17.1): + resolution: {integrity: sha512-mB8ToUuSmzODSpENgvpFk2fTiU/YQ1tmcVJJ4WZbq4fPdGJkFNVcmVL5k7iDug6xzWjjuGDKAuSievIsD6H7Xw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: From df5a589b7d12676c7bb6c102b4a6a817eb83897a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20De=20Boey?= Date: Fri, 4 Oct 2024 22:53:57 +0200 Subject: [PATCH 08/44] docs(other-api/create-remix): make sure to always use the latest version (#10058) --- docs/other-api/create-remix.md | 6 +++--- packages/create-remix/CHANGELOG.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/other-api/create-remix.md b/docs/other-api/create-remix.md index ef7bafb18cd..24cedf28906 100644 --- a/docs/other-api/create-remix.md +++ b/docs/other-api/create-remix.md @@ -35,11 +35,11 @@ npx create-remix@latest --help ```sh npm create remix@latest # or -yarn create remix +yarn create remix@latest # or -pnpm create remix +pnpm create remix@latest # or -bunx create-remix +bunx create-remix@latest ``` ### `create-remix --template` diff --git a/packages/create-remix/CHANGELOG.md b/packages/create-remix/CHANGELOG.md index d38a29905b5..564a73b206f 100644 --- a/packages/create-remix/CHANGELOG.md +++ b/packages/create-remix/CHANGELOG.md @@ -146,7 +146,7 @@ No significant changes to this package were made in this release. [See the relea ### Patch Changes -- Allow dots in github repo shorthand notation folder names (i.e., `npx create-remix --template remix-run/examples/socket.io`) ([#7277](https://github.com/remix-run/remix/pull/7277)) +- Allow dots in github repo shorthand notation folder names (i.e., `npx create-remix@latest --template remix-run/examples/socket.io`) ([#7277](https://github.com/remix-run/remix/pull/7277)) ## 1.19.3 From 5954ad1520e921483fbe07f5995c6f9d92e7a37b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 4 Oct 2024 22:55:59 +0200 Subject: [PATCH 09/44] chore(deps): bump vite from 5.1.0 to 5.1.8 (#10062) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../helpers/vite-template/package.json | 2 +- pnpm-lock.yaml | 81 +------------------ 2 files changed, 5 insertions(+), 78 deletions(-) diff --git a/integration/helpers/vite-template/package.json b/integration/helpers/vite-template/package.json index f820053182a..3d9a59396e3 100644 --- a/integration/helpers/vite-template/package.json +++ b/integration/helpers/vite-template/package.json @@ -30,7 +30,7 @@ "@types/react-dom": "^18.2.7", "eslint": "^8.38.0", "typescript": "^5.1.6", - "vite": "5.1.0", + "vite": "5.1.8", "vite-env-only": "^2.0.0", "vite-tsconfig-paths": "^4.2.1", "wrangler": "^3.24.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8ab10be2781..d64d0b56bf2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -616,7 +616,7 @@ importers: version: 1.14.1 '@vanilla-extract/vite-plugin': specifier: ^3.9.2 - version: 3.9.5(vite@5.1.0) + version: 3.9.5(vite@5.1.8) express: specifier: ^4.20.0 version: 4.20.0 @@ -652,14 +652,14 @@ importers: specifier: ^5.1.6 version: 5.1.6 vite: - specifier: 5.1.0 - version: 5.1.0 + specifier: 5.1.8 + version: 5.1.8(@types/node@18.17.1) vite-env-only: specifier: ^2.0.0 version: 2.2.0 vite-tsconfig-paths: specifier: ^4.2.1 - version: 4.3.1(typescript@5.1.6)(vite@5.1.0) + version: 4.3.1(typescript@5.1.6)(vite@5.1.8) wrangler: specifier: ^3.24.0 version: 3.74.0(@cloudflare/workers-types@4.20240208.0) @@ -5260,28 +5260,6 @@ packages: /@vanilla-extract/private@1.0.3: resolution: {integrity: sha512-17kVyLq3ePTKOkveHxXuIJZtGYs+cSoev7BlP+Lf4916qfDhk/HBjvlYDe8egrea7LNPHKwSZJK/bzZC+Q6AwQ==} - /@vanilla-extract/vite-plugin@3.9.5(vite@5.1.0): - resolution: {integrity: sha512-CWI/CtrVW6i3HKccI6T7uGQkTJ8bd8Xl2UMBg3Pkr7dwWMmavXTeucV0I9KSbmXaYXSbEj+Q8c9y0xAZwtmTig==} - peerDependencies: - vite: ^2.2.3 || ^3.0.0 || ^4.0.3 || ^5.0.0 - dependencies: - '@vanilla-extract/integration': 6.5.0(@types/node@18.17.1) - outdent: 0.8.0 - postcss: 8.4.35 - postcss-load-config: 4.0.2(postcss@8.4.35) - vite: 5.1.0 - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - ts-node - dev: false - /@vanilla-extract/vite-plugin@3.9.5(vite@5.1.8): resolution: {integrity: sha512-CWI/CtrVW6i3HKccI6T7uGQkTJ8bd8Xl2UMBg3Pkr7dwWMmavXTeucV0I9KSbmXaYXSbEj+Q8c9y0xAZwtmTig==} peerDependencies: @@ -14869,23 +14847,6 @@ packages: - supports-color - terser - /vite-tsconfig-paths@4.3.1(typescript@5.1.6)(vite@5.1.0): - resolution: {integrity: sha512-cfgJwcGOsIxXOLU/nELPny2/LUD/lcf1IbfyeKTv2bsupVbTH/xpFtdQlBmIP1GEK2CjjLxYhFfB+QODFAx5aw==} - peerDependencies: - vite: '*' - peerDependenciesMeta: - vite: - optional: true - dependencies: - debug: 4.3.4(supports-color@8.1.1) - globrex: 0.1.2 - tsconfck: 3.0.2(typescript@5.1.6) - vite: 5.1.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - /vite-tsconfig-paths@4.3.1(typescript@5.1.6)(vite@5.1.8): resolution: {integrity: sha512-cfgJwcGOsIxXOLU/nELPny2/LUD/lcf1IbfyeKTv2bsupVbTH/xpFtdQlBmIP1GEK2CjjLxYhFfB+QODFAx5aw==} peerDependencies: @@ -14902,40 +14863,6 @@ packages: - supports-color - typescript - /vite@5.1.0: - resolution: {integrity: sha512-STmSFzhY4ljuhz14bg9LkMTk3d98IO6DIArnTY6MeBwiD1Za2StcQtz7fzOUnRCqrHSD5+OS2reg4HOz1eoLnw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - esbuild: 0.19.12 - postcss: 8.4.35 - rollup: 4.4.1 - optionalDependencies: - fsevents: 2.3.3 - /vite@5.1.8(@types/node@18.17.1): resolution: {integrity: sha512-mB8ToUuSmzODSpENgvpFk2fTiU/YQ1tmcVJJ4WZbq4fPdGJkFNVcmVL5k7iDug6xzWjjuGDKAuSievIsD6H7Xw==} engines: {node: ^18.0.0 || >=20.0.0} From 2678a01fb93a927960b12321e6b6118610cc9f0a Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Wed, 9 Oct 2024 13:11:41 -0400 Subject: [PATCH 10/44] Stabilize APIs (#9980) --- .changeset/rare-shoes-enjoy.md | 14 +++++ docs/components/form.md | 8 +-- docs/components/link.md | 17 +++---- docs/components/nav-link.md | 16 +++--- docs/guides/single-fetch.md | 2 +- docs/hooks/use-fetcher.md | 4 +- docs/hooks/use-navigate.md | 6 +-- docs/hooks/use-submit.md | 6 +-- docs/hooks/use-view-transition-state.md | 16 +++--- docs/utils/data.md | 6 +-- integration/package.json | 2 +- integration/single-fetch-test.ts | 18 +++---- packages/remix-cloudflare/index.ts | 2 +- packages/remix-deno/index.ts | 2 +- packages/remix-dev/package.json | 2 +- packages/remix-node/index.ts | 2 +- packages/remix-react/browser.tsx | 4 +- packages/remix-react/fog-of-war.ts | 4 +- packages/remix-react/index.tsx | 4 +- packages/remix-react/package.json | 6 +-- packages/remix-react/single-fetch.tsx | 16 +++--- packages/remix-server-runtime/index.ts | 2 +- packages/remix-server-runtime/package.json | 2 +- packages/remix-server-runtime/single-fetch.ts | 10 ++-- packages/remix-testing/package.json | 4 +- pnpm-lock.yaml | 51 ++++++++++--------- 26 files changed, 114 insertions(+), 112 deletions(-) create mode 100644 .changeset/rare-shoes-enjoy.md diff --git a/.changeset/rare-shoes-enjoy.md b/.changeset/rare-shoes-enjoy.md new file mode 100644 index 00000000000..72b590f0be9 --- /dev/null +++ b/.changeset/rare-shoes-enjoy.md @@ -0,0 +1,14 @@ +--- +"@remix-run/dev": minor +"@remix-run/react": minor +"@remix-run/server-runtime": minor +--- + +Stabilize React Router APIs in Remix + - Adopt stabilized React Router APIs internally + - Single Fetch: `unstable_dataStrategy` -> `dataStrategy` + - Lazy Route Discovery: `unstable_patchRoutesOnNavigation` -> `patchRoutesOnNavigation` + - Stabilize public-facing APIs + - Single Fetch: `unstable_data()` -> `data()` + - `unstable_viewTransition` -> `viewTransition` (`Link`, `Form`, `navigate`, `submit`) + - `unstable_flushSync>` -> `` (`Link`, `Form`, `navigate`, `submit`, `useFetcher`) diff --git a/docs/components/form.md b/docs/components/form.md index ddf22f5abdd..a9f9c4b4a40 100644 --- a/docs/components/form.md +++ b/docs/components/form.md @@ -95,13 +95,9 @@ If true, it will submit the form with the browser instead of client side routing This is recommended over [`
`][form_element]. When the `action` prop is omitted, `` and `` will sometimes call different actions depending on what the current URL is since `` uses the current URL as the default, but `` uses the URL for the route the form is rendered in. -### `unstable_viewTransition` +### `viewTransition` -The `unstable_viewTransition` prop enables a [View Transition][view-transitions] for this navigation by wrapping the final state update in [`document.startViewTransition()`][document-start-view-transition]. If you need to apply specific styles for this view transition, you will also need to leverage the [`unstable_useViewTransitionState()`][use-view-transition-state]. - - -Please note that this API is marked unstable and may be subject to breaking changes without a major release. - +The `viewTransition` prop enables a [View Transition][view-transitions] for this navigation by wrapping the final state update in [`document.startViewTransition()`][document-start-view-transition]. If you need to apply specific styles for this view transition, you will also need to leverage the [`useViewTransitionState()`][use-view-transition-state]. ## Notes diff --git a/docs/components/link.md b/docs/components/link.md index 1e6ddb4f08e..fed084bad59 100644 --- a/docs/components/link.md +++ b/docs/components/link.md @@ -185,24 +185,23 @@ function SomeComp() { This state is inaccessible on the server as it is implemented on top of [`history.state`][history-state]. -## `unstable_viewTransition` +## `viewTransition` -The `unstable_viewTransition` prop enables a [View Transition][view-transitions] for this navigation by wrapping the final state update in [`document.startViewTransition()`][document-start-view-transition]: +The `viewTransition` prop enables a [View Transition][view-transitions] for this navigation by wrapping the final state update in [`document.startViewTransition()`][document-start-view-transition]: ```jsx - + Click me ``` -If you need to apply specific styles for this view transition, you will also need to leverage the [`unstable_useViewTransitionState()`][use-view-transition-state]: +If you need to apply specific styles for this view transition, you will also need to leverage the [`useViewTransitionState()`][use-view-transition-state]: ```jsx function ImageLink(to) { - const isTransitioning = - unstable_useViewTransitionState(to); + const isTransitioning = useViewTransitionState(to); return ( - +

-Please note that this API is marked unstable and may be subject to breaking changes without a major release. - - [scroll-restoration-component]: ./scroll-restoration [history-state]: https://developer.mozilla.org/en-US/docs/Web/API/History/state [view-transitions]: https://developer.mozilla.org/en-US/docs/Web/API/View_Transitions_API diff --git a/docs/components/nav-link.md b/docs/components/nav-link.md index 7cd2f9224dc..9d01e0aaa1a 100644 --- a/docs/components/nav-link.md +++ b/docs/components/nav-link.md @@ -55,10 +55,10 @@ a.pending { ### `.transitioning` -A `transitioning` class is added to a [``][view-transition-prop] component when it is transitioning during a navigation, so you can use CSS to style it. +A `transitioning` class is added to a [``][view-transition-prop] component when it is transitioning during a navigation, so you can use CSS to style it. ```tsx - + ``` ```css @@ -136,9 +136,9 @@ Adding the `caseSensitive` prop changes the matching logic to make it case-sensi | `` | `/sponge-bob` | true | | `` | `/sponge-bob` | false | -## `unstable_viewTransition` +## `viewTransition` -The `unstable_viewTransition` prop enables a [View Transition][view-transitions] for this navigation by wrapping the final state update in [`document.startViewTransition()`][document-start-view-transition]. By default, during the transition a [`transitioning` class][transitioning-class] will be added to the [`` element][a-element] that you can use to customize the view transition. +The `viewTransition` prop enables a [View Transition][view-transitions] for this navigation by wrapping the final state update in [`document.startViewTransition()`][document-start-view-transition]. By default, during the transition a [`transitioning` class][transitioning-class] will be added to the [`` element][a-element] that you can use to customize the view transition. ```css a.transitioning p { @@ -151,7 +151,7 @@ a.transitioning img { ``` ```tsx - +

Image Number {idx}

{`Img @@ -160,7 +160,7 @@ a.transitioning img { You may also use the [`className`][class-name-prop]/[`style`][style-prop] props or the render props passed to [`children`][children-prop] to further customize based on the `isTransitioning` value. ```tsx - + {({ isTransitioning }) => ( <>

``` - -Please note that this API is marked unstable and may be subject to breaking changes without a major release. - - ### `` props All other props of [``][link-component] are supported. diff --git a/docs/guides/single-fetch.md b/docs/guides/single-fetch.md index 7712b9ba3f2..9d7904d3214 100644 --- a/docs/guides/single-fetch.md +++ b/docs/guides/single-fetch.md @@ -277,7 +277,7 @@ For v2, you may still continue returning normal `Response` instances and their ` Over time, you should start eliminating returned Responses from your loaders and actions. - If your `loader`/`action` was returning `json`/`defer` without setting any `status`/`headers`, then you can just remove the call to `json`/`defer` and return the data directly -- If your `loader`/`action` was returning custom `status`/`headers` via `json`/`defer`, you should switch those to use the new [`unstable_data()`][data-utility] utility. +- If your `loader`/`action` was returning custom `status`/`headers` via `json`/`defer`, you should switch those to use the new [`data()`][data-utility] utility. ### Client Loaders diff --git a/docs/hooks/use-fetcher.md b/docs/hooks/use-fetcher.md index aa6cdbf2bb4..85998a34504 100644 --- a/docs/hooks/use-fetcher.md +++ b/docs/hooks/use-fetcher.md @@ -119,9 +119,9 @@ fetcher.load("/some/route?foo=bar"); `fetcher.load`'s revalidate by default after action submissions and explicit revalidation requests via [`useRevalidator`][userevalidator]. Because `fetcher.load` loads a specific URL they don't revalidate on changes to route param or URL search param. You can use [`shouldRevalidate`][shouldrevalidate] to optimize which data should be reloaded. -#### `options.unstable_flushSync` +#### `options.flushSync` -The `unstable_flushSync` option tells React Router DOM to wrap the initial state update for this `fetcher.load` in a [`ReactDOM.flushSync`][flush-sync] call instead of the default [`React.startTransition`][start-transition]. This allows you to perform synchronous DOM actions immediately after the update is flushed to the DOM. +The `flushSync` option tells React Router DOM to wrap the initial state update for this `fetcher.load` in a [`ReactDOM.flushSync`][flush-sync] call instead of the default [`React.startTransition`][start-transition]. This allows you to perform synchronous DOM actions immediately after the update is flushed to the DOM. `ReactDOM.flushSync` de-optimizes React and can hurt the performance of your app. diff --git a/docs/hooks/use-navigate.md b/docs/hooks/use-navigate.md index e5daa8b02c7..837d9d3b0ad 100644 --- a/docs/hooks/use-navigate.md +++ b/docs/hooks/use-navigate.md @@ -83,9 +83,9 @@ navigate(".", { - `"route"` will use the route hierarchy so `".."` will remove all URL segments of the current route pattern while `"path"` will use the URL path so `".."` will remove one URL segment - **state**: any - adds persistent client side routing state to the next location - **preventScrollReset**: boolean - if you are using [``][scroll-restoration], prevent the scroll position from being reset to the top of the window when navigating -- **unstable_flushSync**: boolean - wraps the initial state update for this navigation in a [`ReactDOM.flushSync`][flush-sync] call instead of the default [`React.startTransition`][start-transition] -- **unstable_viewTransition**: boolean - enables a [View Transition][view-transitions] for this navigation by wrapping the final state update in `document.startViewTransition()` - - If you need to apply specific styles for this view transition, you will also need to leverage the [`unstable_useViewTransitionState()`][use-view-transition-state] +- **flushSync**: boolean - wraps the initial state update for this navigation in a [`ReactDOM.flushSync`][flush-sync] call instead of the default [`React.startTransition`][start-transition] +- **viewTransition**: boolean - enables a [View Transition][view-transitions] for this navigation by wrapping the final state update in `document.startViewTransition()` + - If you need to apply specific styles for this view transition, you will also need to leverage the [`useViewTransitionState()`][use-view-transition-state] [redirect]: ../utils/redirect [flush-sync]: https://react.dev/reference/react-dom/flushSync diff --git a/docs/hooks/use-submit.md b/docs/hooks/use-submit.md index bdee83e828b..113f6010e9a 100644 --- a/docs/hooks/use-submit.md +++ b/docs/hooks/use-submit.md @@ -76,9 +76,9 @@ Options for the submission, the same as [``][form-component] props. All op - **preventScrollReset**: Prevents the scroll position from being reset to the top of the window when the data is submitted. Default is `false`. - **replace**: Replaces the current entry in the history stack, instead of pushing the new entry. Default is `false`. - **relative**: Defines relative route resolution behavior. Either `"route"` (relative to the route hierarchy) or `"path"` (relative to the URL). -- **unstable_flushSync**: Wraps the initial state update for this navigation in a [`ReactDOM.flushSync`][flush-sync] call instead of the default [`React.startTransition`][start-transition] -- **unstable_viewTransition**: Enables a [View Transition][view-transitions] for this navigation by wrapping the final state update in `document.startViewTransition()` - - If you need to apply specific styles for this view transition, you will also need to leverage the [`unstable_useViewTransitionState()`][use-view-transition-state] +- **flushSync**: Wraps the initial state update for this navigation in a [`ReactDOM.flushSync`][flush-sync] call instead of the default [`React.startTransition`][start-transition] +- **viewTransition**: Enables a [View Transition][view-transitions] for this navigation by wrapping the final state update in `document.startViewTransition()` + - If you need to apply specific styles for this view transition, you will also need to leverage the [`useViewTransitionState()`][use-view-transition-state] ```tsx submit(data, { diff --git a/docs/hooks/use-view-transition-state.md b/docs/hooks/use-view-transition-state.md index 3f20209f8c9..fd92b124308 100644 --- a/docs/hooks/use-view-transition-state.md +++ b/docs/hooks/use-view-transition-state.md @@ -1,20 +1,20 @@ --- -title: unstable_useViewTransitionState +title: useViewTransitionState toc: false --- -# `unstable_useViewTransitionState` +# `useViewTransitionState` -This hook returns `true` when there is an active [View Transition][view-transitions] to the specified location. This can be used to apply finer-grained styles to elements to further customize the view transition. This requires that view transitions have been enabled for the given navigation via the `unstable_viewTransition` prop on the [`Link`][link-component-view-transition] (or the [`Form`][form-component-view-transition], [`NavLink`][nav-link-component-view-transition], `navigate`, or `submit` call). +This hook returns `true` when there is an active [View Transition][view-transitions] to the specified location. This can be used to apply finer-grained styles to elements to further customize the view transition. This requires that view transitions have been enabled for the given navigation via the `viewTransition` prop on the [`Link`][link-component-view-transition] (or the [`Form`][form-component-view-transition], [`NavLink`][nav-link-component-view-transition], `navigate`, or `submit` call). Consider clicking on an image in a list that you need to expand into the hero image on the destination page: ```jsx function NavImage({ src, alt, id }) { const to = `/images/${idx}`; - const vt = unstable_useViewTransitionState(href); + const vt = useViewTransitionState(href); return ( - + {alt} { return data( diff --git a/integration/package.json b/integration/package.json index bd94ebf2813..a7071bbb80b 100644 --- a/integration/package.json +++ b/integration/package.json @@ -14,7 +14,7 @@ "@remix-run/dev": "workspace:*", "@remix-run/express": "workspace:*", "@remix-run/node": "workspace:*", - "@remix-run/router": "1.19.2", + "@remix-run/router": "1.20.0-pre.0", "@remix-run/server-runtime": "workspace:*", "@types/express": "^4.17.9", "@vanilla-extract/css": "^1.10.0", diff --git a/integration/single-fetch-test.ts b/integration/single-fetch-test.ts index 79d1a860d5e..c97a9fd1442 100644 --- a/integration/single-fetch-test.ts +++ b/integration/single-fetch-test.ts @@ -112,7 +112,7 @@ const files = { `, "app/routes/data-with-response.tsx": js` - import { useActionData, useLoaderData, unstable_data as data } from "@remix-run/react"; + import { useActionData, useLoaderData, data } from "@remix-run/react"; export function headers ({ actionHeaders, loaderHeaders, errorHeaders }) { if ([...actionHeaders].length > 0) { @@ -276,7 +276,7 @@ test.describe("single-fetch", () => { }); }); - test("loads proper data (via unstable_data) on single fetch loader requests", async () => { + test("loads proper data (via data) on single fetch loader requests", async () => { let fixture = await createFixture({ config: { future: { @@ -310,7 +310,7 @@ test.describe("single-fetch", () => { }); }); - test("loads proper data (via unstable_data) on single fetch action requests", async () => { + test("loads proper data (via data) on single fetch action requests", async () => { let fixture = await createFixture({ config: { future: { @@ -565,7 +565,7 @@ test.describe("single-fetch", () => { expect(urls).toEqual([]); }); - test("does not revalidate on 4xx/5xx action responses (via unstable_data)", async ({ + test("does not revalidate on 4xx/5xx action responses (via data)", async ({ page, }) => { let fixture = await createFixture({ @@ -577,21 +577,21 @@ test.describe("single-fetch", () => { files: { ...files, "app/routes/action.tsx": js` - import { Form, Link, useActionData, useLoaderData, useNavigation, unstable_data } from '@remix-run/react'; + import { Form, Link, useActionData, useLoaderData, useNavigation, data } from '@remix-run/react'; export async function action({ request }) { let fd = await request.formData(); if (fd.get('throw') === "5xx") { - throw unstable_data("Thrown 500", { status: 500 }); + throw data("Thrown 500", { status: 500 }); } if (fd.get('throw') === "4xx") { - throw unstable_data("Thrown 400", { status: 400 }); + throw data("Thrown 400", { status: 400 }); } if (fd.get('return') === "5xx") { - return unstable_data("Returned 500", { status: 500 }); + return data("Returned 500", { status: 500 }); } if (fd.get('return') === "4xx") { - return unstable_data("Returned 400", { status: 400 }); + return data("Returned 400", { status: 400 }); } return null; } diff --git a/packages/remix-cloudflare/index.ts b/packages/remix-cloudflare/index.ts index f79e1b9d3be..585798d7edc 100644 --- a/packages/remix-cloudflare/index.ts +++ b/packages/remix-cloudflare/index.ts @@ -12,7 +12,7 @@ export { export { createRequestHandler, createSession, - unstable_data, + data, defer, broadcastDevReady, logDevReady, diff --git a/packages/remix-deno/index.ts b/packages/remix-deno/index.ts index 3a16591712e..4ddc37dcbbc 100644 --- a/packages/remix-deno/index.ts +++ b/packages/remix-deno/index.ts @@ -27,7 +27,7 @@ export { replace, unstable_composeUploadHandlers, unstable_createMemoryUploadHandler, - unstable_data, + data, unstable_parseMultipartFormData, } from "@remix-run/server-runtime"; diff --git a/packages/remix-dev/package.json b/packages/remix-dev/package.json index 3d4d7294a2a..0c24f2f1cf5 100644 --- a/packages/remix-dev/package.json +++ b/packages/remix-dev/package.json @@ -32,7 +32,7 @@ "@mdx-js/mdx": "^2.3.0", "@npmcli/package-json": "^4.0.1", "@remix-run/node": "workspace:*", - "@remix-run/router": "1.19.2", + "@remix-run/router": "1.20.0-pre.0", "@remix-run/server-runtime": "workspace:*", "@types/mdx": "^2.0.5", "@vanilla-extract/integration": "^6.2.0", diff --git a/packages/remix-node/index.ts b/packages/remix-node/index.ts index bccdb246f7d..34f4fe9a092 100644 --- a/packages/remix-node/index.ts +++ b/packages/remix-node/index.ts @@ -24,7 +24,7 @@ export { export { createRequestHandler, createSession, - unstable_data, + data, defer, broadcastDevReady, logDevReady, diff --git a/packages/remix-react/browser.tsx b/packages/remix-react/browser.tsx index 39e27f11844..7ce8448b4de 100644 --- a/packages/remix-react/browser.tsx +++ b/packages/remix-react/browser.tsx @@ -303,14 +303,14 @@ export function RemixBrowser(_props: RemixBrowserProps): ReactElement { }, hydrationData, mapRouteProperties, - unstable_dataStrategy: window.__remixContext.future.unstable_singleFetch + dataStrategy: window.__remixContext.future.unstable_singleFetch ? getSingleFetchDataStrategy( window.__remixManifest, window.__remixRouteModules, () => router ) : undefined, - unstable_patchRoutesOnNavigation: getPatchRoutesOnNavigationFunction( + patchRoutesOnNavigation: getPatchRoutesOnNavigationFunction( window.__remixManifest, window.__remixRouteModules, window.__remixContext.future, diff --git a/packages/remix-react/fog-of-war.ts b/packages/remix-react/fog-of-war.ts index f2b47e48abb..83e5fb5086a 100644 --- a/packages/remix-react/fog-of-war.ts +++ b/packages/remix-react/fog-of-war.ts @@ -1,7 +1,7 @@ import type { Router } from "@remix-run/router"; import { matchRoutes } from "@remix-run/router"; import * as React from "react"; -import type { unstable_PatchRoutesOnNavigationFunction } from "react-router"; +import type { PatchRoutesOnNavigationFunction } from "react-router"; import type { AssetsManifest, FutureConfig } from "./entry"; import type { RouteModules } from "./routeModules"; @@ -70,7 +70,7 @@ export function getPatchRoutesOnNavigationFunction( future: FutureConfig, isSpaMode: boolean, basename: string | undefined -): unstable_PatchRoutesOnNavigationFunction | undefined { +): PatchRoutesOnNavigationFunction | undefined { if (!isFogOfWarEnabled(future, isSpaMode)) { return undefined; } diff --git a/packages/remix-react/index.tsx b/packages/remix-react/index.tsx index bd966bfcd79..b0bc6703bcd 100644 --- a/packages/remix-react/index.tsx +++ b/packages/remix-react/index.tsx @@ -56,8 +56,8 @@ export { useSearchParams, useSubmit, useBlocker, + useViewTransitionState, unstable_usePrompt, - unstable_useViewTransitionState, } from "react-router-dom"; export { // For use in clientLoader/clientAction @@ -66,7 +66,7 @@ export { redirect, redirectDocument, replace, - unstable_data, + data, } from "@remix-run/server-runtime"; export type { RemixBrowserProps } from "./browser"; diff --git a/packages/remix-react/package.json b/packages/remix-react/package.json index f67cd24c3ed..e7edc513902 100644 --- a/packages/remix-react/package.json +++ b/packages/remix-react/package.json @@ -19,10 +19,10 @@ "tsc": "tsc" }, "dependencies": { - "@remix-run/router": "1.19.2", + "@remix-run/router": "1.20.0-pre.0", "@remix-run/server-runtime": "workspace:*", - "react-router": "6.26.2", - "react-router-dom": "6.26.2", + "react-router": "6.27.0-pre.0", + "react-router-dom": "6.27.0-pre.0", "turbo-stream": "2.4.0" }, "devDependencies": { diff --git a/packages/remix-react/single-fetch.tsx b/packages/remix-react/single-fetch.tsx index f390413fcec..ca81746e004 100644 --- a/packages/remix-react/single-fetch.tsx +++ b/packages/remix-react/single-fetch.tsx @@ -1,22 +1,22 @@ import * as React from "react"; import type { - unstable_DataStrategyFunction as DataStrategyFunction, - unstable_DataStrategyResult as DataStrategyResult, - unstable_DataStrategyMatch, + DataStrategyFunction, + DataStrategyFunctionArgs, + DataStrategyResult, + DataStrategyMatch, Router as RemixRouter, } from "@remix-run/router"; import { UNSAFE_ErrorResponseImpl as ErrorResponseImpl, isRouteErrorResponse, redirect, - unstable_data, + data, } from "@remix-run/router"; import type { UNSAFE_SingleFetchResult as SingleFetchResult, UNSAFE_SingleFetchResults as SingleFetchResults, } from "@remix-run/server-runtime"; import { UNSAFE_SingleFetchRedirectSymbol as SingleFetchRedirectSymbol } from "@remix-run/server-runtime"; -import type { unstable_DataStrategyFunctionArgs as DataStrategyFunctionArgs } from "react-router-dom"; import { decode } from "turbo-stream"; import { createRequestInit, isResponse } from "./data"; @@ -170,12 +170,12 @@ async function singleFetchActionStrategy( return { [actionMatch.route.id]: result }; } - // For non-responses, proxy along the statusCode via unstable_data() + // For non-responses, proxy along the statusCode via data() // (most notably for skipping action error revalidation) return { [actionMatch.route.id]: { type: result.type, - result: unstable_data(result.result, actionStatus), + result: data(result.result, actionStatus), }, }; } @@ -344,7 +344,7 @@ async function singleFetchLoaderFetcherStrategy( function fetchSingleLoader( handler: Parameters< - NonNullable[0]> + NonNullable[0]> >[0], url: URL, init: RequestInit, diff --git a/packages/remix-server-runtime/index.ts b/packages/remix-server-runtime/index.ts index cb084d982f7..58ea5e3c6c1 100644 --- a/packages/remix-server-runtime/index.ts +++ b/packages/remix-server-runtime/index.ts @@ -8,7 +8,7 @@ export { defer, json, redirect, redirectDocument, replace } from "./responses"; export { SingleFetchRedirectSymbol as UNSAFE_SingleFetchRedirectSymbol, - data as unstable_data, + data, } from "./single-fetch"; export type { SingleFetchResult as UNSAFE_SingleFetchResult, diff --git a/packages/remix-server-runtime/package.json b/packages/remix-server-runtime/package.json index 98a0f5c7480..cc693edbb03 100644 --- a/packages/remix-server-runtime/package.json +++ b/packages/remix-server-runtime/package.json @@ -19,7 +19,7 @@ "tsc": "tsc" }, "dependencies": { - "@remix-run/router": "1.19.2", + "@remix-run/router": "1.20.0-pre.0", "@types/cookie": "^0.6.0", "@web3-storage/multipart-parser": "^1.0.0", "cookie": "^0.6.0", diff --git a/packages/remix-server-runtime/single-fetch.ts b/packages/remix-server-runtime/single-fetch.ts index 046201a0ea9..834fc012367 100644 --- a/packages/remix-server-runtime/single-fetch.ts +++ b/packages/remix-server-runtime/single-fetch.ts @@ -1,12 +1,12 @@ import type { StaticHandler, - unstable_DataStrategyFunctionArgs as DataStrategyFunctionArgs, - unstable_DataStrategyFunction as DataStrategyFunction, + DataStrategyFunctionArgs, + DataStrategyFunction, UNSAFE_DataWithResponseInit as DataWithResponseInit, } from "@remix-run/router"; import { isRouteErrorResponse, - unstable_data as routerData, + data as routerData, UNSAFE_ErrorResponseImpl as ErrorResponseImpl, stripBasename, } from "@remix-run/router"; @@ -102,7 +102,7 @@ export async function singleFetchAction( let result = await staticHandler.query(handlerRequest, { requestContext: loadContext, skipLoaderErrorBubbling: true, - unstable_dataStrategy: getSingleFetchDataStrategy({ + dataStrategy: getSingleFetchDataStrategy({ isActionDataRequest: true, }), }); @@ -190,7 +190,7 @@ export async function singleFetchLoaders( let result = await staticHandler.query(handlerRequest, { requestContext: loadContext, skipLoaderErrorBubbling: true, - unstable_dataStrategy: getSingleFetchDataStrategy({ + dataStrategy: getSingleFetchDataStrategy({ loadRouteIds, }), }); diff --git a/packages/remix-testing/package.json b/packages/remix-testing/package.json index f4cfe4cb8f1..8cd8a1e613e 100644 --- a/packages/remix-testing/package.json +++ b/packages/remix-testing/package.json @@ -21,8 +21,8 @@ "dependencies": { "@remix-run/node": "workspace:*", "@remix-run/react": "workspace:*", - "@remix-run/router": "1.19.2", - "react-router-dom": "6.26.2" + "@remix-run/router": "1.20.0-pre.0", + "react-router-dom": "6.27.0-pre.0" }, "devDependencies": { "@remix-run/server-runtime": "workspace:*", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ae280ecfe1c..c8a81af7576 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -323,8 +323,8 @@ importers: specifier: workspace:* version: link:../packages/remix-node '@remix-run/router': - specifier: 1.19.2 - version: 1.19.2 + specifier: 1.20.0-pre.0 + version: 1.20.0-pre.0 '@remix-run/server-runtime': specifier: workspace:* version: link:../packages/remix-server-runtime @@ -871,8 +871,8 @@ importers: specifier: ^2.12.1 version: link:../remix-react '@remix-run/router': - specifier: 1.19.2 - version: 1.19.2 + specifier: 1.20.0-pre.0 + version: 1.20.0-pre.0 '@remix-run/server-runtime': specifier: workspace:* version: link:../remix-server-runtime @@ -1217,17 +1217,17 @@ importers: packages/remix-react: dependencies: '@remix-run/router': - specifier: 1.19.2 - version: 1.19.2 + specifier: 1.20.0-pre.0 + version: 1.20.0-pre.0 '@remix-run/server-runtime': specifier: workspace:* version: link:../remix-server-runtime react-router: - specifier: 6.26.2 - version: 6.26.2(react@18.2.0) + specifier: 6.27.0-pre.0 + version: 6.27.0-pre.0(react@18.2.0) react-router-dom: - specifier: 6.26.2 - version: 6.26.2(react-dom@18.2.0)(react@18.2.0) + specifier: 6.27.0-pre.0 + version: 6.27.0-pre.0(react-dom@18.2.0)(react@18.2.0) turbo-stream: specifier: 2.4.0 version: 2.4.0 @@ -1303,8 +1303,8 @@ importers: packages/remix-server-runtime: dependencies: '@remix-run/router': - specifier: 1.19.2 - version: 1.19.2 + specifier: 1.20.0-pre.0 + version: 1.20.0-pre.0 '@types/cookie': specifier: ^0.6.0 version: 0.6.0 @@ -1340,11 +1340,11 @@ importers: specifier: workspace:* version: link:../remix-react '@remix-run/router': - specifier: 1.19.2 - version: 1.19.2 + specifier: 1.20.0-pre.0 + version: 1.20.0-pre.0 react-router-dom: - specifier: 6.26.2 - version: 6.26.2(react-dom@18.2.0)(react@18.2.0) + specifier: 6.27.0-pre.0 + version: 6.27.0-pre.0(react-dom@18.2.0)(react@18.2.0) devDependencies: '@remix-run/server-runtime': specifier: workspace:* @@ -4206,8 +4206,8 @@ packages: - encoding dev: false - /@remix-run/router@1.19.2: - resolution: {integrity: sha512-baiMx18+IMuD1yyvOGaHM9QrVUPGGG0jC+z+IPHnRJWUAUvaKuWKyE8gjDj2rzv3sz9zOGoRSPgeBVHRhZnBlA==} + /@remix-run/router@1.20.0-pre.0: + resolution: {integrity: sha512-xFJySbWOaxjYP8QJy9f1TdW98H+tT8ykvuJN8Ew1J1En4v77ega3FMbFD2M8sXkCq43PKuSBPc8oZWDub6IQhA==} engines: {node: '>=14.0.0'} dev: false @@ -7804,6 +7804,7 @@ packages: /eslint@8.56.0: resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) @@ -12800,26 +12801,26 @@ packages: engines: {node: '>=0.10.0'} dev: false - /react-router-dom@6.26.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-z7YkaEW0Dy35T3/QKPYB1LjMK2R1fxnHO8kWpUMTBdfVzZrWOiY9a7CtN8HqdWtDUWd5FY6Dl8HFsqVwH4uOtQ==} + /react-router-dom@6.27.0-pre.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-z8peFQxpWiqTBh18eWWBXiMMxWKJcqYSpHiP6s35zM7eh8s5TWKdhWsPSP3xVhHMIM6oYHVJCEawGsReFaI4PQ==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' dependencies: - '@remix-run/router': 1.19.2 + '@remix-run/router': 1.20.0-pre.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-router: 6.26.2(react@18.2.0) + react-router: 6.27.0-pre.0(react@18.2.0) dev: false - /react-router@6.26.2(react@18.2.0): - resolution: {integrity: sha512-tvN1iuT03kHgOFnLPfLJ8V95eijteveqdOSk+srqfePtQvqCExB8eHOYnlilbOcyJyKnYkr1vJvf7YqotAJu1A==} + /react-router@6.27.0-pre.0(react@18.2.0): + resolution: {integrity: sha512-hJSLrLWzjsTvPiE91/54bRJ8gVzQpIT/yb8MBQWvmsd+5fFaemYr6I/6pCdAw/jpOHg+948WDyCgsxXa0XExRQ==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' dependencies: - '@remix-run/router': 1.19.2 + '@remix-run/router': 1.20.0-pre.0 react: 18.2.0 dev: false From 52e68f5c1225256847d6e8579de0d94dd20eba4e Mon Sep 17 00:00:00 2001 From: Remix Run Bot Date: Wed, 9 Oct 2024 17:13:16 +0000 Subject: [PATCH 11/44] chore: format --- .changeset/rare-shoes-enjoy.md | 15 ++++++++------- packages/remix-deno/index.ts | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/.changeset/rare-shoes-enjoy.md b/.changeset/rare-shoes-enjoy.md index 72b590f0be9..60a0c856cbc 100644 --- a/.changeset/rare-shoes-enjoy.md +++ b/.changeset/rare-shoes-enjoy.md @@ -5,10 +5,11 @@ --- Stabilize React Router APIs in Remix - - Adopt stabilized React Router APIs internally - - Single Fetch: `unstable_dataStrategy` -> `dataStrategy` - - Lazy Route Discovery: `unstable_patchRoutesOnNavigation` -> `patchRoutesOnNavigation` - - Stabilize public-facing APIs - - Single Fetch: `unstable_data()` -> `data()` - - `unstable_viewTransition` -> `viewTransition` (`Link`, `Form`, `navigate`, `submit`) - - `unstable_flushSync>` -> `` (`Link`, `Form`, `navigate`, `submit`, `useFetcher`) + +- Adopt stabilized React Router APIs internally + - Single Fetch: `unstable_dataStrategy` -> `dataStrategy` + - Lazy Route Discovery: `unstable_patchRoutesOnNavigation` -> `patchRoutesOnNavigation` +- Stabilize public-facing APIs + - Single Fetch: `unstable_data()` -> `data()` + - `unstable_viewTransition` -> `viewTransition` (`Link`, `Form`, `navigate`, `submit`) + - `unstable_flushSync>` -> `` (`Link`, `Form`, `navigate`, `submit`, `useFetcher`) diff --git a/packages/remix-deno/index.ts b/packages/remix-deno/index.ts index 4ddc37dcbbc..ff27ac4b1f8 100644 --- a/packages/remix-deno/index.ts +++ b/packages/remix-deno/index.ts @@ -16,6 +16,7 @@ export { export { broadcastDevReady, createSession, + data, defer, isCookie, isSession, @@ -27,7 +28,6 @@ export { replace, unstable_composeUploadHandlers, unstable_createMemoryUploadHandler, - data, unstable_parseMultipartFormData, } from "@remix-run/server-runtime"; From 43d08f9d7746eb0d1246bc30510a21ef431308a7 Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Wed, 9 Oct 2024 13:27:28 -0400 Subject: [PATCH 12/44] Fix bug with clientLoader.hydrate when hydrating with bubbled errors (#10063) --- .changeset/spotty-papayas-remember.md | 5 ++ integration/client-data-test.ts | 115 ++++++++++++++++++++++++++ packages/remix-react/routes.tsx | 5 +- 3 files changed, 124 insertions(+), 1 deletion(-) create mode 100644 .changeset/spotty-papayas-remember.md diff --git a/.changeset/spotty-papayas-remember.md b/.changeset/spotty-papayas-remember.md new file mode 100644 index 00000000000..f8d2f073a3f --- /dev/null +++ b/.changeset/spotty-papayas-remember.md @@ -0,0 +1,5 @@ +--- +"@remix-run/react": patch +--- + +Fix bug with `clientLoader.hydrate` in a layout route when hydrating with bubbled errors diff --git a/integration/client-data-test.ts b/integration/client-data-test.ts index 44bc613486d..700cc386cac 100644 --- a/integration/client-data-test.ts +++ b/integration/client-data-test.ts @@ -846,6 +846,121 @@ test.describe("Client Data", () => { expect(html).not.toMatch("Should not see me"); console.error = _consoleError; }); + + test("bubbled server loader errors are persisted for hydrating routes", async ({ + page, + }) => { + let _consoleError = console.error; + console.error = () => {}; + appFixture = await createAppFixture( + await createFixture( + { + files: { + ...getFiles({ + parentClientLoader: false, + parentClientLoaderHydrate: false, + childClientLoader: false, + childClientLoaderHydrate: false, + }), + "app/routes/parent.tsx": js` + import { json } from '@remix-run/node' + import { Outlet, useLoaderData, useRouteLoaderData, useRouteError } from '@remix-run/react' + + export function loader() { + return json({ message: 'Parent Server Loader'}); + } + + export async function clientLoader({ serverLoader }) { + console.log('running parent client loader') + // Need a small delay to ensure we capture the server-rendered + // fallbacks for assertions + await new Promise(r => setTimeout(r, 100)); + let data = await serverLoader(); + return { message: data.message + " (mutated by client)" }; + } + + clientLoader.hydrate = true; + + export default function Component() { + let data = useLoaderData(); + return ( + <> +

{data.message}

+ + + ); + } + + export function ErrorBoundary() { + let data = useRouteLoaderData("routes/parent") + let error = useRouteError(); + return ( + <> +

Parent Error

+

{data?.message}

+

{error?.data?.message}

+ + ); + } + `, + "app/routes/parent.child.tsx": js` + import { json } from '@remix-run/node' + import { useRouteError, useLoaderData } from '@remix-run/react' + + export function loader() { + throw json({ message: 'Child Server Error'}); + } + + export function clientLoader() { + console.log('running child client loader') + return "Should not see me"; + } + + clientLoader.hydrate = true; + + export default function Component() { + let data = useLoaderData() + return ( + <> +

Should not see me

+

{data}

; + + ); + } + `, + }, + }, + ServerMode.Development // Avoid error sanitization + ), + ServerMode.Development // Avoid error sanitization + ); + let app = new PlaywrightFixture(appFixture, page); + + let logs: string[] = []; + page.on("console", (msg) => logs.push(msg.text())); + + await app.goto("/parent/child", false); + let html = await app.getHtml("main"); + expect(html).toMatch("Parent Server Loader

"); + expect(html).toMatch("Child Server Error"); + expect(html).not.toMatch("Should not see me"); + + // Ensure we hydrate and remain on the boundary + await page.waitForSelector( + ":has-text('Parent Server Loader (mutated by client)')" + ); + html = await app.getHtml("main"); + expect(html).toMatch("Parent Server Loader (mutated by client)

"); + expect(html).toMatch("Child Server Error"); + expect(html).not.toMatch("Should not see me"); + + expect(logs).toEqual([ + expect.stringContaining("Download the React DevTools"), + "running parent client loader", + ]); + + console.error = _consoleError; + }); }); test.describe("clientLoader - lazy route module", () => { diff --git a/packages/remix-react/routes.tsx b/packages/remix-react/routes.tsx index 0cd09619129..90675e41f07 100644 --- a/packages/remix-react/routes.tsx +++ b/packages/remix-react/routes.tsx @@ -354,10 +354,13 @@ export function createClientRoutes( // On the first call, resolve with the server result if (isHydrationRequest) { + if (initialData !== undefined) { + return initialData; + } if (initialError !== undefined) { throw initialError; } - return initialData; + return null; } // Call the server loader for client-side navigations From 9f9cb66f3f058f2128470843dbb092adfa05d7df Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Wed, 9 Oct 2024 13:48:26 -0400 Subject: [PATCH 13/44] Stabilize future flags (#10072) --- .changeset/stabilize-future-flags.md | 9 ++ docs/components/link.md | 2 +- docs/guides/lazy-route-discovery.md | 3 +- docs/guides/single-fetch.md | 11 +- docs/start/future-flags.md | 4 +- integration/action-test.ts | 2 +- integration/catch-boundary-data-test.ts | 2 +- integration/catch-boundary-test.ts | 2 +- integration/client-data-test.ts | 2 +- integration/defer-loader-test.ts | 2 +- integration/defer-test.ts | 4 +- integration/error-boundary-test.ts | 14 +-- integration/error-boundary-v2-test.ts | 2 +- integration/error-data-request-test.ts | 2 +- integration/error-sanitization-test.ts | 6 +- integration/fetcher-layout-test.ts | 2 +- integration/fetcher-test.ts | 4 +- integration/file-uploads-test.ts | 2 +- integration/fog-of-war-test.ts | 40 +++---- integration/form-data-test.ts | 2 +- integration/form-test.ts | 2 +- integration/loader-test.ts | 4 +- integration/navigation-state-test.ts | 2 +- integration/prefetch-test.ts | 12 +-- integration/redirects-test.ts | 2 +- integration/revalidate-test.ts | 2 +- integration/set-cookie-revalidation-test.ts | 2 +- integration/single-fetch-test.ts | 102 +++++++++--------- integration/vite-hmr-hdr-test.ts | 4 +- .../remix-dev/__tests__/readConfig-test.ts | 4 +- packages/remix-dev/cli/commands.ts | 2 +- packages/remix-dev/config.ts | 17 +-- .../__tests__/deferred-scripts-test.tsx | 2 +- .../__tests__/scroll-restoration-test.tsx | 2 +- packages/remix-react/browser.tsx | 8 +- packages/remix-react/components.tsx | 8 +- packages/remix-react/entry.ts | 4 +- packages/remix-react/fog-of-war.ts | 2 +- packages/remix-react/server.tsx | 2 +- packages/remix-serve/cli.ts | 2 +- .../__tests__/data-test.ts | 16 +-- packages/remix-server-runtime/entry.ts | 4 +- packages/remix-server-runtime/routes.ts | 4 +- packages/remix-server-runtime/serialize.ts | 2 +- packages/remix-server-runtime/server.ts | 17 ++- packages/remix-testing/create-remix-stub.tsx | 5 +- 46 files changed, 175 insertions(+), 175 deletions(-) create mode 100644 .changeset/stabilize-future-flags.md diff --git a/.changeset/stabilize-future-flags.md b/.changeset/stabilize-future-flags.md new file mode 100644 index 00000000000..b66098c5a34 --- /dev/null +++ b/.changeset/stabilize-future-flags.md @@ -0,0 +1,9 @@ +--- +"@remix-run/dev": minor +"@remix-run/react": minor +"@remix-run/server-runtime": minor +--- + +Stabilize future flags + - `future.unstable_singleFetch` -> `future.v3_singleFetch` + - `future.unstable_lazyRouteDiscovery` -> `future.v3_lazyRouteDiscovery` diff --git a/docs/components/link.md b/docs/components/link.md index fed084bad59..8a76574124c 100644 --- a/docs/components/link.md +++ b/docs/components/link.md @@ -40,7 +40,7 @@ You can also pass a `Partial` value: ### `discover` -Defines the route discovery behavior when using [`future.unstable_lazyRouteDiscovery`][lazy-route-discovery]. +Defines the route discovery behavior when using [`future.v3_lazyRouteDiscovery`][lazy-route-discovery]. ```tsx <> diff --git a/docs/guides/lazy-route-discovery.md b/docs/guides/lazy-route-discovery.md index bd2a3c2d079..9ce0a1089b6 100644 --- a/docs/guides/lazy-route-discovery.md +++ b/docs/guides/lazy-route-discovery.md @@ -6,7 +6,7 @@ title: Lazy Route Discovery This is an unstable API and will continue to change, do not adopt in production -Remix introduced support for Lazy Route Discovery (a.k.a. "Fog of War") ([RFC][rfc]) behind the `future.unstable_lazyRouteDiscovery` [Future Flag][future-flags] in [`v2.10.0`][2.10.0]. This allows you to opt-into this behavior which will become the default in the next major version of Remix - a.k.a. React Router v7 ([1][rr-v7], [2][rr-v7-2]). For more information on this feature, please check out the [blog post][blog-post]. +Remix introduced support for Lazy Route Discovery (a.k.a. "Fog of War") ([RFC][rfc]) behind the `future.unstable_lazyRouteDiscovery` [Future Flag][future-flags] in [`v2.10.0`][2.10.0] (later stabilized as `future.v3_lazyRouteDiscovery` in [`v2.13.0`][2.13.0]). This allows you to opt-into this behavior which will become the default in the next major version of Remix - a.k.a. React Router v7 ([1][rr-v7], [2][rr-v7-2]). For more information on this feature, please check out the [blog post][blog-post]. ## Current Behavior @@ -56,6 +56,7 @@ If you wish to opt-out of this eager route discovery on a per-link basis, you ca [rfc]: https://github.com/remix-run/react-router/discussions/11113 [future-flags]: ../guides/api-development-strategy [2.10.0]: https://github.com/remix-run/remix/blob/main/CHANGELOG.md#v2100 +[2.13.0]: https://github.com/remix-run/remix/blob/main/CHANGELOG.md#v2130 [link]: ../components/link [navlink]: ../components/nav-link [link-discover]: ../components/link#discover diff --git a/docs/guides/single-fetch.md b/docs/guides/single-fetch.md index 9d7904d3214..9082350d72b 100644 --- a/docs/guides/single-fetch.md +++ b/docs/guides/single-fetch.md @@ -10,7 +10,7 @@ Single Fetch is a new data loading strategy and streaming format. When you enabl ## Overview -Remix introduced support for "Single Fetch" ([RFC][rfc]) behind the [`future.unstable_singleFetch`][future-flags] flag in [`v2.9.0`][2.9.0] which allows you to opt-into this behavior. Single Fetch will be the default in [React Router v7][merging-remix-and-rr]. +Remix introduced support for "Single Fetch" ([RFC][rfc]) behind the [`future.unstable_singleFetch`][future-flags] flag in [`v2.9.0`][2.9.0] (later stabilized as `future.v3_singleFetch` in [`v2.13.0`][2.13.0]) which allows you to opt-into this behavior. Single Fetch will be the default in [React Router v7][merging-remix-and-rr]. Enabling Single Fetch is intended to be low-effort up-front, and then allow you to adopt all breaking changes iteratively over time. You can start by applying the minimal required changes to [enable Single Fetch][start], then use the [migration guide][migration-guide] to make incremental changes in your application to ensure a smooth, non-breaking upgrade to [React Router v7][merging-remix-and-rr]. @@ -26,7 +26,7 @@ export default defineConfig({ remix({ future: { // ... - unstable_singleFetch: true, + v3_singleFetch: true, }, }), // ... @@ -147,15 +147,15 @@ With Single Fetch, naked objects will be streamed directly, so the built-in type #### Enable Single Fetch types -To switch over to Single Fetch types, you should [augment][augment] Remix's `Future` interface with `unstable_singleFetch: true`. +To switch over to Single Fetch types, you should [augment][augment] Remix's `Future` interface with `v3_singleFetch: true`. You can do this in any file covered by your `tsconfig.json` > `include`. -We recommend you do this in your `vite.config.ts` to keep it colocated with the `future.unstable_singleFetch` future flag in the Remix plugin: +We recommend you do this in your `vite.config.ts` to keep it colocated with the `future.v3_singleFetch` future flag in the Remix plugin: ```ts declare module "@remix-run/node" { // or cloudflare, deno, etc. interface Future { - unstable_singleFetch: true; + v3_singleFetch: true; } } ``` @@ -465,6 +465,7 @@ Revalidation is handled via a `?_routes` query string parameter on the single fe [entry-server]: ../file-conventions/entry.server [client-loader]: ../route/client-loader [2.9.0]: https://github.com/remix-run/remix/blob/main/CHANGELOG.md#v290 +[2.13.0]: https://github.com/remix-run/remix/blob/main/CHANGELOG.md#v2130 [rfc]: https://github.com/remix-run/remix/discussions/7640 [turbo-stream]: https://github.com/jacob-ebey/turbo-stream [rendertopipeablestream]: https://react.dev/reference/react-dom/server/renderToPipeableStream diff --git a/docs/start/future-flags.md b/docs/start/future-flags.md index 522b65a0820..4c680abcc62 100644 --- a/docs/start/future-flags.md +++ b/docs/start/future-flags.md @@ -332,11 +332,11 @@ remix({ You likely won't need to adjust any code, unless you had custom logic inside of `handleError` that was matching the previous error message to differentiate it from other errors. -## unstable_singleFetch +## v3_singleFetch Opt into [Single Fetch][single-fetch] behavior (details will be expanded once the flag stabilizes). -## unstable_lazyRouteDiscovery +## v3_lazyRouteDiscovery Opt into [Lazy Route Discovery][lazy-route-discovery] behavior (details will be expanded once the flag stabilizes). diff --git a/integration/action-test.ts b/integration/action-test.ts index 3c803eea732..dc378790cbd 100644 --- a/integration/action-test.ts +++ b/integration/action-test.ts @@ -230,7 +230,7 @@ test.describe("single fetch", () => { fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { diff --git a/integration/catch-boundary-data-test.ts b/integration/catch-boundary-data-test.ts index 708f1124e2a..64ea56b69a0 100644 --- a/integration/catch-boundary-data-test.ts +++ b/integration/catch-boundary-data-test.ts @@ -258,7 +258,7 @@ test.describe("single fetch", () => { fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { diff --git a/integration/catch-boundary-test.ts b/integration/catch-boundary-test.ts index 1817988b4d6..872b9621b05 100644 --- a/integration/catch-boundary-test.ts +++ b/integration/catch-boundary-test.ts @@ -391,7 +391,7 @@ test.describe("single fetch", () => { fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { diff --git a/integration/client-data-test.ts b/integration/client-data-test.ts index 700cc386cac..5588ce84825 100644 --- a/integration/client-data-test.ts +++ b/integration/client-data-test.ts @@ -1588,7 +1588,7 @@ test.describe("single fetch", () => { ...init, config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, }, diff --git a/integration/defer-loader-test.ts b/integration/defer-loader-test.ts index 0923b99447f..6412672808d 100644 --- a/integration/defer-loader-test.ts +++ b/integration/defer-loader-test.ts @@ -108,7 +108,7 @@ test.describe("single fetch", () => { fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { diff --git a/integration/defer-test.ts b/integration/defer-test.ts index 487be7f8b03..0216d422d34 100644 --- a/integration/defer-test.ts +++ b/integration/defer-test.ts @@ -1326,7 +1326,7 @@ test.describe("single fetch", () => { fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -2289,7 +2289,7 @@ test.describe("single fetch", () => { fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { diff --git a/integration/error-boundary-test.ts b/integration/error-boundary-test.ts index dadfa3d31cf..d67a1c15cef 100644 --- a/integration/error-boundary-test.ts +++ b/integration/error-boundary-test.ts @@ -1373,7 +1373,7 @@ test.describe("single fetch", () => { { config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -1835,7 +1835,7 @@ test.describe("single fetch", () => { fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -2016,7 +2016,7 @@ test.describe("single fetch", () => { fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -2379,7 +2379,7 @@ test.describe("single fetch", () => { { config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: getFiles({ includeRootErrorBoundary: false }), @@ -2455,7 +2455,7 @@ test.describe("single fetch", () => { { config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: getFiles({ includeRootErrorBoundary: true }), @@ -2525,7 +2525,7 @@ test.describe("single fetch", () => { fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: getFiles({ @@ -2614,7 +2614,7 @@ test.describe("single fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { diff --git a/integration/error-boundary-v2-test.ts b/integration/error-boundary-v2-test.ts index 8d06573154e..cb07acb504d 100644 --- a/integration/error-boundary-v2-test.ts +++ b/integration/error-boundary-v2-test.ts @@ -253,7 +253,7 @@ test.describe("single fetch", () => { fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { diff --git a/integration/error-data-request-test.ts b/integration/error-data-request-test.ts index 8e0bfaab13c..66ffd84223c 100644 --- a/integration/error-data-request-test.ts +++ b/integration/error-data-request-test.ts @@ -189,7 +189,7 @@ test.describe("single fetch", () => { fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { diff --git a/integration/error-sanitization-test.ts b/integration/error-sanitization-test.ts index ab5f27e7c0d..8f50b244d7d 100644 --- a/integration/error-sanitization-test.ts +++ b/integration/error-sanitization-test.ts @@ -680,7 +680,7 @@ test.describe("single fetch", () => { { config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: routeFiles, @@ -857,7 +857,7 @@ test.describe("single fetch", () => { { config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: routeFiles, @@ -1038,7 +1038,7 @@ test.describe("single fetch", () => { { config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { diff --git a/integration/fetcher-layout-test.ts b/integration/fetcher-layout-test.ts index cd29f91a791..33479430d80 100644 --- a/integration/fetcher-layout-test.ts +++ b/integration/fetcher-layout-test.ts @@ -290,7 +290,7 @@ test.describe("single fetch", () => { fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { diff --git a/integration/fetcher-test.ts b/integration/fetcher-test.ts index ad7959f6b95..f89c1916a15 100644 --- a/integration/fetcher-test.ts +++ b/integration/fetcher-test.ts @@ -546,7 +546,7 @@ test.describe("single fetch", () => { fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -965,7 +965,7 @@ test.describe("single fetch", () => { fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { diff --git a/integration/file-uploads-test.ts b/integration/file-uploads-test.ts index ccc95be5e9b..689f20dea9e 100644 --- a/integration/file-uploads-test.ts +++ b/integration/file-uploads-test.ts @@ -157,7 +157,7 @@ test.describe("single fetch", () => { fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { diff --git a/integration/fog-of-war-test.ts b/integration/fog-of-war-test.ts index 2a20f0e6fe5..6dc66ad62ed 100644 --- a/integration/fog-of-war-test.ts +++ b/integration/fog-of-war-test.ts @@ -105,7 +105,7 @@ test.describe("Fog of War", () => { let fixture = await createFixture({ config: { future: { - unstable_lazyRouteDiscovery: true, + v3_lazyRouteDiscovery: true, }, }, files: { @@ -151,7 +151,7 @@ test.describe("Fog of War", () => { let fixture = await createFixture({ config: { future: { - unstable_lazyRouteDiscovery: true, + v3_lazyRouteDiscovery: true, }, }, files: getFiles(), @@ -175,7 +175,7 @@ test.describe("Fog of War", () => { let fixture = await createFixture({ config: { future: { - unstable_lazyRouteDiscovery: true, + v3_lazyRouteDiscovery: true, }, }, files: getFiles(), @@ -210,7 +210,7 @@ test.describe("Fog of War", () => { let fixture = await createFixture({ config: { future: { - unstable_lazyRouteDiscovery: true, + v3_lazyRouteDiscovery: true, }, }, files: getFiles(), @@ -243,7 +243,7 @@ test.describe("Fog of War", () => { let fixture = await createFixture({ config: { future: { - unstable_lazyRouteDiscovery: true, + v3_lazyRouteDiscovery: true, }, }, files: { @@ -309,7 +309,7 @@ test.describe("Fog of War", () => { let fixture = await createFixture({ config: { future: { - unstable_lazyRouteDiscovery: true, + v3_lazyRouteDiscovery: true, }, }, files: { @@ -370,7 +370,7 @@ test.describe("Fog of War", () => { let fixture = await createFixture({ config: { future: { - unstable_lazyRouteDiscovery: true, + v3_lazyRouteDiscovery: true, }, }, files: { @@ -421,7 +421,7 @@ test.describe("Fog of War", () => { let fixture = await createFixture({ config: { future: { - unstable_lazyRouteDiscovery: true, + v3_lazyRouteDiscovery: true, }, }, files: { @@ -485,7 +485,7 @@ test.describe("Fog of War", () => { let fixture = await createFixture({ config: { future: { - unstable_lazyRouteDiscovery: true, + v3_lazyRouteDiscovery: true, }, }, files: { @@ -533,7 +533,7 @@ test.describe("Fog of War", () => { let fixture = await createFixture({ config: { future: { - unstable_lazyRouteDiscovery: true, + v3_lazyRouteDiscovery: true, }, }, files: { @@ -604,7 +604,7 @@ test.describe("Fog of War", () => { let fixture = await createFixture({ config: { future: { - unstable_lazyRouteDiscovery: true, + v3_lazyRouteDiscovery: true, }, }, files: { @@ -720,7 +720,7 @@ test.describe("Fog of War", () => { let fixture = await createFixture({ config: { future: { - unstable_lazyRouteDiscovery: true, + v3_lazyRouteDiscovery: true, }, }, files: { @@ -845,7 +845,7 @@ test.describe("Fog of War", () => { let fixture = await createFixture({ config: { future: { - unstable_lazyRouteDiscovery: true, + v3_lazyRouteDiscovery: true, }, }, files: { @@ -938,7 +938,7 @@ test.describe("Fog of War", () => { let fixture = await createFixture({ config: { future: { - unstable_lazyRouteDiscovery: true, + v3_lazyRouteDiscovery: true, }, }, files: { @@ -1031,7 +1031,7 @@ test.describe("Fog of War", () => { let fixture = await createFixture({ config: { future: { - unstable_lazyRouteDiscovery: true, + v3_lazyRouteDiscovery: true, }, }, files: { @@ -1125,7 +1125,7 @@ test.describe("Fog of War", () => { let fixture = await createFixture({ config: { future: { - unstable_lazyRouteDiscovery: true, + v3_lazyRouteDiscovery: true, }, }, files: { @@ -1219,7 +1219,7 @@ test.describe("Fog of War", () => { let fixture = await createFixture({ config: { future: { - unstable_lazyRouteDiscovery: true, + v3_lazyRouteDiscovery: true, }, }, files: { @@ -1310,7 +1310,7 @@ test.describe("Fog of War", () => { let fixture = await createFixture({ config: { future: { - unstable_lazyRouteDiscovery: true, + v3_lazyRouteDiscovery: true, }, }, files: { @@ -1362,7 +1362,7 @@ test.describe("Fog of War", () => { let fixture = await createFixture({ config: { future: { - unstable_lazyRouteDiscovery: true, + v3_lazyRouteDiscovery: true, }, }, files: { @@ -1405,7 +1405,7 @@ test.describe("Fog of War", () => { let fixture = await createFixture({ config: { future: { - unstable_lazyRouteDiscovery: true, + v3_lazyRouteDiscovery: true, }, }, files: { diff --git a/integration/form-data-test.ts b/integration/form-data-test.ts index d9cd69b7801..df6802e554c 100644 --- a/integration/form-data-test.ts +++ b/integration/form-data-test.ts @@ -68,7 +68,7 @@ test.describe("single fetch", () => { fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { diff --git a/integration/form-test.ts b/integration/form-test.ts index 6b6e4d97c12..fa947fe6fcd 100644 --- a/integration/form-test.ts +++ b/integration/form-test.ts @@ -1198,7 +1198,7 @@ test.describe("single fetch", () => { fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { diff --git a/integration/loader-test.ts b/integration/loader-test.ts index 86e64def002..e6163ce4124 100644 --- a/integration/loader-test.ts +++ b/integration/loader-test.ts @@ -151,7 +151,7 @@ test.describe("single fetch", () => { fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -213,7 +213,7 @@ test.describe("single fetch", () => { await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { diff --git a/integration/navigation-state-test.ts b/integration/navigation-state-test.ts index 01902e4d55b..2335e88db51 100644 --- a/integration/navigation-state-test.ts +++ b/integration/navigation-state-test.ts @@ -484,7 +484,7 @@ test.describe("single fetch", () => { fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { diff --git a/integration/prefetch-test.ts b/integration/prefetch-test.ts index 111f4006e7e..07d6d41b5d6 100644 --- a/integration/prefetch-test.ts +++ b/integration/prefetch-test.ts @@ -577,7 +577,7 @@ test.describe("single fetch", () => { return { config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -725,8 +725,8 @@ test.describe("single fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_lazyRouteDiscovery: true, - unstable_singleFetch: true, + v3_lazyRouteDiscovery: true, + v3_singleFetch: true, }, }, files: { @@ -945,7 +945,7 @@ test.describe("single fetch", () => { fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -1024,7 +1024,7 @@ test.describe("single fetch", () => { fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -1107,7 +1107,7 @@ test.describe("single fetch", () => { fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { diff --git a/integration/redirects-test.ts b/integration/redirects-test.ts index 77f2fe49903..c72b91ff759 100644 --- a/integration/redirects-test.ts +++ b/integration/redirects-test.ts @@ -196,7 +196,7 @@ test.describe("single fetch", () => { fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { diff --git a/integration/revalidate-test.ts b/integration/revalidate-test.ts index 8830e977a2c..f65391b43b1 100644 --- a/integration/revalidate-test.ts +++ b/integration/revalidate-test.ts @@ -305,7 +305,7 @@ test.describe("single fetch", () => { await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { diff --git a/integration/set-cookie-revalidation-test.ts b/integration/set-cookie-revalidation-test.ts index 01f6b2c0567..bb4dc89007c 100644 --- a/integration/set-cookie-revalidation-test.ts +++ b/integration/set-cookie-revalidation-test.ts @@ -143,7 +143,7 @@ test.describe("single fetch", () => { fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { diff --git a/integration/single-fetch-test.ts b/integration/single-fetch-test.ts index c97a9fd1442..10c9c62bf97 100644 --- a/integration/single-fetch-test.ts +++ b/integration/single-fetch-test.ts @@ -185,7 +185,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files, @@ -233,7 +233,7 @@ test.describe("single-fetch", () => { { config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files, @@ -258,7 +258,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files, @@ -280,7 +280,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files, @@ -314,7 +314,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files, @@ -338,7 +338,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files, @@ -355,7 +355,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files, @@ -376,7 +376,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files, @@ -396,7 +396,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -469,7 +469,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -571,7 +571,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -671,7 +671,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -751,7 +751,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -852,7 +852,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -952,7 +952,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -1005,7 +1005,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -1057,7 +1057,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -1110,7 +1110,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -1167,7 +1167,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -1224,7 +1224,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -1264,7 +1264,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -1302,7 +1302,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -1403,7 +1403,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -1512,7 +1512,7 @@ test.describe("single-fetch", () => { remix({ basename: '/base', future: { - unstable_singleFetch: true, + v3_singleFetch: true, } }), ], @@ -1568,7 +1568,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -1615,7 +1615,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -1669,7 +1669,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -1703,7 +1703,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -1752,7 +1752,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -1843,7 +1843,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -1901,7 +1901,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -1969,7 +1969,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -2029,7 +2029,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -2121,7 +2121,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -2223,7 +2223,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -2333,7 +2333,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -2418,7 +2418,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -2503,7 +2503,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -2600,7 +2600,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -2703,7 +2703,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -2816,7 +2816,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -2870,7 +2870,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -2933,7 +2933,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -3007,7 +3007,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -3085,7 +3085,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -3172,7 +3172,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -3265,7 +3265,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -3363,7 +3363,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -3491,7 +3491,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -3577,7 +3577,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { @@ -3667,7 +3667,7 @@ test.describe("single-fetch", () => { let fixture = await createFixture({ config: { future: { - unstable_singleFetch: true, + v3_singleFetch: true, }, }, files: { diff --git a/integration/vite-hmr-hdr-test.ts b/integration/vite-hmr-hdr-test.ts index 7a0f536b6f9..aca542c36d7 100644 --- a/integration/vite-hmr-hdr-test.ts +++ b/integration/vite-hmr-hdr-test.ts @@ -128,7 +128,7 @@ test.describe("single fetch", () => { plugins: [ remix({ future: { - unstable_singleFetch: true + v3_singleFetch: true }, }) ] @@ -154,7 +154,7 @@ test.describe("single fetch", () => { plugins: [ remix({ future: { - unstable_singleFetch: true + v3_singleFetch: true }, }) ] diff --git a/packages/remix-dev/__tests__/readConfig-test.ts b/packages/remix-dev/__tests__/readConfig-test.ts index 6edf1af81de..f528c16f15e 100644 --- a/packages/remix-dev/__tests__/readConfig-test.ts +++ b/packages/remix-dev/__tests__/readConfig-test.ts @@ -36,11 +36,11 @@ describe("readConfig", () => { "entryServerFile": "entry.server.tsx", "entryServerFilePath": Any, "future": { - "unstable_lazyRouteDiscovery": false, "unstable_optimizeDeps": false, - "unstable_singleFetch": false, "v3_fetcherPersist": false, + "v3_lazyRouteDiscovery": false, "v3_relativeSplatPath": false, + "v3_singleFetch": false, "v3_throwAbortReason": false, }, "mdx": undefined, diff --git a/packages/remix-dev/cli/commands.ts b/packages/remix-dev/cli/commands.ts index 7eeded3c271..82406b1b6b4 100644 --- a/packages/remix-dev/cli/commands.ts +++ b/packages/remix-dev/cli/commands.ts @@ -304,7 +304,7 @@ export async function generateEntry( let defaultEntryServer = path.resolve( defaultsDirectory, ctx?.remixConfig.ssr === false && - ctx?.remixConfig.future.unstable_singleFetch !== true + ctx?.remixConfig.future.v3_singleFetch !== true ? `entry.server.spa.tsx` : `entry.server.${serverRuntime}.tsx` ); diff --git a/packages/remix-dev/config.ts b/packages/remix-dev/config.ts index 7234202be8f..16065ff01af 100644 --- a/packages/remix-dev/config.ts +++ b/packages/remix-dev/config.ts @@ -37,8 +37,8 @@ interface FutureConfig { v3_fetcherPersist: boolean; v3_relativeSplatPath: boolean; v3_throwAbortReason: boolean; - unstable_singleFetch: boolean; - unstable_lazyRouteDiscovery: boolean; + v3_singleFetch: boolean; + v3_lazyRouteDiscovery: boolean; unstable_optimizeDeps: boolean; } @@ -471,7 +471,7 @@ export async function resolveConfig( let pkgJson = await PackageJson.load(rootDirectory); let deps = pkgJson.content.dependencies ?? {}; - if (isSpaMode && appConfig.future?.unstable_singleFetch != true) { + if (isSpaMode && appConfig.future?.v3_singleFetch != true) { // This is a super-simple default since we don't need streaming in SPA Mode. // We can include this in a remix-spa template, but right now `npx remix reveal` // will still expose the streaming template since that command doesn't have @@ -529,12 +529,6 @@ export async function resolveConfig( entryServerFile = `entry.server.${serverRuntime}.tsx`; } - if (isSpaMode && appConfig.future?.unstable_lazyRouteDiscovery === true) { - throw new Error( - "You can not use `future.unstable_lazyRouteDiscovery` in SPA Mode (`ssr: false`)" - ); - } - let entryClientFilePath = userEntryClientFile ? path.resolve(appDirectory, userEntryClientFile) : path.resolve(defaultsDirectory, entryClientFile); @@ -609,9 +603,8 @@ export async function resolveConfig( v3_fetcherPersist: appConfig.future?.v3_fetcherPersist === true, v3_relativeSplatPath: appConfig.future?.v3_relativeSplatPath === true, v3_throwAbortReason: appConfig.future?.v3_throwAbortReason === true, - unstable_singleFetch: appConfig.future?.unstable_singleFetch === true, - unstable_lazyRouteDiscovery: - appConfig.future?.unstable_lazyRouteDiscovery === true, + v3_singleFetch: appConfig.future?.v3_singleFetch === true, + v3_lazyRouteDiscovery: appConfig.future?.v3_lazyRouteDiscovery === true, unstable_optimizeDeps: appConfig.future?.unstable_optimizeDeps === true, }; diff --git a/packages/remix-react/__tests__/deferred-scripts-test.tsx b/packages/remix-react/__tests__/deferred-scripts-test.tsx index 5b29656446f..8948dfac36e 100644 --- a/packages/remix-react/__tests__/deferred-scripts-test.tsx +++ b/packages/remix-react/__tests__/deferred-scripts-test.tsx @@ -32,7 +32,7 @@ describe(" with activeDeferreds", () => { v3_throwAbortReason: false, v3_fetcherPersist: false, v3_relativeSplatPath: false, - unstable_singleFetch: false, + v3_singleFetch: false, }, routeModules: { root: { default: () => null } }, manifest: { diff --git a/packages/remix-react/__tests__/scroll-restoration-test.tsx b/packages/remix-react/__tests__/scroll-restoration-test.tsx index cc4ba35622c..e4ff4b51f6b 100644 --- a/packages/remix-react/__tests__/scroll-restoration-test.tsx +++ b/packages/remix-react/__tests__/scroll-restoration-test.tsx @@ -32,7 +32,7 @@ describe("", () => { future: { v3_fetcherPersist: false, v3_relativeSplatPath: false, - unstable_singleFetch: false, + v3_singleFetch: false, }, routeModules: { root: { default: () => null } }, manifest: { diff --git a/packages/remix-react/browser.tsx b/packages/remix-react/browser.tsx index 7ce8448b4de..ab3decc320e 100644 --- a/packages/remix-react/browser.tsx +++ b/packages/remix-react/browser.tsx @@ -199,7 +199,7 @@ export function RemixBrowser(_props: RemixBrowserProps): ReactElement { if (!router) { // When single fetch is enabled, we need to suspend until the initial state // snapshot is decoded into window.__remixContext.state - if (window.__remixContext.future.unstable_singleFetch) { + if (window.__remixContext.future.v3_singleFetch) { // Note: `stateDecodingPromise` is not coupled to `router` - we'll reach this // code potentially many times waiting for our state to arrive, but we'll // then only get past here and create the `router` one time @@ -299,11 +299,11 @@ export function RemixBrowser(_props: RemixBrowserProps): ReactElement { v7_relativeSplatPath: window.__remixContext.future.v3_relativeSplatPath, // Single fetch enables this underlying behavior v7_skipActionErrorRevalidation: - window.__remixContext.future.unstable_singleFetch === true, + window.__remixContext.future.v3_singleFetch === true, }, hydrationData, mapRouteProperties, - dataStrategy: window.__remixContext.future.unstable_singleFetch + dataStrategy: window.__remixContext.future.v3_singleFetch ? getSingleFetchDataStrategy( window.__remixManifest, window.__remixRouteModules, @@ -409,7 +409,7 @@ export function RemixBrowser(_props: RemixBrowserProps): ReactElement { This fragment is important to ensure we match the JSX structure so that useId values hydrate correctly */} - {window.__remixContext.future.unstable_singleFetch ? <> : null} + {window.__remixContext.future.v3_singleFetch ? <> : null} ); } diff --git a/packages/remix-react/components.tsx b/packages/remix-react/components.tsx index 5fccf3ba25d..d0e315fae2d 100644 --- a/packages/remix-react/components.tsx +++ b/packages/remix-react/components.tsx @@ -465,7 +465,7 @@ function PrefetchPageLinksImpl({ ); let dataHrefs = React.useMemo(() => { - if (!future.unstable_singleFetch) { + if (!future.v3_singleFetch) { return getDataLinkHrefs(page, newMatchesForData, manifest); } @@ -517,7 +517,7 @@ function PrefetchPageLinksImpl({ return [url.pathname + url.search]; }, [ - future.unstable_singleFetch, + future.v3_singleFetch, loaderData, location, manifest, @@ -822,7 +822,7 @@ export function Scripts(props: ScriptProps) { let deferredScripts: any[] = []; let initialScripts = React.useMemo(() => { - let streamScript = future.unstable_singleFetch + let streamScript = future.v3_singleFetch ? // prettier-ignore "window.__remixContext.stream = new ReadableStream({" + "start(controller){" + @@ -836,7 +836,7 @@ export function Scripts(props: ScriptProps) { : " "; // When single fetch is enabled, deferred is handled by turbo-stream - let activeDeferreds = future.unstable_singleFetch + let activeDeferreds = future.v3_singleFetch ? undefined : staticContext?.activeDeferreds; diff --git a/packages/remix-react/entry.ts b/packages/remix-react/entry.ts index 51224341a2a..71b5005b87c 100644 --- a/packages/remix-react/entry.ts +++ b/packages/remix-react/entry.ts @@ -43,8 +43,8 @@ export interface EntryContext extends RemixContextObject { export interface FutureConfig { v3_fetcherPersist: boolean; v3_relativeSplatPath: boolean; - unstable_lazyRouteDiscovery: boolean; - unstable_singleFetch: boolean; + v3_lazyRouteDiscovery: boolean; + v3_singleFetch: boolean; } export interface AssetsManifest { diff --git a/packages/remix-react/fog-of-war.ts b/packages/remix-react/fog-of-war.ts index 83e5fb5086a..aa5f5cf5d95 100644 --- a/packages/remix-react/fog-of-war.ts +++ b/packages/remix-react/fog-of-war.ts @@ -26,7 +26,7 @@ const discoveredPaths = new Set(); const URL_LIMIT = 7680; export function isFogOfWarEnabled(future: FutureConfig, isSpaMode: boolean) { - return future.unstable_lazyRouteDiscovery === true && !isSpaMode; + return future.v3_lazyRouteDiscovery === true && !isSpaMode; } export function getPartialManifest(manifest: AssetsManifest, router: Router) { diff --git a/packages/remix-react/server.tsx b/packages/remix-react/server.tsx index 075644e96fa..b496f4f4387 100644 --- a/packages/remix-react/server.tsx +++ b/packages/remix-react/server.tsx @@ -96,7 +96,7 @@ export function RemixServer({ /> - {context.future.unstable_singleFetch && context.serverHandoffStream ? ( + {context.future.v3_singleFetch && context.serverHandoffStream ? ( { let address = diff --git a/packages/remix-server-runtime/__tests__/data-test.ts b/packages/remix-server-runtime/__tests__/data-test.ts index 0ae62305851..92113be3cd0 100644 --- a/packages/remix-server-runtime/__tests__/data-test.ts +++ b/packages/remix-server-runtime/__tests__/data-test.ts @@ -25,7 +25,7 @@ describe("loaders", () => { future: { v3_fetcherPersist: false, v3_relativeSplatPath: false, - unstable_singleFetch: false, + v3_singleFetch: false, }, } as unknown as ServerBuild; @@ -69,7 +69,7 @@ describe("loaders", () => { future: { v3_fetcherPersist: false, v3_relativeSplatPath: false, - unstable_singleFetch: false, + v3_singleFetch: false, }, } as unknown as ServerBuild; @@ -113,7 +113,7 @@ describe("loaders", () => { future: { v3_fetcherPersist: false, v3_relativeSplatPath: false, - unstable_singleFetch: false, + v3_singleFetch: false, }, } as unknown as ServerBuild; @@ -160,7 +160,7 @@ describe("loaders", () => { future: { v3_fetcherPersist: false, v3_relativeSplatPath: false, - unstable_singleFetch: false, + v3_singleFetch: false, }, } as unknown as ServerBuild; @@ -206,7 +206,7 @@ describe("loaders", () => { future: { v3_fetcherPersist: false, v3_relativeSplatPath: false, - unstable_singleFetch: false, + v3_singleFetch: false, }, } as unknown as ServerBuild; @@ -250,7 +250,7 @@ describe("loaders", () => { future: { v3_fetcherPersist: false, v3_relativeSplatPath: false, - unstable_singleFetch: false, + v3_singleFetch: false, }, } as unknown as ServerBuild; @@ -292,7 +292,7 @@ describe("loaders", () => { future: { v3_fetcherPersist: false, v3_relativeSplatPath: false, - unstable_singleFetch: false, + v3_singleFetch: false, }, } as unknown as ServerBuild; @@ -331,7 +331,7 @@ describe("loaders", () => { future: { v3_fetcherPersist: false, v3_relativeSplatPath: false, - unstable_singleFetch: false, + v3_singleFetch: false, }, } as unknown as ServerBuild; diff --git a/packages/remix-server-runtime/entry.ts b/packages/remix-server-runtime/entry.ts index 6cb3c2ee8ba..8283e720d56 100644 --- a/packages/remix-server-runtime/entry.ts +++ b/packages/remix-server-runtime/entry.ts @@ -33,8 +33,8 @@ export interface FutureConfig { v3_fetcherPersist: boolean; v3_relativeSplatPath: boolean; v3_throwAbortReason: boolean; - unstable_lazyRouteDiscovery: boolean; - unstable_singleFetch: boolean; + v3_lazyRouteDiscovery: boolean; + v3_singleFetch: boolean; } export interface AssetsManifest { diff --git a/packages/remix-server-runtime/routes.ts b/packages/remix-server-runtime/routes.ts index 029b98469d0..6d4fbe2752f 100644 --- a/packages/remix-server-runtime/routes.ts +++ b/packages/remix-server-runtime/routes.ts @@ -99,7 +99,7 @@ export function createStaticHandlerDataRoutes( loadContext: args.context, loader: route.module.loader!, routeId: route.id, - singleFetch: future.unstable_singleFetch === true, + singleFetch: future.v3_singleFetch === true, }) : undefined, action: route.module.action @@ -110,7 +110,7 @@ export function createStaticHandlerDataRoutes( loadContext: args.context, action: route.module.action!, routeId: route.id, - singleFetch: future.unstable_singleFetch === true, + singleFetch: future.v3_singleFetch === true, }) : undefined, handle: route.module.handle, diff --git a/packages/remix-server-runtime/serialize.ts b/packages/remix-server-runtime/serialize.ts index 836e4e14ee8..99512790979 100644 --- a/packages/remix-server-runtime/serialize.ts +++ b/packages/remix-server-runtime/serialize.ts @@ -11,7 +11,7 @@ import type { Future } from "./future"; // prettier-ignore type SingleFetchEnabled = - Future extends { unstable_singleFetch: infer T extends boolean } ? T : false + Future extends { v3_singleFetch: infer T extends boolean } ? T : false // prettier-ignore /** diff --git a/packages/remix-server-runtime/server.ts b/packages/remix-server-runtime/server.ts index 14a7f680893..2451d701832 100644 --- a/packages/remix-server-runtime/server.ts +++ b/packages/remix-server-runtime/server.ts @@ -149,7 +149,7 @@ export const createRequestHandler: CreateRequestHandlerFunction = ( let response: Response; if (url.searchParams.has("_data")) { - if (_build.future.unstable_singleFetch) { + if (_build.future.v3_singleFetch) { handleError( new Error( "Warning: Single fetch-enabled apps should not be making ?_data requests, " + @@ -180,10 +180,7 @@ export const createRequestHandler: CreateRequestHandlerFunction = ( response = createRemixRedirectResponse(response, _build.basename); } } - } else if ( - _build.future.unstable_singleFetch && - url.pathname.endsWith(".data") - ) { + } else if (_build.future.v3_singleFetch && url.pathname.endsWith(".data")) { let handlerUrl = new URL(request.url); handlerUrl.pathname = handlerUrl.pathname .replace(/\.data$/, "") @@ -499,9 +496,9 @@ async function handleDocumentRequest( criticalCss, future: build.future, isSpaMode: build.isSpaMode, - ...(!build.future.unstable_singleFetch ? { state } : null), + ...(!build.future.v3_singleFetch ? { state } : null), }), - ...(build.future.unstable_singleFetch + ...(build.future.v3_singleFetch ? { serverHandoffStream: encodeViaTurboStream( state, @@ -574,9 +571,9 @@ async function handleDocumentRequest( basename: build.basename, future: build.future, isSpaMode: build.isSpaMode, - ...(!build.future.unstable_singleFetch ? { state } : null), + ...(!build.future.v3_singleFetch ? { state } : null), }), - ...(build.future.unstable_singleFetch + ...(build.future.v3_singleFetch ? { serverHandoffStream: encodeViaTurboStream( state, @@ -630,7 +627,7 @@ async function handleResourceRequest( ); } - if (build.future.unstable_singleFetch && !isResponse(response)) { + if (build.future.v3_singleFetch && !isResponse(response)) { console.warn( resourceRouteJsonWarning( request.method === "GET" ? "loader" : "action", diff --git a/packages/remix-testing/create-remix-stub.tsx b/packages/remix-testing/create-remix-stub.tsx index 72d41aa6ce1..1433659f686 100644 --- a/packages/remix-testing/create-remix-stub.tsx +++ b/packages/remix-testing/create-remix-stub.tsx @@ -106,9 +106,8 @@ export function createRemixStub( future: { v3_fetcherPersist: future?.v3_fetcherPersist === true, v3_relativeSplatPath: future?.v3_relativeSplatPath === true, - unstable_lazyRouteDiscovery: - future?.unstable_lazyRouteDiscovery === true, - unstable_singleFetch: future?.unstable_singleFetch === true, + v3_lazyRouteDiscovery: future?.v3_lazyRouteDiscovery === true, + v3_singleFetch: future?.v3_singleFetch === true, }, manifest: { routes: {}, From d9061d1548c8c138a032d72b8eeb6bf0a39dc6c3 Mon Sep 17 00:00:00 2001 From: Remix Run Bot Date: Wed, 9 Oct 2024 17:49:45 +0000 Subject: [PATCH 14/44] chore: format --- .changeset/stabilize-future-flags.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.changeset/stabilize-future-flags.md b/.changeset/stabilize-future-flags.md index b66098c5a34..185ff2e080f 100644 --- a/.changeset/stabilize-future-flags.md +++ b/.changeset/stabilize-future-flags.md @@ -5,5 +5,6 @@ --- Stabilize future flags - - `future.unstable_singleFetch` -> `future.v3_singleFetch` - - `future.unstable_lazyRouteDiscovery` -> `future.v3_lazyRouteDiscovery` + +- `future.unstable_singleFetch` -> `future.v3_singleFetch` +- `future.unstable_lazyRouteDiscovery` -> `future.v3_lazyRouteDiscovery` From 3bcca9b58134c52fda37a1949cea5ab39d7b8d9f Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Wed, 9 Oct 2024 13:51:06 -0400 Subject: [PATCH 15/44] Enter prerelease mode --- .changeset/pre.json | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .changeset/pre.json diff --git a/.changeset/pre.json b/.changeset/pre.json new file mode 100644 index 00000000000..9803ddacce8 --- /dev/null +++ b/.changeset/pre.json @@ -0,0 +1,29 @@ +{ + "mode": "pre", + "tag": "pre", + "initialVersions": { + "integration": "0.0.0", + "integration-cf-template": "0.0.0", + "integration-deno-template": "0.0.0", + "integration-node-template": "0.0.0", + "integration-vite-cloudflare-template": "0.0.0", + "integration-vite-template": "0.0.0", + "create-remix": "2.12.1", + "remix": "2.12.1", + "@remix-run/architect": "2.12.1", + "@remix-run/cloudflare": "2.12.1", + "@remix-run/cloudflare-pages": "2.12.1", + "@remix-run/cloudflare-workers": "2.12.1", + "@remix-run/css-bundle": "2.12.1", + "@remix-run/deno": "2.12.1", + "@remix-run/dev": "2.12.1", + "@remix-run/eslint-config": "2.12.1", + "@remix-run/express": "2.12.1", + "@remix-run/node": "2.12.1", + "@remix-run/react": "2.12.1", + "@remix-run/serve": "2.12.1", + "@remix-run/server-runtime": "2.12.1", + "@remix-run/testing": "2.12.1" + }, + "changesets": [] +} From fb0e1fbfab52688f5bacfe7098dec8a787e30281 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 14:15:53 -0400 Subject: [PATCH 16/44] chore: Update version for release (pre) (#10081) Co-authored-by: github-actions[bot] --- .changeset/pre.json | 8 ++++- .../vite-cloudflare-template/package.json | 6 ++-- packages/create-remix/CHANGELOG.md | 2 ++ packages/create-remix/package.json | 2 +- packages/remix-architect/CHANGELOG.md | 7 ++++ packages/remix-architect/package.json | 2 +- packages/remix-cloudflare-pages/CHANGELOG.md | 7 ++++ packages/remix-cloudflare-pages/package.json | 2 +- .../remix-cloudflare-workers/CHANGELOG.md | 7 ++++ .../remix-cloudflare-workers/package.json | 2 +- packages/remix-cloudflare/CHANGELOG.md | 7 ++++ packages/remix-cloudflare/package.json | 2 +- packages/remix-css-bundle/CHANGELOG.md | 2 ++ packages/remix-css-bundle/package.json | 2 +- packages/remix-deno/CHANGELOG.md | 7 ++++ packages/remix-deno/package.json | 2 +- packages/remix-dev/CHANGELOG.md | 34 +++++++++++++++++++ packages/remix-dev/package.json | 6 ++-- packages/remix-eslint-config/CHANGELOG.md | 2 ++ packages/remix-eslint-config/package.json | 2 +- packages/remix-express/CHANGELOG.md | 8 +++++ packages/remix-express/package.json | 2 +- packages/remix-node/CHANGELOG.md | 7 ++++ packages/remix-node/package.json | 2 +- packages/remix-react/CHANGELOG.md | 24 +++++++++++++ packages/remix-react/package.json | 2 +- packages/remix-serve/CHANGELOG.md | 8 +++++ packages/remix-serve/package.json | 2 +- packages/remix-server-runtime/CHANGELOG.md | 18 ++++++++++ packages/remix-server-runtime/package.json | 2 +- packages/remix-testing/CHANGELOG.md | 8 +++++ packages/remix-testing/package.json | 2 +- packages/remix/package.json | 2 +- pnpm-lock.yaml | 8 ++--- 34 files changed, 180 insertions(+), 26 deletions(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index 9803ddacce8..7051387b54a 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -25,5 +25,11 @@ "@remix-run/server-runtime": "2.12.1", "@remix-run/testing": "2.12.1" }, - "changesets": [] + "changesets": [ + "rare-shoes-enjoy", + "short-maps-reflect", + "silly-gifts-wash", + "spotty-papayas-remember", + "stabilize-future-flags" + ] } diff --git a/integration/helpers/vite-cloudflare-template/package.json b/integration/helpers/vite-cloudflare-template/package.json index c37cb77d972..1569463b690 100644 --- a/integration/helpers/vite-cloudflare-template/package.json +++ b/integration/helpers/vite-cloudflare-template/package.json @@ -11,9 +11,9 @@ "typecheck": "tsc" }, "dependencies": { - "@remix-run/cloudflare": "2.12.1", - "@remix-run/cloudflare-pages": "2.12.1", - "@remix-run/react": "2.12.1", + "@remix-run/cloudflare": "2.13.0-pre.0", + "@remix-run/cloudflare-pages": "2.13.0-pre.0", + "@remix-run/react": "2.13.0-pre.0", "isbot": "^4.1.0", "miniflare": "^3.20231030.4", "react": "^18.2.0", diff --git a/packages/create-remix/CHANGELOG.md b/packages/create-remix/CHANGELOG.md index 564a73b206f..ed92fb9a4a2 100644 --- a/packages/create-remix/CHANGELOG.md +++ b/packages/create-remix/CHANGELOG.md @@ -1,5 +1,7 @@ # `create-remix` +## 2.13.0-pre.0 + ## 2.12.1 No significant changes to this package were made in this release. [See the repo `CHANGELOG.md`](https://github.com/remix-run/remix/blob/main/CHANGELOG.md) for an overview of all changes in v2.12.1. diff --git a/packages/create-remix/package.json b/packages/create-remix/package.json index 0b226abffe6..af3d645be22 100644 --- a/packages/create-remix/package.json +++ b/packages/create-remix/package.json @@ -1,6 +1,6 @@ { "name": "create-remix", - "version": "2.12.1", + "version": "2.13.0-pre.0", "description": "Create a new Remix app", "homepage": "https://remix.run", "bugs": { diff --git a/packages/remix-architect/CHANGELOG.md b/packages/remix-architect/CHANGELOG.md index 876edd16332..43bc65f913e 100644 --- a/packages/remix-architect/CHANGELOG.md +++ b/packages/remix-architect/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/architect` +## 2.13.0-pre.0 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/node@2.13.0-pre.0` + ## 2.12.1 ### Patch Changes diff --git a/packages/remix-architect/package.json b/packages/remix-architect/package.json index dd7b0269a31..c4e80d097e2 100644 --- a/packages/remix-architect/package.json +++ b/packages/remix-architect/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/architect", - "version": "2.12.1", + "version": "2.13.0-pre.0", "description": "Architect server request handler for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-cloudflare-pages/CHANGELOG.md b/packages/remix-cloudflare-pages/CHANGELOG.md index 8edf01a3f0c..dbc9d902d7b 100644 --- a/packages/remix-cloudflare-pages/CHANGELOG.md +++ b/packages/remix-cloudflare-pages/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/cloudflare-pages` +## 2.13.0-pre.0 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/cloudflare@2.13.0-pre.0` + ## 2.12.1 ### Patch Changes diff --git a/packages/remix-cloudflare-pages/package.json b/packages/remix-cloudflare-pages/package.json index befdd859087..d971bbc55ae 100644 --- a/packages/remix-cloudflare-pages/package.json +++ b/packages/remix-cloudflare-pages/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/cloudflare-pages", - "version": "2.12.1", + "version": "2.13.0-pre.0", "description": "Cloudflare Pages request handler for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-cloudflare-workers/CHANGELOG.md b/packages/remix-cloudflare-workers/CHANGELOG.md index 7a30dc6115e..9024c0b7642 100644 --- a/packages/remix-cloudflare-workers/CHANGELOG.md +++ b/packages/remix-cloudflare-workers/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/cloudflare-workers` +## 2.13.0-pre.0 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/cloudflare@2.13.0-pre.0` + ## 2.12.1 ### Patch Changes diff --git a/packages/remix-cloudflare-workers/package.json b/packages/remix-cloudflare-workers/package.json index b263d71a415..06dbddeb219 100644 --- a/packages/remix-cloudflare-workers/package.json +++ b/packages/remix-cloudflare-workers/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/cloudflare-workers", - "version": "2.12.1", + "version": "2.13.0-pre.0", "description": "Cloudflare worker request handler for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-cloudflare/CHANGELOG.md b/packages/remix-cloudflare/CHANGELOG.md index 78e95e59d1b..2c845d69436 100644 --- a/packages/remix-cloudflare/CHANGELOG.md +++ b/packages/remix-cloudflare/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/cloudflare` +## 2.13.0-pre.0 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/server-runtime@2.13.0-pre.0` + ## 2.12.1 ### Patch Changes diff --git a/packages/remix-cloudflare/package.json b/packages/remix-cloudflare/package.json index 27413616f72..6e898654fcd 100644 --- a/packages/remix-cloudflare/package.json +++ b/packages/remix-cloudflare/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/cloudflare", - "version": "2.12.1", + "version": "2.13.0-pre.0", "description": "Cloudflare platform abstractions for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-css-bundle/CHANGELOG.md b/packages/remix-css-bundle/CHANGELOG.md index 700d716e930..170d45ed1c5 100644 --- a/packages/remix-css-bundle/CHANGELOG.md +++ b/packages/remix-css-bundle/CHANGELOG.md @@ -1,5 +1,7 @@ # @remix-run/css-bundle +## 2.13.0-pre.0 + ## 2.12.1 No significant changes to this package were made in this release. [See the repo `CHANGELOG.md`](https://github.com/remix-run/remix/blob/main/CHANGELOG.md) for an overview of all changes in v2.12.1. diff --git a/packages/remix-css-bundle/package.json b/packages/remix-css-bundle/package.json index 00602ab88a2..6cb821b67e8 100644 --- a/packages/remix-css-bundle/package.json +++ b/packages/remix-css-bundle/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/css-bundle", - "version": "2.12.1", + "version": "2.13.0-pre.0", "description": "CSS bundle href when using CSS bundling features in Remix", "homepage": "https://remix.run", "bugs": { diff --git a/packages/remix-deno/CHANGELOG.md b/packages/remix-deno/CHANGELOG.md index 85def5f4d92..875f2626876 100644 --- a/packages/remix-deno/CHANGELOG.md +++ b/packages/remix-deno/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/deno` +## 2.13.0-pre.0 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/server-runtime@2.13.0-pre.0` + ## 2.12.1 ### Patch Changes diff --git a/packages/remix-deno/package.json b/packages/remix-deno/package.json index ed99eaa5524..37fe3ca6bea 100644 --- a/packages/remix-deno/package.json +++ b/packages/remix-deno/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/deno", - "version": "2.12.1", + "version": "2.13.0-pre.0", "description": "Deno platform abstractions for Remix", "homepage": "https://remix.run", "main": "./index.ts", diff --git a/packages/remix-dev/CHANGELOG.md b/packages/remix-dev/CHANGELOG.md index 7a6039f7bde..190785390a3 100644 --- a/packages/remix-dev/CHANGELOG.md +++ b/packages/remix-dev/CHANGELOG.md @@ -1,5 +1,39 @@ # `@remix-run/dev` +## 2.13.0-pre.0 + +### Minor Changes + +- Stabilize React Router APIs in Remix ([#9980](https://github.com/remix-run/remix/pull/9980)) + + - Adopt stabilized React Router APIs internally + - Single Fetch: `unstable_dataStrategy` -> `dataStrategy` + - Lazy Route Discovery: `unstable_patchRoutesOnNavigation` -> `patchRoutesOnNavigation` + - Stabilize public-facing APIs + - Single Fetch: `unstable_data()` -> `data()` + - `unstable_viewTransition` -> `viewTransition` (`Link`, `Form`, `navigate`, `submit`) + - `unstable_flushSync>` -> `` (`Link`, `Form`, `navigate`, `submit`, `useFetcher`) + +- Stabilize future flags ([#10072](https://github.com/remix-run/remix/pull/10072)) + - `future.unstable_singleFetch` -> `future.v3_singleFetch` + - `future.unstable_lazyRouteDiscovery` -> `future.v3_lazyRouteDiscovery` + +### Patch Changes + +- Stop passing `request.signal` as the `renderToReadableStream` `signal` to abort server rendering for cloudflare/deno runtimes because by the time that `request` is aborted, aborting the rendering is useless because there's no way for React to flush down the unresolved boundaries ([#10047](https://github.com/remix-run/remix/pull/10047)) + + - This has been incorrect for some time, but only recently exposed due to a bug in how we were aborting requests when running via `remix vite:dev` because we were incorrectly aborting requests after successful renders - which was causing us to abort a completed React render, and try to close an already closed `ReadableStream`. + - This has likely not shown up in any production scenarios because cloudflare/deno production runtimes are (correctly) not aborting the `request.signal` on successful renders + - The built-in `entry.server` files no longer pass a `signal` to `renderToReadableStream` because adding a timeout-based abort signal to the default behavior would constitute a breaking change + - Users can configure this abort behavior via their own `entry.server` via `remix reveal entry.server`, and the template entry.server files have been updated with an example approach for newly created Remix apps + +- Fix adapter logic for aborting `request.signal` so we don't incorrectly abort on the `close` event for successful requests ([#10046](https://github.com/remix-run/remix/pull/10046)) +- Updated dependencies: + - `@remix-run/react@2.13.0-pre.0` + - `@remix-run/server-runtime@2.13.0-pre.0` + - `@remix-run/node@2.13.0-pre.0` + - `@remix-run/serve@2.13.0-pre.0` + ## 2.12.1 ### Patch Changes diff --git a/packages/remix-dev/package.json b/packages/remix-dev/package.json index 1334a41887f..0145620fb09 100644 --- a/packages/remix-dev/package.json +++ b/packages/remix-dev/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/dev", - "version": "2.12.1", + "version": "2.13.0-pre.0", "description": "Dev tools and CLI for Remix", "homepage": "https://remix.run", "bugs": { @@ -106,8 +106,8 @@ "wrangler": "^3.28.2" }, "peerDependencies": { - "@remix-run/react": "^2.12.1", - "@remix-run/serve": "^2.12.1", + "@remix-run/react": "^2.13.0-pre.0", + "@remix-run/serve": "^2.13.0-pre.0", "typescript": "^5.1.0", "vite": "^5.1.0", "wrangler": "^3.28.2" diff --git a/packages/remix-eslint-config/CHANGELOG.md b/packages/remix-eslint-config/CHANGELOG.md index 4b5c3c9eca0..7534ce2f608 100644 --- a/packages/remix-eslint-config/CHANGELOG.md +++ b/packages/remix-eslint-config/CHANGELOG.md @@ -1,5 +1,7 @@ # `@remix-run/eslint-config` +## 2.13.0-pre.0 + ## 2.12.1 No significant changes to this package were made in this release. [See the repo `CHANGELOG.md`](https://github.com/remix-run/remix/blob/main/CHANGELOG.md) for an overview of all changes in v2.12.1. diff --git a/packages/remix-eslint-config/package.json b/packages/remix-eslint-config/package.json index 0aa6b67e7ec..8b6d701bc00 100644 --- a/packages/remix-eslint-config/package.json +++ b/packages/remix-eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/eslint-config", - "version": "2.12.1", + "version": "2.13.0-pre.0", "description": "ESLint configuration for Remix projects", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-express/CHANGELOG.md b/packages/remix-express/CHANGELOG.md index 313928c165f..c88f00bdbfa 100644 --- a/packages/remix-express/CHANGELOG.md +++ b/packages/remix-express/CHANGELOG.md @@ -1,5 +1,13 @@ # `@remix-run/express` +## 2.13.0-pre.0 + +### Patch Changes + +- Fix adapter logic for aborting `request.signal` so we don't incorrectly abort on the `close` event for successful requests ([#10046](https://github.com/remix-run/remix/pull/10046)) +- Updated dependencies: + - `@remix-run/node@2.13.0-pre.0` + ## 2.12.1 ### Patch Changes diff --git a/packages/remix-express/package.json b/packages/remix-express/package.json index 0a48d93f7af..4fa93f363d3 100644 --- a/packages/remix-express/package.json +++ b/packages/remix-express/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/express", - "version": "2.12.1", + "version": "2.13.0-pre.0", "description": "Express server request handler for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-node/CHANGELOG.md b/packages/remix-node/CHANGELOG.md index b427e22b848..048f639b67a 100644 --- a/packages/remix-node/CHANGELOG.md +++ b/packages/remix-node/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/node` +## 2.13.0-pre.0 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/server-runtime@2.13.0-pre.0` + ## 2.12.1 ### Patch Changes diff --git a/packages/remix-node/package.json b/packages/remix-node/package.json index 5d4b97afbbb..5f15926bd5f 100644 --- a/packages/remix-node/package.json +++ b/packages/remix-node/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/node", - "version": "2.12.1", + "version": "2.13.0-pre.0", "description": "Node.js platform abstractions for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-react/CHANGELOG.md b/packages/remix-react/CHANGELOG.md index f058cb461e1..f03b30a57b0 100644 --- a/packages/remix-react/CHANGELOG.md +++ b/packages/remix-react/CHANGELOG.md @@ -1,5 +1,29 @@ # `@remix-run/react` +## 2.13.0-pre.0 + +### Minor Changes + +- Stabilize React Router APIs in Remix ([#9980](https://github.com/remix-run/remix/pull/9980)) + + - Adopt stabilized React Router APIs internally + - Single Fetch: `unstable_dataStrategy` -> `dataStrategy` + - Lazy Route Discovery: `unstable_patchRoutesOnNavigation` -> `patchRoutesOnNavigation` + - Stabilize public-facing APIs + - Single Fetch: `unstable_data()` -> `data()` + - `unstable_viewTransition` -> `viewTransition` (`Link`, `Form`, `navigate`, `submit`) + - `unstable_flushSync>` -> `` (`Link`, `Form`, `navigate`, `submit`, `useFetcher`) + +- Stabilize future flags ([#10072](https://github.com/remix-run/remix/pull/10072)) + - `future.unstable_singleFetch` -> `future.v3_singleFetch` + - `future.unstable_lazyRouteDiscovery` -> `future.v3_lazyRouteDiscovery` + +### Patch Changes + +- Fix bug with `clientLoader.hydrate` in a layout route when hydrating with bubbled errors ([#10063](https://github.com/remix-run/remix/pull/10063)) +- Updated dependencies: + - `@remix-run/server-runtime@2.13.0-pre.0` + ## 2.12.1 ### Patch Changes diff --git a/packages/remix-react/package.json b/packages/remix-react/package.json index e7edc513902..1cfe1c8705a 100644 --- a/packages/remix-react/package.json +++ b/packages/remix-react/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/react", - "version": "2.12.1", + "version": "2.13.0-pre.0", "description": "React DOM bindings for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-serve/CHANGELOG.md b/packages/remix-serve/CHANGELOG.md index 16478322656..e4a5536e688 100644 --- a/packages/remix-serve/CHANGELOG.md +++ b/packages/remix-serve/CHANGELOG.md @@ -1,5 +1,13 @@ # `@remix-run/serve` +## 2.13.0-pre.0 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/express@2.13.0-pre.0` + - `@remix-run/node@2.13.0-pre.0` + ## 2.12.1 ### Patch Changes diff --git a/packages/remix-serve/package.json b/packages/remix-serve/package.json index 1108b6a0072..8518c7f423d 100644 --- a/packages/remix-serve/package.json +++ b/packages/remix-serve/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/serve", - "version": "2.12.1", + "version": "2.13.0-pre.0", "description": "Production application server for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-server-runtime/CHANGELOG.md b/packages/remix-server-runtime/CHANGELOG.md index e5dfae8975e..57a6143ad73 100644 --- a/packages/remix-server-runtime/CHANGELOG.md +++ b/packages/remix-server-runtime/CHANGELOG.md @@ -1,5 +1,23 @@ # `@remix-run/server-runtime` +## 2.13.0-pre.0 + +### Minor Changes + +- Stabilize React Router APIs in Remix ([#9980](https://github.com/remix-run/remix/pull/9980)) + + - Adopt stabilized React Router APIs internally + - Single Fetch: `unstable_dataStrategy` -> `dataStrategy` + - Lazy Route Discovery: `unstable_patchRoutesOnNavigation` -> `patchRoutesOnNavigation` + - Stabilize public-facing APIs + - Single Fetch: `unstable_data()` -> `data()` + - `unstable_viewTransition` -> `viewTransition` (`Link`, `Form`, `navigate`, `submit`) + - `unstable_flushSync>` -> `` (`Link`, `Form`, `navigate`, `submit`, `useFetcher`) + +- Stabilize future flags ([#10072](https://github.com/remix-run/remix/pull/10072)) + - `future.unstable_singleFetch` -> `future.v3_singleFetch` + - `future.unstable_lazyRouteDiscovery` -> `future.v3_lazyRouteDiscovery` + ## 2.12.1 ### Patch Changes diff --git a/packages/remix-server-runtime/package.json b/packages/remix-server-runtime/package.json index cc693edbb03..f21a228a8bd 100644 --- a/packages/remix-server-runtime/package.json +++ b/packages/remix-server-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/server-runtime", - "version": "2.12.1", + "version": "2.13.0-pre.0", "description": "Server runtime for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-testing/CHANGELOG.md b/packages/remix-testing/CHANGELOG.md index e2a150e17d5..7602b5ed89d 100644 --- a/packages/remix-testing/CHANGELOG.md +++ b/packages/remix-testing/CHANGELOG.md @@ -1,5 +1,13 @@ # `@remix-run/testing` +## 2.13.0-pre.0 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/react@2.13.0-pre.0` + - `@remix-run/node@2.13.0-pre.0` + ## 2.12.1 ### Patch Changes diff --git a/packages/remix-testing/package.json b/packages/remix-testing/package.json index 8cd8a1e613e..a6ac2de5e8f 100644 --- a/packages/remix-testing/package.json +++ b/packages/remix-testing/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/testing", - "version": "2.12.1", + "version": "2.13.0-pre.0", "description": "Testing utilities for Remix apps", "homepage": "https://remix.run", "bugs": { diff --git a/packages/remix/package.json b/packages/remix/package.json index 634c2d57a2d..12ed6233620 100644 --- a/packages/remix/package.json +++ b/packages/remix/package.json @@ -1,6 +1,6 @@ { "name": "remix", - "version": "2.12.1", + "version": "2.13.0-pre.0", "description": "A framework for building better websites", "homepage": "https://remix.run", "bugs": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 814988e7fb4..24587c23e57 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -548,13 +548,13 @@ importers: integration/helpers/vite-cloudflare-template: dependencies: '@remix-run/cloudflare': - specifier: 2.12.1 + specifier: 2.13.0-pre.0 version: link:../../../packages/remix-cloudflare '@remix-run/cloudflare-pages': - specifier: 2.12.1 + specifier: 2.13.0-pre.0 version: link:../../../packages/remix-cloudflare-pages '@remix-run/react': - specifier: 2.12.1 + specifier: 2.13.0-pre.0 version: link:../../../packages/remix-react isbot: specifier: ^4.1.0 @@ -868,7 +868,7 @@ importers: specifier: workspace:* version: link:../remix-node '@remix-run/react': - specifier: ^2.12.1 + specifier: ^2.13.0-pre.0 version: link:../remix-react '@remix-run/router': specifier: 1.20.0-pre.0 From e5e23239f7c7384db1bd9ca39ea711233cdfe348 Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Wed, 9 Oct 2024 15:01:27 -0400 Subject: [PATCH 17/44] Draft release notes --- CHANGELOG.md | 212 ++++++++++++++++++++++++++++++++++----------------- 1 file changed, 142 insertions(+), 70 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 79f2a679225..98de97da846 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,154 +13,161 @@ We manage release notes in this file instead of the paginated Github Releases Pa Table of Contents - [Remix Releases](#remix-releases) - - [v2.12.1](#v2121) + - [v2.13.0](#v2130) + - [What's Changed](#whats-changed) + - [Stabilized APIs](#stabilized-apis) + - [Minor Changes](#minor-changes) - [Patch Changes](#patch-changes) + - [Updated Dependencies](#updated-dependencies) - [Changes by Package](#changes-by-package) + - [v2.12.1](#v2121) + - [Patch Changes](#patch-changes-1) + - [Changes by Package](#changes-by-package-1) - [v2.12.0](#v2120) - - [What's Changed](#whats-changed) + - [What's Changed](#whats-changed-1) - [Future Flag for Automatic Dependency Optimization (unstable)](#future-flag-for-automatic-dependency-optimization-unstable) - [Improved Single Fetch Type Safety (unstable)](#improved-single-fetch-type-safety-unstable) - [Updates to Single Fetch Revalidation Behavior (unstable)](#updates-to-single-fetch-revalidation-behavior-unstable) - - [Minor Changes](#minor-changes) - - [Patch Changes](#patch-changes-1) - - [Updated Dependencies](#updated-dependencies) - - [Changes by Package](#changes-by-package-1) - - [v2.11.2](#v2112) + - [Minor Changes](#minor-changes-1) - [Patch Changes](#patch-changes-2) - [Updated Dependencies](#updated-dependencies-1) - [Changes by Package](#changes-by-package-2) - - [v2.11.1](#v2111) + - [v2.11.2](#v2112) - [Patch Changes](#patch-changes-3) + - [Updated Dependencies](#updated-dependencies-2) - [Changes by Package](#changes-by-package-3) + - [v2.11.1](#v2111) + - [Patch Changes](#patch-changes-4) + - [Changes by Package](#changes-by-package-4) - [v2.11.0](#v2110) - - [What's Changed](#whats-changed-1) + - [What's Changed](#whats-changed-2) - [Renamed `unstable_fogOfWar` future flag to `unstable_lazyRouteDiscovery` (unstable)](#renamed-unstable_fogofwar-future-flag-to-unstable_lazyroutediscovery-unstable) - [Removed `response` stub in Single Fetch (unstable)](#removed-response-stub-in-single-fetch-unstable) - - [Minor Changes](#minor-changes-1) - - [Patch Changes](#patch-changes-4) - - [Updated Dependencies](#updated-dependencies-2) - - [Changes by Package](#changes-by-package-4) - - [v2.10.3](#v2103) + - [Minor Changes](#minor-changes-2) - [Patch Changes](#patch-changes-5) - [Updated Dependencies](#updated-dependencies-3) - [Changes by Package](#changes-by-package-5) - - [v2.10.2](#v2102) + - [v2.10.3](#v2103) - [Patch Changes](#patch-changes-6) + - [Updated Dependencies](#updated-dependencies-4) - [Changes by Package](#changes-by-package-6) - - [v2.10.1](#v2101) + - [v2.10.2](#v2102) - [Patch Changes](#patch-changes-7) - - [Updated Dependencies](#updated-dependencies-4) - [Changes by Package](#changes-by-package-7) - - [v2.10.0](#v2100) - - [What's Changed](#whats-changed-2) - - [Lazy Route Discovery (a.k.a. "Fog of War")](#lazy-route-discovery-aka-fog-of-war) - - [Minor Changes](#minor-changes-2) + - [v2.10.1](#v2101) - [Patch Changes](#patch-changes-8) - [Updated Dependencies](#updated-dependencies-5) - [Changes by Package](#changes-by-package-8) - - [v2.9.2](#v292) + - [v2.10.0](#v2100) - [What's Changed](#whats-changed-3) - - [Updated Type-Safety for Single Fetch](#updated-type-safety-for-single-fetch) + - [Lazy Route Discovery (a.k.a. "Fog of War")](#lazy-route-discovery-aka-fog-of-war) + - [Minor Changes](#minor-changes-3) - [Patch Changes](#patch-changes-9) - [Updated Dependencies](#updated-dependencies-6) - [Changes by Package](#changes-by-package-9) - - [v2.9.1](#v291) + - [v2.9.2](#v292) + - [What's Changed](#whats-changed-4) + - [Updated Type-Safety for Single Fetch](#updated-type-safety-for-single-fetch) - [Patch Changes](#patch-changes-10) + - [Updated Dependencies](#updated-dependencies-7) - [Changes by Package](#changes-by-package-10) + - [v2.9.1](#v291) + - [Patch Changes](#patch-changes-11) + - [Changes by Package](#changes-by-package-11) - [v2.9.0](#v290) - - [What's Changed](#whats-changed-4) + - [What's Changed](#whats-changed-5) - [Single Fetch (unstable)](#single-fetch-unstable) - [Undici](#undici) - - [Minor Changes](#minor-changes-3) - - [Patch Changes](#patch-changes-11) - - [Updated Dependencies](#updated-dependencies-7) - - [Changes by Package](#changes-by-package-11) - - [v2.8.1](#v281) + - [Minor Changes](#minor-changes-4) - [Patch Changes](#patch-changes-12) - [Updated Dependencies](#updated-dependencies-8) - [Changes by Package](#changes-by-package-12) - - [v2.8.0](#v280) - - [Minor Changes](#minor-changes-4) + - [v2.8.1](#v281) - [Patch Changes](#patch-changes-13) - [Updated Dependencies](#updated-dependencies-9) - [Changes by Package](#changes-by-package-13) - - [2.7.2](#272) + - [v2.8.0](#v280) + - [Minor Changes](#minor-changes-5) - [Patch Changes](#patch-changes-14) - - [2.7.1](#271) + - [Updated Dependencies](#updated-dependencies-10) + - [Changes by Package](#changes-by-package-14) + - [2.7.2](#272) - [Patch Changes](#patch-changes-15) + - [2.7.1](#271) + - [Patch Changes](#patch-changes-16) - [v2.7.0](#v270) - - [What's Changed](#whats-changed-5) + - [What's Changed](#whats-changed-6) - [Stabilized Vite Plugin](#stabilized-vite-plugin) - [New `Layout` Export](#new-layout-export) - [Basename support](#basename-support) - [Cloudflare Proxy as a Vite Plugin](#cloudflare-proxy-as-a-vite-plugin) - - [Minor Changes](#minor-changes-5) - - [Patch Changes](#patch-changes-16) - - [Updated Dependencies](#updated-dependencies-10) - - [Changes by Package](#changes-by-package-14) - - [v2.6.0](#v260) - - [What's Changed](#whats-changed-6) - - [Unstable Vite Plugin updates](#unstable-vite-plugin-updates) - [Minor Changes](#minor-changes-6) - [Patch Changes](#patch-changes-17) - [Updated Dependencies](#updated-dependencies-11) - [Changes by Package](#changes-by-package-15) - - [v2.5.1](#v251) + - [v2.6.0](#v260) + - [What's Changed](#whats-changed-7) + - [Unstable Vite Plugin updates](#unstable-vite-plugin-updates) + - [Minor Changes](#minor-changes-7) - [Patch Changes](#patch-changes-18) - [Updated Dependencies](#updated-dependencies-12) - [Changes by Package](#changes-by-package-16) - - [v2.5.0](#v250) - - [What's Changed](#whats-changed-7) - - [SPA Mode (unstable)](#spa-mode-unstable) - - [Server Bundles (unstable)](#server-bundles-unstable) - - [Minor Changes](#minor-changes-7) + - [v2.5.1](#v251) - [Patch Changes](#patch-changes-19) - [Updated Dependencies](#updated-dependencies-13) - [Changes by Package](#changes-by-package-17) - - [v2.4.1](#v241) + - [v2.5.0](#v250) + - [What's Changed](#whats-changed-8) + - [SPA Mode (unstable)](#spa-mode-unstable) + - [Server Bundles (unstable)](#server-bundles-unstable) + - [Minor Changes](#minor-changes-8) - [Patch Changes](#patch-changes-20) - [Updated Dependencies](#updated-dependencies-14) - [Changes by Package](#changes-by-package-18) + - [v2.4.1](#v241) + - [Patch Changes](#patch-changes-21) + - [Updated Dependencies](#updated-dependencies-15) + - [Changes by Package](#changes-by-package-19) - [v2.4.0](#v240) - - [What's Changed](#whats-changed-8) + - [What's Changed](#whats-changed-9) - [Client Data](#client-data) - [`future.v3_relativeSplatPath`](#futurev3_relativesplatpath) - [Vite Updates (Unstable)](#vite-updates-unstable) - - [Minor Changes](#minor-changes-8) - - [Patch Changes](#patch-changes-21) - - [Updated Dependencies](#updated-dependencies-15) - - [Changes by Package](#changes-by-package-19) - - [v2.3.1](#v231) + - [Minor Changes](#minor-changes-9) - [Patch Changes](#patch-changes-22) - [Updated Dependencies](#updated-dependencies-16) - [Changes by Package](#changes-by-package-20) - - [v2.3.0](#v230) - - [What's Changed](#whats-changed-9) - - [Stabilized `useBlocker`](#stabilized-useblocker) - - [`unstable_flushSync` API](#unstable_flushsync-api) - - [Minor Changes](#minor-changes-9) + - [v2.3.1](#v231) - [Patch Changes](#patch-changes-23) - [Updated Dependencies](#updated-dependencies-17) - [Changes by Package](#changes-by-package-21) - - [v2.2.0](#v220) + - [v2.3.0](#v230) - [What's Changed](#whats-changed-10) - - [Vite!](#vite) - - [New Fetcher APIs](#new-fetcher-apis) - - [Persistence Future Flag](#persistence-future-flag) + - [Stabilized `useBlocker`](#stabilized-useblocker) + - [`unstable_flushSync` API](#unstable_flushsync-api) - [Minor Changes](#minor-changes-10) - [Patch Changes](#patch-changes-24) - [Updated Dependencies](#updated-dependencies-18) - [Changes by Package](#changes-by-package-22) - - [v2.1.0](#v210) + - [v2.2.0](#v220) - [What's Changed](#whats-changed-11) - - [View Transitions](#view-transitions) - - [Stable `createRemixStub`](#stable-createremixstub) + - [Vite!](#vite) + - [New Fetcher APIs](#new-fetcher-apis) + - [Persistence Future Flag](#persistence-future-flag) - [Minor Changes](#minor-changes-11) - [Patch Changes](#patch-changes-25) - [Updated Dependencies](#updated-dependencies-19) - [Changes by Package](#changes-by-package-23) - - [v2.0.1](#v201) + - [v2.1.0](#v210) + - [What's Changed](#whats-changed-12) + - [View Transitions](#view-transitions) + - [Stable `createRemixStub`](#stable-createremixstub) + - [Minor Changes](#minor-changes-12) - [Patch Changes](#patch-changes-26) + - [Updated Dependencies](#updated-dependencies-20) + - [Changes by Package](#changes-by-package-24) + - [v2.0.1](#v201) + - [Patch Changes](#patch-changes-27) - [Changes by Package 🔗](#changes-by-package-) - [v2.0.0](#v200) - [Breaking Changes](#breaking-changes) @@ -172,8 +179,8 @@ We manage release notes in this file instead of the paginated Github Releases Pa - [Breaking Type Changes](#breaking-type-changes) - [New Features](#new-features) - [Other Notable Changes](#other-notable-changes) - - [Updated Dependencies](#updated-dependencies-20) - - [Changes by Package](#changes-by-package-24) + - [Updated Dependencies](#updated-dependencies-21) + - [Changes by Package](#changes-by-package-25) @@ -221,6 +228,71 @@ Date: YYYY-MM-DD --> +## v2.13.0 + +Date: 2024-10-10 + +### What's Changed + +#### Stabilized APIs + +This release stabilizes a handful of "unstable" APIs in preparation for the pending React Router v7 release (see [these](https://remix.run/blog/merging-remix-and-react-router9) [posts](https://remix.run/blog/incremental-path-to-react-19) for more info): + +- `unstable_data` → `data` (for use with Single Fetch) +- `unstable_flushSync` → `flushSync` (`useSubmit`, `fetcher.load`, `fetcher.submit`) +- `unstable_viewTransition` → `viewTransition` (``, ``, `useNavigate`, `useSubmit`) +- `future.unstable_singleFetch` → `future.v3_singleFetch` ([Docs](https://remix.run/docs/guides/single-fetch)) +- `future.unstable_lazyRouteDiscovery` → `future.v3_lazyRouteDiscovery` ([Docs](https://remix.run/docs/guides/lazy-route-discovery)) + +### Minor Changes + +- Stabilize React Router APIs in Remix ([#9980](https://github.com/remix-run/remix/pull/9980)) + - Adopt stabilized React Router APIs internally + - Single Fetch: `unstable_dataStrategy` -> `dataStrategy` + - Lazy Route Discovery: `unstable_patchRoutesOnNavigation` -> `patchRoutesOnNavigation` + - Stabilize public-facing APIs + - Single Fetch: `unstable_data()` -> `data()` + - `unstable_viewTransition` -> `viewTransition` (`Link`, `Form`, `navigate`, `submit`) + - `unstable_flushSync>` -> `` (`Link`, `Form`, `navigate`, `submit`, `useFetcher`) +- Stabilize future flags ([#10072](https://github.com/remix-run/remix/pull/10072)) + - `future.unstable_singleFetch` -> `future.v3_singleFetch` + - `future.unstable_lazyRouteDiscovery` -> `future.v3_lazyRouteDiscovery` + +### Patch Changes + +- `@remix-run/dev` - Stop passing `request.signal` as the `renderToReadableStream` `signal` to abort server rendering for cloudflare/deno runtimes because by the time that `request` is aborted, aborting the rendering is useless because there's no way for React to flush down the unresolved boundaries ([#10047](https://github.com/remix-run/remix/pull/10047)) + - This has been incorrect for some time, but only recently exposed due to a bug in how we were aborting requests when running via `remix vite:dev` because we were incorrectly aborting requests after successful renders - which was causing us to abort a completed React render, and try to close an already closed `ReadableStream` + - This has likely not shown up in any production scenarios because cloudflare/deno production runtimes are (correctly) not aborting the `request.signal` on successful renders + - The built-in `entry.server` files no longer pass a `signal` to `renderToReadableStream` because adding a timeout-based abort signal to the default behavior would constitute a breaking change + - Users can configure this abort behavior via their own `entry.server` via `remix reveal entry.server`, and the template entry.server files have been updated with an example approach for newly created Remix apps +- `@remix-run/express` - Fix adapter logic for aborting `request.signal` so we don't incorrectly abort on the `close` event for successful requests ([#10046](https://github.com/remix-run/remix/pull/10046)) +- `@remix-run/react` - Fix bug with `clientLoader.hydrate` in a layout route when hydrating with bubbled errors ([#10063](https://github.com/remix-run/remix/pull/10063)) + +### Updated Dependencies + +- [`react-router-dom@6.27.0`](https://github.com/remix-run/react-router/releases/tag/react-router%406.27.0) +- [`@remix-run/router@1.20.0`](https://github.com/remix-run/react-router/blob/main/packages/router/CHANGELOG.md#1200) + +### Changes by Package + +- [`create-remix`](https://github.com/remix-run/remix/blob/remix%402.13.0/packages/create-remix/CHANGELOG.md#2130) +- [`@remix-run/architect`](https://github.com/remix-run/remix/blob/remix%402.13.0/packages/remix-architect/CHANGELOG.md#2130) +- [`@remix-run/cloudflare`](https://github.com/remix-run/remix/blob/remix%402.13.0/packages/remix-cloudflare/CHANGELOG.md#2130) +- [`@remix-run/cloudflare-pages`](https://github.com/remix-run/remix/blob/remix%402.13.0/packages/remix-cloudflare-pages/CHANGELOG.md#2130) +- [`@remix-run/cloudflare-workers`](https://github.com/remix-run/remix/blob/remix%402.13.0/packages/remix-cloudflare-workers/CHANGELOG.md#2130) +- [`@remix-run/css-bundle`](https://github.com/remix-run/remix/blob/remix%402.13.0/packages/remix-css-bundle/CHANGELOG.md#2130) +- [`@remix-run/deno`](https://github.com/remix-run/remix/blob/remix%402.13.0/packages/remix-deno/CHANGELOG.md#2130) +- [`@remix-run/dev`](https://github.com/remix-run/remix/blob/remix%402.13.0/packages/remix-dev/CHANGELOG.md#2130) +- [`@remix-run/eslint-config`](https://github.com/remix-run/remix/blob/remix%402.13.0/packages/remix-eslint-config/CHANGELOG.md#2130) +- [`@remix-run/express`](https://github.com/remix-run/remix/blob/remix%402.13.0/packages/remix-express/CHANGELOG.md#2130) +- [`@remix-run/node`](https://github.com/remix-run/remix/blob/remix%402.13.0/packages/remix-node/CHANGELOG.md#2130) +- [`@remix-run/react`](https://github.com/remix-run/remix/blob/remix%402.13.0/packages/remix-react/CHANGELOG.md#2130) +- [`@remix-run/serve`](https://github.com/remix-run/remix/blob/remix%402.13.0/packages/remix-serve/CHANGELOG.md#2130) +- [`@remix-run/server-runtime`](https://github.com/remix-run/remix/blob/remix%402.13.0/packages/remix-server-runtime/CHANGELOG.md#2130) +- [`@remix-run/testing`](https://github.com/remix-run/remix/blob/remix%402.13.0/packages/remix-testing/CHANGELOG.md#2130) + +**Full Changelog**: [`v2.12.1...v2.13.0`](https://github.com/remix-run/remix/compare/remix@2.12.1...remix@2.13.0) + ## v2.12.1 Date: 2024-09-19 From 591c706a728123b5e147faccc73d100245038a56 Mon Sep 17 00:00:00 2001 From: Brooks Lybrand Date: Thu, 10 Oct 2024 08:11:08 -0500 Subject: [PATCH 18/44] Fix link --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 98de97da846..49e81b02911 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -236,7 +236,7 @@ Date: 2024-10-10 #### Stabilized APIs -This release stabilizes a handful of "unstable" APIs in preparation for the pending React Router v7 release (see [these](https://remix.run/blog/merging-remix-and-react-router9) [posts](https://remix.run/blog/incremental-path-to-react-19) for more info): +This release stabilizes a handful of "unstable" APIs in preparation for the pending React Router v7 release (see [these](https://remix.run/blog/merging-remix-and-react-router) [posts](https://remix.run/blog/incremental-path-to-react-19) for more info): - `unstable_data` → `data` (for use with Single Fetch) - `unstable_flushSync` → `flushSync` (`useSubmit`, `fetcher.load`, `fetcher.submit`) From 9401ee64d10cddd9fd03ac90064b35aa12bcd690 Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Thu, 10 Oct 2024 09:30:11 -0400 Subject: [PATCH 19/44] docs: update for stabilized flags (#10082) --- docs/guides/lazy-route-discovery.md | 2 - docs/guides/single-fetch.md | 2 - docs/start/future-flags.md | 144 +++++++++++++++++++++++++++- 3 files changed, 139 insertions(+), 9 deletions(-) diff --git a/docs/guides/lazy-route-discovery.md b/docs/guides/lazy-route-discovery.md index 9ce0a1089b6..4ea6d90a4d2 100644 --- a/docs/guides/lazy-route-discovery.md +++ b/docs/guides/lazy-route-discovery.md @@ -4,8 +4,6 @@ title: Lazy Route Discovery # Lazy Route Discovery (a.k.a. "Fog of War") -This is an unstable API and will continue to change, do not adopt in production - Remix introduced support for Lazy Route Discovery (a.k.a. "Fog of War") ([RFC][rfc]) behind the `future.unstable_lazyRouteDiscovery` [Future Flag][future-flags] in [`v2.10.0`][2.10.0] (later stabilized as `future.v3_lazyRouteDiscovery` in [`v2.13.0`][2.13.0]). This allows you to opt-into this behavior which will become the default in the next major version of Remix - a.k.a. React Router v7 ([1][rr-v7], [2][rr-v7-2]). For more information on this feature, please check out the [blog post][blog-post]. ## Current Behavior diff --git a/docs/guides/single-fetch.md b/docs/guides/single-fetch.md index c766bc30e84..1c4123196f2 100644 --- a/docs/guides/single-fetch.md +++ b/docs/guides/single-fetch.md @@ -4,8 +4,6 @@ title: Single Fetch # Single Fetch -This is an unstable API and will continue to change, do not adopt in production - Single Fetch is a new data loading strategy and streaming format. When you enable Single Fetch, Remix will make a single HTTP call to your server on client-side transitions, instead of multiple HTTP calls in parallel (one per loader). Additionally, Single Fetch also allows you to send down naked objects from your `loader` and `action`, such as `Date`, `Error`, `Promise`, `RegExp`, and more. ## Overview diff --git a/docs/start/future-flags.md b/docs/start/future-flags.md index 4c680abcc62..728da129fb0 100644 --- a/docs/start/future-flags.md +++ b/docs/start/future-flags.md @@ -234,7 +234,7 @@ The fetcher lifecycle is now based on when it returns to an idle state rather th 👉 **Enable the Flag** -```ts +```ts filename=vite.config.ts remix({ future: { v3_fetcherPersist: true, @@ -254,7 +254,7 @@ Changes the relative path matching and linking for multi-segment splats paths li 👉 **Enable the Flag** -```ts +```ts filename=vite.config.ts remix({ future: { v3_relativeSplatPath: true, @@ -320,7 +320,7 @@ When a server-side request is aborted, such as when a user navigates away from a 👉 **Enable the Flag** -```ts +```ts filename=vite.config.ts remix({ future: { v3_throwAbortReason: true, @@ -334,11 +334,143 @@ You likely won't need to adjust any code, unless you had custom logic inside of ## v3_singleFetch -Opt into [Single Fetch][single-fetch] behavior (details will be expanded once the flag stabilizes). +**Background** + +with this flag, Remix moves to a "single fetch" approach for data requests when making SPA navigations within your app. Additional details are available in the [docs][single-fetch], but the main reason we chose to move to this approach is **Simplicity**. With Single Fetch, data requests now behave just like document requests and developers no longer need to think about the nuances of how to manage headers, caching, etc., differently between the two. For more advanced use-cases, developers can still opt into fine-grained revalidations. + +👉 **Enable the Flag (and the types)** + +```ts filename=vite.config.ts lines=[5-10,16] +import { vitePlugin as remix } from "@remix-run/dev"; +import { defineConfig } from "vite"; +import tsconfigPaths from "vite-tsconfig-paths"; + +declare module "@remix-run/node" { + // or cloudflare, deno, etc. + interface Future { + v3_singleFetch: true; + } +} + +export default defineConfig({ + plugins: [ + remix({ + future: { + v3_singleFetch: true, + }, + }), + tsconfigPaths(), + ], +}); +``` + +**Update your Code** + +You should be able to mostly use your code as-is with the flag enabled, but the following changes should be made over time and will be required prior to the next major version. + +👉 **Remove json()/defer() in favor of raw objects** + +Single Fetch supports JSON objects and Promises out of the box, so you can return the raw data from your `loader`/`action` functions: + +```diff +-import { json } from "@remix-run/node"; + +export async function loader({}: LoaderFunctionArgs) { + let tasks = await fetchTasks(); +- return json(tasks); ++ return tasks; +} +``` + +```diff +-import { defer } from "@remix-run/node"; + +export async function loader({}: LoaderFunctionArgs) { + let lazyStuff = fetchLazyStuff(); + let tasks = await fetchTasks(); +- return defer({ tasks, lazyStuff }); ++ return { tasks, lazyStuff }; +} +``` + +If you were using the second parameter of `json`/`defer` to set a custom status or headers on your response, you can continue doing do via the new `data` API: + +```diff +-import { json } from "@remix-run/node"; ++import { data } from "@remix-run/node"; + +export async function loader({}: LoaderFunctionArgs) { + let tasks = await fetchTasks(); +- return json(tasks, { ++ return data(tasks, { + headers: { + "Cache-Control": "public, max-age=604800" + } + }); +} +``` + +👉 **Adjust your server abort delay** + +If you were using a custom `ABORT_DELAY` in your `entry.server.tsx` file, you should change that to use thew new `streamTimeout` API leveraged by Single Fetch: + +```diff filename=entry.server.tsx +-const ABORT_DELAY = 5000; ++// Reject/cancel all pending promises after 5 seconds ++export const streamTimeout = 5000; + +// ... + +function handleBrowserRequest(/* ... */) { + return new Promise((resolve, reject) => { + const { pipe, abort } = renderToPipeableStream( + , + { + onShellReady() { + /* ... */ + }, + onShellError(error: unknown) { + /* ... */ + }, + onError(error: unknown) { + /* ... */ + }, + } + ); + +- setTimeout(abort, ABORT_DELAY); ++ // Automatically timeout the React renderer after 6 seconds, which ensures ++ // React has enough time to flush down the rejected boundary contents ++ setTimeout(abort, streamTimeout + 1000); + }); +} +``` ## v3_lazyRouteDiscovery -Opt into [Lazy Route Discovery][lazy-route-discovery] behavior (details will be expanded once the flag stabilizes). +**Background** + +With this flag, Remix no longer sends the full route manifest up to the client on initial load. Instead, Remix only sends the server-rendered routes up in the manifest and then fetches the remaining routes as the user navigated around the application. Additional details are available in the [docs][lazy-route-discovery] and the [blog post][lazy-route-discovery-blog-post] + +👉 **Enable the Flag** + +```ts filename=vite.config.ts +remix({ + future: { + v3_lazyRouteDiscovery: true, + }, +}); +``` + +**Update your Code** + +You shouldn't need to make any changes to your application code for this feature to work. + +You may find some usage for the new [``][discover-prop] API if you wish to disable eager route discovery on certain links. ## unstable_optimizeDeps @@ -349,6 +481,8 @@ Opt into automatic [dependency optimization][dependency-optimization] during dev [relativesplatpath-changelog]: https://github.com/remix-run/remix/blob/main/CHANGELOG.md#futurev3_relativesplatpath [single-fetch]: ../guides/single-fetch [lazy-route-discovery]: ../guides/lazy-route-discovery +[lazy-route-discovery-blog-post]: https://remix.run/blog/fog-of-war +[discover-prop]: ../components/link#discover [vite]: https://vitejs.dev [vite-docs]: ../guides/vite [supported-remix-config-options]: ../file-conventions/vite-config From a3230eef3e0e75a344669f46784de86264d42742 Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Thu, 10 Oct 2024 16:20:45 -0400 Subject: [PATCH 20/44] Bump router (#10086) --- .changeset/big-buckets-pretend.md | 5 +++ integration/client-data-test.ts | 17 +++++--- integration/package.json | 2 +- packages/remix-dev/package.json | 2 +- packages/remix-react/package.json | 6 +-- packages/remix-server-runtime/package.json | 2 +- packages/remix-testing/package.json | 4 +- pnpm-lock.yaml | 50 +++++++++++----------- 8 files changed, 50 insertions(+), 38 deletions(-) create mode 100644 .changeset/big-buckets-pretend.md diff --git a/.changeset/big-buckets-pretend.md b/.changeset/big-buckets-pretend.md new file mode 100644 index 00000000000..cb28f7a982b --- /dev/null +++ b/.changeset/big-buckets-pretend.md @@ -0,0 +1,5 @@ +--- +"@remix-run/react": patch +--- + +[REMOVE] bump router versions diff --git a/integration/client-data-test.ts b/integration/client-data-test.ts index 5588ce84825..eebc4fb7c72 100644 --- a/integration/client-data-test.ts +++ b/integration/client-data-test.ts @@ -937,7 +937,17 @@ test.describe("Client Data", () => { let app = new PlaywrightFixture(appFixture, page); let logs: string[] = []; - page.on("console", (msg) => logs.push(msg.text())); + page.on("console", (msg) => { + let text = msg.text(); + if ( + // Ignore any dev tools messages. This may only happen locally when dev + // tools is installed and not in CI but either way we don't care + /Download the React DevTools/.test(text) + ) { + return; + } + logs.push(text); + }); await app.goto("/parent/child", false); let html = await app.getHtml("main"); @@ -954,10 +964,7 @@ test.describe("Client Data", () => { expect(html).toMatch("Child Server Error"); expect(html).not.toMatch("Should not see me"); - expect(logs).toEqual([ - expect.stringContaining("Download the React DevTools"), - "running parent client loader", - ]); + expect(logs).toEqual(["running parent client loader"]); console.error = _consoleError; }); diff --git a/integration/package.json b/integration/package.json index 00ae3d31664..12af9b6f4a2 100644 --- a/integration/package.json +++ b/integration/package.json @@ -14,7 +14,7 @@ "@remix-run/dev": "workspace:*", "@remix-run/express": "workspace:*", "@remix-run/node": "workspace:*", - "@remix-run/router": "1.20.0-pre.0", + "@remix-run/router": "1.20.0-pre.1", "@remix-run/server-runtime": "workspace:*", "@types/express": "^4.17.9", "@vanilla-extract/css": "^1.10.0", diff --git a/packages/remix-dev/package.json b/packages/remix-dev/package.json index 0145620fb09..374578aed16 100644 --- a/packages/remix-dev/package.json +++ b/packages/remix-dev/package.json @@ -32,7 +32,7 @@ "@mdx-js/mdx": "^2.3.0", "@npmcli/package-json": "^4.0.1", "@remix-run/node": "workspace:*", - "@remix-run/router": "1.20.0-pre.0", + "@remix-run/router": "1.20.0-pre.1", "@remix-run/server-runtime": "workspace:*", "@types/mdx": "^2.0.5", "@vanilla-extract/integration": "^6.2.0", diff --git a/packages/remix-react/package.json b/packages/remix-react/package.json index 1cfe1c8705a..fdaa0705fdd 100644 --- a/packages/remix-react/package.json +++ b/packages/remix-react/package.json @@ -19,10 +19,10 @@ "tsc": "tsc" }, "dependencies": { - "@remix-run/router": "1.20.0-pre.0", + "@remix-run/router": "1.20.0-pre.1", "@remix-run/server-runtime": "workspace:*", - "react-router": "6.27.0-pre.0", - "react-router-dom": "6.27.0-pre.0", + "react-router": "6.27.0-pre.1", + "react-router-dom": "6.27.0-pre.1", "turbo-stream": "2.4.0" }, "devDependencies": { diff --git a/packages/remix-server-runtime/package.json b/packages/remix-server-runtime/package.json index f21a228a8bd..cf5861f9924 100644 --- a/packages/remix-server-runtime/package.json +++ b/packages/remix-server-runtime/package.json @@ -19,7 +19,7 @@ "tsc": "tsc" }, "dependencies": { - "@remix-run/router": "1.20.0-pre.0", + "@remix-run/router": "1.20.0-pre.1", "@types/cookie": "^0.6.0", "@web3-storage/multipart-parser": "^1.0.0", "cookie": "^0.6.0", diff --git a/packages/remix-testing/package.json b/packages/remix-testing/package.json index a6ac2de5e8f..30db3c81527 100644 --- a/packages/remix-testing/package.json +++ b/packages/remix-testing/package.json @@ -21,8 +21,8 @@ "dependencies": { "@remix-run/node": "workspace:*", "@remix-run/react": "workspace:*", - "@remix-run/router": "1.20.0-pre.0", - "react-router-dom": "6.27.0-pre.0" + "@remix-run/router": "1.20.0-pre.1", + "react-router-dom": "6.27.0-pre.1" }, "devDependencies": { "@remix-run/server-runtime": "workspace:*", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 24587c23e57..51d5b8ed9f7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -323,8 +323,8 @@ importers: specifier: workspace:* version: link:../packages/remix-node '@remix-run/router': - specifier: 1.20.0-pre.0 - version: 1.20.0-pre.0 + specifier: 1.20.0-pre.1 + version: 1.20.0-pre.1 '@remix-run/server-runtime': specifier: workspace:* version: link:../packages/remix-server-runtime @@ -871,8 +871,8 @@ importers: specifier: ^2.13.0-pre.0 version: link:../remix-react '@remix-run/router': - specifier: 1.20.0-pre.0 - version: 1.20.0-pre.0 + specifier: 1.20.0-pre.1 + version: 1.20.0-pre.1 '@remix-run/server-runtime': specifier: workspace:* version: link:../remix-server-runtime @@ -1217,17 +1217,17 @@ importers: packages/remix-react: dependencies: '@remix-run/router': - specifier: 1.20.0-pre.0 - version: 1.20.0-pre.0 + specifier: 1.20.0-pre.1 + version: 1.20.0-pre.1 '@remix-run/server-runtime': specifier: workspace:* version: link:../remix-server-runtime react-router: - specifier: 6.27.0-pre.0 - version: 6.27.0-pre.0(react@18.2.0) + specifier: 6.27.0-pre.1 + version: 6.27.0-pre.1(react@18.2.0) react-router-dom: - specifier: 6.27.0-pre.0 - version: 6.27.0-pre.0(react-dom@18.2.0)(react@18.2.0) + specifier: 6.27.0-pre.1 + version: 6.27.0-pre.1(react-dom@18.2.0)(react@18.2.0) turbo-stream: specifier: 2.4.0 version: 2.4.0 @@ -1303,8 +1303,8 @@ importers: packages/remix-server-runtime: dependencies: '@remix-run/router': - specifier: 1.20.0-pre.0 - version: 1.20.0-pre.0 + specifier: 1.20.0-pre.1 + version: 1.20.0-pre.1 '@types/cookie': specifier: ^0.6.0 version: 0.6.0 @@ -1340,11 +1340,11 @@ importers: specifier: workspace:* version: link:../remix-react '@remix-run/router': - specifier: 1.20.0-pre.0 - version: 1.20.0-pre.0 + specifier: 1.20.0-pre.1 + version: 1.20.0-pre.1 react-router-dom: - specifier: 6.27.0-pre.0 - version: 6.27.0-pre.0(react-dom@18.2.0)(react@18.2.0) + specifier: 6.27.0-pre.1 + version: 6.27.0-pre.1(react-dom@18.2.0)(react@18.2.0) devDependencies: '@remix-run/server-runtime': specifier: workspace:* @@ -4206,8 +4206,8 @@ packages: - encoding dev: false - /@remix-run/router@1.20.0-pre.0: - resolution: {integrity: sha512-xFJySbWOaxjYP8QJy9f1TdW98H+tT8ykvuJN8Ew1J1En4v77ega3FMbFD2M8sXkCq43PKuSBPc8oZWDub6IQhA==} + /@remix-run/router@1.20.0-pre.1: + resolution: {integrity: sha512-zwkuNYKRQIKmm3X+BjaGVcJKYI4viyQSN8YJ8AFylV2dovn+jRQ7zZwOJGR3nAPvE/yEn0ZC9xwJwJwnRdCMCA==} engines: {node: '>=14.0.0'} dev: false @@ -12778,26 +12778,26 @@ packages: engines: {node: '>=0.10.0'} dev: false - /react-router-dom@6.27.0-pre.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-z8peFQxpWiqTBh18eWWBXiMMxWKJcqYSpHiP6s35zM7eh8s5TWKdhWsPSP3xVhHMIM6oYHVJCEawGsReFaI4PQ==} + /react-router-dom@6.27.0-pre.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-KF1AoPXCdfq03rL4m0yTk4hFKCTOxewlmZ9eK2R6dXONJ+DWRU2RB0wMyjv+xPcQ4Fy9h1JxnGZiL/CH37Urjw==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' dependencies: - '@remix-run/router': 1.20.0-pre.0 + '@remix-run/router': 1.20.0-pre.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-router: 6.27.0-pre.0(react@18.2.0) + react-router: 6.27.0-pre.1(react@18.2.0) dev: false - /react-router@6.27.0-pre.0(react@18.2.0): - resolution: {integrity: sha512-hJSLrLWzjsTvPiE91/54bRJ8gVzQpIT/yb8MBQWvmsd+5fFaemYr6I/6pCdAw/jpOHg+948WDyCgsxXa0XExRQ==} + /react-router@6.27.0-pre.1(react@18.2.0): + resolution: {integrity: sha512-5Joseke2P3xvrUBejDbyRrhEimuIDPelAYcYCeckQpULm++4/8SC9ndnBMWmXQ8rTsBwYUDSOjCC+0ZV50t9Lg==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' dependencies: - '@remix-run/router': 1.20.0-pre.0 + '@remix-run/router': 1.20.0-pre.1 react: 18.2.0 dev: false From 3626151a7574fb92808ee321fec3aad65368390e Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Fri, 11 Oct 2024 10:06:25 -0400 Subject: [PATCH 21/44] Stabilize the optimizeDeps future flag (#10092) --- .changeset/hot-dingos-attend.md | 5 +++++ docs/guides/dependency-optimization.md | 2 +- docs/start/future-flags.md | 20 +++++++++++++++++-- .../remix-dev/__tests__/readConfig-test.ts | 2 +- packages/remix-dev/config.ts | 4 ++-- packages/remix-dev/vite/plugin.ts | 2 +- 6 files changed, 28 insertions(+), 7 deletions(-) create mode 100644 .changeset/hot-dingos-attend.md diff --git a/.changeset/hot-dingos-attend.md b/.changeset/hot-dingos-attend.md new file mode 100644 index 00000000000..6122e6e836e --- /dev/null +++ b/.changeset/hot-dingos-attend.md @@ -0,0 +1,5 @@ +--- +"@remix-run/dev": minor +--- + +Stabilize the `future.unstable_optimizeDeps` flag into `future.v3_optimizeDeps` diff --git a/docs/guides/dependency-optimization.md b/docs/guides/dependency-optimization.md index 48877769a3e..a92f9b3733c 100644 --- a/docs/guides/dependency-optimization.md +++ b/docs/guides/dependency-optimization.md @@ -6,7 +6,7 @@ title: Dependency optimization # Dependency optimization -Remix introduced automatic dependency optimization in development behind the `future.unstable_optimizeDeps` [Future Flag][future-flags]. +Remix introduced automatic dependency optimization in development behind the `future.v3_optimizeDeps` [Future Flag][future-flags]. This allows you to opt-into this behavior which will become the default in the next major version of Remix - a.k.a. React Router v7 ([1][rr-v7], [2][rr-v7-2]). In development, Vite aims to [prebundle dependencies][prebundle-dependencies] so that it can efficiently serve up those dependencies on-demand. diff --git a/docs/start/future-flags.md b/docs/start/future-flags.md index 728da129fb0..1356d4937d1 100644 --- a/docs/start/future-flags.md +++ b/docs/start/future-flags.md @@ -472,9 +472,25 @@ You shouldn't need to make any changes to your application code for this feature You may find some usage for the new [``][discover-prop] API if you wish to disable eager route discovery on certain links. -## unstable_optimizeDeps +## v3_optimizeDeps -Opt into automatic [dependency optimization][dependency-optimization] during development. +**Background** + +This flag allows you to opt-into automatic [dependency optimization][dependency-optimization] during development when using Vite. + +👉 **Enable the Flag** + +```ts filename=vite.config.ts +remix({ + future: { + v3_optimizeDeps: true, + }, +}); +``` + +**Update your Code** + +You shouldn't need to make any changes to your application code for this feature to work. [development-strategy]: ../guides/api-development-strategy [fetcherpersist-rfc]: https://github.com/remix-run/remix/discussions/7698 diff --git a/packages/remix-dev/__tests__/readConfig-test.ts b/packages/remix-dev/__tests__/readConfig-test.ts index f528c16f15e..bd06d50309f 100644 --- a/packages/remix-dev/__tests__/readConfig-test.ts +++ b/packages/remix-dev/__tests__/readConfig-test.ts @@ -36,9 +36,9 @@ describe("readConfig", () => { "entryServerFile": "entry.server.tsx", "entryServerFilePath": Any, "future": { - "unstable_optimizeDeps": false, "v3_fetcherPersist": false, "v3_lazyRouteDiscovery": false, + "v3_optimizeDeps": false, "v3_relativeSplatPath": false, "v3_singleFetch": false, "v3_throwAbortReason": false, diff --git a/packages/remix-dev/config.ts b/packages/remix-dev/config.ts index 16065ff01af..b6cb6dd8f01 100644 --- a/packages/remix-dev/config.ts +++ b/packages/remix-dev/config.ts @@ -39,7 +39,7 @@ interface FutureConfig { v3_throwAbortReason: boolean; v3_singleFetch: boolean; v3_lazyRouteDiscovery: boolean; - unstable_optimizeDeps: boolean; + v3_optimizeDeps: boolean; } type NodeBuiltinsPolyfillOptions = Pick< @@ -605,7 +605,7 @@ export async function resolveConfig( v3_throwAbortReason: appConfig.future?.v3_throwAbortReason === true, v3_singleFetch: appConfig.future?.v3_singleFetch === true, v3_lazyRouteDiscovery: appConfig.future?.v3_lazyRouteDiscovery === true, - unstable_optimizeDeps: appConfig.future?.unstable_optimizeDeps === true, + v3_optimizeDeps: appConfig.future?.v3_optimizeDeps === true, }; if (appConfig.future) { diff --git a/packages/remix-dev/vite/plugin.ts b/packages/remix-dev/vite/plugin.ts index 53ce6400b57..c886f7fcbcf 100644 --- a/packages/remix-dev/vite/plugin.ts +++ b/packages/remix-dev/vite/plugin.ts @@ -1075,7 +1075,7 @@ export const remixVitePlugin: RemixVitePlugin = (remixUserConfig = {}) => { : undefined, }, optimizeDeps: { - entries: ctx.remixConfig.future.unstable_optimizeDeps + entries: ctx.remixConfig.future.v3_optimizeDeps ? [ ctx.entryClientFilePath, ...Object.values(ctx.remixConfig.routes).map((route) => From fb9eb4d1dc0ee33f102cca2af2be444b40bc0707 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 11 Oct 2024 10:10:15 -0400 Subject: [PATCH 22/44] chore: Update version for release (pre) (#10087) Co-authored-by: github-actions[bot] --- .changeset/pre.json | 2 ++ .../helpers/vite-cloudflare-template/package.json | 6 +++--- packages/create-remix/CHANGELOG.md | 2 ++ packages/create-remix/package.json | 2 +- packages/remix-architect/CHANGELOG.md | 7 +++++++ packages/remix-architect/package.json | 2 +- packages/remix-cloudflare-pages/CHANGELOG.md | 7 +++++++ packages/remix-cloudflare-pages/package.json | 2 +- packages/remix-cloudflare-workers/CHANGELOG.md | 7 +++++++ packages/remix-cloudflare-workers/package.json | 2 +- packages/remix-cloudflare/CHANGELOG.md | 7 +++++++ packages/remix-cloudflare/package.json | 2 +- packages/remix-css-bundle/CHANGELOG.md | 2 ++ packages/remix-css-bundle/package.json | 2 +- packages/remix-deno/CHANGELOG.md | 7 +++++++ packages/remix-deno/package.json | 2 +- packages/remix-dev/CHANGELOG.md | 12 ++++++++++++ packages/remix-dev/package.json | 6 +++--- packages/remix-eslint-config/CHANGELOG.md | 2 ++ packages/remix-eslint-config/package.json | 2 +- packages/remix-express/CHANGELOG.md | 7 +++++++ packages/remix-express/package.json | 2 +- packages/remix-node/CHANGELOG.md | 7 +++++++ packages/remix-node/package.json | 2 +- packages/remix-react/CHANGELOG.md | 8 ++++++++ packages/remix-react/package.json | 2 +- packages/remix-serve/CHANGELOG.md | 8 ++++++++ packages/remix-serve/package.json | 2 +- packages/remix-server-runtime/CHANGELOG.md | 2 ++ packages/remix-server-runtime/package.json | 2 +- packages/remix-testing/CHANGELOG.md | 8 ++++++++ packages/remix-testing/package.json | 2 +- packages/remix/package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 34 files changed, 120 insertions(+), 25 deletions(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index 7051387b54a..92a7de7f1b7 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -26,6 +26,8 @@ "@remix-run/testing": "2.12.1" }, "changesets": [ + "big-buckets-pretend", + "hot-dingos-attend", "rare-shoes-enjoy", "short-maps-reflect", "silly-gifts-wash", diff --git a/integration/helpers/vite-cloudflare-template/package.json b/integration/helpers/vite-cloudflare-template/package.json index 1569463b690..f6f29f83cec 100644 --- a/integration/helpers/vite-cloudflare-template/package.json +++ b/integration/helpers/vite-cloudflare-template/package.json @@ -11,9 +11,9 @@ "typecheck": "tsc" }, "dependencies": { - "@remix-run/cloudflare": "2.13.0-pre.0", - "@remix-run/cloudflare-pages": "2.13.0-pre.0", - "@remix-run/react": "2.13.0-pre.0", + "@remix-run/cloudflare": "2.13.0-pre.1", + "@remix-run/cloudflare-pages": "2.13.0-pre.1", + "@remix-run/react": "2.13.0-pre.1", "isbot": "^4.1.0", "miniflare": "^3.20231030.4", "react": "^18.2.0", diff --git a/packages/create-remix/CHANGELOG.md b/packages/create-remix/CHANGELOG.md index ed92fb9a4a2..cd81bc103d0 100644 --- a/packages/create-remix/CHANGELOG.md +++ b/packages/create-remix/CHANGELOG.md @@ -1,5 +1,7 @@ # `create-remix` +## 2.13.0-pre.1 + ## 2.13.0-pre.0 ## 2.12.1 diff --git a/packages/create-remix/package.json b/packages/create-remix/package.json index af3d645be22..341589acab8 100644 --- a/packages/create-remix/package.json +++ b/packages/create-remix/package.json @@ -1,6 +1,6 @@ { "name": "create-remix", - "version": "2.13.0-pre.0", + "version": "2.13.0-pre.1", "description": "Create a new Remix app", "homepage": "https://remix.run", "bugs": { diff --git a/packages/remix-architect/CHANGELOG.md b/packages/remix-architect/CHANGELOG.md index 43bc65f913e..22e7c552af6 100644 --- a/packages/remix-architect/CHANGELOG.md +++ b/packages/remix-architect/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/architect` +## 2.13.0-pre.1 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/node@2.13.0-pre.1` + ## 2.13.0-pre.0 ### Patch Changes diff --git a/packages/remix-architect/package.json b/packages/remix-architect/package.json index c4e80d097e2..cbc974f19bb 100644 --- a/packages/remix-architect/package.json +++ b/packages/remix-architect/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/architect", - "version": "2.13.0-pre.0", + "version": "2.13.0-pre.1", "description": "Architect server request handler for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-cloudflare-pages/CHANGELOG.md b/packages/remix-cloudflare-pages/CHANGELOG.md index dbc9d902d7b..299c0d02636 100644 --- a/packages/remix-cloudflare-pages/CHANGELOG.md +++ b/packages/remix-cloudflare-pages/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/cloudflare-pages` +## 2.13.0-pre.1 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/cloudflare@2.13.0-pre.1` + ## 2.13.0-pre.0 ### Patch Changes diff --git a/packages/remix-cloudflare-pages/package.json b/packages/remix-cloudflare-pages/package.json index d971bbc55ae..21edaf4f34d 100644 --- a/packages/remix-cloudflare-pages/package.json +++ b/packages/remix-cloudflare-pages/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/cloudflare-pages", - "version": "2.13.0-pre.0", + "version": "2.13.0-pre.1", "description": "Cloudflare Pages request handler for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-cloudflare-workers/CHANGELOG.md b/packages/remix-cloudflare-workers/CHANGELOG.md index 9024c0b7642..757a0146a13 100644 --- a/packages/remix-cloudflare-workers/CHANGELOG.md +++ b/packages/remix-cloudflare-workers/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/cloudflare-workers` +## 2.13.0-pre.1 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/cloudflare@2.13.0-pre.1` + ## 2.13.0-pre.0 ### Patch Changes diff --git a/packages/remix-cloudflare-workers/package.json b/packages/remix-cloudflare-workers/package.json index 06dbddeb219..4f378893995 100644 --- a/packages/remix-cloudflare-workers/package.json +++ b/packages/remix-cloudflare-workers/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/cloudflare-workers", - "version": "2.13.0-pre.0", + "version": "2.13.0-pre.1", "description": "Cloudflare worker request handler for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-cloudflare/CHANGELOG.md b/packages/remix-cloudflare/CHANGELOG.md index 2c845d69436..55b30843ef4 100644 --- a/packages/remix-cloudflare/CHANGELOG.md +++ b/packages/remix-cloudflare/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/cloudflare` +## 2.13.0-pre.1 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/server-runtime@2.13.0-pre.1` + ## 2.13.0-pre.0 ### Patch Changes diff --git a/packages/remix-cloudflare/package.json b/packages/remix-cloudflare/package.json index 6e898654fcd..2d9bb0a2a84 100644 --- a/packages/remix-cloudflare/package.json +++ b/packages/remix-cloudflare/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/cloudflare", - "version": "2.13.0-pre.0", + "version": "2.13.0-pre.1", "description": "Cloudflare platform abstractions for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-css-bundle/CHANGELOG.md b/packages/remix-css-bundle/CHANGELOG.md index 170d45ed1c5..b23e7b52685 100644 --- a/packages/remix-css-bundle/CHANGELOG.md +++ b/packages/remix-css-bundle/CHANGELOG.md @@ -1,5 +1,7 @@ # @remix-run/css-bundle +## 2.13.0-pre.1 + ## 2.13.0-pre.0 ## 2.12.1 diff --git a/packages/remix-css-bundle/package.json b/packages/remix-css-bundle/package.json index 6cb821b67e8..c85f3c3c649 100644 --- a/packages/remix-css-bundle/package.json +++ b/packages/remix-css-bundle/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/css-bundle", - "version": "2.13.0-pre.0", + "version": "2.13.0-pre.1", "description": "CSS bundle href when using CSS bundling features in Remix", "homepage": "https://remix.run", "bugs": { diff --git a/packages/remix-deno/CHANGELOG.md b/packages/remix-deno/CHANGELOG.md index 875f2626876..c90400d4ffd 100644 --- a/packages/remix-deno/CHANGELOG.md +++ b/packages/remix-deno/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/deno` +## 2.13.0-pre.1 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/server-runtime@2.13.0-pre.1` + ## 2.13.0-pre.0 ### Patch Changes diff --git a/packages/remix-deno/package.json b/packages/remix-deno/package.json index 37fe3ca6bea..8a1df7c1356 100644 --- a/packages/remix-deno/package.json +++ b/packages/remix-deno/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/deno", - "version": "2.13.0-pre.0", + "version": "2.13.0-pre.1", "description": "Deno platform abstractions for Remix", "homepage": "https://remix.run", "main": "./index.ts", diff --git a/packages/remix-dev/CHANGELOG.md b/packages/remix-dev/CHANGELOG.md index 190785390a3..7219159fcfc 100644 --- a/packages/remix-dev/CHANGELOG.md +++ b/packages/remix-dev/CHANGELOG.md @@ -1,5 +1,17 @@ # `@remix-run/dev` +## 2.13.0-pre.1 + +### Minor Changes + +- Stabilize the `future.unstable_optimizeDeps` flag into `future.v3_optimizeDeps` ([#10092](https://github.com/remix-run/remix/pull/10092)) + +### Patch Changes + +- Updated dependencies: + - `@remix-run/node@2.13.0-pre.1` + - `@remix-run/server-runtime@2.13.0-pre.1` + ## 2.13.0-pre.0 ### Minor Changes diff --git a/packages/remix-dev/package.json b/packages/remix-dev/package.json index 374578aed16..649a72fbb50 100644 --- a/packages/remix-dev/package.json +++ b/packages/remix-dev/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/dev", - "version": "2.13.0-pre.0", + "version": "2.13.0-pre.1", "description": "Dev tools and CLI for Remix", "homepage": "https://remix.run", "bugs": { @@ -106,8 +106,8 @@ "wrangler": "^3.28.2" }, "peerDependencies": { - "@remix-run/react": "^2.13.0-pre.0", - "@remix-run/serve": "^2.13.0-pre.0", + "@remix-run/react": "^2.13.0-pre.1", + "@remix-run/serve": "^2.13.0-pre.1", "typescript": "^5.1.0", "vite": "^5.1.0", "wrangler": "^3.28.2" diff --git a/packages/remix-eslint-config/CHANGELOG.md b/packages/remix-eslint-config/CHANGELOG.md index 7534ce2f608..77c86f334a8 100644 --- a/packages/remix-eslint-config/CHANGELOG.md +++ b/packages/remix-eslint-config/CHANGELOG.md @@ -1,5 +1,7 @@ # `@remix-run/eslint-config` +## 2.13.0-pre.1 + ## 2.13.0-pre.0 ## 2.12.1 diff --git a/packages/remix-eslint-config/package.json b/packages/remix-eslint-config/package.json index 8b6d701bc00..8ea617a7097 100644 --- a/packages/remix-eslint-config/package.json +++ b/packages/remix-eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/eslint-config", - "version": "2.13.0-pre.0", + "version": "2.13.0-pre.1", "description": "ESLint configuration for Remix projects", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-express/CHANGELOG.md b/packages/remix-express/CHANGELOG.md index c88f00bdbfa..0b40d7e776f 100644 --- a/packages/remix-express/CHANGELOG.md +++ b/packages/remix-express/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/express` +## 2.13.0-pre.1 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/node@2.13.0-pre.1` + ## 2.13.0-pre.0 ### Patch Changes diff --git a/packages/remix-express/package.json b/packages/remix-express/package.json index 4fa93f363d3..73ca2f28e53 100644 --- a/packages/remix-express/package.json +++ b/packages/remix-express/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/express", - "version": "2.13.0-pre.0", + "version": "2.13.0-pre.1", "description": "Express server request handler for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-node/CHANGELOG.md b/packages/remix-node/CHANGELOG.md index 048f639b67a..eb1a2e58029 100644 --- a/packages/remix-node/CHANGELOG.md +++ b/packages/remix-node/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/node` +## 2.13.0-pre.1 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/server-runtime@2.13.0-pre.1` + ## 2.13.0-pre.0 ### Patch Changes diff --git a/packages/remix-node/package.json b/packages/remix-node/package.json index 5f15926bd5f..d547717e40d 100644 --- a/packages/remix-node/package.json +++ b/packages/remix-node/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/node", - "version": "2.13.0-pre.0", + "version": "2.13.0-pre.1", "description": "Node.js platform abstractions for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-react/CHANGELOG.md b/packages/remix-react/CHANGELOG.md index f03b30a57b0..9326d95c9f4 100644 --- a/packages/remix-react/CHANGELOG.md +++ b/packages/remix-react/CHANGELOG.md @@ -1,5 +1,13 @@ # `@remix-run/react` +## 2.13.0-pre.1 + +### Patch Changes + +- [REMOVE] bump router versions ([#10086](https://github.com/remix-run/remix/pull/10086)) +- Updated dependencies: + - `@remix-run/server-runtime@2.13.0-pre.1` + ## 2.13.0-pre.0 ### Minor Changes diff --git a/packages/remix-react/package.json b/packages/remix-react/package.json index fdaa0705fdd..27bf80e0a1f 100644 --- a/packages/remix-react/package.json +++ b/packages/remix-react/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/react", - "version": "2.13.0-pre.0", + "version": "2.13.0-pre.1", "description": "React DOM bindings for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-serve/CHANGELOG.md b/packages/remix-serve/CHANGELOG.md index e4a5536e688..ff216bbb39e 100644 --- a/packages/remix-serve/CHANGELOG.md +++ b/packages/remix-serve/CHANGELOG.md @@ -1,5 +1,13 @@ # `@remix-run/serve` +## 2.13.0-pre.1 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/express@2.13.0-pre.1` + - `@remix-run/node@2.13.0-pre.1` + ## 2.13.0-pre.0 ### Patch Changes diff --git a/packages/remix-serve/package.json b/packages/remix-serve/package.json index 8518c7f423d..420fd843a63 100644 --- a/packages/remix-serve/package.json +++ b/packages/remix-serve/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/serve", - "version": "2.13.0-pre.0", + "version": "2.13.0-pre.1", "description": "Production application server for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-server-runtime/CHANGELOG.md b/packages/remix-server-runtime/CHANGELOG.md index 57a6143ad73..5bb2436a237 100644 --- a/packages/remix-server-runtime/CHANGELOG.md +++ b/packages/remix-server-runtime/CHANGELOG.md @@ -1,5 +1,7 @@ # `@remix-run/server-runtime` +## 2.13.0-pre.1 + ## 2.13.0-pre.0 ### Minor Changes diff --git a/packages/remix-server-runtime/package.json b/packages/remix-server-runtime/package.json index cf5861f9924..b902ff28182 100644 --- a/packages/remix-server-runtime/package.json +++ b/packages/remix-server-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/server-runtime", - "version": "2.13.0-pre.0", + "version": "2.13.0-pre.1", "description": "Server runtime for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-testing/CHANGELOG.md b/packages/remix-testing/CHANGELOG.md index 7602b5ed89d..f91a477049a 100644 --- a/packages/remix-testing/CHANGELOG.md +++ b/packages/remix-testing/CHANGELOG.md @@ -1,5 +1,13 @@ # `@remix-run/testing` +## 2.13.0-pre.1 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/react@2.13.0-pre.1` + - `@remix-run/node@2.13.0-pre.1` + ## 2.13.0-pre.0 ### Patch Changes diff --git a/packages/remix-testing/package.json b/packages/remix-testing/package.json index 30db3c81527..e1767a7d10a 100644 --- a/packages/remix-testing/package.json +++ b/packages/remix-testing/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/testing", - "version": "2.13.0-pre.0", + "version": "2.13.0-pre.1", "description": "Testing utilities for Remix apps", "homepage": "https://remix.run", "bugs": { diff --git a/packages/remix/package.json b/packages/remix/package.json index 12ed6233620..cdd5672550d 100644 --- a/packages/remix/package.json +++ b/packages/remix/package.json @@ -1,6 +1,6 @@ { "name": "remix", - "version": "2.13.0-pre.0", + "version": "2.13.0-pre.1", "description": "A framework for building better websites", "homepage": "https://remix.run", "bugs": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 51d5b8ed9f7..4e3ff69611f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -548,13 +548,13 @@ importers: integration/helpers/vite-cloudflare-template: dependencies: '@remix-run/cloudflare': - specifier: 2.13.0-pre.0 + specifier: 2.13.0-pre.1 version: link:../../../packages/remix-cloudflare '@remix-run/cloudflare-pages': - specifier: 2.13.0-pre.0 + specifier: 2.13.0-pre.1 version: link:../../../packages/remix-cloudflare-pages '@remix-run/react': - specifier: 2.13.0-pre.0 + specifier: 2.13.0-pre.1 version: link:../../../packages/remix-react isbot: specifier: ^4.1.0 @@ -868,7 +868,7 @@ importers: specifier: workspace:* version: link:../remix-node '@remix-run/react': - specifier: ^2.13.0-pre.0 + specifier: ^2.13.0-pre.1 version: link:../remix-react '@remix-run/router': specifier: 1.20.0-pre.1 From 297a0cdbb7a40233d6682bd14bc4c72e5765a4fb Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Fri, 11 Oct 2024 10:10:32 -0400 Subject: [PATCH 23/44] Update relerase notes for pre.1 --- CHANGELOG.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 49e81b02911..fae6a96af42 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -230,7 +230,7 @@ Date: YYYY-MM-DD ## v2.13.0 -Date: 2024-10-10 +Date: 2024-10-11 ### What's Changed @@ -241,8 +241,9 @@ This release stabilizes a handful of "unstable" APIs in preparation for the pend - `unstable_data` → `data` (for use with Single Fetch) - `unstable_flushSync` → `flushSync` (`useSubmit`, `fetcher.load`, `fetcher.submit`) - `unstable_viewTransition` → `viewTransition` (``, ``, `useNavigate`, `useSubmit`) -- `future.unstable_singleFetch` → `future.v3_singleFetch` ([Docs](https://remix.run/docs/guides/single-fetch)) +- `future.unstable_optimizeDeps` → `future.v3_optimizeDeps` ([Docs](https://remix.run/docs/en/main/guides/dependency-optimization)) - `future.unstable_lazyRouteDiscovery` → `future.v3_lazyRouteDiscovery` ([Docs](https://remix.run/docs/guides/lazy-route-discovery)) +- `future.unstable_singleFetch` → `future.v3_singleFetch` ([Docs](https://remix.run/docs/guides/single-fetch)) ### Minor Changes @@ -254,9 +255,10 @@ This release stabilizes a handful of "unstable" APIs in preparation for the pend - Single Fetch: `unstable_data()` -> `data()` - `unstable_viewTransition` -> `viewTransition` (`Link`, `Form`, `navigate`, `submit`) - `unstable_flushSync>` -> `` (`Link`, `Form`, `navigate`, `submit`, `useFetcher`) -- Stabilize future flags ([#10072](https://github.com/remix-run/remix/pull/10072)) - - `future.unstable_singleFetch` -> `future.v3_singleFetch` +- Stabilize future flags ([#10072](https://github.com/remix-run/remix/pull/10072), [#10092](https://github.com/remix-run/remix/pull/10092)) - `future.unstable_lazyRouteDiscovery` -> `future.v3_lazyRouteDiscovery` + - `future.unstable_optimizeDeps` -> `future.v3_optimizeDeps` + - `future.unstable_singleFetch` -> `future.v3_singleFetch` ### Patch Changes From 0baab2ce74809e1f420fd33e50c6c360cea017aa Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Fri, 11 Oct 2024 14:37:02 -0400 Subject: [PATCH 24/44] Bump router stable (#10095) --- .changeset/fair-lions-impress.md | 5 +++ integration/package.json | 2 +- packages/remix-dev/package.json | 2 +- packages/remix-react/package.json | 6 +-- packages/remix-server-runtime/package.json | 2 +- packages/remix-testing/package.json | 4 +- pnpm-lock.yaml | 50 +++++++++++----------- 7 files changed, 38 insertions(+), 33 deletions(-) create mode 100644 .changeset/fair-lions-impress.md diff --git a/.changeset/fair-lions-impress.md b/.changeset/fair-lions-impress.md new file mode 100644 index 00000000000..a1eccc4f5ef --- /dev/null +++ b/.changeset/fair-lions-impress.md @@ -0,0 +1,5 @@ +--- +"@remix-run/react": patch +--- + +[REMOVE] bump router diff --git a/integration/package.json b/integration/package.json index 12af9b6f4a2..d17bcca979e 100644 --- a/integration/package.json +++ b/integration/package.json @@ -14,7 +14,7 @@ "@remix-run/dev": "workspace:*", "@remix-run/express": "workspace:*", "@remix-run/node": "workspace:*", - "@remix-run/router": "1.20.0-pre.1", + "@remix-run/router": "1.20.0", "@remix-run/server-runtime": "workspace:*", "@types/express": "^4.17.9", "@vanilla-extract/css": "^1.10.0", diff --git a/packages/remix-dev/package.json b/packages/remix-dev/package.json index 649a72fbb50..ca907938f54 100644 --- a/packages/remix-dev/package.json +++ b/packages/remix-dev/package.json @@ -32,7 +32,7 @@ "@mdx-js/mdx": "^2.3.0", "@npmcli/package-json": "^4.0.1", "@remix-run/node": "workspace:*", - "@remix-run/router": "1.20.0-pre.1", + "@remix-run/router": "1.20.0", "@remix-run/server-runtime": "workspace:*", "@types/mdx": "^2.0.5", "@vanilla-extract/integration": "^6.2.0", diff --git a/packages/remix-react/package.json b/packages/remix-react/package.json index 27bf80e0a1f..6809dbc1dba 100644 --- a/packages/remix-react/package.json +++ b/packages/remix-react/package.json @@ -19,10 +19,10 @@ "tsc": "tsc" }, "dependencies": { - "@remix-run/router": "1.20.0-pre.1", + "@remix-run/router": "1.20.0", "@remix-run/server-runtime": "workspace:*", - "react-router": "6.27.0-pre.1", - "react-router-dom": "6.27.0-pre.1", + "react-router": "6.27.0", + "react-router-dom": "6.27.0", "turbo-stream": "2.4.0" }, "devDependencies": { diff --git a/packages/remix-server-runtime/package.json b/packages/remix-server-runtime/package.json index b902ff28182..877e94b7128 100644 --- a/packages/remix-server-runtime/package.json +++ b/packages/remix-server-runtime/package.json @@ -19,7 +19,7 @@ "tsc": "tsc" }, "dependencies": { - "@remix-run/router": "1.20.0-pre.1", + "@remix-run/router": "1.20.0", "@types/cookie": "^0.6.0", "@web3-storage/multipart-parser": "^1.0.0", "cookie": "^0.6.0", diff --git a/packages/remix-testing/package.json b/packages/remix-testing/package.json index e1767a7d10a..df7d023a885 100644 --- a/packages/remix-testing/package.json +++ b/packages/remix-testing/package.json @@ -21,8 +21,8 @@ "dependencies": { "@remix-run/node": "workspace:*", "@remix-run/react": "workspace:*", - "@remix-run/router": "1.20.0-pre.1", - "react-router-dom": "6.27.0-pre.1" + "@remix-run/router": "1.20.0", + "react-router-dom": "6.27.0" }, "devDependencies": { "@remix-run/server-runtime": "workspace:*", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4e3ff69611f..d5ea80bf322 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -323,8 +323,8 @@ importers: specifier: workspace:* version: link:../packages/remix-node '@remix-run/router': - specifier: 1.20.0-pre.1 - version: 1.20.0-pre.1 + specifier: 1.20.0 + version: 1.20.0 '@remix-run/server-runtime': specifier: workspace:* version: link:../packages/remix-server-runtime @@ -871,8 +871,8 @@ importers: specifier: ^2.13.0-pre.1 version: link:../remix-react '@remix-run/router': - specifier: 1.20.0-pre.1 - version: 1.20.0-pre.1 + specifier: 1.20.0 + version: 1.20.0 '@remix-run/server-runtime': specifier: workspace:* version: link:../remix-server-runtime @@ -1217,17 +1217,17 @@ importers: packages/remix-react: dependencies: '@remix-run/router': - specifier: 1.20.0-pre.1 - version: 1.20.0-pre.1 + specifier: 1.20.0 + version: 1.20.0 '@remix-run/server-runtime': specifier: workspace:* version: link:../remix-server-runtime react-router: - specifier: 6.27.0-pre.1 - version: 6.27.0-pre.1(react@18.2.0) + specifier: 6.27.0 + version: 6.27.0(react@18.2.0) react-router-dom: - specifier: 6.27.0-pre.1 - version: 6.27.0-pre.1(react-dom@18.2.0)(react@18.2.0) + specifier: 6.27.0 + version: 6.27.0(react-dom@18.2.0)(react@18.2.0) turbo-stream: specifier: 2.4.0 version: 2.4.0 @@ -1303,8 +1303,8 @@ importers: packages/remix-server-runtime: dependencies: '@remix-run/router': - specifier: 1.20.0-pre.1 - version: 1.20.0-pre.1 + specifier: 1.20.0 + version: 1.20.0 '@types/cookie': specifier: ^0.6.0 version: 0.6.0 @@ -1340,11 +1340,11 @@ importers: specifier: workspace:* version: link:../remix-react '@remix-run/router': - specifier: 1.20.0-pre.1 - version: 1.20.0-pre.1 + specifier: 1.20.0 + version: 1.20.0 react-router-dom: - specifier: 6.27.0-pre.1 - version: 6.27.0-pre.1(react-dom@18.2.0)(react@18.2.0) + specifier: 6.27.0 + version: 6.27.0(react-dom@18.2.0)(react@18.2.0) devDependencies: '@remix-run/server-runtime': specifier: workspace:* @@ -4206,8 +4206,8 @@ packages: - encoding dev: false - /@remix-run/router@1.20.0-pre.1: - resolution: {integrity: sha512-zwkuNYKRQIKmm3X+BjaGVcJKYI4viyQSN8YJ8AFylV2dovn+jRQ7zZwOJGR3nAPvE/yEn0ZC9xwJwJwnRdCMCA==} + /@remix-run/router@1.20.0: + resolution: {integrity: sha512-mUnk8rPJBI9loFDZ+YzPGdeniYK+FTmRD1TMCz7ev2SNIozyKKpnGgsxO34u6Z4z/t0ITuu7voi/AshfsGsgFg==} engines: {node: '>=14.0.0'} dev: false @@ -12778,26 +12778,26 @@ packages: engines: {node: '>=0.10.0'} dev: false - /react-router-dom@6.27.0-pre.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-KF1AoPXCdfq03rL4m0yTk4hFKCTOxewlmZ9eK2R6dXONJ+DWRU2RB0wMyjv+xPcQ4Fy9h1JxnGZiL/CH37Urjw==} + /react-router-dom@6.27.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-+bvtFWMC0DgAFrfKXKG9Fc+BcXWRUO1aJIihbB79xaeq0v5UzfvnM5houGUm1Y461WVRcgAQ+Clh5rdb1eCx4g==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' dependencies: - '@remix-run/router': 1.20.0-pre.1 + '@remix-run/router': 1.20.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-router: 6.27.0-pre.1(react@18.2.0) + react-router: 6.27.0(react@18.2.0) dev: false - /react-router@6.27.0-pre.1(react@18.2.0): - resolution: {integrity: sha512-5Joseke2P3xvrUBejDbyRrhEimuIDPelAYcYCeckQpULm++4/8SC9ndnBMWmXQ8rTsBwYUDSOjCC+0ZV50t9Lg==} + /react-router@6.27.0(react@18.2.0): + resolution: {integrity: sha512-YA+HGZXz4jaAkVoYBE98VQl+nVzI+cVI2Oj/06F5ZM+0u3TgedN9Y9kmMRo2mnkSK2nCpNQn0DVob4HCsY/WLw==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' dependencies: - '@remix-run/router': 1.20.0-pre.1 + '@remix-run/router': 1.20.0 react: 18.2.0 dev: false From dc15c3d5719336abbe0f7498f4e143b23090d1a2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 11 Oct 2024 14:50:51 -0400 Subject: [PATCH 25/44] chore: Update version for release (pre) (#10096) Co-authored-by: github-actions[bot] --- .changeset/pre.json | 1 + integration/helpers/vite-cloudflare-template/package.json | 6 +++--- packages/create-remix/CHANGELOG.md | 2 ++ packages/create-remix/package.json | 2 +- packages/remix-architect/CHANGELOG.md | 7 +++++++ packages/remix-architect/package.json | 2 +- packages/remix-cloudflare-pages/CHANGELOG.md | 7 +++++++ packages/remix-cloudflare-pages/package.json | 2 +- packages/remix-cloudflare-workers/CHANGELOG.md | 7 +++++++ packages/remix-cloudflare-workers/package.json | 2 +- packages/remix-cloudflare/CHANGELOG.md | 7 +++++++ packages/remix-cloudflare/package.json | 2 +- packages/remix-css-bundle/CHANGELOG.md | 2 ++ packages/remix-css-bundle/package.json | 2 +- packages/remix-deno/CHANGELOG.md | 7 +++++++ packages/remix-deno/package.json | 2 +- packages/remix-dev/CHANGELOG.md | 8 ++++++++ packages/remix-dev/package.json | 6 +++--- packages/remix-eslint-config/CHANGELOG.md | 2 ++ packages/remix-eslint-config/package.json | 2 +- packages/remix-express/CHANGELOG.md | 7 +++++++ packages/remix-express/package.json | 2 +- packages/remix-node/CHANGELOG.md | 7 +++++++ packages/remix-node/package.json | 2 +- packages/remix-react/CHANGELOG.md | 8 ++++++++ packages/remix-react/package.json | 2 +- packages/remix-serve/CHANGELOG.md | 8 ++++++++ packages/remix-serve/package.json | 2 +- packages/remix-server-runtime/CHANGELOG.md | 2 ++ packages/remix-server-runtime/package.json | 2 +- packages/remix-testing/CHANGELOG.md | 8 ++++++++ packages/remix-testing/package.json | 2 +- packages/remix/package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 34 files changed, 115 insertions(+), 25 deletions(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index 92a7de7f1b7..2cf594456b0 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -27,6 +27,7 @@ }, "changesets": [ "big-buckets-pretend", + "fair-lions-impress", "hot-dingos-attend", "rare-shoes-enjoy", "short-maps-reflect", diff --git a/integration/helpers/vite-cloudflare-template/package.json b/integration/helpers/vite-cloudflare-template/package.json index f6f29f83cec..7f3dc8f34fc 100644 --- a/integration/helpers/vite-cloudflare-template/package.json +++ b/integration/helpers/vite-cloudflare-template/package.json @@ -11,9 +11,9 @@ "typecheck": "tsc" }, "dependencies": { - "@remix-run/cloudflare": "2.13.0-pre.1", - "@remix-run/cloudflare-pages": "2.13.0-pre.1", - "@remix-run/react": "2.13.0-pre.1", + "@remix-run/cloudflare": "2.13.0-pre.2", + "@remix-run/cloudflare-pages": "2.13.0-pre.2", + "@remix-run/react": "2.13.0-pre.2", "isbot": "^4.1.0", "miniflare": "^3.20231030.4", "react": "^18.2.0", diff --git a/packages/create-remix/CHANGELOG.md b/packages/create-remix/CHANGELOG.md index cd81bc103d0..d779a62b479 100644 --- a/packages/create-remix/CHANGELOG.md +++ b/packages/create-remix/CHANGELOG.md @@ -1,5 +1,7 @@ # `create-remix` +## 2.13.0-pre.2 + ## 2.13.0-pre.1 ## 2.13.0-pre.0 diff --git a/packages/create-remix/package.json b/packages/create-remix/package.json index 341589acab8..71f050f0460 100644 --- a/packages/create-remix/package.json +++ b/packages/create-remix/package.json @@ -1,6 +1,6 @@ { "name": "create-remix", - "version": "2.13.0-pre.1", + "version": "2.13.0-pre.2", "description": "Create a new Remix app", "homepage": "https://remix.run", "bugs": { diff --git a/packages/remix-architect/CHANGELOG.md b/packages/remix-architect/CHANGELOG.md index 22e7c552af6..0144e21cb19 100644 --- a/packages/remix-architect/CHANGELOG.md +++ b/packages/remix-architect/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/architect` +## 2.13.0-pre.2 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/node@2.13.0-pre.2` + ## 2.13.0-pre.1 ### Patch Changes diff --git a/packages/remix-architect/package.json b/packages/remix-architect/package.json index cbc974f19bb..60384377020 100644 --- a/packages/remix-architect/package.json +++ b/packages/remix-architect/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/architect", - "version": "2.13.0-pre.1", + "version": "2.13.0-pre.2", "description": "Architect server request handler for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-cloudflare-pages/CHANGELOG.md b/packages/remix-cloudflare-pages/CHANGELOG.md index 299c0d02636..d15a219636b 100644 --- a/packages/remix-cloudflare-pages/CHANGELOG.md +++ b/packages/remix-cloudflare-pages/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/cloudflare-pages` +## 2.13.0-pre.2 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/cloudflare@2.13.0-pre.2` + ## 2.13.0-pre.1 ### Patch Changes diff --git a/packages/remix-cloudflare-pages/package.json b/packages/remix-cloudflare-pages/package.json index 21edaf4f34d..4ae946a0e30 100644 --- a/packages/remix-cloudflare-pages/package.json +++ b/packages/remix-cloudflare-pages/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/cloudflare-pages", - "version": "2.13.0-pre.1", + "version": "2.13.0-pre.2", "description": "Cloudflare Pages request handler for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-cloudflare-workers/CHANGELOG.md b/packages/remix-cloudflare-workers/CHANGELOG.md index 757a0146a13..8fa5e1dc8bb 100644 --- a/packages/remix-cloudflare-workers/CHANGELOG.md +++ b/packages/remix-cloudflare-workers/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/cloudflare-workers` +## 2.13.0-pre.2 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/cloudflare@2.13.0-pre.2` + ## 2.13.0-pre.1 ### Patch Changes diff --git a/packages/remix-cloudflare-workers/package.json b/packages/remix-cloudflare-workers/package.json index 4f378893995..70c948f2a61 100644 --- a/packages/remix-cloudflare-workers/package.json +++ b/packages/remix-cloudflare-workers/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/cloudflare-workers", - "version": "2.13.0-pre.1", + "version": "2.13.0-pre.2", "description": "Cloudflare worker request handler for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-cloudflare/CHANGELOG.md b/packages/remix-cloudflare/CHANGELOG.md index 55b30843ef4..644f67996b3 100644 --- a/packages/remix-cloudflare/CHANGELOG.md +++ b/packages/remix-cloudflare/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/cloudflare` +## 2.13.0-pre.2 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/server-runtime@2.13.0-pre.2` + ## 2.13.0-pre.1 ### Patch Changes diff --git a/packages/remix-cloudflare/package.json b/packages/remix-cloudflare/package.json index 2d9bb0a2a84..ad7472e3ca1 100644 --- a/packages/remix-cloudflare/package.json +++ b/packages/remix-cloudflare/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/cloudflare", - "version": "2.13.0-pre.1", + "version": "2.13.0-pre.2", "description": "Cloudflare platform abstractions for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-css-bundle/CHANGELOG.md b/packages/remix-css-bundle/CHANGELOG.md index b23e7b52685..3e35cb9d81f 100644 --- a/packages/remix-css-bundle/CHANGELOG.md +++ b/packages/remix-css-bundle/CHANGELOG.md @@ -1,5 +1,7 @@ # @remix-run/css-bundle +## 2.13.0-pre.2 + ## 2.13.0-pre.1 ## 2.13.0-pre.0 diff --git a/packages/remix-css-bundle/package.json b/packages/remix-css-bundle/package.json index c85f3c3c649..ee56fc3000f 100644 --- a/packages/remix-css-bundle/package.json +++ b/packages/remix-css-bundle/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/css-bundle", - "version": "2.13.0-pre.1", + "version": "2.13.0-pre.2", "description": "CSS bundle href when using CSS bundling features in Remix", "homepage": "https://remix.run", "bugs": { diff --git a/packages/remix-deno/CHANGELOG.md b/packages/remix-deno/CHANGELOG.md index c90400d4ffd..57b38d1b739 100644 --- a/packages/remix-deno/CHANGELOG.md +++ b/packages/remix-deno/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/deno` +## 2.13.0-pre.2 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/server-runtime@2.13.0-pre.2` + ## 2.13.0-pre.1 ### Patch Changes diff --git a/packages/remix-deno/package.json b/packages/remix-deno/package.json index 8a1df7c1356..8daf8e155f9 100644 --- a/packages/remix-deno/package.json +++ b/packages/remix-deno/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/deno", - "version": "2.13.0-pre.1", + "version": "2.13.0-pre.2", "description": "Deno platform abstractions for Remix", "homepage": "https://remix.run", "main": "./index.ts", diff --git a/packages/remix-dev/CHANGELOG.md b/packages/remix-dev/CHANGELOG.md index 7219159fcfc..5012920be98 100644 --- a/packages/remix-dev/CHANGELOG.md +++ b/packages/remix-dev/CHANGELOG.md @@ -1,5 +1,13 @@ # `@remix-run/dev` +## 2.13.0-pre.2 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/node@2.13.0-pre.2` + - `@remix-run/server-runtime@2.13.0-pre.2` + ## 2.13.0-pre.1 ### Minor Changes diff --git a/packages/remix-dev/package.json b/packages/remix-dev/package.json index ca907938f54..af3e7c2733c 100644 --- a/packages/remix-dev/package.json +++ b/packages/remix-dev/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/dev", - "version": "2.13.0-pre.1", + "version": "2.13.0-pre.2", "description": "Dev tools and CLI for Remix", "homepage": "https://remix.run", "bugs": { @@ -106,8 +106,8 @@ "wrangler": "^3.28.2" }, "peerDependencies": { - "@remix-run/react": "^2.13.0-pre.1", - "@remix-run/serve": "^2.13.0-pre.1", + "@remix-run/react": "^2.13.0-pre.2", + "@remix-run/serve": "^2.13.0-pre.2", "typescript": "^5.1.0", "vite": "^5.1.0", "wrangler": "^3.28.2" diff --git a/packages/remix-eslint-config/CHANGELOG.md b/packages/remix-eslint-config/CHANGELOG.md index 77c86f334a8..af16bd11062 100644 --- a/packages/remix-eslint-config/CHANGELOG.md +++ b/packages/remix-eslint-config/CHANGELOG.md @@ -1,5 +1,7 @@ # `@remix-run/eslint-config` +## 2.13.0-pre.2 + ## 2.13.0-pre.1 ## 2.13.0-pre.0 diff --git a/packages/remix-eslint-config/package.json b/packages/remix-eslint-config/package.json index 8ea617a7097..5733c8aa57a 100644 --- a/packages/remix-eslint-config/package.json +++ b/packages/remix-eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/eslint-config", - "version": "2.13.0-pre.1", + "version": "2.13.0-pre.2", "description": "ESLint configuration for Remix projects", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-express/CHANGELOG.md b/packages/remix-express/CHANGELOG.md index 0b40d7e776f..4c76c8b6d46 100644 --- a/packages/remix-express/CHANGELOG.md +++ b/packages/remix-express/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/express` +## 2.13.0-pre.2 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/node@2.13.0-pre.2` + ## 2.13.0-pre.1 ### Patch Changes diff --git a/packages/remix-express/package.json b/packages/remix-express/package.json index 73ca2f28e53..42ae667d8ff 100644 --- a/packages/remix-express/package.json +++ b/packages/remix-express/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/express", - "version": "2.13.0-pre.1", + "version": "2.13.0-pre.2", "description": "Express server request handler for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-node/CHANGELOG.md b/packages/remix-node/CHANGELOG.md index eb1a2e58029..5fef32fb4be 100644 --- a/packages/remix-node/CHANGELOG.md +++ b/packages/remix-node/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/node` +## 2.13.0-pre.2 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/server-runtime@2.13.0-pre.2` + ## 2.13.0-pre.1 ### Patch Changes diff --git a/packages/remix-node/package.json b/packages/remix-node/package.json index d547717e40d..2bca34ff67b 100644 --- a/packages/remix-node/package.json +++ b/packages/remix-node/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/node", - "version": "2.13.0-pre.1", + "version": "2.13.0-pre.2", "description": "Node.js platform abstractions for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-react/CHANGELOG.md b/packages/remix-react/CHANGELOG.md index 9326d95c9f4..0b578beb244 100644 --- a/packages/remix-react/CHANGELOG.md +++ b/packages/remix-react/CHANGELOG.md @@ -1,5 +1,13 @@ # `@remix-run/react` +## 2.13.0-pre.2 + +### Patch Changes + +- [REMOVE] bump router ([#10095](https://github.com/remix-run/remix/pull/10095)) +- Updated dependencies: + - `@remix-run/server-runtime@2.13.0-pre.2` + ## 2.13.0-pre.1 ### Patch Changes diff --git a/packages/remix-react/package.json b/packages/remix-react/package.json index 6809dbc1dba..ca0b13c9e40 100644 --- a/packages/remix-react/package.json +++ b/packages/remix-react/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/react", - "version": "2.13.0-pre.1", + "version": "2.13.0-pre.2", "description": "React DOM bindings for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-serve/CHANGELOG.md b/packages/remix-serve/CHANGELOG.md index ff216bbb39e..6b91d626321 100644 --- a/packages/remix-serve/CHANGELOG.md +++ b/packages/remix-serve/CHANGELOG.md @@ -1,5 +1,13 @@ # `@remix-run/serve` +## 2.13.0-pre.2 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/express@2.13.0-pre.2` + - `@remix-run/node@2.13.0-pre.2` + ## 2.13.0-pre.1 ### Patch Changes diff --git a/packages/remix-serve/package.json b/packages/remix-serve/package.json index 420fd843a63..204b32e9175 100644 --- a/packages/remix-serve/package.json +++ b/packages/remix-serve/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/serve", - "version": "2.13.0-pre.1", + "version": "2.13.0-pre.2", "description": "Production application server for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-server-runtime/CHANGELOG.md b/packages/remix-server-runtime/CHANGELOG.md index 5bb2436a237..658567285fc 100644 --- a/packages/remix-server-runtime/CHANGELOG.md +++ b/packages/remix-server-runtime/CHANGELOG.md @@ -1,5 +1,7 @@ # `@remix-run/server-runtime` +## 2.13.0-pre.2 + ## 2.13.0-pre.1 ## 2.13.0-pre.0 diff --git a/packages/remix-server-runtime/package.json b/packages/remix-server-runtime/package.json index 877e94b7128..45461f12ae6 100644 --- a/packages/remix-server-runtime/package.json +++ b/packages/remix-server-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/server-runtime", - "version": "2.13.0-pre.1", + "version": "2.13.0-pre.2", "description": "Server runtime for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-testing/CHANGELOG.md b/packages/remix-testing/CHANGELOG.md index f91a477049a..fa3474cd243 100644 --- a/packages/remix-testing/CHANGELOG.md +++ b/packages/remix-testing/CHANGELOG.md @@ -1,5 +1,13 @@ # `@remix-run/testing` +## 2.13.0-pre.2 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/react@2.13.0-pre.2` + - `@remix-run/node@2.13.0-pre.2` + ## 2.13.0-pre.1 ### Patch Changes diff --git a/packages/remix-testing/package.json b/packages/remix-testing/package.json index df7d023a885..b67f612985e 100644 --- a/packages/remix-testing/package.json +++ b/packages/remix-testing/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/testing", - "version": "2.13.0-pre.1", + "version": "2.13.0-pre.2", "description": "Testing utilities for Remix apps", "homepage": "https://remix.run", "bugs": { diff --git a/packages/remix/package.json b/packages/remix/package.json index cdd5672550d..4533f761335 100644 --- a/packages/remix/package.json +++ b/packages/remix/package.json @@ -1,6 +1,6 @@ { "name": "remix", - "version": "2.13.0-pre.1", + "version": "2.13.0-pre.2", "description": "A framework for building better websites", "homepage": "https://remix.run", "bugs": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d5ea80bf322..232074d4ce7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -548,13 +548,13 @@ importers: integration/helpers/vite-cloudflare-template: dependencies: '@remix-run/cloudflare': - specifier: 2.13.0-pre.1 + specifier: 2.13.0-pre.2 version: link:../../../packages/remix-cloudflare '@remix-run/cloudflare-pages': - specifier: 2.13.0-pre.1 + specifier: 2.13.0-pre.2 version: link:../../../packages/remix-cloudflare-pages '@remix-run/react': - specifier: 2.13.0-pre.1 + specifier: 2.13.0-pre.2 version: link:../../../packages/remix-react isbot: specifier: ^4.1.0 @@ -868,7 +868,7 @@ importers: specifier: workspace:* version: link:../remix-node '@remix-run/react': - specifier: ^2.13.0-pre.1 + specifier: ^2.13.0-pre.2 version: link:../remix-react '@remix-run/router': specifier: 1.20.0 From bd9703f80ca3c18145f11e189b693911b44fc1b5 Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Fri, 11 Oct 2024 14:59:08 -0400 Subject: [PATCH 26/44] 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 2cf594456b0..ed1c411f10f 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 d61e6852b52fcf381874455613e0c9fe8f4c0626 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 11 Oct 2024 15:05:35 -0400 Subject: [PATCH 27/44] chore: Update version for release (#10097) Co-authored-by: github-actions[bot] Co-authored-by: Matt Brophy --- .changeset/big-buckets-pretend.md | 5 --- .changeset/fair-lions-impress.md | 5 --- .changeset/hot-dingos-attend.md | 5 --- .changeset/pre.json | 38 ------------------- .changeset/rare-shoes-enjoy.md | 15 -------- .changeset/short-maps-reflect.md | 10 ----- .changeset/silly-gifts-wash.md | 6 --- .changeset/spotty-papayas-remember.md | 5 --- .changeset/stabilize-future-flags.md | 9 ----- .../vite-cloudflare-template/package.json | 6 +-- packages/create-remix/CHANGELOG.md | 6 +-- packages/create-remix/package.json | 2 +- packages/remix-architect/CHANGELOG.md | 18 +-------- packages/remix-architect/package.json | 2 +- packages/remix-cloudflare-pages/CHANGELOG.md | 18 +-------- packages/remix-cloudflare-pages/package.json | 2 +- .../remix-cloudflare-workers/CHANGELOG.md | 18 +-------- .../remix-cloudflare-workers/package.json | 2 +- packages/remix-cloudflare/CHANGELOG.md | 18 +-------- packages/remix-cloudflare/package.json | 2 +- packages/remix-css-bundle/CHANGELOG.md | 6 +-- packages/remix-css-bundle/package.json | 2 +- packages/remix-deno/CHANGELOG.md | 18 +-------- packages/remix-deno/package.json | 2 +- packages/remix-dev/CHANGELOG.md | 32 ++-------------- packages/remix-dev/package.json | 6 +-- packages/remix-eslint-config/CHANGELOG.md | 6 +-- packages/remix-eslint-config/package.json | 2 +- packages/remix-express/CHANGELOG.md | 18 +-------- packages/remix-express/package.json | 2 +- packages/remix-node/CHANGELOG.md | 18 +-------- packages/remix-node/package.json | 2 +- packages/remix-react/CHANGELOG.md | 22 +---------- packages/remix-react/package.json | 2 +- packages/remix-serve/CHANGELOG.md | 22 ++--------- packages/remix-serve/package.json | 2 +- packages/remix-server-runtime/CHANGELOG.md | 8 +--- packages/remix-server-runtime/package.json | 2 +- packages/remix-testing/CHANGELOG.md | 22 ++--------- packages/remix-testing/package.json | 2 +- packages/remix/package.json | 2 +- pnpm-lock.yaml | 8 ++-- 42 files changed, 58 insertions(+), 340 deletions(-) delete mode 100644 .changeset/big-buckets-pretend.md delete mode 100644 .changeset/fair-lions-impress.md delete mode 100644 .changeset/hot-dingos-attend.md delete mode 100644 .changeset/pre.json delete mode 100644 .changeset/rare-shoes-enjoy.md delete mode 100644 .changeset/short-maps-reflect.md delete mode 100644 .changeset/silly-gifts-wash.md delete mode 100644 .changeset/spotty-papayas-remember.md delete mode 100644 .changeset/stabilize-future-flags.md diff --git a/.changeset/big-buckets-pretend.md b/.changeset/big-buckets-pretend.md deleted file mode 100644 index cb28f7a982b..00000000000 --- a/.changeset/big-buckets-pretend.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@remix-run/react": patch ---- - -[REMOVE] bump router versions diff --git a/.changeset/fair-lions-impress.md b/.changeset/fair-lions-impress.md deleted file mode 100644 index a1eccc4f5ef..00000000000 --- a/.changeset/fair-lions-impress.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@remix-run/react": patch ---- - -[REMOVE] bump router diff --git a/.changeset/hot-dingos-attend.md b/.changeset/hot-dingos-attend.md deleted file mode 100644 index 6122e6e836e..00000000000 --- a/.changeset/hot-dingos-attend.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@remix-run/dev": minor ---- - -Stabilize the `future.unstable_optimizeDeps` flag into `future.v3_optimizeDeps` diff --git a/.changeset/pre.json b/.changeset/pre.json deleted file mode 100644 index ed1c411f10f..00000000000 --- a/.changeset/pre.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "mode": "exit", - "tag": "pre", - "initialVersions": { - "integration": "0.0.0", - "integration-cf-template": "0.0.0", - "integration-deno-template": "0.0.0", - "integration-node-template": "0.0.0", - "integration-vite-cloudflare-template": "0.0.0", - "integration-vite-template": "0.0.0", - "create-remix": "2.12.1", - "remix": "2.12.1", - "@remix-run/architect": "2.12.1", - "@remix-run/cloudflare": "2.12.1", - "@remix-run/cloudflare-pages": "2.12.1", - "@remix-run/cloudflare-workers": "2.12.1", - "@remix-run/css-bundle": "2.12.1", - "@remix-run/deno": "2.12.1", - "@remix-run/dev": "2.12.1", - "@remix-run/eslint-config": "2.12.1", - "@remix-run/express": "2.12.1", - "@remix-run/node": "2.12.1", - "@remix-run/react": "2.12.1", - "@remix-run/serve": "2.12.1", - "@remix-run/server-runtime": "2.12.1", - "@remix-run/testing": "2.12.1" - }, - "changesets": [ - "big-buckets-pretend", - "fair-lions-impress", - "hot-dingos-attend", - "rare-shoes-enjoy", - "short-maps-reflect", - "silly-gifts-wash", - "spotty-papayas-remember", - "stabilize-future-flags" - ] -} diff --git a/.changeset/rare-shoes-enjoy.md b/.changeset/rare-shoes-enjoy.md deleted file mode 100644 index 60a0c856cbc..00000000000 --- a/.changeset/rare-shoes-enjoy.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -"@remix-run/dev": minor -"@remix-run/react": minor -"@remix-run/server-runtime": minor ---- - -Stabilize React Router APIs in Remix - -- Adopt stabilized React Router APIs internally - - Single Fetch: `unstable_dataStrategy` -> `dataStrategy` - - Lazy Route Discovery: `unstable_patchRoutesOnNavigation` -> `patchRoutesOnNavigation` -- Stabilize public-facing APIs - - Single Fetch: `unstable_data()` -> `data()` - - `unstable_viewTransition` -> `viewTransition` (`Link`, `Form`, `navigate`, `submit`) - - `unstable_flushSync>` -> `` (`Link`, `Form`, `navigate`, `submit`, `useFetcher`) diff --git a/.changeset/short-maps-reflect.md b/.changeset/short-maps-reflect.md deleted file mode 100644 index 4bb701e6a97..00000000000 --- a/.changeset/short-maps-reflect.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"@remix-run/dev": patch ---- - -Stop passing `request.signal` as the `renderToReadableStream` `signal` to abort server rendering for cloudflare/deno runtimes because by the time that `request` is aborted, aborting the rendering is useless because there's no way for React to flush down the unresolved boundaries - -- This has been incorrect for some time, but only recently exposed due to a bug in how we were aborting requests when running via `remix vite:dev` because we were incorrectly aborting requests after successful renders - which was causing us to abort a completed React render, and try to close an already closed `ReadableStream`. -- This has likely not shown up in any production scenarios because cloudflare/deno production runtimes are (correctly) not aborting the `request.signal` on successful renders -- The built-in `entry.server` files no longer pass a `signal` to `renderToReadableStream` because adding a timeout-based abort signal to the default behavior would constitute a breaking change -- Users can configure this abort behavior via their own `entry.server` via `remix reveal entry.server`, and the template entry.server files have been updated with an example approach for newly created Remix apps diff --git a/.changeset/silly-gifts-wash.md b/.changeset/silly-gifts-wash.md deleted file mode 100644 index f17c9084b4d..00000000000 --- a/.changeset/silly-gifts-wash.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@remix-run/dev": patch -"@remix-run/express": patch ---- - -Fix adapter logic for aborting `request.signal` so we don't incorrectly abort on the `close` event for successful requests diff --git a/.changeset/spotty-papayas-remember.md b/.changeset/spotty-papayas-remember.md deleted file mode 100644 index f8d2f073a3f..00000000000 --- a/.changeset/spotty-papayas-remember.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@remix-run/react": patch ---- - -Fix bug with `clientLoader.hydrate` in a layout route when hydrating with bubbled errors diff --git a/.changeset/stabilize-future-flags.md b/.changeset/stabilize-future-flags.md deleted file mode 100644 index b66098c5a34..00000000000 --- a/.changeset/stabilize-future-flags.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@remix-run/dev": minor -"@remix-run/react": minor -"@remix-run/server-runtime": minor ---- - -Stabilize future flags - - `future.unstable_singleFetch` -> `future.v3_singleFetch` - - `future.unstable_lazyRouteDiscovery` -> `future.v3_lazyRouteDiscovery` diff --git a/integration/helpers/vite-cloudflare-template/package.json b/integration/helpers/vite-cloudflare-template/package.json index 7f3dc8f34fc..de435b53d85 100644 --- a/integration/helpers/vite-cloudflare-template/package.json +++ b/integration/helpers/vite-cloudflare-template/package.json @@ -11,9 +11,9 @@ "typecheck": "tsc" }, "dependencies": { - "@remix-run/cloudflare": "2.13.0-pre.2", - "@remix-run/cloudflare-pages": "2.13.0-pre.2", - "@remix-run/react": "2.13.0-pre.2", + "@remix-run/cloudflare": "2.13.0", + "@remix-run/cloudflare-pages": "2.13.0", + "@remix-run/react": "2.13.0", "isbot": "^4.1.0", "miniflare": "^3.20231030.4", "react": "^18.2.0", diff --git a/packages/create-remix/CHANGELOG.md b/packages/create-remix/CHANGELOG.md index d779a62b479..fbc3d266508 100644 --- a/packages/create-remix/CHANGELOG.md +++ b/packages/create-remix/CHANGELOG.md @@ -1,10 +1,8 @@ # `create-remix` -## 2.13.0-pre.2 +## 2.13.0 -## 2.13.0-pre.1 - -## 2.13.0-pre.0 +No significant changes to this package were made in this release. [See the repo `CHANGELOG.md`](https://github.com/remix-run/remix/blob/main/CHANGELOG.md) for an overview of all changes in v2.13.0. ## 2.12.1 diff --git a/packages/create-remix/package.json b/packages/create-remix/package.json index 71f050f0460..24424148e5b 100644 --- a/packages/create-remix/package.json +++ b/packages/create-remix/package.json @@ -1,6 +1,6 @@ { "name": "create-remix", - "version": "2.13.0-pre.2", + "version": "2.13.0", "description": "Create a new Remix app", "homepage": "https://remix.run", "bugs": { diff --git a/packages/remix-architect/CHANGELOG.md b/packages/remix-architect/CHANGELOG.md index 0144e21cb19..df978b460fe 100644 --- a/packages/remix-architect/CHANGELOG.md +++ b/packages/remix-architect/CHANGELOG.md @@ -1,25 +1,11 @@ # `@remix-run/architect` -## 2.13.0-pre.2 +## 2.13.0 ### Patch Changes - Updated dependencies: - - `@remix-run/node@2.13.0-pre.2` - -## 2.13.0-pre.1 - -### Patch Changes - -- Updated dependencies: - - `@remix-run/node@2.13.0-pre.1` - -## 2.13.0-pre.0 - -### Patch Changes - -- Updated dependencies: - - `@remix-run/node@2.13.0-pre.0` + - `@remix-run/node@2.13.0` ## 2.12.1 diff --git a/packages/remix-architect/package.json b/packages/remix-architect/package.json index 60384377020..7dd3b59f1ba 100644 --- a/packages/remix-architect/package.json +++ b/packages/remix-architect/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/architect", - "version": "2.13.0-pre.2", + "version": "2.13.0", "description": "Architect server request handler for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-cloudflare-pages/CHANGELOG.md b/packages/remix-cloudflare-pages/CHANGELOG.md index d15a219636b..5aa3199898b 100644 --- a/packages/remix-cloudflare-pages/CHANGELOG.md +++ b/packages/remix-cloudflare-pages/CHANGELOG.md @@ -1,25 +1,11 @@ # `@remix-run/cloudflare-pages` -## 2.13.0-pre.2 +## 2.13.0 ### Patch Changes - Updated dependencies: - - `@remix-run/cloudflare@2.13.0-pre.2` - -## 2.13.0-pre.1 - -### Patch Changes - -- Updated dependencies: - - `@remix-run/cloudflare@2.13.0-pre.1` - -## 2.13.0-pre.0 - -### Patch Changes - -- Updated dependencies: - - `@remix-run/cloudflare@2.13.0-pre.0` + - `@remix-run/cloudflare@2.13.0` ## 2.12.1 diff --git a/packages/remix-cloudflare-pages/package.json b/packages/remix-cloudflare-pages/package.json index 4ae946a0e30..ca570257735 100644 --- a/packages/remix-cloudflare-pages/package.json +++ b/packages/remix-cloudflare-pages/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/cloudflare-pages", - "version": "2.13.0-pre.2", + "version": "2.13.0", "description": "Cloudflare Pages request handler for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-cloudflare-workers/CHANGELOG.md b/packages/remix-cloudflare-workers/CHANGELOG.md index 8fa5e1dc8bb..c69bef8deda 100644 --- a/packages/remix-cloudflare-workers/CHANGELOG.md +++ b/packages/remix-cloudflare-workers/CHANGELOG.md @@ -1,25 +1,11 @@ # `@remix-run/cloudflare-workers` -## 2.13.0-pre.2 +## 2.13.0 ### Patch Changes - Updated dependencies: - - `@remix-run/cloudflare@2.13.0-pre.2` - -## 2.13.0-pre.1 - -### Patch Changes - -- Updated dependencies: - - `@remix-run/cloudflare@2.13.0-pre.1` - -## 2.13.0-pre.0 - -### Patch Changes - -- Updated dependencies: - - `@remix-run/cloudflare@2.13.0-pre.0` + - `@remix-run/cloudflare@2.13.0` ## 2.12.1 diff --git a/packages/remix-cloudflare-workers/package.json b/packages/remix-cloudflare-workers/package.json index 70c948f2a61..cc154fb3f46 100644 --- a/packages/remix-cloudflare-workers/package.json +++ b/packages/remix-cloudflare-workers/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/cloudflare-workers", - "version": "2.13.0-pre.2", + "version": "2.13.0", "description": "Cloudflare worker request handler for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-cloudflare/CHANGELOG.md b/packages/remix-cloudflare/CHANGELOG.md index 644f67996b3..cf2a7541231 100644 --- a/packages/remix-cloudflare/CHANGELOG.md +++ b/packages/remix-cloudflare/CHANGELOG.md @@ -1,25 +1,11 @@ # `@remix-run/cloudflare` -## 2.13.0-pre.2 +## 2.13.0 ### Patch Changes - Updated dependencies: - - `@remix-run/server-runtime@2.13.0-pre.2` - -## 2.13.0-pre.1 - -### Patch Changes - -- Updated dependencies: - - `@remix-run/server-runtime@2.13.0-pre.1` - -## 2.13.0-pre.0 - -### Patch Changes - -- Updated dependencies: - - `@remix-run/server-runtime@2.13.0-pre.0` + - `@remix-run/server-runtime@2.13.0` ## 2.12.1 diff --git a/packages/remix-cloudflare/package.json b/packages/remix-cloudflare/package.json index ad7472e3ca1..222dc93fc48 100644 --- a/packages/remix-cloudflare/package.json +++ b/packages/remix-cloudflare/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/cloudflare", - "version": "2.13.0-pre.2", + "version": "2.13.0", "description": "Cloudflare platform abstractions for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-css-bundle/CHANGELOG.md b/packages/remix-css-bundle/CHANGELOG.md index 3e35cb9d81f..377ffd88f0c 100644 --- a/packages/remix-css-bundle/CHANGELOG.md +++ b/packages/remix-css-bundle/CHANGELOG.md @@ -1,10 +1,8 @@ # @remix-run/css-bundle -## 2.13.0-pre.2 +## 2.13.0 -## 2.13.0-pre.1 - -## 2.13.0-pre.0 +No significant changes to this package were made in this release. [See the repo `CHANGELOG.md`](https://github.com/remix-run/remix/blob/main/CHANGELOG.md) for an overview of all changes in v2.13.0. ## 2.12.1 diff --git a/packages/remix-css-bundle/package.json b/packages/remix-css-bundle/package.json index ee56fc3000f..726af148d4f 100644 --- a/packages/remix-css-bundle/package.json +++ b/packages/remix-css-bundle/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/css-bundle", - "version": "2.13.0-pre.2", + "version": "2.13.0", "description": "CSS bundle href when using CSS bundling features in Remix", "homepage": "https://remix.run", "bugs": { diff --git a/packages/remix-deno/CHANGELOG.md b/packages/remix-deno/CHANGELOG.md index 57b38d1b739..fdc8de2e9c1 100644 --- a/packages/remix-deno/CHANGELOG.md +++ b/packages/remix-deno/CHANGELOG.md @@ -1,25 +1,11 @@ # `@remix-run/deno` -## 2.13.0-pre.2 +## 2.13.0 ### Patch Changes - Updated dependencies: - - `@remix-run/server-runtime@2.13.0-pre.2` - -## 2.13.0-pre.1 - -### Patch Changes - -- Updated dependencies: - - `@remix-run/server-runtime@2.13.0-pre.1` - -## 2.13.0-pre.0 - -### Patch Changes - -- Updated dependencies: - - `@remix-run/server-runtime@2.13.0-pre.0` + - `@remix-run/server-runtime@2.13.0` ## 2.12.1 diff --git a/packages/remix-deno/package.json b/packages/remix-deno/package.json index 8daf8e155f9..dc89eaba3da 100644 --- a/packages/remix-deno/package.json +++ b/packages/remix-deno/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/deno", - "version": "2.13.0-pre.2", + "version": "2.13.0", "description": "Deno platform abstractions for Remix", "homepage": "https://remix.run", "main": "./index.ts", diff --git a/packages/remix-dev/CHANGELOG.md b/packages/remix-dev/CHANGELOG.md index 5012920be98..d0a63133b8c 100644 --- a/packages/remix-dev/CHANGELOG.md +++ b/packages/remix-dev/CHANGELOG.md @@ -1,31 +1,11 @@ # `@remix-run/dev` -## 2.13.0-pre.2 - -### Patch Changes - -- Updated dependencies: - - `@remix-run/node@2.13.0-pre.2` - - `@remix-run/server-runtime@2.13.0-pre.2` - -## 2.13.0-pre.1 +## 2.13.0 ### Minor Changes - Stabilize the `future.unstable_optimizeDeps` flag into `future.v3_optimizeDeps` ([#10092](https://github.com/remix-run/remix/pull/10092)) - -### Patch Changes - -- Updated dependencies: - - `@remix-run/node@2.13.0-pre.1` - - `@remix-run/server-runtime@2.13.0-pre.1` - -## 2.13.0-pre.0 - -### Minor Changes - - Stabilize React Router APIs in Remix ([#9980](https://github.com/remix-run/remix/pull/9980)) - - Adopt stabilized React Router APIs internally - Single Fetch: `unstable_dataStrategy` -> `dataStrategy` - Lazy Route Discovery: `unstable_patchRoutesOnNavigation` -> `patchRoutesOnNavigation` @@ -33,7 +13,6 @@ - Single Fetch: `unstable_data()` -> `data()` - `unstable_viewTransition` -> `viewTransition` (`Link`, `Form`, `navigate`, `submit`) - `unstable_flushSync>` -> `` (`Link`, `Form`, `navigate`, `submit`, `useFetcher`) - - Stabilize future flags ([#10072](https://github.com/remix-run/remix/pull/10072)) - `future.unstable_singleFetch` -> `future.v3_singleFetch` - `future.unstable_lazyRouteDiscovery` -> `future.v3_lazyRouteDiscovery` @@ -41,18 +20,15 @@ ### Patch Changes - Stop passing `request.signal` as the `renderToReadableStream` `signal` to abort server rendering for cloudflare/deno runtimes because by the time that `request` is aborted, aborting the rendering is useless because there's no way for React to flush down the unresolved boundaries ([#10047](https://github.com/remix-run/remix/pull/10047)) - - This has been incorrect for some time, but only recently exposed due to a bug in how we were aborting requests when running via `remix vite:dev` because we were incorrectly aborting requests after successful renders - which was causing us to abort a completed React render, and try to close an already closed `ReadableStream`. - This has likely not shown up in any production scenarios because cloudflare/deno production runtimes are (correctly) not aborting the `request.signal` on successful renders - The built-in `entry.server` files no longer pass a `signal` to `renderToReadableStream` because adding a timeout-based abort signal to the default behavior would constitute a breaking change - Users can configure this abort behavior via their own `entry.server` via `remix reveal entry.server`, and the template entry.server files have been updated with an example approach for newly created Remix apps - - Fix adapter logic for aborting `request.signal` so we don't incorrectly abort on the `close` event for successful requests ([#10046](https://github.com/remix-run/remix/pull/10046)) + - Updated dependencies: - - `@remix-run/react@2.13.0-pre.0` - - `@remix-run/server-runtime@2.13.0-pre.0` - - `@remix-run/node@2.13.0-pre.0` - - `@remix-run/serve@2.13.0-pre.0` + - `@remix-run/server-runtime@2.13.0` + - `@remix-run/node@2.13.0` ## 2.12.1 diff --git a/packages/remix-dev/package.json b/packages/remix-dev/package.json index af3e7c2733c..df0d561ce93 100644 --- a/packages/remix-dev/package.json +++ b/packages/remix-dev/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/dev", - "version": "2.13.0-pre.2", + "version": "2.13.0", "description": "Dev tools and CLI for Remix", "homepage": "https://remix.run", "bugs": { @@ -106,8 +106,8 @@ "wrangler": "^3.28.2" }, "peerDependencies": { - "@remix-run/react": "^2.13.0-pre.2", - "@remix-run/serve": "^2.13.0-pre.2", + "@remix-run/react": "^2.13.0", + "@remix-run/serve": "^2.13.0", "typescript": "^5.1.0", "vite": "^5.1.0", "wrangler": "^3.28.2" diff --git a/packages/remix-eslint-config/CHANGELOG.md b/packages/remix-eslint-config/CHANGELOG.md index af16bd11062..fe21832a941 100644 --- a/packages/remix-eslint-config/CHANGELOG.md +++ b/packages/remix-eslint-config/CHANGELOG.md @@ -1,10 +1,8 @@ # `@remix-run/eslint-config` -## 2.13.0-pre.2 +## 2.13.0 -## 2.13.0-pre.1 - -## 2.13.0-pre.0 +No significant changes to this package were made in this release. [See the repo `CHANGELOG.md`](https://github.com/remix-run/remix/blob/main/CHANGELOG.md) for an overview of all changes in v2.13.0. ## 2.12.1 diff --git a/packages/remix-eslint-config/package.json b/packages/remix-eslint-config/package.json index 5733c8aa57a..2eef04d774c 100644 --- a/packages/remix-eslint-config/package.json +++ b/packages/remix-eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/eslint-config", - "version": "2.13.0-pre.2", + "version": "2.13.0", "description": "ESLint configuration for Remix projects", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-express/CHANGELOG.md b/packages/remix-express/CHANGELOG.md index 4c76c8b6d46..8deee99c92a 100644 --- a/packages/remix-express/CHANGELOG.md +++ b/packages/remix-express/CHANGELOG.md @@ -1,26 +1,12 @@ # `@remix-run/express` -## 2.13.0-pre.2 - -### Patch Changes - -- Updated dependencies: - - `@remix-run/node@2.13.0-pre.2` - -## 2.13.0-pre.1 - -### Patch Changes - -- Updated dependencies: - - `@remix-run/node@2.13.0-pre.1` - -## 2.13.0-pre.0 +## 2.13.0 ### Patch Changes - Fix adapter logic for aborting `request.signal` so we don't incorrectly abort on the `close` event for successful requests ([#10046](https://github.com/remix-run/remix/pull/10046)) - Updated dependencies: - - `@remix-run/node@2.13.0-pre.0` + - `@remix-run/node@2.13.0` ## 2.12.1 diff --git a/packages/remix-express/package.json b/packages/remix-express/package.json index 42ae667d8ff..806658fc7aa 100644 --- a/packages/remix-express/package.json +++ b/packages/remix-express/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/express", - "version": "2.13.0-pre.2", + "version": "2.13.0", "description": "Express server request handler for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-node/CHANGELOG.md b/packages/remix-node/CHANGELOG.md index 5fef32fb4be..289aea2b5ad 100644 --- a/packages/remix-node/CHANGELOG.md +++ b/packages/remix-node/CHANGELOG.md @@ -1,25 +1,11 @@ # `@remix-run/node` -## 2.13.0-pre.2 +## 2.13.0 ### Patch Changes - Updated dependencies: - - `@remix-run/server-runtime@2.13.0-pre.2` - -## 2.13.0-pre.1 - -### Patch Changes - -- Updated dependencies: - - `@remix-run/server-runtime@2.13.0-pre.1` - -## 2.13.0-pre.0 - -### Patch Changes - -- Updated dependencies: - - `@remix-run/server-runtime@2.13.0-pre.0` + - `@remix-run/server-runtime@2.13.0` ## 2.12.1 diff --git a/packages/remix-node/package.json b/packages/remix-node/package.json index 2bca34ff67b..bbfb70bb6a0 100644 --- a/packages/remix-node/package.json +++ b/packages/remix-node/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/node", - "version": "2.13.0-pre.2", + "version": "2.13.0", "description": "Node.js platform abstractions for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-react/CHANGELOG.md b/packages/remix-react/CHANGELOG.md index 0b578beb244..126d9bb18e4 100644 --- a/packages/remix-react/CHANGELOG.md +++ b/packages/remix-react/CHANGELOG.md @@ -1,27 +1,10 @@ # `@remix-run/react` -## 2.13.0-pre.2 - -### Patch Changes - -- [REMOVE] bump router ([#10095](https://github.com/remix-run/remix/pull/10095)) -- Updated dependencies: - - `@remix-run/server-runtime@2.13.0-pre.2` - -## 2.13.0-pre.1 - -### Patch Changes - -- [REMOVE] bump router versions ([#10086](https://github.com/remix-run/remix/pull/10086)) -- Updated dependencies: - - `@remix-run/server-runtime@2.13.0-pre.1` - -## 2.13.0-pre.0 +## 2.13.0 ### Minor Changes - Stabilize React Router APIs in Remix ([#9980](https://github.com/remix-run/remix/pull/9980)) - - Adopt stabilized React Router APIs internally - Single Fetch: `unstable_dataStrategy` -> `dataStrategy` - Lazy Route Discovery: `unstable_patchRoutesOnNavigation` -> `patchRoutesOnNavigation` @@ -29,7 +12,6 @@ - Single Fetch: `unstable_data()` -> `data()` - `unstable_viewTransition` -> `viewTransition` (`Link`, `Form`, `navigate`, `submit`) - `unstable_flushSync>` -> `` (`Link`, `Form`, `navigate`, `submit`, `useFetcher`) - - Stabilize future flags ([#10072](https://github.com/remix-run/remix/pull/10072)) - `future.unstable_singleFetch` -> `future.v3_singleFetch` - `future.unstable_lazyRouteDiscovery` -> `future.v3_lazyRouteDiscovery` @@ -38,7 +20,7 @@ - Fix bug with `clientLoader.hydrate` in a layout route when hydrating with bubbled errors ([#10063](https://github.com/remix-run/remix/pull/10063)) - Updated dependencies: - - `@remix-run/server-runtime@2.13.0-pre.0` + - `@remix-run/server-runtime@2.13.0` ## 2.12.1 diff --git a/packages/remix-react/package.json b/packages/remix-react/package.json index ca0b13c9e40..14501eacea9 100644 --- a/packages/remix-react/package.json +++ b/packages/remix-react/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/react", - "version": "2.13.0-pre.2", + "version": "2.13.0", "description": "React DOM bindings for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-serve/CHANGELOG.md b/packages/remix-serve/CHANGELOG.md index 6b91d626321..c4fa8a5f687 100644 --- a/packages/remix-serve/CHANGELOG.md +++ b/packages/remix-serve/CHANGELOG.md @@ -1,28 +1,12 @@ # `@remix-run/serve` -## 2.13.0-pre.2 +## 2.13.0 ### Patch Changes - Updated dependencies: - - `@remix-run/express@2.13.0-pre.2` - - `@remix-run/node@2.13.0-pre.2` - -## 2.13.0-pre.1 - -### Patch Changes - -- Updated dependencies: - - `@remix-run/express@2.13.0-pre.1` - - `@remix-run/node@2.13.0-pre.1` - -## 2.13.0-pre.0 - -### Patch Changes - -- Updated dependencies: - - `@remix-run/express@2.13.0-pre.0` - - `@remix-run/node@2.13.0-pre.0` + - `@remix-run/express@2.13.0` + - `@remix-run/node@2.13.0` ## 2.12.1 diff --git a/packages/remix-serve/package.json b/packages/remix-serve/package.json index 204b32e9175..dc2090398fa 100644 --- a/packages/remix-serve/package.json +++ b/packages/remix-serve/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/serve", - "version": "2.13.0-pre.2", + "version": "2.13.0", "description": "Production application server for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-server-runtime/CHANGELOG.md b/packages/remix-server-runtime/CHANGELOG.md index 658567285fc..76d6b5d93e0 100644 --- a/packages/remix-server-runtime/CHANGELOG.md +++ b/packages/remix-server-runtime/CHANGELOG.md @@ -1,15 +1,10 @@ # `@remix-run/server-runtime` -## 2.13.0-pre.2 - -## 2.13.0-pre.1 - -## 2.13.0-pre.0 +## 2.13.0 ### Minor Changes - Stabilize React Router APIs in Remix ([#9980](https://github.com/remix-run/remix/pull/9980)) - - Adopt stabilized React Router APIs internally - Single Fetch: `unstable_dataStrategy` -> `dataStrategy` - Lazy Route Discovery: `unstable_patchRoutesOnNavigation` -> `patchRoutesOnNavigation` @@ -17,7 +12,6 @@ - Single Fetch: `unstable_data()` -> `data()` - `unstable_viewTransition` -> `viewTransition` (`Link`, `Form`, `navigate`, `submit`) - `unstable_flushSync>` -> `` (`Link`, `Form`, `navigate`, `submit`, `useFetcher`) - - Stabilize future flags ([#10072](https://github.com/remix-run/remix/pull/10072)) - `future.unstable_singleFetch` -> `future.v3_singleFetch` - `future.unstable_lazyRouteDiscovery` -> `future.v3_lazyRouteDiscovery` diff --git a/packages/remix-server-runtime/package.json b/packages/remix-server-runtime/package.json index 45461f12ae6..be6b91ac29c 100644 --- a/packages/remix-server-runtime/package.json +++ b/packages/remix-server-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/server-runtime", - "version": "2.13.0-pre.2", + "version": "2.13.0", "description": "Server runtime for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-testing/CHANGELOG.md b/packages/remix-testing/CHANGELOG.md index fa3474cd243..0a99197ed4f 100644 --- a/packages/remix-testing/CHANGELOG.md +++ b/packages/remix-testing/CHANGELOG.md @@ -1,28 +1,12 @@ # `@remix-run/testing` -## 2.13.0-pre.2 +## 2.13.0 ### Patch Changes - Updated dependencies: - - `@remix-run/react@2.13.0-pre.2` - - `@remix-run/node@2.13.0-pre.2` - -## 2.13.0-pre.1 - -### Patch Changes - -- Updated dependencies: - - `@remix-run/react@2.13.0-pre.1` - - `@remix-run/node@2.13.0-pre.1` - -## 2.13.0-pre.0 - -### Patch Changes - -- Updated dependencies: - - `@remix-run/react@2.13.0-pre.0` - - `@remix-run/node@2.13.0-pre.0` + - `@remix-run/react@2.13.0` + - `@remix-run/node@2.13.0` ## 2.12.1 diff --git a/packages/remix-testing/package.json b/packages/remix-testing/package.json index b67f612985e..906443f1bc4 100644 --- a/packages/remix-testing/package.json +++ b/packages/remix-testing/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/testing", - "version": "2.13.0-pre.2", + "version": "2.13.0", "description": "Testing utilities for Remix apps", "homepage": "https://remix.run", "bugs": { diff --git a/packages/remix/package.json b/packages/remix/package.json index 4533f761335..40a8c7ffa8c 100644 --- a/packages/remix/package.json +++ b/packages/remix/package.json @@ -1,6 +1,6 @@ { "name": "remix", - "version": "2.13.0-pre.2", + "version": "2.13.0", "description": "A framework for building better websites", "homepage": "https://remix.run", "bugs": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 232074d4ce7..e7c6f22c28d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -548,13 +548,13 @@ importers: integration/helpers/vite-cloudflare-template: dependencies: '@remix-run/cloudflare': - specifier: 2.13.0-pre.2 + specifier: 2.13.0 version: link:../../../packages/remix-cloudflare '@remix-run/cloudflare-pages': - specifier: 2.13.0-pre.2 + specifier: 2.13.0 version: link:../../../packages/remix-cloudflare-pages '@remix-run/react': - specifier: 2.13.0-pre.2 + specifier: 2.13.0 version: link:../../../packages/remix-react isbot: specifier: ^4.1.0 @@ -868,7 +868,7 @@ importers: specifier: workspace:* version: link:../remix-node '@remix-run/react': - specifier: ^2.13.0-pre.2 + specifier: ^2.13.0 version: link:../remix-react '@remix-run/router': specifier: 1.20.0 From f6b8555367cbbbec6cd0c30249fe26c6d003c04a Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Fri, 11 Oct 2024 15:28:34 -0400 Subject: [PATCH 28/44] Add link to changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fae6a96af42..55e37568672 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -236,7 +236,7 @@ Date: 2024-10-11 #### Stabilized APIs -This release stabilizes a handful of "unstable" APIs in preparation for the pending React Router v7 release (see [these](https://remix.run/blog/merging-remix-and-react-router) [posts](https://remix.run/blog/incremental-path-to-react-19) for more info): +This release stabilizes a handful of "unstable" APIs in preparation for the [pending](https://x.com/remix_run/status/1841926034868077009) React Router v7 release (see [these](https://remix.run/blog/merging-remix-and-react-router) [posts](https://remix.run/blog/incremental-path-to-react-19) for more info): - `unstable_data` → `data` (for use with Single Fetch) - `unstable_flushSync` → `flushSync` (`useSubmit`, `fetcher.load`, `fetcher.submit`) From ee15d8036b61a543dd3fd8fdd7a2b2fe0cd694b4 Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Fri, 11 Oct 2024 16:57:04 -0400 Subject: [PATCH 29/44] Revert optimize deps (#10099) --- .changeset/slow-guests-wait.md | 5 +++++ docs/guides/dependency-optimization.md | 3 +-- docs/start/future-flags.md | 20 ++----------------- .../remix-dev/__tests__/readConfig-test.ts | 2 +- packages/remix-dev/config.ts | 4 ++-- packages/remix-dev/vite/plugin.ts | 2 +- 6 files changed, 12 insertions(+), 24 deletions(-) create mode 100644 .changeset/slow-guests-wait.md diff --git a/.changeset/slow-guests-wait.md b/.changeset/slow-guests-wait.md new file mode 100644 index 00000000000..daa1eb032cb --- /dev/null +++ b/.changeset/slow-guests-wait.md @@ -0,0 +1,5 @@ +--- +"@remix-run/dev": patch +--- + +Revert `future.v3_optimizeDeps` back to `future.unstable_optimizeDeps` as it was not intended to stabilize in Remix v2 diff --git a/docs/guides/dependency-optimization.md b/docs/guides/dependency-optimization.md index a92f9b3733c..7d06dbb0f56 100644 --- a/docs/guides/dependency-optimization.md +++ b/docs/guides/dependency-optimization.md @@ -6,8 +6,7 @@ title: Dependency optimization # Dependency optimization -Remix introduced automatic dependency optimization in development behind the `future.v3_optimizeDeps` [Future Flag][future-flags]. -This allows you to opt-into this behavior which will become the default in the next major version of Remix - a.k.a. React Router v7 ([1][rr-v7], [2][rr-v7-2]). +Remix introduced automatic dependency optimization in development behind the `future.unstable_optimizeDeps` [Future Flag][future-flags]. This allows you to opt-into this behavior which will eventually become the default in some future version of Remix - a.k.a. React Router ([1][rr-v7], [2][rr-v7-2]). This flag is intended to remain "unstable" into React Router v7 as there is some additional bundling-related work coming that will ease adoption of the flag. We plan to stabilize the flag once that work is completed in v7. In development, Vite aims to [prebundle dependencies][prebundle-dependencies] so that it can efficiently serve up those dependencies on-demand. To do this, Vite needs to know where to start crawling your app's module graph to look for dependencies. diff --git a/docs/start/future-flags.md b/docs/start/future-flags.md index 1356d4937d1..664388b602b 100644 --- a/docs/start/future-flags.md +++ b/docs/start/future-flags.md @@ -472,25 +472,9 @@ You shouldn't need to make any changes to your application code for this feature You may find some usage for the new [``][discover-prop] API if you wish to disable eager route discovery on certain links. -## v3_optimizeDeps +## unstable_optimizeDeps -**Background** - -This flag allows you to opt-into automatic [dependency optimization][dependency-optimization] during development when using Vite. - -👉 **Enable the Flag** - -```ts filename=vite.config.ts -remix({ - future: { - v3_optimizeDeps: true, - }, -}); -``` - -**Update your Code** - -You shouldn't need to make any changes to your application code for this feature to work. +Opt into automatic [dependency optimization][dependency-optimization] during development. This flag will remain in an "unstable" state until React Router v7 so you do not need to adopt this in your Remix v2 app prior to upgrading to React Router v7. [development-strategy]: ../guides/api-development-strategy [fetcherpersist-rfc]: https://github.com/remix-run/remix/discussions/7698 diff --git a/packages/remix-dev/__tests__/readConfig-test.ts b/packages/remix-dev/__tests__/readConfig-test.ts index bd06d50309f..f528c16f15e 100644 --- a/packages/remix-dev/__tests__/readConfig-test.ts +++ b/packages/remix-dev/__tests__/readConfig-test.ts @@ -36,9 +36,9 @@ describe("readConfig", () => { "entryServerFile": "entry.server.tsx", "entryServerFilePath": Any, "future": { + "unstable_optimizeDeps": false, "v3_fetcherPersist": false, "v3_lazyRouteDiscovery": false, - "v3_optimizeDeps": false, "v3_relativeSplatPath": false, "v3_singleFetch": false, "v3_throwAbortReason": false, diff --git a/packages/remix-dev/config.ts b/packages/remix-dev/config.ts index b6cb6dd8f01..16065ff01af 100644 --- a/packages/remix-dev/config.ts +++ b/packages/remix-dev/config.ts @@ -39,7 +39,7 @@ interface FutureConfig { v3_throwAbortReason: boolean; v3_singleFetch: boolean; v3_lazyRouteDiscovery: boolean; - v3_optimizeDeps: boolean; + unstable_optimizeDeps: boolean; } type NodeBuiltinsPolyfillOptions = Pick< @@ -605,7 +605,7 @@ export async function resolveConfig( v3_throwAbortReason: appConfig.future?.v3_throwAbortReason === true, v3_singleFetch: appConfig.future?.v3_singleFetch === true, v3_lazyRouteDiscovery: appConfig.future?.v3_lazyRouteDiscovery === true, - v3_optimizeDeps: appConfig.future?.v3_optimizeDeps === true, + unstable_optimizeDeps: appConfig.future?.unstable_optimizeDeps === true, }; if (appConfig.future) { diff --git a/packages/remix-dev/vite/plugin.ts b/packages/remix-dev/vite/plugin.ts index c886f7fcbcf..53ce6400b57 100644 --- a/packages/remix-dev/vite/plugin.ts +++ b/packages/remix-dev/vite/plugin.ts @@ -1075,7 +1075,7 @@ export const remixVitePlugin: RemixVitePlugin = (remixUserConfig = {}) => { : undefined, }, optimizeDeps: { - entries: ctx.remixConfig.future.v3_optimizeDeps + entries: ctx.remixConfig.future.unstable_optimizeDeps ? [ ctx.entryClientFilePath, ...Object.values(ctx.remixConfig.routes).map((route) => From 19d3477d83d5566f41ee226041cbf4793acd92be Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Fri, 11 Oct 2024 16:57:35 -0400 Subject: [PATCH 30/44] Enter prerelease mode --- .changeset/pre.json | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .changeset/pre.json diff --git a/.changeset/pre.json b/.changeset/pre.json new file mode 100644 index 00000000000..c6541b1c9f9 --- /dev/null +++ b/.changeset/pre.json @@ -0,0 +1,29 @@ +{ + "mode": "pre", + "tag": "pre", + "initialVersions": { + "integration": "0.0.0", + "integration-cf-template": "0.0.0", + "integration-deno-template": "0.0.0", + "integration-node-template": "0.0.0", + "integration-vite-cloudflare-template": "0.0.0", + "integration-vite-template": "0.0.0", + "create-remix": "2.13.0", + "remix": "2.13.0", + "@remix-run/architect": "2.13.0", + "@remix-run/cloudflare": "2.13.0", + "@remix-run/cloudflare-pages": "2.13.0", + "@remix-run/cloudflare-workers": "2.13.0", + "@remix-run/css-bundle": "2.13.0", + "@remix-run/deno": "2.13.0", + "@remix-run/dev": "2.13.0", + "@remix-run/eslint-config": "2.13.0", + "@remix-run/express": "2.13.0", + "@remix-run/node": "2.13.0", + "@remix-run/react": "2.13.0", + "@remix-run/serve": "2.13.0", + "@remix-run/server-runtime": "2.13.0", + "@remix-run/testing": "2.13.0" + }, + "changesets": [] +} From f2d7bbbc7c7e714cb9e6a8144964b8a5e410a928 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 11 Oct 2024 17:05:04 -0400 Subject: [PATCH 31/44] chore: Update version for release (pre) (#10100) Co-authored-by: github-actions[bot] --- .changeset/pre.json | 4 +++- .../helpers/vite-cloudflare-template/package.json | 6 +++--- packages/create-remix/CHANGELOG.md | 2 ++ packages/create-remix/package.json | 2 +- packages/remix-architect/CHANGELOG.md | 7 +++++++ packages/remix-architect/package.json | 2 +- packages/remix-cloudflare-pages/CHANGELOG.md | 7 +++++++ packages/remix-cloudflare-pages/package.json | 2 +- packages/remix-cloudflare-workers/CHANGELOG.md | 7 +++++++ packages/remix-cloudflare-workers/package.json | 2 +- packages/remix-cloudflare/CHANGELOG.md | 7 +++++++ packages/remix-cloudflare/package.json | 2 +- packages/remix-css-bundle/CHANGELOG.md | 2 ++ packages/remix-css-bundle/package.json | 2 +- packages/remix-deno/CHANGELOG.md | 7 +++++++ packages/remix-deno/package.json | 2 +- packages/remix-dev/CHANGELOG.md | 11 +++++++++++ packages/remix-dev/package.json | 6 +++--- packages/remix-eslint-config/CHANGELOG.md | 2 ++ packages/remix-eslint-config/package.json | 2 +- packages/remix-express/CHANGELOG.md | 7 +++++++ packages/remix-express/package.json | 2 +- packages/remix-node/CHANGELOG.md | 7 +++++++ packages/remix-node/package.json | 2 +- packages/remix-react/CHANGELOG.md | 7 +++++++ packages/remix-react/package.json | 2 +- packages/remix-serve/CHANGELOG.md | 8 ++++++++ packages/remix-serve/package.json | 2 +- packages/remix-server-runtime/CHANGELOG.md | 2 ++ packages/remix-server-runtime/package.json | 2 +- packages/remix-testing/CHANGELOG.md | 8 ++++++++ packages/remix-testing/package.json | 2 +- packages/remix/package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 34 files changed, 119 insertions(+), 26 deletions(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index c6541b1c9f9..4ebfb281e6c 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -25,5 +25,7 @@ "@remix-run/server-runtime": "2.13.0", "@remix-run/testing": "2.13.0" }, - "changesets": [] + "changesets": [ + "slow-guests-wait" + ] } diff --git a/integration/helpers/vite-cloudflare-template/package.json b/integration/helpers/vite-cloudflare-template/package.json index de435b53d85..d51eeb78f5b 100644 --- a/integration/helpers/vite-cloudflare-template/package.json +++ b/integration/helpers/vite-cloudflare-template/package.json @@ -11,9 +11,9 @@ "typecheck": "tsc" }, "dependencies": { - "@remix-run/cloudflare": "2.13.0", - "@remix-run/cloudflare-pages": "2.13.0", - "@remix-run/react": "2.13.0", + "@remix-run/cloudflare": "2.13.1-pre.0", + "@remix-run/cloudflare-pages": "2.13.1-pre.0", + "@remix-run/react": "2.13.1-pre.0", "isbot": "^4.1.0", "miniflare": "^3.20231030.4", "react": "^18.2.0", diff --git a/packages/create-remix/CHANGELOG.md b/packages/create-remix/CHANGELOG.md index fbc3d266508..356da1c4c56 100644 --- a/packages/create-remix/CHANGELOG.md +++ b/packages/create-remix/CHANGELOG.md @@ -1,5 +1,7 @@ # `create-remix` +## 2.13.1-pre.0 + ## 2.13.0 No significant changes to this package were made in this release. [See the repo `CHANGELOG.md`](https://github.com/remix-run/remix/blob/main/CHANGELOG.md) for an overview of all changes in v2.13.0. diff --git a/packages/create-remix/package.json b/packages/create-remix/package.json index 24424148e5b..9e263cf4337 100644 --- a/packages/create-remix/package.json +++ b/packages/create-remix/package.json @@ -1,6 +1,6 @@ { "name": "create-remix", - "version": "2.13.0", + "version": "2.13.1-pre.0", "description": "Create a new Remix app", "homepage": "https://remix.run", "bugs": { diff --git a/packages/remix-architect/CHANGELOG.md b/packages/remix-architect/CHANGELOG.md index df978b460fe..e40b8122f51 100644 --- a/packages/remix-architect/CHANGELOG.md +++ b/packages/remix-architect/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/architect` +## 2.13.1-pre.0 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/node@2.13.1-pre.0` + ## 2.13.0 ### Patch Changes diff --git a/packages/remix-architect/package.json b/packages/remix-architect/package.json index 7dd3b59f1ba..7daa94d4cdc 100644 --- a/packages/remix-architect/package.json +++ b/packages/remix-architect/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/architect", - "version": "2.13.0", + "version": "2.13.1-pre.0", "description": "Architect server request handler for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-cloudflare-pages/CHANGELOG.md b/packages/remix-cloudflare-pages/CHANGELOG.md index 5aa3199898b..c0ff7fa5ef0 100644 --- a/packages/remix-cloudflare-pages/CHANGELOG.md +++ b/packages/remix-cloudflare-pages/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/cloudflare-pages` +## 2.13.1-pre.0 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/cloudflare@2.13.1-pre.0` + ## 2.13.0 ### Patch Changes diff --git a/packages/remix-cloudflare-pages/package.json b/packages/remix-cloudflare-pages/package.json index ca570257735..8faf38035af 100644 --- a/packages/remix-cloudflare-pages/package.json +++ b/packages/remix-cloudflare-pages/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/cloudflare-pages", - "version": "2.13.0", + "version": "2.13.1-pre.0", "description": "Cloudflare Pages request handler for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-cloudflare-workers/CHANGELOG.md b/packages/remix-cloudflare-workers/CHANGELOG.md index c69bef8deda..52760b233aa 100644 --- a/packages/remix-cloudflare-workers/CHANGELOG.md +++ b/packages/remix-cloudflare-workers/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/cloudflare-workers` +## 2.13.1-pre.0 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/cloudflare@2.13.1-pre.0` + ## 2.13.0 ### Patch Changes diff --git a/packages/remix-cloudflare-workers/package.json b/packages/remix-cloudflare-workers/package.json index cc154fb3f46..ea8093c93e7 100644 --- a/packages/remix-cloudflare-workers/package.json +++ b/packages/remix-cloudflare-workers/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/cloudflare-workers", - "version": "2.13.0", + "version": "2.13.1-pre.0", "description": "Cloudflare worker request handler for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-cloudflare/CHANGELOG.md b/packages/remix-cloudflare/CHANGELOG.md index cf2a7541231..655b2057988 100644 --- a/packages/remix-cloudflare/CHANGELOG.md +++ b/packages/remix-cloudflare/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/cloudflare` +## 2.13.1-pre.0 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/server-runtime@2.13.1-pre.0` + ## 2.13.0 ### Patch Changes diff --git a/packages/remix-cloudflare/package.json b/packages/remix-cloudflare/package.json index 222dc93fc48..0fc6b58bcf2 100644 --- a/packages/remix-cloudflare/package.json +++ b/packages/remix-cloudflare/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/cloudflare", - "version": "2.13.0", + "version": "2.13.1-pre.0", "description": "Cloudflare platform abstractions for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-css-bundle/CHANGELOG.md b/packages/remix-css-bundle/CHANGELOG.md index 377ffd88f0c..f47f32a45d8 100644 --- a/packages/remix-css-bundle/CHANGELOG.md +++ b/packages/remix-css-bundle/CHANGELOG.md @@ -1,5 +1,7 @@ # @remix-run/css-bundle +## 2.13.1-pre.0 + ## 2.13.0 No significant changes to this package were made in this release. [See the repo `CHANGELOG.md`](https://github.com/remix-run/remix/blob/main/CHANGELOG.md) for an overview of all changes in v2.13.0. diff --git a/packages/remix-css-bundle/package.json b/packages/remix-css-bundle/package.json index 726af148d4f..bfeca962d59 100644 --- a/packages/remix-css-bundle/package.json +++ b/packages/remix-css-bundle/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/css-bundle", - "version": "2.13.0", + "version": "2.13.1-pre.0", "description": "CSS bundle href when using CSS bundling features in Remix", "homepage": "https://remix.run", "bugs": { diff --git a/packages/remix-deno/CHANGELOG.md b/packages/remix-deno/CHANGELOG.md index fdc8de2e9c1..3d1bfc892d9 100644 --- a/packages/remix-deno/CHANGELOG.md +++ b/packages/remix-deno/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/deno` +## 2.13.1-pre.0 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/server-runtime@2.13.1-pre.0` + ## 2.13.0 ### Patch Changes diff --git a/packages/remix-deno/package.json b/packages/remix-deno/package.json index dc89eaba3da..09a3d9ea2a8 100644 --- a/packages/remix-deno/package.json +++ b/packages/remix-deno/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/deno", - "version": "2.13.0", + "version": "2.13.1-pre.0", "description": "Deno platform abstractions for Remix", "homepage": "https://remix.run", "main": "./index.ts", diff --git a/packages/remix-dev/CHANGELOG.md b/packages/remix-dev/CHANGELOG.md index d0a63133b8c..a14315c7d3a 100644 --- a/packages/remix-dev/CHANGELOG.md +++ b/packages/remix-dev/CHANGELOG.md @@ -1,5 +1,16 @@ # `@remix-run/dev` +## 2.13.1-pre.0 + +### Patch Changes + +- Revert `future.v3_optimizeDeps` back to `future.unstable_optimizeDeps` as it was not intended to stabilize in Remix v2 ([#10099](https://github.com/remix-run/remix/pull/10099)) +- Updated dependencies: + - `@remix-run/node@2.13.1-pre.0` + - `@remix-run/react@2.13.1-pre.0` + - `@remix-run/serve@2.13.1-pre.0` + - `@remix-run/server-runtime@2.13.1-pre.0` + ## 2.13.0 ### Minor Changes diff --git a/packages/remix-dev/package.json b/packages/remix-dev/package.json index df0d561ce93..1cb29b9d64c 100644 --- a/packages/remix-dev/package.json +++ b/packages/remix-dev/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/dev", - "version": "2.13.0", + "version": "2.13.1-pre.0", "description": "Dev tools and CLI for Remix", "homepage": "https://remix.run", "bugs": { @@ -106,8 +106,8 @@ "wrangler": "^3.28.2" }, "peerDependencies": { - "@remix-run/react": "^2.13.0", - "@remix-run/serve": "^2.13.0", + "@remix-run/react": "^2.13.1-pre.0", + "@remix-run/serve": "^2.13.1-pre.0", "typescript": "^5.1.0", "vite": "^5.1.0", "wrangler": "^3.28.2" diff --git a/packages/remix-eslint-config/CHANGELOG.md b/packages/remix-eslint-config/CHANGELOG.md index fe21832a941..c97a8b487c5 100644 --- a/packages/remix-eslint-config/CHANGELOG.md +++ b/packages/remix-eslint-config/CHANGELOG.md @@ -1,5 +1,7 @@ # `@remix-run/eslint-config` +## 2.13.1-pre.0 + ## 2.13.0 No significant changes to this package were made in this release. [See the repo `CHANGELOG.md`](https://github.com/remix-run/remix/blob/main/CHANGELOG.md) for an overview of all changes in v2.13.0. diff --git a/packages/remix-eslint-config/package.json b/packages/remix-eslint-config/package.json index 2eef04d774c..1298dfc4637 100644 --- a/packages/remix-eslint-config/package.json +++ b/packages/remix-eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/eslint-config", - "version": "2.13.0", + "version": "2.13.1-pre.0", "description": "ESLint configuration for Remix projects", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-express/CHANGELOG.md b/packages/remix-express/CHANGELOG.md index 8deee99c92a..644fb444c02 100644 --- a/packages/remix-express/CHANGELOG.md +++ b/packages/remix-express/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/express` +## 2.13.1-pre.0 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/node@2.13.1-pre.0` + ## 2.13.0 ### Patch Changes diff --git a/packages/remix-express/package.json b/packages/remix-express/package.json index 806658fc7aa..e024e24f47d 100644 --- a/packages/remix-express/package.json +++ b/packages/remix-express/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/express", - "version": "2.13.0", + "version": "2.13.1-pre.0", "description": "Express server request handler for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-node/CHANGELOG.md b/packages/remix-node/CHANGELOG.md index 289aea2b5ad..d6c7c835783 100644 --- a/packages/remix-node/CHANGELOG.md +++ b/packages/remix-node/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/node` +## 2.13.1-pre.0 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/server-runtime@2.13.1-pre.0` + ## 2.13.0 ### Patch Changes diff --git a/packages/remix-node/package.json b/packages/remix-node/package.json index bbfb70bb6a0..69b07b3e7fc 100644 --- a/packages/remix-node/package.json +++ b/packages/remix-node/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/node", - "version": "2.13.0", + "version": "2.13.1-pre.0", "description": "Node.js platform abstractions for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-react/CHANGELOG.md b/packages/remix-react/CHANGELOG.md index 126d9bb18e4..0429142e97c 100644 --- a/packages/remix-react/CHANGELOG.md +++ b/packages/remix-react/CHANGELOG.md @@ -1,5 +1,12 @@ # `@remix-run/react` +## 2.13.1-pre.0 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/server-runtime@2.13.1-pre.0` + ## 2.13.0 ### Minor Changes diff --git a/packages/remix-react/package.json b/packages/remix-react/package.json index 14501eacea9..72dfcfa1e04 100644 --- a/packages/remix-react/package.json +++ b/packages/remix-react/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/react", - "version": "2.13.0", + "version": "2.13.1-pre.0", "description": "React DOM bindings for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-serve/CHANGELOG.md b/packages/remix-serve/CHANGELOG.md index c4fa8a5f687..e2ebb5a3fda 100644 --- a/packages/remix-serve/CHANGELOG.md +++ b/packages/remix-serve/CHANGELOG.md @@ -1,5 +1,13 @@ # `@remix-run/serve` +## 2.13.1-pre.0 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/express@2.13.1-pre.0` + - `@remix-run/node@2.13.1-pre.0` + ## 2.13.0 ### Patch Changes diff --git a/packages/remix-serve/package.json b/packages/remix-serve/package.json index dc2090398fa..5cd5c3777a6 100644 --- a/packages/remix-serve/package.json +++ b/packages/remix-serve/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/serve", - "version": "2.13.0", + "version": "2.13.1-pre.0", "description": "Production application server for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-server-runtime/CHANGELOG.md b/packages/remix-server-runtime/CHANGELOG.md index 76d6b5d93e0..28017c5a0eb 100644 --- a/packages/remix-server-runtime/CHANGELOG.md +++ b/packages/remix-server-runtime/CHANGELOG.md @@ -1,5 +1,7 @@ # `@remix-run/server-runtime` +## 2.13.1-pre.0 + ## 2.13.0 ### Minor Changes diff --git a/packages/remix-server-runtime/package.json b/packages/remix-server-runtime/package.json index be6b91ac29c..aa6cf5cd5f6 100644 --- a/packages/remix-server-runtime/package.json +++ b/packages/remix-server-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/server-runtime", - "version": "2.13.0", + "version": "2.13.1-pre.0", "description": "Server runtime for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-testing/CHANGELOG.md b/packages/remix-testing/CHANGELOG.md index 0a99197ed4f..5ce54db7e75 100644 --- a/packages/remix-testing/CHANGELOG.md +++ b/packages/remix-testing/CHANGELOG.md @@ -1,5 +1,13 @@ # `@remix-run/testing` +## 2.13.1-pre.0 + +### Patch Changes + +- Updated dependencies: + - `@remix-run/node@2.13.1-pre.0` + - `@remix-run/react@2.13.1-pre.0` + ## 2.13.0 ### Patch Changes diff --git a/packages/remix-testing/package.json b/packages/remix-testing/package.json index 906443f1bc4..69cfce0b5d1 100644 --- a/packages/remix-testing/package.json +++ b/packages/remix-testing/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/testing", - "version": "2.13.0", + "version": "2.13.1-pre.0", "description": "Testing utilities for Remix apps", "homepage": "https://remix.run", "bugs": { diff --git a/packages/remix/package.json b/packages/remix/package.json index 40a8c7ffa8c..f7cc2b4fc65 100644 --- a/packages/remix/package.json +++ b/packages/remix/package.json @@ -1,6 +1,6 @@ { "name": "remix", - "version": "2.13.0", + "version": "2.13.1-pre.0", "description": "A framework for building better websites", "homepage": "https://remix.run", "bugs": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e7c6f22c28d..53589c04047 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -548,13 +548,13 @@ importers: integration/helpers/vite-cloudflare-template: dependencies: '@remix-run/cloudflare': - specifier: 2.13.0 + specifier: 2.13.1-pre.0 version: link:../../../packages/remix-cloudflare '@remix-run/cloudflare-pages': - specifier: 2.13.0 + specifier: 2.13.1-pre.0 version: link:../../../packages/remix-cloudflare-pages '@remix-run/react': - specifier: 2.13.0 + specifier: 2.13.1-pre.0 version: link:../../../packages/remix-react isbot: specifier: ^4.1.0 @@ -868,7 +868,7 @@ importers: specifier: workspace:* version: link:../remix-node '@remix-run/react': - specifier: ^2.13.0 + specifier: ^2.13.1-pre.0 version: link:../remix-react '@remix-run/router': specifier: 1.20.0 From f102cbb140c490bbc7a071bb601d53609ebb4ccc Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Fri, 11 Oct 2024 17:06:50 -0400 Subject: [PATCH 32/44] Update release notes --- CHANGELOG.md | 71 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 42 insertions(+), 29 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 55e37568672..be263996cc9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,15 +13,17 @@ We manage release notes in this file instead of the paginated Github Releases Pa Table of Contents - [Remix Releases](#remix-releases) + - [v2.13.1](#v2131) + - [Patch Changes](#patch-changes) - [v2.13.0](#v2130) - [What's Changed](#whats-changed) - [Stabilized APIs](#stabilized-apis) - [Minor Changes](#minor-changes) - - [Patch Changes](#patch-changes) + - [Patch Changes](#patch-changes-1) - [Updated Dependencies](#updated-dependencies) - [Changes by Package](#changes-by-package) - [v2.12.1](#v2121) - - [Patch Changes](#patch-changes-1) + - [Patch Changes](#patch-changes-2) - [Changes by Package](#changes-by-package-1) - [v2.12.0](#v2120) - [What's Changed](#whats-changed-1) @@ -29,72 +31,72 @@ We manage release notes in this file instead of the paginated Github Releases Pa - [Improved Single Fetch Type Safety (unstable)](#improved-single-fetch-type-safety-unstable) - [Updates to Single Fetch Revalidation Behavior (unstable)](#updates-to-single-fetch-revalidation-behavior-unstable) - [Minor Changes](#minor-changes-1) - - [Patch Changes](#patch-changes-2) + - [Patch Changes](#patch-changes-3) - [Updated Dependencies](#updated-dependencies-1) - [Changes by Package](#changes-by-package-2) - [v2.11.2](#v2112) - - [Patch Changes](#patch-changes-3) + - [Patch Changes](#patch-changes-4) - [Updated Dependencies](#updated-dependencies-2) - [Changes by Package](#changes-by-package-3) - [v2.11.1](#v2111) - - [Patch Changes](#patch-changes-4) + - [Patch Changes](#patch-changes-5) - [Changes by Package](#changes-by-package-4) - [v2.11.0](#v2110) - [What's Changed](#whats-changed-2) - [Renamed `unstable_fogOfWar` future flag to `unstable_lazyRouteDiscovery` (unstable)](#renamed-unstable_fogofwar-future-flag-to-unstable_lazyroutediscovery-unstable) - [Removed `response` stub in Single Fetch (unstable)](#removed-response-stub-in-single-fetch-unstable) - [Minor Changes](#minor-changes-2) - - [Patch Changes](#patch-changes-5) + - [Patch Changes](#patch-changes-6) - [Updated Dependencies](#updated-dependencies-3) - [Changes by Package](#changes-by-package-5) - [v2.10.3](#v2103) - - [Patch Changes](#patch-changes-6) + - [Patch Changes](#patch-changes-7) - [Updated Dependencies](#updated-dependencies-4) - [Changes by Package](#changes-by-package-6) - [v2.10.2](#v2102) - - [Patch Changes](#patch-changes-7) + - [Patch Changes](#patch-changes-8) - [Changes by Package](#changes-by-package-7) - [v2.10.1](#v2101) - - [Patch Changes](#patch-changes-8) + - [Patch Changes](#patch-changes-9) - [Updated Dependencies](#updated-dependencies-5) - [Changes by Package](#changes-by-package-8) - [v2.10.0](#v2100) - [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-3) - - [Patch Changes](#patch-changes-9) + - [Patch Changes](#patch-changes-10) - [Updated Dependencies](#updated-dependencies-6) - [Changes by Package](#changes-by-package-9) - [v2.9.2](#v292) - [What's Changed](#whats-changed-4) - [Updated Type-Safety for Single Fetch](#updated-type-safety-for-single-fetch) - - [Patch Changes](#patch-changes-10) + - [Patch Changes](#patch-changes-11) - [Updated Dependencies](#updated-dependencies-7) - [Changes by Package](#changes-by-package-10) - [v2.9.1](#v291) - - [Patch Changes](#patch-changes-11) + - [Patch Changes](#patch-changes-12) - [Changes by Package](#changes-by-package-11) - [v2.9.0](#v290) - [What's Changed](#whats-changed-5) - [Single Fetch (unstable)](#single-fetch-unstable) - [Undici](#undici) - [Minor Changes](#minor-changes-4) - - [Patch Changes](#patch-changes-12) + - [Patch Changes](#patch-changes-13) - [Updated Dependencies](#updated-dependencies-8) - [Changes by Package](#changes-by-package-12) - [v2.8.1](#v281) - - [Patch Changes](#patch-changes-13) + - [Patch Changes](#patch-changes-14) - [Updated Dependencies](#updated-dependencies-9) - [Changes by Package](#changes-by-package-13) - [v2.8.0](#v280) - [Minor Changes](#minor-changes-5) - - [Patch Changes](#patch-changes-14) + - [Patch Changes](#patch-changes-15) - [Updated Dependencies](#updated-dependencies-10) - [Changes by Package](#changes-by-package-14) - [2.7.2](#272) - - [Patch Changes](#patch-changes-15) - - [2.7.1](#271) - [Patch Changes](#patch-changes-16) + - [2.7.1](#271) + - [Patch Changes](#patch-changes-17) - [v2.7.0](#v270) - [What's Changed](#whats-changed-6) - [Stabilized Vite Plugin](#stabilized-vite-plugin) @@ -102,18 +104,18 @@ We manage release notes in this file instead of the paginated Github Releases Pa - [Basename support](#basename-support) - [Cloudflare Proxy as a Vite Plugin](#cloudflare-proxy-as-a-vite-plugin) - [Minor Changes](#minor-changes-6) - - [Patch Changes](#patch-changes-17) + - [Patch Changes](#patch-changes-18) - [Updated Dependencies](#updated-dependencies-11) - [Changes by Package](#changes-by-package-15) - [v2.6.0](#v260) - [What's Changed](#whats-changed-7) - [Unstable Vite Plugin updates](#unstable-vite-plugin-updates) - [Minor Changes](#minor-changes-7) - - [Patch Changes](#patch-changes-18) + - [Patch Changes](#patch-changes-19) - [Updated Dependencies](#updated-dependencies-12) - [Changes by Package](#changes-by-package-16) - [v2.5.1](#v251) - - [Patch Changes](#patch-changes-19) + - [Patch Changes](#patch-changes-20) - [Updated Dependencies](#updated-dependencies-13) - [Changes by Package](#changes-by-package-17) - [v2.5.0](#v250) @@ -121,11 +123,11 @@ We manage release notes in this file instead of the paginated Github Releases Pa - [SPA Mode (unstable)](#spa-mode-unstable) - [Server Bundles (unstable)](#server-bundles-unstable) - [Minor Changes](#minor-changes-8) - - [Patch Changes](#patch-changes-20) + - [Patch Changes](#patch-changes-21) - [Updated Dependencies](#updated-dependencies-14) - [Changes by Package](#changes-by-package-18) - [v2.4.1](#v241) - - [Patch Changes](#patch-changes-21) + - [Patch Changes](#patch-changes-22) - [Updated Dependencies](#updated-dependencies-15) - [Changes by Package](#changes-by-package-19) - [v2.4.0](#v240) @@ -134,11 +136,11 @@ We manage release notes in this file instead of the paginated Github Releases Pa - [`future.v3_relativeSplatPath`](#futurev3_relativesplatpath) - [Vite Updates (Unstable)](#vite-updates-unstable) - [Minor Changes](#minor-changes-9) - - [Patch Changes](#patch-changes-22) + - [Patch Changes](#patch-changes-23) - [Updated Dependencies](#updated-dependencies-16) - [Changes by Package](#changes-by-package-20) - [v2.3.1](#v231) - - [Patch Changes](#patch-changes-23) + - [Patch Changes](#patch-changes-24) - [Updated Dependencies](#updated-dependencies-17) - [Changes by Package](#changes-by-package-21) - [v2.3.0](#v230) @@ -146,7 +148,7 @@ We manage release notes in this file instead of the paginated Github Releases Pa - [Stabilized `useBlocker`](#stabilized-useblocker) - [`unstable_flushSync` API](#unstable_flushsync-api) - [Minor Changes](#minor-changes-10) - - [Patch Changes](#patch-changes-24) + - [Patch Changes](#patch-changes-25) - [Updated Dependencies](#updated-dependencies-18) - [Changes by Package](#changes-by-package-22) - [v2.2.0](#v220) @@ -155,7 +157,7 @@ We manage release notes in this file instead of the paginated Github Releases Pa - [New Fetcher APIs](#new-fetcher-apis) - [Persistence Future Flag](#persistence-future-flag) - [Minor Changes](#minor-changes-11) - - [Patch Changes](#patch-changes-25) + - [Patch Changes](#patch-changes-26) - [Updated Dependencies](#updated-dependencies-19) - [Changes by Package](#changes-by-package-23) - [v2.1.0](#v210) @@ -163,11 +165,11 @@ We manage release notes in this file instead of the paginated Github Releases Pa - [View Transitions](#view-transitions) - [Stable `createRemixStub`](#stable-createremixstub) - [Minor Changes](#minor-changes-12) - - [Patch Changes](#patch-changes-26) + - [Patch Changes](#patch-changes-27) - [Updated Dependencies](#updated-dependencies-20) - [Changes by Package](#changes-by-package-24) - [v2.0.1](#v201) - - [Patch Changes](#patch-changes-27) + - [Patch Changes](#patch-changes-28) - [Changes by Package 🔗](#changes-by-package-) - [v2.0.0](#v200) - [Breaking Changes](#breaking-changes) @@ -228,6 +230,16 @@ Date: YYYY-MM-DD --> +## v2.13.1 + +Date: 2024-10-11 + +### Patch Changes + +- `@remix-run/dev` - Revert `future.v3_optimizeDeps` back to `future.unstable_optimizeDeps` as it was not intended to stabilize in Remix v2 ([#10099](https://github.com/remix-run/remix/pull/10099)) + +**Full Changelog**: [`v2.13.0...v2.13.1`](https://github.com/remix-run/remix/compare/remix@2.13.0...remix@2.13.1) + ## v2.13.0 Date: 2024-10-11 @@ -241,7 +253,8 @@ This release stabilizes a handful of "unstable" APIs in preparation for the [pen - `unstable_data` → `data` (for use with Single Fetch) - `unstable_flushSync` → `flushSync` (`useSubmit`, `fetcher.load`, `fetcher.submit`) - `unstable_viewTransition` → `viewTransition` (``, ``, `useNavigate`, `useSubmit`) -- `future.unstable_optimizeDeps` → `future.v3_optimizeDeps` ([Docs](https://remix.run/docs/en/main/guides/dependency-optimization)) +- ~~`future.unstable_optimizeDeps` → `future.v3_optimizeDeps` ([Docs](https://remix.run/docs/en/main/guides/dependency-optimization))~~ + - ⚠️ This flag was not intended to stabilize in Remix v2 and was reverted back to `future.unstable_optimizeDeps` in `2.13.1` - `future.unstable_lazyRouteDiscovery` → `future.v3_lazyRouteDiscovery` ([Docs](https://remix.run/docs/guides/lazy-route-discovery)) - `future.unstable_singleFetch` → `future.v3_singleFetch` ([Docs](https://remix.run/docs/guides/single-fetch)) From 22041a67ae120b5459d417d32fcc75d9d7a7227e Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Fri, 11 Oct 2024 17:07:05 -0400 Subject: [PATCH 33/44] 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 4ebfb281e6c..01199023e94 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 09b070d81acfdc7071f7c4e10db74ac6295fd9e4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 11 Oct 2024 17:30:40 -0400 Subject: [PATCH 34/44] chore: Update version for release (#10101) Co-authored-by: github-actions[bot] Co-authored-by: Matt Brophy --- .changeset/pre.json | 31 ------------------- .changeset/slow-guests-wait.md | 5 --- .../vite-cloudflare-template/package.json | 6 ++-- packages/create-remix/CHANGELOG.md | 4 ++- packages/create-remix/package.json | 2 +- packages/remix-architect/CHANGELOG.md | 4 +-- packages/remix-architect/package.json | 2 +- packages/remix-cloudflare-pages/CHANGELOG.md | 4 +-- packages/remix-cloudflare-pages/package.json | 2 +- .../remix-cloudflare-workers/CHANGELOG.md | 4 +-- .../remix-cloudflare-workers/package.json | 2 +- packages/remix-cloudflare/CHANGELOG.md | 4 +-- packages/remix-cloudflare/package.json | 2 +- packages/remix-css-bundle/CHANGELOG.md | 4 ++- packages/remix-css-bundle/package.json | 2 +- packages/remix-deno/CHANGELOG.md | 4 +-- packages/remix-deno/package.json | 2 +- packages/remix-dev/CHANGELOG.md | 9 +++--- packages/remix-dev/package.json | 6 ++-- packages/remix-eslint-config/CHANGELOG.md | 4 ++- packages/remix-eslint-config/package.json | 2 +- packages/remix-express/CHANGELOG.md | 4 +-- packages/remix-express/package.json | 2 +- packages/remix-node/CHANGELOG.md | 4 +-- packages/remix-node/package.json | 2 +- packages/remix-react/CHANGELOG.md | 4 +-- packages/remix-react/package.json | 2 +- packages/remix-serve/CHANGELOG.md | 6 ++-- packages/remix-serve/package.json | 2 +- packages/remix-server-runtime/CHANGELOG.md | 4 ++- packages/remix-server-runtime/package.json | 2 +- packages/remix-testing/CHANGELOG.md | 6 ++-- packages/remix-testing/package.json | 2 +- packages/remix/package.json | 2 +- pnpm-lock.yaml | 8 ++--- 35 files changed, 63 insertions(+), 92 deletions(-) delete mode 100644 .changeset/pre.json delete mode 100644 .changeset/slow-guests-wait.md diff --git a/.changeset/pre.json b/.changeset/pre.json deleted file mode 100644 index 01199023e94..00000000000 --- a/.changeset/pre.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "mode": "exit", - "tag": "pre", - "initialVersions": { - "integration": "0.0.0", - "integration-cf-template": "0.0.0", - "integration-deno-template": "0.0.0", - "integration-node-template": "0.0.0", - "integration-vite-cloudflare-template": "0.0.0", - "integration-vite-template": "0.0.0", - "create-remix": "2.13.0", - "remix": "2.13.0", - "@remix-run/architect": "2.13.0", - "@remix-run/cloudflare": "2.13.0", - "@remix-run/cloudflare-pages": "2.13.0", - "@remix-run/cloudflare-workers": "2.13.0", - "@remix-run/css-bundle": "2.13.0", - "@remix-run/deno": "2.13.0", - "@remix-run/dev": "2.13.0", - "@remix-run/eslint-config": "2.13.0", - "@remix-run/express": "2.13.0", - "@remix-run/node": "2.13.0", - "@remix-run/react": "2.13.0", - "@remix-run/serve": "2.13.0", - "@remix-run/server-runtime": "2.13.0", - "@remix-run/testing": "2.13.0" - }, - "changesets": [ - "slow-guests-wait" - ] -} diff --git a/.changeset/slow-guests-wait.md b/.changeset/slow-guests-wait.md deleted file mode 100644 index daa1eb032cb..00000000000 --- a/.changeset/slow-guests-wait.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@remix-run/dev": patch ---- - -Revert `future.v3_optimizeDeps` back to `future.unstable_optimizeDeps` as it was not intended to stabilize in Remix v2 diff --git a/integration/helpers/vite-cloudflare-template/package.json b/integration/helpers/vite-cloudflare-template/package.json index d51eeb78f5b..7847958772f 100644 --- a/integration/helpers/vite-cloudflare-template/package.json +++ b/integration/helpers/vite-cloudflare-template/package.json @@ -11,9 +11,9 @@ "typecheck": "tsc" }, "dependencies": { - "@remix-run/cloudflare": "2.13.1-pre.0", - "@remix-run/cloudflare-pages": "2.13.1-pre.0", - "@remix-run/react": "2.13.1-pre.0", + "@remix-run/cloudflare": "2.13.1", + "@remix-run/cloudflare-pages": "2.13.1", + "@remix-run/react": "2.13.1", "isbot": "^4.1.0", "miniflare": "^3.20231030.4", "react": "^18.2.0", diff --git a/packages/create-remix/CHANGELOG.md b/packages/create-remix/CHANGELOG.md index 356da1c4c56..82c9ff729bc 100644 --- a/packages/create-remix/CHANGELOG.md +++ b/packages/create-remix/CHANGELOG.md @@ -1,6 +1,8 @@ # `create-remix` -## 2.13.1-pre.0 +## 2.13.1 + +No significant changes to this package were made in this release. [See the repo `CHANGELOG.md`](https://github.com/remix-run/remix/blob/main/CHANGELOG.md) for an overview of all changes in v2.13.1. ## 2.13.0 diff --git a/packages/create-remix/package.json b/packages/create-remix/package.json index 9e263cf4337..e887d9edeba 100644 --- a/packages/create-remix/package.json +++ b/packages/create-remix/package.json @@ -1,6 +1,6 @@ { "name": "create-remix", - "version": "2.13.1-pre.0", + "version": "2.13.1", "description": "Create a new Remix app", "homepage": "https://remix.run", "bugs": { diff --git a/packages/remix-architect/CHANGELOG.md b/packages/remix-architect/CHANGELOG.md index e40b8122f51..9c617b74a5f 100644 --- a/packages/remix-architect/CHANGELOG.md +++ b/packages/remix-architect/CHANGELOG.md @@ -1,11 +1,11 @@ # `@remix-run/architect` -## 2.13.1-pre.0 +## 2.13.1 ### Patch Changes - Updated dependencies: - - `@remix-run/node@2.13.1-pre.0` + - `@remix-run/node@2.13.1` ## 2.13.0 diff --git a/packages/remix-architect/package.json b/packages/remix-architect/package.json index 7daa94d4cdc..05febea36be 100644 --- a/packages/remix-architect/package.json +++ b/packages/remix-architect/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/architect", - "version": "2.13.1-pre.0", + "version": "2.13.1", "description": "Architect server request handler for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-cloudflare-pages/CHANGELOG.md b/packages/remix-cloudflare-pages/CHANGELOG.md index c0ff7fa5ef0..84e7a88b7e6 100644 --- a/packages/remix-cloudflare-pages/CHANGELOG.md +++ b/packages/remix-cloudflare-pages/CHANGELOG.md @@ -1,11 +1,11 @@ # `@remix-run/cloudflare-pages` -## 2.13.1-pre.0 +## 2.13.1 ### Patch Changes - Updated dependencies: - - `@remix-run/cloudflare@2.13.1-pre.0` + - `@remix-run/cloudflare@2.13.1` ## 2.13.0 diff --git a/packages/remix-cloudflare-pages/package.json b/packages/remix-cloudflare-pages/package.json index 8faf38035af..d589a3517b5 100644 --- a/packages/remix-cloudflare-pages/package.json +++ b/packages/remix-cloudflare-pages/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/cloudflare-pages", - "version": "2.13.1-pre.0", + "version": "2.13.1", "description": "Cloudflare Pages request handler for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-cloudflare-workers/CHANGELOG.md b/packages/remix-cloudflare-workers/CHANGELOG.md index 52760b233aa..0115a93fa35 100644 --- a/packages/remix-cloudflare-workers/CHANGELOG.md +++ b/packages/remix-cloudflare-workers/CHANGELOG.md @@ -1,11 +1,11 @@ # `@remix-run/cloudflare-workers` -## 2.13.1-pre.0 +## 2.13.1 ### Patch Changes - Updated dependencies: - - `@remix-run/cloudflare@2.13.1-pre.0` + - `@remix-run/cloudflare@2.13.1` ## 2.13.0 diff --git a/packages/remix-cloudflare-workers/package.json b/packages/remix-cloudflare-workers/package.json index ea8093c93e7..78461d17648 100644 --- a/packages/remix-cloudflare-workers/package.json +++ b/packages/remix-cloudflare-workers/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/cloudflare-workers", - "version": "2.13.1-pre.0", + "version": "2.13.1", "description": "Cloudflare worker request handler for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-cloudflare/CHANGELOG.md b/packages/remix-cloudflare/CHANGELOG.md index 655b2057988..d29516e638e 100644 --- a/packages/remix-cloudflare/CHANGELOG.md +++ b/packages/remix-cloudflare/CHANGELOG.md @@ -1,11 +1,11 @@ # `@remix-run/cloudflare` -## 2.13.1-pre.0 +## 2.13.1 ### Patch Changes - Updated dependencies: - - `@remix-run/server-runtime@2.13.1-pre.0` + - `@remix-run/server-runtime@2.13.1` ## 2.13.0 diff --git a/packages/remix-cloudflare/package.json b/packages/remix-cloudflare/package.json index 0fc6b58bcf2..97a95b502ad 100644 --- a/packages/remix-cloudflare/package.json +++ b/packages/remix-cloudflare/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/cloudflare", - "version": "2.13.1-pre.0", + "version": "2.13.1", "description": "Cloudflare platform abstractions for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-css-bundle/CHANGELOG.md b/packages/remix-css-bundle/CHANGELOG.md index f47f32a45d8..1cb3b9f424c 100644 --- a/packages/remix-css-bundle/CHANGELOG.md +++ b/packages/remix-css-bundle/CHANGELOG.md @@ -1,6 +1,8 @@ # @remix-run/css-bundle -## 2.13.1-pre.0 +## 2.13.1 + +No significant changes to this package were made in this release. [See the repo `CHANGELOG.md`](https://github.com/remix-run/remix/blob/main/CHANGELOG.md) for an overview of all changes in v2.13.1. ## 2.13.0 diff --git a/packages/remix-css-bundle/package.json b/packages/remix-css-bundle/package.json index bfeca962d59..09da81b2cb6 100644 --- a/packages/remix-css-bundle/package.json +++ b/packages/remix-css-bundle/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/css-bundle", - "version": "2.13.1-pre.0", + "version": "2.13.1", "description": "CSS bundle href when using CSS bundling features in Remix", "homepage": "https://remix.run", "bugs": { diff --git a/packages/remix-deno/CHANGELOG.md b/packages/remix-deno/CHANGELOG.md index 3d1bfc892d9..58a204b7503 100644 --- a/packages/remix-deno/CHANGELOG.md +++ b/packages/remix-deno/CHANGELOG.md @@ -1,11 +1,11 @@ # `@remix-run/deno` -## 2.13.1-pre.0 +## 2.13.1 ### Patch Changes - Updated dependencies: - - `@remix-run/server-runtime@2.13.1-pre.0` + - `@remix-run/server-runtime@2.13.1` ## 2.13.0 diff --git a/packages/remix-deno/package.json b/packages/remix-deno/package.json index 09a3d9ea2a8..1ffa3876ea9 100644 --- a/packages/remix-deno/package.json +++ b/packages/remix-deno/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/deno", - "version": "2.13.1-pre.0", + "version": "2.13.1", "description": "Deno platform abstractions for Remix", "homepage": "https://remix.run", "main": "./index.ts", diff --git a/packages/remix-dev/CHANGELOG.md b/packages/remix-dev/CHANGELOG.md index a14315c7d3a..1124da7ae20 100644 --- a/packages/remix-dev/CHANGELOG.md +++ b/packages/remix-dev/CHANGELOG.md @@ -1,15 +1,13 @@ # `@remix-run/dev` -## 2.13.1-pre.0 +## 2.13.1 ### Patch Changes - Revert `future.v3_optimizeDeps` back to `future.unstable_optimizeDeps` as it was not intended to stabilize in Remix v2 ([#10099](https://github.com/remix-run/remix/pull/10099)) - Updated dependencies: - - `@remix-run/node@2.13.1-pre.0` - - `@remix-run/react@2.13.1-pre.0` - - `@remix-run/serve@2.13.1-pre.0` - - `@remix-run/server-runtime@2.13.1-pre.0` + - `@remix-run/node@2.13.1` + - `@remix-run/server-runtime@2.13.1` ## 2.13.0 @@ -35,6 +33,7 @@ - This has likely not shown up in any production scenarios because cloudflare/deno production runtimes are (correctly) not aborting the `request.signal` on successful renders - The built-in `entry.server` files no longer pass a `signal` to `renderToReadableStream` because adding a timeout-based abort signal to the default behavior would constitute a breaking change - Users can configure this abort behavior via their own `entry.server` via `remix reveal entry.server`, and the template entry.server files have been updated with an example approach for newly created Remix apps + - Fix adapter logic for aborting `request.signal` so we don't incorrectly abort on the `close` event for successful requests ([#10046](https://github.com/remix-run/remix/pull/10046)) - Updated dependencies: diff --git a/packages/remix-dev/package.json b/packages/remix-dev/package.json index 1cb29b9d64c..6bba3c50b3a 100644 --- a/packages/remix-dev/package.json +++ b/packages/remix-dev/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/dev", - "version": "2.13.1-pre.0", + "version": "2.13.1", "description": "Dev tools and CLI for Remix", "homepage": "https://remix.run", "bugs": { @@ -106,8 +106,8 @@ "wrangler": "^3.28.2" }, "peerDependencies": { - "@remix-run/react": "^2.13.1-pre.0", - "@remix-run/serve": "^2.13.1-pre.0", + "@remix-run/react": "^2.13.1", + "@remix-run/serve": "^2.13.1", "typescript": "^5.1.0", "vite": "^5.1.0", "wrangler": "^3.28.2" diff --git a/packages/remix-eslint-config/CHANGELOG.md b/packages/remix-eslint-config/CHANGELOG.md index c97a8b487c5..fb82160aa22 100644 --- a/packages/remix-eslint-config/CHANGELOG.md +++ b/packages/remix-eslint-config/CHANGELOG.md @@ -1,6 +1,8 @@ # `@remix-run/eslint-config` -## 2.13.1-pre.0 +## 2.13.1 + +No significant changes to this package were made in this release. [See the repo `CHANGELOG.md`](https://github.com/remix-run/remix/blob/main/CHANGELOG.md) for an overview of all changes in v2.13.1. ## 2.13.0 diff --git a/packages/remix-eslint-config/package.json b/packages/remix-eslint-config/package.json index 1298dfc4637..96c2787a2b2 100644 --- a/packages/remix-eslint-config/package.json +++ b/packages/remix-eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/eslint-config", - "version": "2.13.1-pre.0", + "version": "2.13.1", "description": "ESLint configuration for Remix projects", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-express/CHANGELOG.md b/packages/remix-express/CHANGELOG.md index 644fb444c02..d18fb63860d 100644 --- a/packages/remix-express/CHANGELOG.md +++ b/packages/remix-express/CHANGELOG.md @@ -1,11 +1,11 @@ # `@remix-run/express` -## 2.13.1-pre.0 +## 2.13.1 ### Patch Changes - Updated dependencies: - - `@remix-run/node@2.13.1-pre.0` + - `@remix-run/node@2.13.1` ## 2.13.0 diff --git a/packages/remix-express/package.json b/packages/remix-express/package.json index e024e24f47d..f8bd24a0f3b 100644 --- a/packages/remix-express/package.json +++ b/packages/remix-express/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/express", - "version": "2.13.1-pre.0", + "version": "2.13.1", "description": "Express server request handler for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-node/CHANGELOG.md b/packages/remix-node/CHANGELOG.md index d6c7c835783..839aaa649df 100644 --- a/packages/remix-node/CHANGELOG.md +++ b/packages/remix-node/CHANGELOG.md @@ -1,11 +1,11 @@ # `@remix-run/node` -## 2.13.1-pre.0 +## 2.13.1 ### Patch Changes - Updated dependencies: - - `@remix-run/server-runtime@2.13.1-pre.0` + - `@remix-run/server-runtime@2.13.1` ## 2.13.0 diff --git a/packages/remix-node/package.json b/packages/remix-node/package.json index 69b07b3e7fc..75b3a95cc41 100644 --- a/packages/remix-node/package.json +++ b/packages/remix-node/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/node", - "version": "2.13.1-pre.0", + "version": "2.13.1", "description": "Node.js platform abstractions for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-react/CHANGELOG.md b/packages/remix-react/CHANGELOG.md index 0429142e97c..9bdd8186649 100644 --- a/packages/remix-react/CHANGELOG.md +++ b/packages/remix-react/CHANGELOG.md @@ -1,11 +1,11 @@ # `@remix-run/react` -## 2.13.1-pre.0 +## 2.13.1 ### Patch Changes - Updated dependencies: - - `@remix-run/server-runtime@2.13.1-pre.0` + - `@remix-run/server-runtime@2.13.1` ## 2.13.0 diff --git a/packages/remix-react/package.json b/packages/remix-react/package.json index 72dfcfa1e04..62a0a063d26 100644 --- a/packages/remix-react/package.json +++ b/packages/remix-react/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/react", - "version": "2.13.1-pre.0", + "version": "2.13.1", "description": "React DOM bindings for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-serve/CHANGELOG.md b/packages/remix-serve/CHANGELOG.md index e2ebb5a3fda..1c0d1969f89 100644 --- a/packages/remix-serve/CHANGELOG.md +++ b/packages/remix-serve/CHANGELOG.md @@ -1,12 +1,12 @@ # `@remix-run/serve` -## 2.13.1-pre.0 +## 2.13.1 ### Patch Changes - Updated dependencies: - - `@remix-run/express@2.13.1-pre.0` - - `@remix-run/node@2.13.1-pre.0` + - `@remix-run/express@2.13.1` + - `@remix-run/node@2.13.1` ## 2.13.0 diff --git a/packages/remix-serve/package.json b/packages/remix-serve/package.json index 5cd5c3777a6..9c019917385 100644 --- a/packages/remix-serve/package.json +++ b/packages/remix-serve/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/serve", - "version": "2.13.1-pre.0", + "version": "2.13.1", "description": "Production application server for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-server-runtime/CHANGELOG.md b/packages/remix-server-runtime/CHANGELOG.md index 28017c5a0eb..60d8486e108 100644 --- a/packages/remix-server-runtime/CHANGELOG.md +++ b/packages/remix-server-runtime/CHANGELOG.md @@ -1,6 +1,8 @@ # `@remix-run/server-runtime` -## 2.13.1-pre.0 +## 2.13.1 + +No significant changes to this package were made in this release. [See the repo `CHANGELOG.md`](https://github.com/remix-run/remix/blob/main/CHANGELOG.md) for an overview of all changes in v2.13.1. ## 2.13.0 diff --git a/packages/remix-server-runtime/package.json b/packages/remix-server-runtime/package.json index aa6cf5cd5f6..f129a9517cb 100644 --- a/packages/remix-server-runtime/package.json +++ b/packages/remix-server-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/server-runtime", - "version": "2.13.1-pre.0", + "version": "2.13.1", "description": "Server runtime for Remix", "bugs": { "url": "https://github.com/remix-run/remix/issues" diff --git a/packages/remix-testing/CHANGELOG.md b/packages/remix-testing/CHANGELOG.md index 5ce54db7e75..261d421eec5 100644 --- a/packages/remix-testing/CHANGELOG.md +++ b/packages/remix-testing/CHANGELOG.md @@ -1,12 +1,12 @@ # `@remix-run/testing` -## 2.13.1-pre.0 +## 2.13.1 ### Patch Changes - Updated dependencies: - - `@remix-run/node@2.13.1-pre.0` - - `@remix-run/react@2.13.1-pre.0` + - `@remix-run/node@2.13.1` + - `@remix-run/react@2.13.1` ## 2.13.0 diff --git a/packages/remix-testing/package.json b/packages/remix-testing/package.json index 69cfce0b5d1..7369a7cc343 100644 --- a/packages/remix-testing/package.json +++ b/packages/remix-testing/package.json @@ -1,6 +1,6 @@ { "name": "@remix-run/testing", - "version": "2.13.1-pre.0", + "version": "2.13.1", "description": "Testing utilities for Remix apps", "homepage": "https://remix.run", "bugs": { diff --git a/packages/remix/package.json b/packages/remix/package.json index f7cc2b4fc65..a841e28f4d9 100644 --- a/packages/remix/package.json +++ b/packages/remix/package.json @@ -1,6 +1,6 @@ { "name": "remix", - "version": "2.13.1-pre.0", + "version": "2.13.1", "description": "A framework for building better websites", "homepage": "https://remix.run", "bugs": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 53589c04047..5c47a59527d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -548,13 +548,13 @@ importers: integration/helpers/vite-cloudflare-template: dependencies: '@remix-run/cloudflare': - specifier: 2.13.1-pre.0 + specifier: 2.13.1 version: link:../../../packages/remix-cloudflare '@remix-run/cloudflare-pages': - specifier: 2.13.1-pre.0 + specifier: 2.13.1 version: link:../../../packages/remix-cloudflare-pages '@remix-run/react': - specifier: 2.13.1-pre.0 + specifier: 2.13.1 version: link:../../../packages/remix-react isbot: specifier: ^4.1.0 @@ -868,7 +868,7 @@ importers: specifier: workspace:* version: link:../remix-node '@remix-run/react': - specifier: ^2.13.1-pre.0 + specifier: ^2.13.1 version: link:../remix-react '@remix-run/router': specifier: 1.20.0 From cab5a7c09c3496d253de29637e73f859a1c72776 Mon Sep 17 00:00:00 2001 From: Remix Run Bot Date: Fri, 11 Oct 2024 21:45:08 +0000 Subject: [PATCH 35/44] chore: format --- packages/remix-dev/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/remix-dev/CHANGELOG.md b/packages/remix-dev/CHANGELOG.md index 1124da7ae20..a113245a8b4 100644 --- a/packages/remix-dev/CHANGELOG.md +++ b/packages/remix-dev/CHANGELOG.md @@ -29,6 +29,7 @@ ### Patch Changes - Stop passing `request.signal` as the `renderToReadableStream` `signal` to abort server rendering for cloudflare/deno runtimes because by the time that `request` is aborted, aborting the rendering is useless because there's no way for React to flush down the unresolved boundaries ([#10047](https://github.com/remix-run/remix/pull/10047)) + - This has been incorrect for some time, but only recently exposed due to a bug in how we were aborting requests when running via `remix vite:dev` because we were incorrectly aborting requests after successful renders - which was causing us to abort a completed React render, and try to close an already closed `ReadableStream`. - This has likely not shown up in any production scenarios because cloudflare/deno production runtimes are (correctly) not aborting the `request.signal` on successful renders - The built-in `entry.server` files no longer pass a `signal` to `renderToReadableStream` because adding a timeout-based abort signal to the default behavior would constitute a breaking change From 6823da7d00ba2cbce7d860f41b053386d80ee8d2 Mon Sep 17 00:00:00 2001 From: imzivko Date: Mon, 14 Oct 2024 00:02:30 +0200 Subject: [PATCH 36/44] docs(file-conventions/entry.server): fix grammar (#10103) --- contributors.yml | 1 + docs/file-conventions/entry.server.md | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/contributors.yml b/contributors.yml index 57082791773..62d1c3e7115 100644 --- a/contributors.yml +++ b/contributors.yml @@ -278,6 +278,7 @@ - IshanKBG - itsMapleLeaf - izznatsir +- imzivko - jacargentina - jack-r-warren - jackhkmatthews diff --git a/docs/file-conventions/entry.server.md b/docs/file-conventions/entry.server.md index 1b91437af8d..e5a159f2e0d 100644 --- a/docs/file-conventions/entry.server.md +++ b/docs/file-conventions/entry.server.md @@ -51,12 +51,12 @@ _Note that you generally want to avoid logging when the request was aborted, sin ### Streaming Rendering Errors -When you are streaming your HTML responses via [`renderToPipeableStream`][rendertopipeablestream] or [`renderToReadableStream`][rendertoreadablestream], your own `handleError` implementation will only handle errors encountered during the initial shell render. If you encounter a rendering error during subsequent streamed rendering you will need handle these errors manually since the Remix server has already sent the Response by that point. +When you are streaming your HTML responses via [`renderToPipeableStream`][rendertopipeablestream] or [`renderToReadableStream`][rendertoreadablestream], your own `handleError` implementation will only handle errors encountered during the initial shell render. If you encounter a rendering error during subsequent streamed rendering you will need to handle these errors manually since the Remix server has already sent the Response by that point. -- For `renderToPipeableStream`, you can handle these errors in the `onError` callback function. You will need to toggle a boolean when the in `onShellReady` so you know if the error was a shell rendering error (and can be ignored) or an async rendering error (and must be handled). - - For an example, please see the default [`entry.server.tsx`][node-streaming-entry-server] for Node. +- For `renderToPipeableStream`, you can handle these errors in the `onError` callback function. You will need to toggle a boolean in `onShellReady` so you know if the error was a shell rendering error (and can be ignored) or an async rendering error (and must be handled). + - For an example, please refer to the default [`entry.server.tsx`][node-streaming-entry-server] for Node. - For `renderToReadableStream`, you can handle these errors in the `onError` callback function - - For an example, please see the default [`entry.server.tsx`][cloudflare-streaming-entry-server] for Cloudflare + - For an example, please refer to the default [`entry.server.tsx`][cloudflare-streaming-entry-server] for Cloudflare ### Thrown Responses From 308788f3bfe9c3ebb2ee6ae564865e328e8febd2 Mon Sep 17 00:00:00 2001 From: Remix Run Bot Date: Sun, 13 Oct 2024 22:03:50 +0000 Subject: [PATCH 37/44] chore: format --- contributors.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contributors.yml b/contributors.yml index 62d1c3e7115..83da2eac51d 100644 --- a/contributors.yml +++ b/contributors.yml @@ -269,6 +269,7 @@ - IgnusG - ikarus-akhil - illright +- imzivko - imzshh - infomiho - ionut-botizan @@ -278,7 +279,6 @@ - IshanKBG - itsMapleLeaf - izznatsir -- imzivko - jacargentina - jack-r-warren - jackhkmatthews From 8649f1a561ce5ea0bfba5ab862c0c94052f4a5c3 Mon Sep 17 00:00:00 2001 From: Petr Pacas Date: Mon, 14 Oct 2024 11:14:10 +0200 Subject: [PATCH 38/44] docs(guides/single-fetch): use stabilized flag (#10102) --- contributors.yml | 1 + docs/guides/single-fetch.md | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/contributors.yml b/contributors.yml index 83da2eac51d..8dff80d0f6c 100644 --- a/contributors.yml +++ b/contributors.yml @@ -532,6 +532,7 @@ - penspinner - penx - petetnt +- petrpacas - philandstuff - phishy - plastic041 diff --git a/docs/guides/single-fetch.md b/docs/guides/single-fetch.md index 1c4123196f2..7dac6d1c44c 100644 --- a/docs/guides/single-fetch.md +++ b/docs/guides/single-fetch.md @@ -80,7 +80,7 @@ There are a handful of breaking changes introduced with Single Fetch - some of w - **[New streaming Data format][streaming-format]**: Single fetch uses a new streaming format under the hood via [`turbo-stream`][turbo-stream], which means that we can stream down more complex data than just JSON - **No more auto-serialization**: Naked objects returned from `loader` and `action` functions are no longer automatically converted into a JSON `Response` and are serialized as-is over the wire -- [**Updates to type inference**][type-inference-section]: To get the most accurate type inference, you should [augment][augment] Remix's `Future` interface with `unstable_singleFetch: true` +- [**Updates to type inference**][type-inference-section]: To get the most accurate type inference, you should [augment][augment] Remix's `Future` interface with `v3_singleFetch: true` - [**Default revalidation behavior changes to opt-out on GET navigations**][revalidation]: Default revalidation behavior on normal navigations changes from opt-in to opt-out and your server loaders will re-run by default - [**Opt-in `action` revalidation**][action-revalidation]: Revalidation after an `action` `4xx`/`5xx` `Response` is now opt-in, versus opt-out @@ -88,7 +88,7 @@ There are a handful of breaking changes introduced with Single Fetch - some of w With Single Fetch enabled, you can go ahead and author routes that take advantage of the more powerful streaming format. -In order to get proper type inference, you need to [augment][augment] Remix's `Future` interface with `unstable_singleFetch: true`. You can read more about this in the [Type Inference section][type-inference-section]. +In order to get proper type inference, you need to [augment][augment] Remix's `Future` interface with `v3_singleFetch: true`. You can read more about this in the [Type Inference section][type-inference-section]. With Single Fetch you can return the following data types from your loader: `BigInt`, `Date`, `Error`, `Map`, `Promise`, `RegExp`, `Set`, `Symbol`, and `URL`. From 64612cc0b271cbebc1791bb69fd84e9727814e6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20K=C3=BChnel?= Date: Tue, 15 Oct 2024 16:27:04 +0200 Subject: [PATCH 39/44] [Grammar] Add missing period after sentence. (#10094) --- README.md | 2 +- contributors.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f72934f925c..49057fff0dd 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ We are happy you're here! [Remix](https://remix.run) is a full stack web framework that lets you focus on the user interface and work back through web fundamentals to deliver a fast, slick, and resilient user experience that deploys to any Node.js server and even non-Node.js environments at the edge like Cloudflare Workers. -Want to know more? Read the [Technical Explanation of Remix](https://remix.run/discussion/introduction) +Want to know more? Read the [Technical Explanation of Remix](https://remix.run/discussion/introduction). This repository contains the Remix source code. This repo is a work in progress, so we appreciate your patience as we figure things out. diff --git a/contributors.yml b/contributors.yml index 8dff80d0f6c..588b3a6712f 100644 --- a/contributors.yml +++ b/contributors.yml @@ -469,6 +469,7 @@ - mikechabot - mikeybinnswebdesign - mirzafaizan +- mischah - mitchelldirt - mjackson - mjangir From 11c2acc6d901442e07934fd78f1098040f616382 Mon Sep 17 00:00:00 2001 From: Matt Brophy Date: Tue, 15 Oct 2024 10:42:28 -0400 Subject: [PATCH 40/44] Update docs for single fetch nonce --- docs/guides/single-fetch.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/guides/single-fetch.md b/docs/guides/single-fetch.md index 7dac6d1c44c..7aa26050b00 100644 --- a/docs/guides/single-fetch.md +++ b/docs/guides/single-fetch.md @@ -53,9 +53,12 @@ Single Fetch requires using [`undici`][undici] as your `fetch` polyfill, or usin With Single Fetch enabled, there will now only be one request made on client-side navigations even when multiple loaders need to run. To handle merging headers for the handlers called, the [`headers`][headers] export will now also apply to `loader`/`action` data requests. In many cases, the logic you already have in there for document requests should be close to sufficient for your new Single Fetch data requests. -**4. Add `nonce` to `` (if you are using a CSP)** +**4. Add a `nonce` (if you are using a CSP)** -The `` component renders inline scripts that handle the streaming data on the client side. If you have a [content security policy for scripts][csp] with [nonce-sources][csp-nonce], you can use `` to pass through the nonce to these `