diff --git a/decisions/0014-context-middleware.md b/decisions/0014-context-middleware.md index 10dd5db633..4609256ab2 100644 --- a/decisions/0014-context-middleware.md +++ b/decisions/0014-context-middleware.md @@ -17,7 +17,7 @@ We've done a lot of work since then to get us to a place where we could ship a m - Shipped [Single Fetch][single-fetch] - Shipped [`dataStrategy`][data-strategy] for DIY middleware in React Router SPAs -- Iterated on middleware/context APIs in the [Remix the Web][remix-the-web] project +- Iterated on middleware/context APIs in the [Remix 3][remix-3] project - Developed a non-invasive type-safe + composable [context][async-provider] API ## Decision @@ -276,5 +276,5 @@ If `clientLoaders` do call `serverLoaders` it gets trickier since they make indi [client-context]: https://github.com/remix-run/react-router/discussions/9856 [single-fetch]: https://remix.run/docs/en/main/guides/single-fetch [data-strategy]: https://reactrouter.com/v6/routers/create-browser-router#optsdatastrategy -[remix-the-web]: https://github.com/mjackson/remix-the-web +[remix-3]: https://github.com/remix-run/remix/tree/v3 [async-provider]: https://github.com/ryanflorence/async-provider diff --git a/integration/helpers/rsc-parcel-framework/package.json b/integration/helpers/rsc-parcel-framework/package.json index a17de0ed03..d93d577de1 100644 --- a/integration/helpers/rsc-parcel-framework/package.json +++ b/integration/helpers/rsc-parcel-framework/package.json @@ -33,8 +33,8 @@ "typescript": "^5.1.6" }, "dependencies": { - "@mjackson/node-fetch-server": "0.6.1", "@parcel/runtime-rsc": "2.15.0", + "@remix-run/node-fetch-server": "^0.8.0", "cross-env": "^7.0.3", "express": "^4.21.2", "react": "^19.0.0", diff --git a/integration/helpers/rsc-parcel-framework/start.js b/integration/helpers/rsc-parcel-framework/start.js index 8ebd27db0f..74a552dd84 100644 --- a/integration/helpers/rsc-parcel-framework/start.js +++ b/integration/helpers/rsc-parcel-framework/start.js @@ -1,4 +1,4 @@ -const { createRequestListener } = require("@mjackson/node-fetch-server"); +const { createRequestListener } = require("@remix-run/node-fetch-server"); const express = require("express"); const reactRouterRequestHandler = require("./build/server/index.js").requestHandler; diff --git a/integration/helpers/rsc-parcel/package.json b/integration/helpers/rsc-parcel/package.json index 0b5c2eecac..d601bfec57 100644 --- a/integration/helpers/rsc-parcel/package.json +++ b/integration/helpers/rsc-parcel/package.json @@ -37,8 +37,8 @@ "url": "^0.11.0" }, "dependencies": { - "@mjackson/node-fetch-server": "0.6.1", "@parcel/runtime-rsc": "2.15.0", + "@remix-run/node-fetch-server": "^0.8.0", "cross-env": "^7.0.3", "express": "^4.21.2", "react": "^19.1.0", diff --git a/integration/helpers/rsc-parcel/src/server.tsx b/integration/helpers/rsc-parcel/src/server.tsx index a5684ffd7f..8817b6af3f 100644 --- a/integration/helpers/rsc-parcel/src/server.tsx +++ b/integration/helpers/rsc-parcel/src/server.tsx @@ -1,5 +1,5 @@ import { parseArgs } from "node:util"; -import { createRequestListener } from "@mjackson/node-fetch-server"; +import { createRequestListener } from "@remix-run/node-fetch-server"; import express from "express"; import { unstable_matchRSCServerRequest as matchRSCServerRequest } from "react-router"; import { diff --git a/integration/helpers/rsc-vite-framework/package.json b/integration/helpers/rsc-vite-framework/package.json index e9a983b046..61b7dd3754 100644 --- a/integration/helpers/rsc-vite-framework/package.json +++ b/integration/helpers/rsc-vite-framework/package.json @@ -29,7 +29,7 @@ "vite-tsconfig-paths": "^4.2.1" }, "dependencies": { - "@mjackson/node-fetch-server": "0.6.1", + "@remix-run/node-fetch-server": "^0.8.0", "compression": "^1.8.0", "express": "^4.21.2", "react": "^19.0.0", diff --git a/integration/helpers/rsc-vite-framework/start.js b/integration/helpers/rsc-vite-framework/start.js index 91b7c93a3b..ee69fab674 100644 --- a/integration/helpers/rsc-vite-framework/start.js +++ b/integration/helpers/rsc-vite-framework/start.js @@ -1,4 +1,4 @@ -import { createRequestListener } from "@mjackson/node-fetch-server"; +import { createRequestListener } from "@remix-run/node-fetch-server"; import express from "express"; import reactRouterRequestHandler from "./build/server/index.js"; diff --git a/integration/helpers/rsc-vite/package.json b/integration/helpers/rsc-vite/package.json index 36fa88cc8b..201fa479ff 100644 --- a/integration/helpers/rsc-vite/package.json +++ b/integration/helpers/rsc-vite/package.json @@ -20,7 +20,7 @@ "vite": "^6.2.0" }, "dependencies": { - "@mjackson/node-fetch-server": "0.6.1", + "@remix-run/node-fetch-server": "^0.8.0", "compression": "^1.8.0", "cross-env": "^7.0.3", "express": "^4.21.2", diff --git a/integration/helpers/rsc-vite/server.js b/integration/helpers/rsc-vite/server.js index c897acd7ad..a572da1ec0 100644 --- a/integration/helpers/rsc-vite/server.js +++ b/integration/helpers/rsc-vite/server.js @@ -1,5 +1,5 @@ import { parseArgs } from "node:util"; -import { createRequestListener } from "@mjackson/node-fetch-server"; +import { createRequestListener } from "@remix-run/node-fetch-server"; import compression from "compression"; import express from "express"; diff --git a/packages/react-router-node/package.json b/packages/react-router-node/package.json index e79c03a1ca..f45c43d3b2 100644 --- a/packages/react-router-node/package.json +++ b/packages/react-router-node/package.json @@ -50,7 +50,7 @@ } }, "dependencies": { - "@mjackson/node-fetch-server": "^0.2.0" + "@remix-run/node-fetch-server": "^0.8.0" }, "devDependencies": { "react-router": "workspace:*", diff --git a/packages/react-router-node/server.ts b/packages/react-router-node/server.ts index d4423bfb61..441597e60a 100644 --- a/packages/react-router-node/server.ts +++ b/packages/react-router-node/server.ts @@ -1,5 +1,7 @@ import type { RequestListener } from "node:http"; +import type { ClientAddress } from "@remix-run/node-fetch-server"; +import { createRequestListener as createRequestListener_ } from "@remix-run/node-fetch-server"; import type { AppLoadContext, ServerBuild, @@ -7,8 +9,6 @@ import type { RouterContextProvider, } from "react-router"; import { createRequestHandler } from "react-router"; -import type { ClientAddress } from "@mjackson/node-fetch-server"; -import { createRequestListener as createRequestListener_ } from "@mjackson/node-fetch-server"; type MaybePromise = T | Promise; diff --git a/playground/rsc-parcel-framework/package.json b/playground/rsc-parcel-framework/package.json index f306209a99..e774b6cac4 100644 --- a/playground/rsc-parcel-framework/package.json +++ b/playground/rsc-parcel-framework/package.json @@ -31,8 +31,8 @@ "parcel-config-react-router-experimental": "1.0.25" }, "dependencies": { - "@mjackson/node-fetch-server": "0.6.1", "@parcel/runtime-rsc": "2.15.0", + "@remix-run/node-fetch-server": "^0.8.0", "express": "^4.21.2", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/playground/rsc-parcel/package.json b/playground/rsc-parcel/package.json index 8b4ba155b9..096310e842 100644 --- a/playground/rsc-parcel/package.json +++ b/playground/rsc-parcel/package.json @@ -37,8 +37,8 @@ "url": "^0.11.0" }, "dependencies": { - "@mjackson/node-fetch-server": "0.6.1", "@parcel/runtime-rsc": "2.15.0", + "@remix-run/node-fetch-server": "^0.8.0", "express": "^4.21.2", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/playground/rsc-parcel/src/entry.ssr.tsx b/playground/rsc-parcel/src/entry.ssr.tsx index 56df53c587..395a24df90 100644 --- a/playground/rsc-parcel/src/entry.ssr.tsx +++ b/playground/rsc-parcel/src/entry.ssr.tsx @@ -1,4 +1,4 @@ -import { createRequestListener } from "@mjackson/node-fetch-server"; +import { createRequestListener } from "@remix-run/node-fetch-server"; import express from "express"; // @ts-expect-error - no types import { renderToReadableStream as renderHTMLToReadableStream } from "react-dom/server.edge" assert { env: "react-client" }; @@ -28,11 +28,11 @@ app.use( bootstrapScriptContent: ( fetchServer as unknown as { bootstrapScript: string } ).bootstrapScript, - } + }, ); }, }); - }) + }), ); const server = app.listen(3000); diff --git a/playground/rsc-vite-framework/package.json b/playground/rsc-vite-framework/package.json index 2ae4779b13..d2b49ae8e4 100644 --- a/playground/rsc-vite-framework/package.json +++ b/playground/rsc-vite-framework/package.json @@ -26,7 +26,7 @@ "vite": "^6.2.0" }, "dependencies": { - "@mjackson/node-fetch-server": "0.6.1", + "@remix-run/node-fetch-server": "^0.8.0", "compression": "^1.8.0", "express": "^4.21.2", "react": "^19.0.0", diff --git a/playground/rsc-vite-framework/start.js b/playground/rsc-vite-framework/start.js index 91b7c93a3b..ee69fab674 100644 --- a/playground/rsc-vite-framework/start.js +++ b/playground/rsc-vite-framework/start.js @@ -1,4 +1,4 @@ -import { createRequestListener } from "@mjackson/node-fetch-server"; +import { createRequestListener } from "@remix-run/node-fetch-server"; import express from "express"; import reactRouterRequestHandler from "./build/server/index.js"; diff --git a/playground/rsc-vite/package.json b/playground/rsc-vite/package.json index 752f1191c0..6717c8789e 100644 --- a/playground/rsc-vite/package.json +++ b/playground/rsc-vite/package.json @@ -21,7 +21,7 @@ "vite": "^6.2.0" }, "dependencies": { - "@mjackson/node-fetch-server": "0.6.1", + "@remix-run/node-fetch-server": "^0.8.0", "compression": "^1.8.0", "express": "^4.21.2", "react": "^19.0.0", diff --git a/playground/rsc-vite/server.js b/playground/rsc-vite/server.js index c897acd7ad..a572da1ec0 100644 --- a/playground/rsc-vite/server.js +++ b/playground/rsc-vite/server.js @@ -1,5 +1,5 @@ import { parseArgs } from "node:util"; -import { createRequestListener } from "@mjackson/node-fetch-server"; +import { createRequestListener } from "@remix-run/node-fetch-server"; import compression from "compression"; import express from "express"; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7e903c147d..1cdb5c782a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -113,7 +113,7 @@ importers: version: 7.34.1(eslint@8.57.0) eslint-plugin-react-hooks: specifier: next - version: 6.1.0-canary-6de32a5a-20250822(eslint@8.57.0) + version: 6.1.0-canary-4123f6b7-20250826(eslint@8.57.0) fast-glob: specifier: 3.2.11 version: 3.2.11 @@ -309,7 +309,7 @@ importers: devDependencies: '@cloudflare/workers-types': specifier: ^4.20250803.0 - version: 4.20250805.0 + version: 4.20250826.0 '@react-router/dev': specifier: workspace:* version: link:../../../packages/react-router-dev @@ -333,16 +333,16 @@ importers: version: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.19.3)(yaml@2.8.0) wrangler: specifier: ^4.23.0 - version: 4.23.0(@cloudflare/workers-types@4.20250805.0) + version: 4.33.0(@cloudflare/workers-types@4.20250826.0) integration/helpers/rsc-parcel: dependencies: - '@mjackson/node-fetch-server': - specifier: 0.6.1 - version: 0.6.1 '@parcel/runtime-rsc': specifier: 2.15.0 version: 2.15.0(@parcel/core@2.15.0) + '@remix-run/node-fetch-server': + specifier: ^0.8.0 + version: 0.8.0 cross-env: specifier: ^7.0.3 version: 7.0.3 @@ -413,12 +413,12 @@ importers: integration/helpers/rsc-parcel-framework: dependencies: - '@mjackson/node-fetch-server': - specifier: 0.6.1 - version: 0.6.1 '@parcel/runtime-rsc': specifier: 2.15.0 version: 2.15.0(@parcel/core@2.15.0) + '@remix-run/node-fetch-server': + specifier: ^0.8.0 + version: 0.8.0 cross-env: specifier: ^7.0.3 version: 7.0.3 @@ -474,9 +474,9 @@ importers: integration/helpers/rsc-vite: dependencies: - '@mjackson/node-fetch-server': - specifier: 0.6.1 - version: 0.6.1 + '@remix-run/node-fetch-server': + specifier: ^0.8.0 + version: 0.8.0 compression: specifier: ^1.8.0 version: 1.8.0 @@ -523,9 +523,9 @@ importers: integration/helpers/rsc-vite-framework: dependencies: - '@mjackson/node-fetch-server': - specifier: 0.6.1 - version: 0.6.1 + '@remix-run/node-fetch-server': + specifier: ^0.8.0 + version: 0.8.0 compression: specifier: ^1.8.0 version: 1.8.0 @@ -815,7 +815,7 @@ importers: devDependencies: '@cloudflare/vite-plugin': specifier: ^1.9.0 - version: 1.9.0(rollup@4.43.0)(vite@6.2.5(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.19.3)(yaml@2.8.0))(workerd@1.20250705.0)(wrangler@4.23.0(@cloudflare/workers-types@4.20250805.0)) + version: 1.12.0(vite@6.2.5(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.19.3)(yaml@2.8.0))(workerd@1.20250705.0)(wrangler@4.33.0(@cloudflare/workers-types@4.20250826.0)) '@react-router/dev': specifier: workspace:* version: link:../../../packages/react-router-dev @@ -845,7 +845,7 @@ importers: version: 4.3.2(typescript@5.4.5)(vite@6.2.5(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.19.3)(yaml@2.8.0)) wrangler: specifier: ^4.23.0 - version: 4.23.0(@cloudflare/workers-types@4.20250805.0) + version: 4.33.0(@cloudflare/workers-types@4.20250826.0) integration/helpers/vite-rolldown-template: dependencies: @@ -994,7 +994,7 @@ importers: dependencies: cookie: specifier: ^1.0.1 - version: 1.0.1 + version: 1.0.2 set-cookie-parser: specifier: ^2.6.0 version: 2.6.0 @@ -1083,7 +1083,7 @@ importers: devDependencies: '@cloudflare/workers-types': specifier: ^4.20250803.0 - version: 4.20250805.0 + version: 4.20250826.0 react-router: specifier: workspace:* version: link:../react-router @@ -1249,7 +1249,7 @@ importers: version: 0.14.9 wrangler: specifier: ^4.23.0 - version: 4.23.0(@cloudflare/workers-types@4.20250805.0) + version: 4.33.0(@cloudflare/workers-types@4.20250826.0) packages/react-router-dom: dependencies: @@ -1331,9 +1331,9 @@ importers: packages/react-router-node: dependencies: - '@mjackson/node-fetch-server': - specifier: ^0.2.0 - version: 0.2.0 + '@remix-run/node-fetch-server': + specifier: ^0.8.0 + version: 0.8.0 devDependencies: react-router: specifier: workspace:* @@ -1748,12 +1748,12 @@ importers: playground/rsc-parcel: dependencies: - '@mjackson/node-fetch-server': - specifier: 0.6.1 - version: 0.6.1 '@parcel/runtime-rsc': specifier: 2.15.0 version: 2.15.0(@parcel/core@2.15.0) + '@remix-run/node-fetch-server': + specifier: ^0.8.0 + version: 0.8.0 express: specifier: ^4.21.2 version: 4.21.2 @@ -1821,12 +1821,12 @@ importers: playground/rsc-parcel-framework: dependencies: - '@mjackson/node-fetch-server': - specifier: 0.6.1 - version: 0.6.1 '@parcel/runtime-rsc': specifier: 2.15.0 version: 2.15.0(@parcel/core@2.15.0) + '@remix-run/node-fetch-server': + specifier: ^0.8.0 + version: 0.8.0 express: specifier: ^4.21.2 version: 4.21.2 @@ -1876,9 +1876,9 @@ importers: playground/rsc-vite: dependencies: - '@mjackson/node-fetch-server': - specifier: 0.6.1 - version: 0.6.1 + '@remix-run/node-fetch-server': + specifier: ^0.8.0 + version: 0.8.0 compression: specifier: ^1.8.0 version: 1.8.0 @@ -1925,9 +1925,9 @@ importers: playground/rsc-vite-framework: dependencies: - '@mjackson/node-fetch-server': - specifier: 0.6.1 - version: 0.6.1 + '@remix-run/node-fetch-server': + specifier: ^0.8.0 + version: 0.8.0 compression: specifier: ^1.8.0 version: 1.8.0 @@ -2090,7 +2090,7 @@ importers: devDependencies: '@cloudflare/vite-plugin': specifier: ^1.9.0 - version: 1.9.0(rollup@4.43.0)(vite@6.2.5(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.19.3)(yaml@2.8.0))(workerd@1.20250705.0)(wrangler@4.23.0(@cloudflare/workers-types@4.20250805.0)) + version: 1.12.0(vite@6.2.5(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.19.3)(yaml@2.8.0))(workerd@1.20250705.0)(wrangler@4.33.0(@cloudflare/workers-types@4.20250826.0)) '@react-router/dev': specifier: workspace:* version: link:../../packages/react-router-dev @@ -2120,7 +2120,7 @@ importers: version: 4.3.2(typescript@5.4.5)(vite@6.2.5(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.19.3)(yaml@2.8.0)) wrangler: specifier: ^4.23.0 - version: 4.23.0(@cloudflare/workers-types@4.20250805.0) + version: 4.33.0(@cloudflare/workers-types@4.20250826.0) packages: @@ -2965,20 +2965,20 @@ packages: resolution: {integrity: sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==} engines: {node: '>=18.0.0'} - '@cloudflare/unenv-preset@2.3.3': - resolution: {integrity: sha512-/M3MEcj3V2WHIRSW1eAQBPRJ6JnGQHc6JKMAPLkDb7pLs3m6X9ES/+K3ceGqxI6TKeF32AWAi7ls0AYzVxCP0A==} + '@cloudflare/unenv-preset@2.6.3': + resolution: {integrity: sha512-Bj3i0kHAKFh/fViM8RT5ToV7w5Q8bGUR6yw4R0pkNktn559rmBMNf0+hkRmX8BmVH4WTo1Ye79zjkCxnmNt4+g==} peerDependencies: - unenv: 2.0.0-rc.17 + unenv: 2.0.0-rc.19 workerd: 1.20250705.0 peerDependenciesMeta: workerd: optional: true - '@cloudflare/vite-plugin@1.9.0': - resolution: {integrity: sha512-YYmWZklDPF7Ay97JX51bZzKGNP7Z6Sme0+Pje1g5Jr7M6oU6L3NmmvIi8VKFLM48FRlSpXRmTF1tULJng6d6vg==} + '@cloudflare/vite-plugin@1.12.0': + resolution: {integrity: sha512-DS6I7p9JazEJnSs7JCfLSQIUNNzruRt5JLbVpLDeagSEEZl2CF9TFMvfTfRdT3EQ2MghSmhNJFGRNoJUGBdCTQ==} peerDependencies: vite: ^6.1.0 || ^7.0.0 - wrangler: ^3.101.0 || ^4.0.0 + wrangler: ^4.33.0 '@cloudflare/workerd-darwin-64@1.20250705.0': resolution: {integrity: sha512-cLF8juQZuoSwyw6+kiLXuHQ2tYcVXiyRF2qpmViJ3Ilqj6zQ654vcrtl+B5Ab1xwpfnX35+/0ItTtL8hoX5QLg==} @@ -3010,8 +3010,8 @@ packages: cpu: [x64] os: [win32] - '@cloudflare/workers-types@4.20250805.0': - resolution: {integrity: sha512-HOt0lqFiw5WzhvxH/IViMAWI/zwzokCSx33DlRnJqECT9khskK9X4Jrw/+IiAprJ5YloiFxK8Xn1oGbsabdUWg==} + '@cloudflare/workers-types@4.20250826.0': + resolution: {integrity: sha512-nAbTVI81wFSxbESRbfGRlfL4WYNvq8T46yr1ukypHL8O2xnbZfQnQhC7ftSBmDqov8HqQSdqcz9jCgLjVh61SQ==} '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} @@ -3811,9 +3811,6 @@ packages: resolution: {integrity: sha512-iA7+tyVqfrATAIsIRWQG+a7ZLLD0VaOCKV2Wd/v4mqIU3J9c4jx9p7S0nw1XH3gJCKNBOOwACOPYYSUu9pgT+w==} engines: {node: '>=12.0.0'} - '@mjackson/node-fetch-server@0.2.0': - resolution: {integrity: sha512-EMlH1e30yzmTpGLQjlFmaDAjyOeZhng1/XCd7DExR8PNAnG/G1tyruZxEoUe11ClnwGhGrtsdnyyUx1frSzjng==} - '@mjackson/node-fetch-server@0.6.1': resolution: {integrity: sha512-9ZJnk/DJjt805uv5PPv11haJIW+HHf3YEEyVXv+8iLQxLD/iXA68FH220XoiTPBC4gCg5q+IMadDw8qPqlA5wg==} @@ -4407,6 +4404,15 @@ packages: engines: {node: '>=18'} hasBin: true + '@poppinss/colors@4.1.5': + resolution: {integrity: sha512-FvdDqtcRCtz6hThExcFOgW0cWX+xwSMWcRuQe5ZEb2m7cVQOAVZOIMt+/v9RxGiD9/OY16qJBXK4CVKWAPalBw==} + + '@poppinss/dumper@0.6.4': + resolution: {integrity: sha512-iG0TIdqv8xJ3Lt9O8DrPRxw1MRLjNpoqiSGU03P/wNLP/s0ra0udPJ1J2Tx5M0J3H/cVyEgpbn8xUKRY9j59kQ==} + + '@poppinss/exception@1.2.2': + resolution: {integrity: sha512-m7bpKCD4QMlFCjA/nKTs23fuvoVFoA83brRKmObCUNmi/9tVu8Ve3w4YQAnJu4q3Tjf5fr685HYIC/IA2zHRSg==} + '@remix-run/changelog-github@0.0.5': resolution: {integrity: sha512-43tqwUqWqirbv6D9uzo55ASPsCJ61Ein1k/M8qn+Qpros0MmbmuzjLVPmtaxfxfe2ANX0LefLvCD0pAgr1tp4g==} @@ -4552,15 +4558,6 @@ packages: '@rolldown/pluginutils@1.0.0-beta.11': resolution: {integrity: sha512-L/gAA/hyCSuzTF1ftlzUSI/IKr2POHsv1Dd78GfqkR83KMNuswWD61JxGV2L7nRwBBBSDr6R1gCkdTmoN7W4ag==} - '@rollup/plugin-replace@6.0.2': - resolution: {integrity: sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - '@rollup/pluginutils@5.1.0': resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} @@ -4700,12 +4697,19 @@ packages: '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@sindresorhus/is@7.0.2': + resolution: {integrity: sha512-d9xRovfKNz1SKieM0qJdO+PQonjnnIfSNWfHYnBSJ9hkjm0ZPw6HlxscDXYstp3z+7V2GOFHc+J0CYrYTjqCJw==} + engines: {node: '>=18'} + '@sinonjs/commons@2.0.0': resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} '@sinonjs/fake-timers@10.0.2': resolution: {integrity: sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==} + '@speed-highlight/core@1.2.7': + resolution: {integrity: sha512-0dxmVj4gxg3Jg879kvFS/msl4s9F3T9UXC1InxgOf7t5NvcPD97u/WTA5vL/IxWHMn7qSxBozqrnnE2wvl1m8g==} + '@swc/core-darwin-arm64@1.11.24': resolution: {integrity: sha512-dhtVj0PC1APOF4fl5qT2neGjRLgHAAYfiVP8poJelhzhB/318bO+QCFWAiimcDoyMgpCXOhTp757gnoJJrheWA==} engines: {node: '>=10'} @@ -5850,8 +5854,8 @@ packages: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} - cookie@1.0.1: - resolution: {integrity: sha512-Xd8lFX4LM9QEEwxQpF9J9NTUh8pmdJO0cyRJhFiDoLTk2eH8FXlRv2IFGYVadZpqI3j8fhNrSdKCeYPxiAhLXw==} + cookie@1.0.2: + resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} engines: {node: '>=18'} cookiejar@2.1.4: @@ -6198,6 +6202,9 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + error-stack-parser-es@1.0.5: + resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} + es-abstract@1.23.3: resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} engines: {node: '>= 0.4'} @@ -6376,8 +6383,8 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - eslint-plugin-react-hooks@6.1.0-canary-6de32a5a-20250822: - resolution: {integrity: sha512-2bFPBHK87OODX4ci8ULmYhxjAr9Cs/FNHYKvCQwMOXYq67dtTCxZ5HfpaMGLVD/pTjmCrsWM8BSPT4nAPV8Irg==} + eslint-plugin-react-hooks@6.1.0-canary-4123f6b7-20250826: + resolution: {integrity: sha512-2zwAuisYuVNcfzVL1CUG8R07nDQ0i9yajRgmYwUCnto9pJVp/m6NSp7lSfc+C7LqWHw1xf2OhOkAakKwAhRzwA==} engines: {node: '>=18'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 @@ -6520,8 +6527,8 @@ packages: resolution: {integrity: sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==} engines: {node: '>= 18'} - exsolve@1.0.4: - resolution: {integrity: sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw==} + exsolve@1.0.7: + resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==} extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} @@ -7974,8 +7981,8 @@ packages: engines: {node: '>=16.13'} hasBin: true - miniflare@4.20250617.5: - resolution: {integrity: sha512-Qqn30jR6dCjXaKVizT6vH4KOb+GyLccoxLNOJEfu63yBPn8eoXa7PrdiSGTmjs2RY8/tr7eTO8Wu/Yr14k0xVA==} + miniflare@4.20250823.0: + resolution: {integrity: sha512-ofQRQ6rb/5P4nsz/J+xptdrN4zvYUm0wuezbKfaxbAGiIVTsM1vd+Pta5MtZwdQ6BKLM9tKMtU0rnbTzy3wntQ==} engines: {node: '>=18.0.0'} hasBin: true @@ -9304,6 +9311,10 @@ packages: engines: {node: '>=6.4.0'} deprecated: Please upgrade to supertest v7.1.3+, see release notes at https://github.com/forwardemail/supertest/releases/tag/v7.1.3 - maintenance is supported by Forward Email @ https://forwardemail.net + supports-color@10.2.0: + resolution: {integrity: sha512-5eG9FQjEjDbAlI5+kdpdyPIBMRH4GfTVDGREVupaZHmVoppknhM29b/S9BkQz7cathp85BVgRi/As3Siln7e0Q==} + engines: {node: '>=18'} + supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -9584,8 +9595,12 @@ packages: resolution: {integrity: sha512-AjQF1QsmqfJys+LXfGTNum+qw4S88CojRInG/6t31W/1fk6G59s92bnAvGz5Cmur+kQv2SURXEvvudLmbrE8QA==} engines: {node: '>=18.17'} - unenv@2.0.0-rc.17: - resolution: {integrity: sha512-B06u0wXkEd+o5gOCMl/ZHl5cfpYbDZKAT+HWTL+Hws6jWu7dCiqBBXXXzMFcFVJb8D4ytAnYmxJA83uwOQRSsg==} + undici@7.15.0: + resolution: {integrity: sha512-7oZJCPvvMvTd0OlqWsIxTuItTpJBpU1tcbVl24FMn3xt3+VSunwUasmfPJRE57oNO1KsZ4PgA1xTdAX4hq8NyQ==} + engines: {node: '>=20.18.1'} + + unenv@2.0.0-rc.19: + resolution: {integrity: sha512-t/OMHBNAkknVCI7bVB9OWjUUAwhVv9vsPIAGnNUxnu3FxPQN11rjh0sksLMzc3g7IlTgvHmOTl4JM7JHpcv5wA==} unicode-canonical-property-names-ecmascript@2.0.0: resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} @@ -9995,12 +10010,12 @@ packages: engines: {node: '>=16'} hasBin: true - wrangler@4.23.0: - resolution: {integrity: sha512-JSeDt3IwA4TEmg/V3tRblImPjdxynBt9PUVO/acQJ83XGlMMSwswDKL1FuwvbFzgX6+JXc3GMHeu7r8AQIxw9w==} + wrangler@4.33.0: + resolution: {integrity: sha512-LIVnW/VePLMca8Y4pKz4ycXc8yPfXwJJnOnpq65fRTh9lR4UAuqHvSNW4Vx4JJI3ZniRZXIM8pb+tSntd5161w==} engines: {node: '>=18.0.0'} hasBin: true peerDependencies: - '@cloudflare/workers-types': ^4.20250617.0 + '@cloudflare/workers-types': ^4.20250823.0 peerDependenciesMeta: '@cloudflare/workers-types': optional: true @@ -10093,9 +10108,15 @@ packages: resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} engines: {node: '>=18'} + youch-core@0.3.3: + resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==} + youch@3.3.4: resolution: {integrity: sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==} + youch@4.1.0-beta.10: + resolution: {integrity: sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==} + zimmerframe@1.1.2: resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==} @@ -11242,28 +11263,26 @@ snapshots: dependencies: mime: 3.0.0 - '@cloudflare/unenv-preset@2.3.3(unenv@2.0.0-rc.17)(workerd@1.20250705.0)': + '@cloudflare/unenv-preset@2.6.3(unenv@2.0.0-rc.19)(workerd@1.20250705.0)': dependencies: - unenv: 2.0.0-rc.17 + unenv: 2.0.0-rc.19 optionalDependencies: workerd: 1.20250705.0 - '@cloudflare/vite-plugin@1.9.0(rollup@4.43.0)(vite@6.2.5(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.19.3)(yaml@2.8.0))(workerd@1.20250705.0)(wrangler@4.23.0(@cloudflare/workers-types@4.20250805.0))': + '@cloudflare/vite-plugin@1.12.0(vite@6.2.5(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.19.3)(yaml@2.8.0))(workerd@1.20250705.0)(wrangler@4.33.0(@cloudflare/workers-types@4.20250826.0))': dependencies: - '@cloudflare/unenv-preset': 2.3.3(unenv@2.0.0-rc.17)(workerd@1.20250705.0) - '@mjackson/node-fetch-server': 0.6.1 - '@rollup/plugin-replace': 6.0.2(rollup@4.43.0) + '@cloudflare/unenv-preset': 2.6.3(unenv@2.0.0-rc.19)(workerd@1.20250705.0) + '@remix-run/node-fetch-server': 0.8.0 get-port: 7.1.0 - miniflare: 4.20250617.5 + miniflare: 4.20250823.0 picocolors: 1.1.1 tinyglobby: 0.2.14 - unenv: 2.0.0-rc.17 + unenv: 2.0.0-rc.19 vite: 6.2.5(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.19.3)(yaml@2.8.0) - wrangler: 4.23.0(@cloudflare/workers-types@4.20250805.0) + wrangler: 4.33.0(@cloudflare/workers-types@4.20250826.0) ws: 8.18.0 transitivePeerDependencies: - bufferutil - - rollup - utf-8-validate - workerd @@ -11282,7 +11301,7 @@ snapshots: '@cloudflare/workerd-windows-64@1.20250705.0': optional: true - '@cloudflare/workers-types@4.20250805.0': {} + '@cloudflare/workers-types@4.20250826.0': {} '@cspotcode/source-map-support@0.8.1': dependencies: @@ -11980,8 +11999,6 @@ snapshots: '@lezer/lr': 1.4.2 json5: 2.2.3 - '@mjackson/node-fetch-server@0.2.0': {} - '@mjackson/node-fetch-server@0.6.1': {} '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3': @@ -12817,6 +12834,18 @@ snapshots: dependencies: playwright: 1.49.1 + '@poppinss/colors@4.1.5': + dependencies: + kleur: 4.1.5 + + '@poppinss/dumper@0.6.4': + dependencies: + '@poppinss/colors': 4.1.5 + '@sindresorhus/is': 7.0.2 + supports-color: 10.2.0 + + '@poppinss/exception@1.2.2': {} + '@remix-run/changelog-github@0.0.5': dependencies: '@changesets/errors': 0.1.4 @@ -12934,13 +12963,6 @@ snapshots: '@rolldown/pluginutils@1.0.0-beta.11': {} - '@rollup/plugin-replace@6.0.2(rollup@4.43.0)': - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.43.0) - magic-string: 0.30.18 - optionalDependencies: - rollup: 4.43.0 - '@rollup/pluginutils@5.1.0(rollup@4.43.0)': dependencies: '@types/estree': 1.0.8 @@ -13041,6 +13063,8 @@ snapshots: '@sinclair/typebox@0.27.8': {} + '@sindresorhus/is@7.0.2': {} + '@sinonjs/commons@2.0.0': dependencies: type-detect: 4.0.8 @@ -13049,6 +13073,8 @@ snapshots: dependencies: '@sinonjs/commons': 2.0.0 + '@speed-highlight/core@1.2.7': {} + '@swc/core-darwin-arm64@1.11.24': optional: true @@ -14521,7 +14547,7 @@ snapshots: cookie@0.7.2: {} - cookie@1.0.1: {} + cookie@1.0.2: {} cookiejar@2.1.4: {} @@ -14841,6 +14867,8 @@ snapshots: dependencies: is-arrayish: 0.2.1 + error-stack-parser-es@1.0.5: {} + es-abstract@1.23.3: dependencies: array-buffer-byte-length: 1.0.1 @@ -15228,11 +15256,11 @@ snapshots: dependencies: eslint: 8.57.0 - eslint-plugin-react-hooks@6.1.0-canary-6de32a5a-20250822(eslint@8.57.0): + eslint-plugin-react-hooks@6.1.0-canary-4123f6b7-20250826(eslint@8.57.0): dependencies: '@babel/core': 7.27.7 '@babel/parser': 7.27.7 - '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.27.7) + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.27.7) eslint: 8.57.0 hermes-parser: 0.25.1 zod: 3.24.2 @@ -15499,7 +15527,7 @@ snapshots: transitivePeerDependencies: - supports-color - exsolve@1.0.4: {} + exsolve@1.0.7: {} extend@3.0.2: {} @@ -17544,7 +17572,7 @@ snapshots: - bufferutil - utf-8-validate - miniflare@4.20250617.5: + miniflare@4.20250823.0: dependencies: '@cspotcode/source-map-support': 0.8.1 acorn: 8.14.0 @@ -17553,10 +17581,10 @@ snapshots: glob-to-regexp: 0.4.1 sharp: 0.33.5 stoppable: 1.1.0 - undici: 5.28.5 + undici: 7.15.0 workerd: 1.20250705.0 ws: 8.18.0 - youch: 3.3.4 + youch: 4.1.0-beta.10 zod: 3.22.3 transitivePeerDependencies: - bufferutil @@ -19107,6 +19135,8 @@ snapshots: transitivePeerDependencies: - supports-color + supports-color@10.2.0: {} + supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -19394,10 +19424,12 @@ snapshots: undici@6.20.1: {} - unenv@2.0.0-rc.17: + undici@7.15.0: {} + + unenv@2.0.0-rc.19: dependencies: defu: 6.1.4 - exsolve: 1.0.4 + exsolve: 1.0.7 ohash: 2.0.11 pathe: 2.0.3 ufo: 1.6.1 @@ -19963,18 +19995,18 @@ snapshots: '@cloudflare/workerd-linux-arm64': 1.20250705.0 '@cloudflare/workerd-windows-64': 1.20250705.0 - wrangler@4.23.0(@cloudflare/workers-types@4.20250805.0): + wrangler@4.33.0(@cloudflare/workers-types@4.20250826.0): dependencies: '@cloudflare/kv-asset-handler': 0.4.0 - '@cloudflare/unenv-preset': 2.3.3(unenv@2.0.0-rc.17)(workerd@1.20250705.0) + '@cloudflare/unenv-preset': 2.6.3(unenv@2.0.0-rc.19)(workerd@1.20250705.0) blake3-wasm: 2.1.5 esbuild: 0.25.4 - miniflare: 4.20250617.5 + miniflare: 4.20250823.0 path-to-regexp: 6.3.0 - unenv: 2.0.0-rc.17 + unenv: 2.0.0-rc.19 workerd: 1.20250705.0 optionalDependencies: - '@cloudflare/workers-types': 4.20250805.0 + '@cloudflare/workers-types': 4.20250826.0 fsevents: 2.3.3 transitivePeerDependencies: - bufferutil @@ -20060,12 +20092,25 @@ snapshots: yoctocolors-cjs@2.1.2: {} + youch-core@0.3.3: + dependencies: + '@poppinss/exception': 1.2.2 + error-stack-parser-es: 1.0.5 + youch@3.3.4: dependencies: cookie: 0.7.2 mustache: 4.2.0 stacktracey: 2.1.8 + youch@4.1.0-beta.10: + dependencies: + '@poppinss/colors': 4.1.5 + '@poppinss/dumper': 0.6.4 + '@speed-highlight/core': 1.2.7 + cookie: 1.0.2 + youch-core: 0.3.3 + zimmerframe@1.1.2: {} zod-validation-error@3.4.0(zod@3.24.2):