diff --git a/.changesets/10479.md b/.changesets/10479.md new file mode 100644 index 000000000000..a78273b4aae7 --- /dev/null +++ b/.changesets/10479.md @@ -0,0 +1,3 @@ +- fix(cli): avoid `npx` during upgrade command (#10479) by @Josh-Walker-GM + +This change fixes a problem with the `yarn rw upgrade` command when you don't have `npx` installed. If you don't have `npx` installed you will now have to manually run a command to dedupe dependencies rather than this being done for you automatically during the upgrade command. If this is the case, the `npx` command will be logged to the console when you run `yarn rw upgrade`. diff --git a/.changesets/10493.md b/.changesets/10493.md new file mode 100644 index 000000000000..461695b4b362 --- /dev/null +++ b/.changesets/10493.md @@ -0,0 +1,19 @@ +- feat(cookieJar): Change cookie.get to directly return value (#10493) by @dac09 + +**Motivation** +My original design of the `CookeiJar.get` would return the full cookie object we store, including cookie options. This is not ideal because you need to access the cookie like this: + +```js +const myCookie = mwRequest.cookies.get('myCookie') + +// 👇 +const actualValue = myCookie.value +``` + +This is unwieldy, and feels unergonomic for the 98% of cases where `get` will be used to just see the value. + +**How do I still see the options of the cookie?** +You can still access all the details of the cookie by doing `cookie.entries`. I don't really have a case for this yet, so let's not optimise for this case, but we know it's possible! + + +This is me just stabilizing the API for Middleware stuff, before we ship it out of experimental diff --git a/.github/renovate.json b/.github/renovate.json index 56c54a889e15..3aa6fbfd133d 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -62,15 +62,6 @@ "sort-package-json", "zx" ] - }, - - { - "groupName": "experimental", - "enabled": false, - - "matchPackageNames": [ - "@apollo/experimental-nextjs-app-support" - ] } ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index 826a3d57d836..c59c6e289160 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -36,6 +36,7 @@ "redwoodjs", "rsdw", "RWJS", + "superjson", "tailwindcss", "waku" ] diff --git a/__fixtures__/fragment-test-project/web/package.json b/__fixtures__/fragment-test-project/web/package.json index f527cdb9c3d2..05fb9a6b5eb3 100644 --- a/__fixtures__/fragment-test-project/web/package.json +++ b/__fixtures__/fragment-test-project/web/package.json @@ -16,8 +16,8 @@ "@redwoodjs/router": "7.0.0", "@redwoodjs/web": "7.0.0", "humanize-string": "2.1.0", - "react": "18.3.0-canary-a870b2d54-20240314", - "react-dom": "18.3.0-canary-a870b2d54-20240314" + "react": "19.0.0-canary-36e62c603-20240418", + "react-dom": "19.0.0-canary-36e62c603-20240418" }, "devDependencies": { "@redwoodjs/vite": "7.0.0", diff --git a/__fixtures__/test-project-rsa/.yarn/patches/vite-npm-4.4.9-e845c1bbf8.patch b/__fixtures__/test-project-rsa/.yarn/patches/vite-npm-4.4.9-e845c1bbf8.patch deleted file mode 100644 index eb67d7906284..000000000000 --- a/__fixtures__/test-project-rsa/.yarn/patches/vite-npm-4.4.9-e845c1bbf8.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff --git a/dist/node/chunks/dep-df561101.js b/dist/node/chunks/dep-df561101.js -index 1bc8674177fe73120171b22436e6104713c5d764..f0fee7b385868cb01c6d47b80d7f64a7368c0412 100644 ---- a/dist/node/chunks/dep-df561101.js -+++ b/dist/node/chunks/dep-df561101.js -@@ -55890,12 +55890,12 @@ async function instantiateModule(url, server, context = { global }, urlStack = [ - }; - urlStack = urlStack.concat(url); - const isCircular = (url) => urlStack.includes(url); -- const { isProduction, resolve: { dedupe, preserveSymlinks }, root, } = server.config; -+ const { isProduction, resolve: { dedupe, preserveSymlinks, conditions }, root, } = server.config; - const resolveOptions = { - mainFields: ['main'], - browserField: true, - conditions: [], -- overrideConditions: ['production', 'development'], -+ overrideConditions: [...conditions, 'production', 'development'], - extensions: ['.js', '.cjs', '.json'], - dedupe, - preserveSymlinks, diff --git a/__fixtures__/test-project-rsa/package.json b/__fixtures__/test-project-rsa/package.json index c7208f76e2cb..0b351d7de940 100644 --- a/__fixtures__/test-project-rsa/package.json +++ b/__fixtures__/test-project-rsa/package.json @@ -21,6 +21,7 @@ }, "packageManager": "yarn@4.1.1", "resolutions": { - "vite@4.4.9": "patch:vite@npm%3A4.4.9#./.yarn/patches/vite-npm-4.4.9-e845c1bbf8.patch" + "@apollo/client-react-streaming/superjson": "^1.12.2", + "@apollo/client/rehackt": "0.0.0-pr.10.0" } } diff --git a/__fixtures__/test-project-rsa/web/package.json b/__fixtures__/test-project-rsa/web/package.json index 2137e301b9d7..b418e2cefc0d 100644 --- a/__fixtures__/test-project-rsa/web/package.json +++ b/__fixtures__/test-project-rsa/web/package.json @@ -11,12 +11,12 @@ ] }, "dependencies": { - "@apollo/experimental-nextjs-app-support": "0.0.0-commit-b8a73fe", + "@apollo/client-react-streaming": "0.10.0", "@redwoodjs/forms": "8.0.0-canary.144", "@redwoodjs/router": "8.0.0-canary.144", "@redwoodjs/web": "8.0.0-canary.144", - "react": "18.3.0-canary-a870b2d54-20240314", - "react-dom": "18.3.0-canary-a870b2d54-20240314" + "react": "19.0.0-canary-36e62c603-20240418", + "react-dom": "19.0.0-canary-36e62c603-20240418" }, "devDependencies": { "@redwoodjs/vite": "8.0.0-canary.144", diff --git a/__fixtures__/test-project-rsc-external-packages-and-cells/package.json b/__fixtures__/test-project-rsc-external-packages-and-cells/package.json index 0c213e874494..71ff0ba5f28f 100644 --- a/__fixtures__/test-project-rsc-external-packages-and-cells/package.json +++ b/__fixtures__/test-project-rsc-external-packages-and-cells/package.json @@ -20,5 +20,9 @@ "prisma": { "seed": "yarn rw exec seed" }, - "packageManager": "yarn@4.1.1" + "packageManager": "yarn@4.1.1", + "resolutions": { + "@apollo/client-react-streaming/superjson": "^1.12.2", + "@apollo/client/rehackt": "0.0.0-pr.10.0" + } } diff --git a/__fixtures__/test-project-rsc-external-packages-and-cells/web/package.json b/__fixtures__/test-project-rsc-external-packages-and-cells/web/package.json index 67ca702530a7..d28ed24a094d 100644 --- a/__fixtures__/test-project-rsc-external-packages-and-cells/web/package.json +++ b/__fixtures__/test-project-rsc-external-packages-and-cells/web/package.json @@ -11,15 +11,15 @@ ] }, "dependencies": { - "@apollo/experimental-nextjs-app-support": "0.0.0-commit-b8a73fe", + "@apollo/client-react-streaming": "0.10.0", "@jtoar/throw-on-client": "0.0.1", "@redwoodjs/forms": "7.0.0-canary.1011", "@redwoodjs/router": "7.0.0-canary.1011", "@redwoodjs/web": "7.0.0-canary.1011", "@tobbe.dev/rsc-test": "0.0.5", "client-only": "0.0.1", - "react": "18.3.0-canary-a870b2d54-20240314", - "react-dom": "18.3.0-canary-a870b2d54-20240314" + "react": "19.0.0-canary-36e62c603-20240418", + "react-dom": "19.0.0-canary-36e62c603-20240418" }, "devDependencies": { "@redwoodjs/vite": "7.0.0-canary.1011", diff --git a/__fixtures__/test-project/package.json b/__fixtures__/test-project/package.json index f93f198eeb40..2c3b2554a532 100644 --- a/__fixtures__/test-project/package.json +++ b/__fixtures__/test-project/package.json @@ -20,5 +20,9 @@ "prisma": { "seed": "yarn rw exec seed" }, - "packageManager": "yarn@4.1.1" + "packageManager": "yarn@4.1.1", + "resolutions": { + "@storybook/react-dom-shim@npm:7.6.17": "https://verdaccio.tobbe.dev/@storybook/react-dom-shim/-/react-dom-shim-8.0.8.tgz", + "@apollo/client/rehackt": "0.0.0-pr.10.0" + } } diff --git a/__fixtures__/test-project/web/package.json b/__fixtures__/test-project/web/package.json index 6cfed421007b..b3e669ea6d75 100644 --- a/__fixtures__/test-project/web/package.json +++ b/__fixtures__/test-project/web/package.json @@ -16,8 +16,8 @@ "@redwoodjs/router": "7.0.0", "@redwoodjs/web": "7.0.0", "humanize-string": "2.1.0", - "react": "18.3.0-canary-a870b2d54-20240314", - "react-dom": "18.3.0-canary-a870b2d54-20240314" + "react": "19.0.0-canary-36e62c603-20240418", + "react-dom": "19.0.0-canary-36e62c603-20240418" }, "devDependencies": { "@redwoodjs/vite": "7.0.0", diff --git a/docs/docs/ReactPlayer.jsx b/docs/docs/ReactPlayer.jsx new file mode 100644 index 000000000000..eea078342da8 --- /dev/null +++ b/docs/docs/ReactPlayer.jsx @@ -0,0 +1,5 @@ +'use client' + +import ReactPlayer from 'react-player' + +export default ReactPlayer diff --git a/docs/docs/cli-commands.md b/docs/docs/cli-commands.md index 82a0e9ad86a4..c28ac5e290f7 100644 --- a/docs/docs/cli-commands.md +++ b/docs/docs/cli-commands.md @@ -1193,9 +1193,6 @@ yarn redwood generate sdl The sdl will inspect your `schema.prisma` and will do its best with relations. Schema to generators isn't one-to-one yet (and might never be). - - | Arguments & Options | Description | | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `model` | Model to generate the sdl for | @@ -1627,16 +1624,6 @@ If you wanted to seed your database using a different method (like `psql` and an In addition, you can [code along with Ryan Chenkie](https://www.youtube.com/watch?v=2LwTUIqjbPo), and learn how libraries like [faker](https://www.npmjs.com/package/faker) can help you create a large, realistic database fast, especially in tandem with Prisma's [createMany](https://www.prisma.io/docs/reference/api-reference/prisma-client-reference#createmany). - - - - - - - - - - **Log Formatting** If you use the Redwood Logger as part of your seed script, you can pipe the command to the LogFormatter to output prettified logs. @@ -1714,16 +1701,6 @@ Create a migration from changes in Prisma schema, apply it to the database, trig yarn redwood prisma migrate dev ``` - - - - - - - - - - #### prisma migrate deploy Apply pending migrations to update the database schema in production/staging. diff --git a/docs/docs/project-configuration-dev-test-build.mdx b/docs/docs/project-configuration-dev-test-build.mdx index 37df966dafeb..3cd33d890551 100644 --- a/docs/docs/project-configuration-dev-test-build.mdx +++ b/docs/docs/project-configuration-dev-test-build.mdx @@ -3,7 +3,7 @@ title: Project Configuration description: Advanced project configuration --- -import ReactPlayer from 'react-player' +import ReactPlayer from './ReactPlayer' # Project Configuration: Dev, Test, Build diff --git a/package.json b/package.json index f5288ae3db45..d0a5a6e6f09e 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,8 @@ "vscode-languageserver": "6.1.1", "vscode-languageserver-protocol": "3.15.3", "vscode-languageserver-textdocument": "1.0.11", - "vscode-languageserver-types": "3.17.5" + "vscode-languageserver-types": "3.17.5", + "@storybook/react-dom-shim@npm:7.6.17": "https://verdaccio.tobbe.dev/@storybook/react-dom-shim/-/react-dom-shim-8.0.8.tgz" }, "devDependencies": { "@actions/cache": "3.2.4", diff --git a/packages/auth-providers/auth0/web/package.json b/packages/auth-providers/auth0/web/package.json index 32da48ca7903..1ff27057a9cc 100644 --- a/packages/auth-providers/auth0/web/package.json +++ b/packages/auth-providers/auth0/web/package.json @@ -32,7 +32,7 @@ "@babel/cli": "7.24.1", "@babel/core": "^7.22.20", "@types/react": "^18.2.55", - "react": "18.3.0-canary-a870b2d54-20240314", + "react": "19.0.0-canary-36e62c603-20240418", "typescript": "5.4.5", "vitest": "1.4.0" }, diff --git a/packages/auth-providers/azureActiveDirectory/web/package.json b/packages/auth-providers/azureActiveDirectory/web/package.json index a212a7da2ad6..1f8edd51290d 100644 --- a/packages/auth-providers/azureActiveDirectory/web/package.json +++ b/packages/auth-providers/azureActiveDirectory/web/package.json @@ -33,7 +33,7 @@ "@babel/core": "^7.22.20", "@types/netlify-identity-widget": "1.9.6", "@types/react": "^18.2.55", - "react": "18.3.0-canary-a870b2d54-20240314", + "react": "19.0.0-canary-36e62c603-20240418", "typescript": "5.4.5", "vitest": "1.4.0" }, diff --git a/packages/auth-providers/clerk/web/package.json b/packages/auth-providers/clerk/web/package.json index 11f66265f033..8a0ef706ee1b 100644 --- a/packages/auth-providers/clerk/web/package.json +++ b/packages/auth-providers/clerk/web/package.json @@ -33,7 +33,7 @@ "@clerk/clerk-react": "4.30.7", "@clerk/types": "3.62.1", "@types/react": "^18.2.55", - "react": "18.3.0-canary-a870b2d54-20240314", + "react": "19.0.0-canary-36e62c603-20240418", "typescript": "5.4.5", "vitest": "1.4.0" }, diff --git a/packages/auth-providers/dbAuth/web/package.json b/packages/auth-providers/dbAuth/web/package.json index a7ec05461fa7..0c249ebe8120 100644 --- a/packages/auth-providers/dbAuth/web/package.json +++ b/packages/auth-providers/dbAuth/web/package.json @@ -36,7 +36,7 @@ "@types/react": "^18.2.55", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", - "react": "18.3.0-canary-a870b2d54-20240314", + "react": "19.0.0-canary-36e62c603-20240418", "typescript": "5.4.5" }, "gitHead": "3905ed045508b861b495f8d5630d76c7a157d8f1" diff --git a/packages/auth-providers/firebase/web/package.json b/packages/auth-providers/firebase/web/package.json index 81720510f8f0..8fba31a67387 100644 --- a/packages/auth-providers/firebase/web/package.json +++ b/packages/auth-providers/firebase/web/package.json @@ -34,7 +34,7 @@ "firebase": "10.11.0", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", - "react": "18.3.0-canary-a870b2d54-20240314", + "react": "19.0.0-canary-36e62c603-20240418", "typescript": "5.4.5" }, "peerDependencies": { diff --git a/packages/auth-providers/netlify/web/package.json b/packages/auth-providers/netlify/web/package.json index 2f3bf57d2e47..2af5b7e2b55e 100644 --- a/packages/auth-providers/netlify/web/package.json +++ b/packages/auth-providers/netlify/web/package.json @@ -32,7 +32,7 @@ "@babel/core": "^7.22.20", "@types/netlify-identity-widget": "1.9.6", "@types/react": "^18.2.55", - "react": "18.3.0-canary-a870b2d54-20240314", + "react": "19.0.0-canary-36e62c603-20240418", "typescript": "5.4.5", "vitest": "1.4.0" }, diff --git a/packages/auth-providers/supabase/web/package.json b/packages/auth-providers/supabase/web/package.json index 62b84f3db73b..ab6f4c7d15e4 100644 --- a/packages/auth-providers/supabase/web/package.json +++ b/packages/auth-providers/supabase/web/package.json @@ -32,7 +32,7 @@ "@babel/core": "^7.22.20", "@supabase/supabase-js": "2.40.0", "@types/react": "^18.2.55", - "react": "18.3.0-canary-a870b2d54-20240314", + "react": "19.0.0-canary-36e62c603-20240418", "typescript": "5.4.5", "vitest": "1.4.0" }, diff --git a/packages/auth-providers/supertokens/web/package.json b/packages/auth-providers/supertokens/web/package.json index bd4419570aba..2bbf982f2c63 100644 --- a/packages/auth-providers/supertokens/web/package.json +++ b/packages/auth-providers/supertokens/web/package.json @@ -31,7 +31,7 @@ "@babel/cli": "7.24.1", "@babel/core": "^7.22.20", "@types/react": "^18.2.55", - "react": "18.3.0-canary-a870b2d54-20240314", + "react": "19.0.0-canary-36e62c603-20240418", "supertokens-auth-react": "0.39.1", "typescript": "5.4.5", "vitest": "1.4.0" diff --git a/packages/auth/package.json b/packages/auth/package.json index 5701cd6cbea9..add9349d8c97 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -28,7 +28,7 @@ }, "dependencies": { "core-js": "3.36.1", - "react": "18.3.0-canary-a870b2d54-20240314" + "react": "19.0.0-canary-36e62c603-20240418" }, "devDependencies": { "@redwoodjs/framework-tools": "workspace:*", diff --git a/packages/cli-packages/dataMigrate/package.json b/packages/cli-packages/dataMigrate/package.json index af8e7c5ac42c..7257b0543859 100644 --- a/packages/cli-packages/dataMigrate/package.json +++ b/packages/cli-packages/dataMigrate/package.json @@ -4,7 +4,7 @@ "repository": { "type": "git", "url": "https://github.com/redwoodjs/redwood.git", - "directory": "packages/cli-packages/storybook" + "directory": "packages/cli-packages/dataMigrate" }, "license": "MIT", "exports": "./dist/index.js", diff --git a/packages/cli/src/commands/experimental/setupStreamingSsrHandler.js b/packages/cli/src/commands/experimental/setupStreamingSsrHandler.js index 8bf4ec47e596..9715d5502039 100644 --- a/packages/cli/src/commands/experimental/setupStreamingSsrHandler.js +++ b/packages/cli/src/commands/experimental/setupStreamingSsrHandler.js @@ -159,9 +159,22 @@ export const handler = async ({ force, verbose }) => { }) }, }, - addWebPackages([ - '@apollo/experimental-nextjs-app-support@0.0.0-commit-b8a73fe', - ]), + { + title: + 'Adding resolution for "@apollo/client-react-streaming/superjson"', + task: () => { + // We need this to make sure we get a version of superjson that works + // with CommonJS. + // TODO: Remove this when Redwood switches to ESM + const pkgJsonPath = path.join(rwPaths.base, 'package.json') + const pkgJson = fs.readJsonSync(pkgJsonPath) + const resolutions = pkgJson.resolutions || {} + resolutions['@apollo/client-react-streaming/superjson'] = '^1.12.2' + pkgJson.resolutions = resolutions + fs.writeJsonSync(pkgJsonPath, pkgJson, { spaces: 2 }) + }, + }, + addWebPackages(['@apollo/client-react-streaming@0.10.0']), { task: () => { printTaskEpilogue(command, description, EXPERIMENTAL_TOPIC_ID) diff --git a/packages/cli/src/commands/upgrade.js b/packages/cli/src/commands/upgrade.js index dbc0827d9d18..01b25fb77311 100644 --- a/packages/cli/src/commands/upgrade.js +++ b/packages/cli/src/commands/upgrade.js @@ -111,6 +111,11 @@ export const handler = async ({ dryRun, tag, verbose, dedupe }) => { updatePackageVersionsFromTemplate(ctx, { dryRun, verbose }), enabled: (ctx) => ctx.versionToUpgradeTo?.includes('canary'), }, + { + title: 'Downloading yarn patches', + task: (ctx) => downloadYarnPatches(ctx, { dryRun, verbose }), + enabled: (ctx) => ctx.versionToUpgradeTo?.includes('canary'), + }, { title: 'Running yarn install', task: (ctx) => yarnInstall(ctx, { dryRun, verbose }), @@ -355,6 +360,58 @@ async function updatePackageVersionsFromTemplate(ctx, { dryRun, verbose }) { ) } +async function downloadYarnPatches(ctx, { dryRun, verbose }) { + if (!ctx.versionToUpgradeTo) { + throw new Error('Failed to upgrade') + } + + const res = await fetch( + 'https://api.github.com/repos/redwoodjs/redwood/git/trees/main?recursive=1', + ) + const json = await res.json() + const patches = json.tree.filter((patchInfo) => + patchInfo.path.startsWith( + 'packages/create-redwood-app/templates/ts/.yarn/patches/', + ), + ) + + const patchDir = path.join(getPaths().base, '.yarn', 'patches') + + if (verbose) { + console.log('Creating patch directory', patchDir) + } + + if (!dryRun) { + fs.mkdirSync(patchDir, { recursive: true }) + } + + return new Listr( + patches.map((patch) => { + return { + title: `Downloading ${patch.path}`, + task: async () => { + const res = await fetch(patch.url) + const patchMeta = await res.json() + const patchPath = path.join( + getPaths().base, + '.yarn', + 'patches', + path.basename(patch.path), + ) + + if (verbose) { + console.log('Writing patch', patchPath) + } + + if (!dryRun) { + await fs.writeFile(patchPath, patchMeta.content, 'base64') + } + }, + } + }), + ) +} + async function refreshPrismaClient(task, { verbose }) { /** Relates to prisma/client issue, @see: https://github.com/redwoodjs/redwood/issues/1083 */ try { @@ -390,11 +447,6 @@ export const getCmdMajorVersion = async (command) => { const dedupeDeps = async (task, { verbose }) => { try { const yarnVersion = await getCmdMajorVersion('yarn') - const npxVersion = await getCmdMajorVersion('npx') - let npxArgs = [] - if (npxVersion > 6) { - npxArgs = ['--yes'] - } const baseExecaArgsForDedupe = { shell: true, @@ -404,10 +456,12 @@ const dedupeDeps = async (task, { verbose }) => { if (yarnVersion > 1) { await execa('yarn', ['dedupe'], baseExecaArgsForDedupe) } else { - await execa( - 'npx', - [...npxArgs, 'yarn-deduplicate'], - baseExecaArgsForDedupe, + // Redwood projects should not be using yarn 1.x as we specify a version of yarn in the package.json + // with "packageManager": "yarn@4.1.1" or similar. + // Although we could (and previous did) automatically run `npx yarn-deduplicate` here, that would require + // the user to have `npx` installed, which is not guaranteed and we do not wish to enforce that. + task.skip( + "Yarn 1.x doesn't support dedupe directly. Please upgrade yarn or use npx with `npx yarn-deduplicate` manually.", ) } } catch (e) { diff --git a/packages/create-redwood-app/templates/js/package.json b/packages/create-redwood-app/templates/js/package.json index f93f198eeb40..2c3b2554a532 100644 --- a/packages/create-redwood-app/templates/js/package.json +++ b/packages/create-redwood-app/templates/js/package.json @@ -20,5 +20,9 @@ "prisma": { "seed": "yarn rw exec seed" }, - "packageManager": "yarn@4.1.1" + "packageManager": "yarn@4.1.1", + "resolutions": { + "@storybook/react-dom-shim@npm:7.6.17": "https://verdaccio.tobbe.dev/@storybook/react-dom-shim/-/react-dom-shim-8.0.8.tgz", + "@apollo/client/rehackt": "0.0.0-pr.10.0" + } } diff --git a/packages/create-redwood-app/templates/js/web/package.json b/packages/create-redwood-app/templates/js/web/package.json index 171b5331ccc6..20760391c43b 100644 --- a/packages/create-redwood-app/templates/js/web/package.json +++ b/packages/create-redwood-app/templates/js/web/package.json @@ -14,8 +14,8 @@ "@redwoodjs/forms": "7.0.0", "@redwoodjs/router": "7.0.0", "@redwoodjs/web": "7.0.0", - "react": "18.3.0-canary-a870b2d54-20240314", - "react-dom": "18.3.0-canary-a870b2d54-20240314" + "react": "19.0.0-canary-36e62c603-20240418", + "react-dom": "19.0.0-canary-36e62c603-20240418" }, "devDependencies": { "@redwoodjs/vite": "7.0.0", diff --git a/packages/create-redwood-app/templates/ts/package.json b/packages/create-redwood-app/templates/ts/package.json index f93f198eeb40..2c3b2554a532 100644 --- a/packages/create-redwood-app/templates/ts/package.json +++ b/packages/create-redwood-app/templates/ts/package.json @@ -20,5 +20,9 @@ "prisma": { "seed": "yarn rw exec seed" }, - "packageManager": "yarn@4.1.1" + "packageManager": "yarn@4.1.1", + "resolutions": { + "@storybook/react-dom-shim@npm:7.6.17": "https://verdaccio.tobbe.dev/@storybook/react-dom-shim/-/react-dom-shim-8.0.8.tgz", + "@apollo/client/rehackt": "0.0.0-pr.10.0" + } } diff --git a/packages/create-redwood-app/templates/ts/web/package.json b/packages/create-redwood-app/templates/ts/web/package.json index 171b5331ccc6..20760391c43b 100644 --- a/packages/create-redwood-app/templates/ts/web/package.json +++ b/packages/create-redwood-app/templates/ts/web/package.json @@ -14,8 +14,8 @@ "@redwoodjs/forms": "7.0.0", "@redwoodjs/router": "7.0.0", "@redwoodjs/web": "7.0.0", - "react": "18.3.0-canary-a870b2d54-20240314", - "react-dom": "18.3.0-canary-a870b2d54-20240314" + "react": "19.0.0-canary-36e62c603-20240418", + "react-dom": "19.0.0-canary-36e62c603-20240418" }, "devDependencies": { "@redwoodjs/vite": "7.0.0", diff --git a/packages/forms/package.json b/packages/forms/package.json index 9bffbe3c925c..9f0b2eb5e76a 100644 --- a/packages/forms/package.json +++ b/packages/forms/package.json @@ -40,13 +40,13 @@ "@types/react": "^18.2.55", "@types/react-dom": "^18.2.19", "nodemon": "3.1.0", - "react": "18.3.0-canary-a870b2d54-20240314", - "react-dom": "18.3.0-canary-a870b2d54-20240314", + "react": "19.0.0-canary-36e62c603-20240418", + "react-dom": "19.0.0-canary-36e62c603-20240418", "typescript": "5.4.5", "vitest": "1.4.0" }, "peerDependencies": { - "react": "18.3.0-canary-a870b2d54-20240314" + "react": "19.0.0-canary-36e62c603-20240418" }, "gitHead": "3905ed045508b861b495f8d5630d76c7a157d8f1" } diff --git a/packages/ogimage-gen/package.json b/packages/ogimage-gen/package.json index 8a3b844a531b..693bf969c1e0 100644 --- a/packages/ogimage-gen/package.json +++ b/packages/ogimage-gen/package.json @@ -34,8 +34,8 @@ "@redwoodjs/router": "workspace:*", "@redwoodjs/vite": "workspace:*", "fast-glob": "3.3.2", - "react": "18.3.0-canary-a870b2d54-20240314", - "react-dom": "18.3.0-canary-a870b2d54-20240314" + "react": "19.0.0-canary-36e62c603-20240418", + "react-dom": "19.0.0-canary-36e62c603-20240418" }, "devDependencies": { "@redwoodjs/framework-tools": "workspace:*", diff --git a/packages/prerender/package.json b/packages/prerender/package.json index 4a63ad911e1f..a1ae6a8fd294 100644 --- a/packages/prerender/package.json +++ b/packages/prerender/package.json @@ -48,8 +48,8 @@ "vitest": "1.4.0" }, "peerDependencies": { - "react": "18.3.0-canary-a870b2d54-20240314", - "react-dom": "18.3.0-canary-a870b2d54-20240314" + "react": "19.0.0-canary-36e62c603-20240418", + "react-dom": "19.0.0-canary-36e62c603-20240418" }, "externals": { "react": "react", diff --git a/packages/router/package.json b/packages/router/package.json index d4cb82a03c2c..d90001282d38 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -36,14 +36,14 @@ "@types/react-dom": "^18.2.19", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", - "react": "18.3.0-canary-a870b2d54-20240314", - "react-dom": "18.3.0-canary-a870b2d54-20240314", + "react": "19.0.0-canary-36e62c603-20240418", + "react-dom": "19.0.0-canary-36e62c603-20240418", "tstyche": "1.1.0", "typescript": "5.4.5" }, "peerDependencies": { - "react": "18.3.0-canary-a870b2d54-20240314", - "react-dom": "18.3.0-canary-a870b2d54-20240314" + "react": "19.0.0-canary-36e62c603-20240418", + "react-dom": "19.0.0-canary-36e62c603-20240418" }, "gitHead": "3905ed045508b861b495f8d5630d76c7a157d8f1" } diff --git a/packages/testing/src/api/scenario.ts b/packages/testing/src/api/scenario.ts index 463c31cd0889..887841740620 100644 --- a/packages/testing/src/api/scenario.ts +++ b/packages/testing/src/api/scenario.ts @@ -117,7 +117,7 @@ interface TestFunctionWithScenario { } interface DescribeBlockWithGetScenario { - (getScenario?: () => TData): void + (getScenario: () => TData): void } export interface Scenario { diff --git a/packages/vite/package.json b/packages/vite/package.json index 4a3e4ffcb5f6..0a78abf852a9 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -81,8 +81,8 @@ "find-my-way": "8.1.0", "http-proxy-middleware": "2.0.6", "isbot": "3.8.0", - "react": "18.3.0-canary-a870b2d54-20240314", - "react-server-dom-webpack": "18.3.0-canary-a870b2d54-20240314", + "react": "19.0.0-canary-36e62c603-20240418", + "react-server-dom-webpack": "19.0.0-canary-36e62c603-20240418", "vite": "5.2.8", "vite-plugin-cjs-interop": "2.1.0", "yargs-parser": "21.1.1" diff --git a/packages/vite/src/middleware/CookieJar.test.ts b/packages/vite/src/middleware/CookieJar.test.ts index 66f01011c49c..6fa61e9dc572 100644 --- a/packages/vite/src/middleware/CookieJar.test.ts +++ b/packages/vite/src/middleware/CookieJar.test.ts @@ -12,21 +12,17 @@ describe('CookieJar', () => { ) test('instatitates cookie jar from a cookie string', () => { - expect(cookieJar.get('color_mode')).toStrictEqual({ - value: JSON.stringify({ + expect(cookieJar.get('color_mode')).toStrictEqual( + JSON.stringify({ color_mode: 'light', light_theme: { name: 'light', color_mode: 'light' }, dark_theme: { name: 'dark_dimmed', color_mode: 'dark' }, }), - }) + ) - expect(cookieJar.get('preferred_color_mode')).toStrictEqual({ - value: 'dark', - }) + expect(cookieJar.get('preferred_color_mode')).toStrictEqual('dark') - expect(cookieJar.get('tz')).toStrictEqual({ - value: 'Asia/Bangkok', - }) + expect(cookieJar.get('tz')).toStrictEqual('Asia/Bangkok') }) describe('Helper methods like JS Map', () => { @@ -60,11 +56,9 @@ describe('CookieJar', () => { myJar.unset('auth_provider') - const { value: authProviderValue, options: authProviderOptions } = - myJar.get('auth_provider')! + const authProviderValue = myJar.get('auth_provider') expect(authProviderValue).toBeFalsy() - expect(authProviderOptions!.expires).toStrictEqual(new Date(0)) }) test('clear All', () => { diff --git a/packages/vite/src/middleware/CookieJar.ts b/packages/vite/src/middleware/CookieJar.ts index 55c358d63a18..cba97fac0569 100644 --- a/packages/vite/src/middleware/CookieJar.ts +++ b/packages/vite/src/middleware/CookieJar.ts @@ -37,7 +37,7 @@ export class CookieJar { } public get(name: string) { - return this.map.get(name) + return this.map.get(name)?.value } public has(name: string) { diff --git a/packages/vite/src/middleware/MiddlewareRequest.test.ts b/packages/vite/src/middleware/MiddlewareRequest.test.ts index 379532521fb5..f0f1dbe7cebc 100644 --- a/packages/vite/src/middleware/MiddlewareRequest.test.ts +++ b/packages/vite/src/middleware/MiddlewareRequest.test.ts @@ -18,7 +18,7 @@ describe('MiddlewareRequest', () => { }) const mReq = createMiddlewareRequest(req) - expect(mReq.cookies.get('foo')).toStrictEqual({ value: 'bar' }) + expect(mReq.cookies.get('foo')).toStrictEqual('bar') expect(mReq.method).toStrictEqual('POST') expect(mReq.headers.get('Content-Type')).toStrictEqual('application/json') @@ -43,7 +43,7 @@ describe('MiddlewareRequest', () => { const mReq = createMiddlewareRequest(whatWgRequest) - expect(mReq.cookies.get('errybody')).toStrictEqual({ value: 'lets-funk' }) + expect(mReq.cookies.get('errybody')).toStrictEqual('lets-funk') expect(mReq.method).toStrictEqual('PUT') expect(mReq.headers.get('x-custom-header')).toStrictEqual('beatdrop') diff --git a/packages/vite/src/middleware/register.test.ts b/packages/vite/src/middleware/register.test.ts index 69d888fc757b..7cc000bd8259 100644 --- a/packages/vite/src/middleware/register.test.ts +++ b/packages/vite/src/middleware/register.test.ts @@ -139,7 +139,7 @@ describe('chain', () => { expect(output.headers.get('class-mw-value')).toBe('999') // The other one still gets chained - expect(output.cookies.get('add-cookie-mw').value).toBe('added') + expect(output.cookies.get('add-cookie-mw')).toBe('added') // Because /bazinga is more specific, the '*' handlers won't be executed expect(output.headers.get('add-header-mw')).toBeFalsy() diff --git a/packages/vite/src/plugins/__tests__/vite-plugin-rsc-css-preinit.test.mts b/packages/vite/src/plugins/__tests__/vite-plugin-rsc-css-preinit.test.mts index 149c1fdbbbca..66909724e5a8 100644 --- a/packages/vite/src/plugins/__tests__/vite-plugin-rsc-css-preinit.test.mts +++ b/packages/vite/src/plugins/__tests__/vite-plugin-rsc-css-preinit.test.mts @@ -108,13 +108,16 @@ describe('rscCssPreinitPlugin', () => { name = "Anonymous" }) => { preinit("assets/Counter-BZpJq_HD.css", { - as: "style" + as: "style", + precedence: "medium" }); preinit("assets/rsc-DeepSubCounter-DqMovEyK.css", { - as: "style" + as: "style", + precedence: "medium" }); preinit("assets/rsc-SubCounter-Bc4odF6o.css", { - as: "style" + as: "style", + precedence: "medium" }); return /* @__PURE__ */jsxs("div", { className: "home-page", diff --git a/packages/vite/src/plugins/vite-plugin-rsc-css-preinit.ts b/packages/vite/src/plugins/vite-plugin-rsc-css-preinit.ts index fc69d16a1013..580932d32766 100644 --- a/packages/vite/src/plugins/vite-plugin-rsc-css-preinit.ts +++ b/packages/vite/src/plugins/vite-plugin-rsc-css-preinit.ts @@ -215,6 +215,10 @@ export function rscCssPreinitPlugin( t.identifier('as'), t.stringLiteral('style'), ), + t.objectProperty( + t.identifier('precedence'), + t.stringLiteral('medium'), + ), ]), ]), ), diff --git a/packages/web/package.json b/packages/web/package.json index 3136bcee6522..69e2f038c37d 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -50,7 +50,7 @@ "ts-toolbelt": "9.6.0" }, "devDependencies": { - "@apollo/experimental-nextjs-app-support": "0.0.0-commit-b8a73fe", + "@apollo/client-react-streaming": "0.10.0", "@babel/cli": "7.24.1", "@babel/core": "^7.22.20", "@babel/plugin-transform-runtime": "7.24.3", @@ -61,15 +61,15 @@ "@types/react": "^18.2.55", "@types/react-dom": "^18.2.19", "nodemon": "3.1.0", - "react": "18.3.0-canary-a870b2d54-20240314", - "react-dom": "18.3.0-canary-a870b2d54-20240314", + "react": "19.0.0-canary-36e62c603-20240418", + "react-dom": "19.0.0-canary-36e62c603-20240418", "tstyche": "1.1.0", "typescript": "5.4.5", "vitest": "1.4.0" }, "peerDependencies": { - "react": "18.3.0-canary-a870b2d54-20240314", - "react-dom": "18.3.0-canary-a870b2d54-20240314" + "react": "19.0.0-canary-36e62c603-20240418", + "react-dom": "19.0.0-canary-36e62c603-20240418" }, "gitHead": "3905ed045508b861b495f8d5630d76c7a157d8f1" } diff --git a/packages/web/src/apollo/suspense.tsx b/packages/web/src/apollo/suspense.tsx index c76a69217d54..91dc3d90ef50 100644 --- a/packages/web/src/apollo/suspense.tsx +++ b/packages/web/src/apollo/suspense.tsx @@ -21,16 +21,17 @@ import { setLogVerbosity as apolloSetLogVerbosity, useMutation, useSubscription, -} from '@apollo/client' -import { - ApolloNextAppProvider, - NextSSRApolloClient, - NextSSRInMemoryCache, useBackgroundQuery, useQuery, useReadQuery, useSuspenseQuery, -} from '@apollo/experimental-nextjs-app-support/ssr' +} from '@apollo/client' +import { + ApolloClient, + InMemoryCache, + WrapApolloProvider, +} from '@apollo/client-react-streaming' +import { buildManualDataTransport } from '@apollo/client-react-streaming/manual-transport' import type { UseAuth } from '@redwoodjs/auth' import { ServerAuthContext, useNoAuth } from '@redwoodjs/auth' @@ -41,6 +42,7 @@ import { useFetchConfig, } from '../components/FetchConfigProvider' import { GraphQLHooksProvider } from '../components/GraphQLHooksProvider.js' +import { ServerHtmlContext } from '../components/ServerInject' import type { RedwoodApolloLink, @@ -114,6 +116,16 @@ export type GraphQLClientConfigProp = Omit< link?: ApolloLink | RedwoodApolloLinkFactory } +// Based on the code from here: +// https://github.com/apollographql/apollo-client-nextjs/blob/0aca8251409de7b729f7caa9c14492b0044e0d21/integration-test/vite-streaming/src/Transport.tsx#L19 +const WrappedApolloProvider = WrapApolloProvider( + buildManualDataTransport({ + useInsertHtml() { + return React.useContext(ServerHtmlContext) + }, + }), +) + const ApolloProviderWithFetchConfig: React.FunctionComponent<{ config: Omit & { cache: ApolloCache @@ -168,7 +180,7 @@ const ApolloProviderWithFetchConfig: React.FunctionComponent<{ function makeClient() { // @MARK use special Apollo client - return new NextSSRApolloClient({ + return new ApolloClient({ link: createFinalLink({ userConfiguredLink: userPassedLink, defaultLinks: redwoodApolloLinks, @@ -178,9 +190,9 @@ const ApolloProviderWithFetchConfig: React.FunctionComponent<{ } return ( - + {children} - + ) } @@ -200,7 +212,7 @@ export const RedwoodApolloProvider: React.FunctionComponent<{ const { cacheConfig, ...config } = graphQLClientConfig ?? {} // @MARK we need this special cache - const cache = new NextSSRInMemoryCache(cacheConfig).restore( + const cache = new InMemoryCache(cacheConfig).restore( globalThis?.__REDWOOD__APOLLO_STATE ?? {}, ) diff --git a/packages/web/src/components/ServerInject.tsx b/packages/web/src/components/ServerInject.tsx index 225614db6dbf..6ce8e1cebee1 100644 --- a/packages/web/src/components/ServerInject.tsx +++ b/packages/web/src/components/ServerInject.tsx @@ -15,8 +15,8 @@ import React, { Fragment, useContext, useId } from 'react' export type RenderCallback = () => ReactNode export const ServerHtmlContext = React.createContext< - ((things: RenderCallback) => void) | null ->(null) + (callback: RenderCallback) => void +>(() => {}) /** * @@ -34,7 +34,7 @@ export const createInjector = () => { return { injectToPage, injectionState } } -// @NOTE do not instatiate the provider value here, so that we can ensure +// @NOTE do not instantiate the provider value here, so that we can ensure // context isolation. This is done in streamHelpers currently, // using the createInjector factory, once per request export const ServerHtmlProvider = ServerHtmlContext.Provider diff --git a/yarn.lock b/yarn.lock index 0cbad9d299d2..50a4a09e5484 100644 --- a/yarn.lock +++ b/yarn.lock @@ -103,6 +103,19 @@ __metadata: languageName: node linkType: hard +"@apollo/client-react-streaming@npm:0.10.0": + version: 0.10.0 + resolution: "@apollo/client-react-streaming@npm:0.10.0" + dependencies: + superjson: "npm:^1.12.2 || ^2.0.0" + ts-invariant: "npm:^0.10.3" + peerDependencies: + "@apollo/client": ^3.9.6 + react: ^18 + checksum: 10c0/b960665331cf52c05e033c91635df41ee311cd910d84b9f41b59be2496760f72591610c3eb746a46f57416f29bea7e2ee47e84e81fc3f0099db5087284f00905 + languageName: node + linkType: hard + "@apollo/client@npm:3.9.9": version: 3.9.9 resolution: "@apollo/client@npm:3.9.9" @@ -140,21 +153,6 @@ __metadata: languageName: node linkType: hard -"@apollo/experimental-nextjs-app-support@npm:0.0.0-commit-b8a73fe": - version: 0.0.0-commit-b8a73fe - resolution: "@apollo/experimental-nextjs-app-support@npm:0.0.0-commit-b8a73fe" - dependencies: - server-only: "npm:^0.0.1" - superjson: "npm:^1.12.2" - ts-invariant: "npm:^0.10.3" - peerDependencies: - "@apollo/client": ">=3.8.0-rc || ^3.8.0" - next: ^13.4.1 - react: ^18 - checksum: 10c0/aca7b04735bafbec41de7c950229de4ffda9f03f4b8e74646eccdde064e9cfc5497559202c1f93ca98322778a382ded04cdf5bc40a6eaa4f005ec985c6973688 - languageName: node - linkType: hard - "@ardatan/relay-compiler@npm:12.0.0": version: 12.0.0 resolution: "@ardatan/relay-compiler@npm:12.0.0" @@ -7576,7 +7574,7 @@ __metadata: "@redwoodjs/auth": "workspace:*" "@types/react": "npm:^18.2.55" core-js: "npm:3.36.1" - react: "npm:18.3.0-canary-a870b2d54-20240314" + react: "npm:19.0.0-canary-36e62c603-20240418" typescript: "npm:5.4.5" vitest: "npm:1.4.0" peerDependencies: @@ -7629,7 +7627,7 @@ __metadata: "@types/netlify-identity-widget": "npm:1.9.6" "@types/react": "npm:^18.2.55" core-js: "npm:3.36.1" - react: "npm:18.3.0-canary-a870b2d54-20240314" + react: "npm:19.0.0-canary-36e62c603-20240418" typescript: "npm:5.4.5" vitest: "npm:1.4.0" peerDependencies: @@ -7679,7 +7677,7 @@ __metadata: "@redwoodjs/auth": "workspace:*" "@types/react": "npm:^18.2.55" core-js: "npm:3.36.1" - react: "npm:18.3.0-canary-a870b2d54-20240314" + react: "npm:19.0.0-canary-36e62c603-20240418" typescript: "npm:5.4.5" vitest: "npm:1.4.0" peerDependencies: @@ -7772,7 +7770,7 @@ __metadata: core-js: "npm:3.36.1" jest: "npm:29.7.0" jest-environment-jsdom: "npm:29.7.0" - react: "npm:18.3.0-canary-a870b2d54-20240314" + react: "npm:19.0.0-canary-36e62c603-20240418" typescript: "npm:5.4.5" languageName: unknown linkType: soft @@ -7821,7 +7819,7 @@ __metadata: firebase: "npm:10.11.0" jest: "npm:29.7.0" jest-environment-jsdom: "npm:29.7.0" - react: "npm:18.3.0-canary-a870b2d54-20240314" + react: "npm:19.0.0-canary-36e62c603-20240418" typescript: "npm:5.4.5" peerDependencies: firebase: 10.11.0 @@ -7871,7 +7869,7 @@ __metadata: "@types/netlify-identity-widget": "npm:1.9.6" "@types/react": "npm:^18.2.55" core-js: "npm:3.36.1" - react: "npm:18.3.0-canary-a870b2d54-20240314" + react: "npm:19.0.0-canary-36e62c603-20240418" typescript: "npm:5.4.5" vitest: "npm:1.4.0" peerDependencies: @@ -7921,7 +7919,7 @@ __metadata: "@supabase/supabase-js": "npm:2.40.0" "@types/react": "npm:^18.2.55" core-js: "npm:3.36.1" - react: "npm:18.3.0-canary-a870b2d54-20240314" + react: "npm:19.0.0-canary-36e62c603-20240418" typescript: "npm:5.4.5" vitest: "npm:1.4.0" peerDependencies: @@ -7974,7 +7972,7 @@ __metadata: "@redwoodjs/auth": "workspace:*" "@types/react": "npm:^18.2.55" core-js: "npm:3.36.1" - react: "npm:18.3.0-canary-a870b2d54-20240314" + react: "npm:19.0.0-canary-36e62c603-20240418" supertokens-auth-react: "npm:0.39.1" typescript: "npm:5.4.5" vitest: "npm:1.4.0" @@ -7992,7 +7990,7 @@ __metadata: "@testing-library/react": "npm:14.2.2" core-js: "npm:3.36.1" msw: "npm:1.3.3" - react: "npm:18.3.0-canary-a870b2d54-20240314" + react: "npm:19.0.0-canary-36e62c603-20240418" tsx: "npm:4.7.1" typescript: "npm:5.4.5" vitest: "npm:1.4.0" @@ -8372,13 +8370,13 @@ __metadata: graphql: "npm:16.8.1" nodemon: "npm:3.1.0" pascalcase: "npm:1.0.0" - react: "npm:18.3.0-canary-a870b2d54-20240314" - react-dom: "npm:18.3.0-canary-a870b2d54-20240314" + react: "npm:19.0.0-canary-36e62c603-20240418" + react-dom: "npm:19.0.0-canary-36e62c603-20240418" react-hook-form: "npm:7.51.2" typescript: "npm:5.4.5" vitest: "npm:1.4.0" peerDependencies: - react: 18.3.0-canary-a870b2d54-20240314 + react: 19.0.0-canary-36e62c603-20240418 languageName: unknown linkType: soft @@ -8589,8 +8587,8 @@ __metadata: "@redwoodjs/router": "workspace:*" "@redwoodjs/vite": "workspace:*" fast-glob: "npm:3.3.2" - react: "npm:18.3.0-canary-a870b2d54-20240314" - react-dom: "npm:18.3.0-canary-a870b2d54-20240314" + react: "npm:19.0.0-canary-36e62c603-20240418" + react-dom: "npm:19.0.0-canary-36e62c603-20240418" ts-toolbelt: "npm:9.6.0" tsx: "npm:4.7.1" typescript: "npm:5.4.5" @@ -8623,8 +8621,8 @@ __metadata: typescript: "npm:5.4.5" vitest: "npm:1.4.0" peerDependencies: - react: 18.3.0-canary-a870b2d54-20240314 - react-dom: 18.3.0-canary-a870b2d54-20240314 + react: 19.0.0-canary-36e62c603-20240418 + react-dom: 19.0.0-canary-36e62c603-20240418 languageName: unknown linkType: soft @@ -8704,13 +8702,13 @@ __metadata: core-js: "npm:3.36.1" jest: "npm:29.7.0" jest-environment-jsdom: "npm:29.7.0" - react: "npm:18.3.0-canary-a870b2d54-20240314" - react-dom: "npm:18.3.0-canary-a870b2d54-20240314" + react: "npm:19.0.0-canary-36e62c603-20240418" + react-dom: "npm:19.0.0-canary-36e62c603-20240418" tstyche: "npm:1.1.0" typescript: "npm:5.4.5" peerDependencies: - react: 18.3.0-canary-a870b2d54-20240314 - react-dom: 18.3.0-canary-a870b2d54-20240314 + react: 19.0.0-canary-36e62c603-20240418 + react-dom: 19.0.0-canary-36e62c603-20240418 languageName: unknown linkType: soft @@ -8857,8 +8855,8 @@ __metadata: glob: "npm:10.3.12" http-proxy-middleware: "npm:2.0.6" isbot: "npm:3.8.0" - react: "npm:18.3.0-canary-a870b2d54-20240314" - react-server-dom-webpack: "npm:18.3.0-canary-a870b2d54-20240314" + react: "npm:19.0.0-canary-36e62c603-20240418" + react-server-dom-webpack: "npm:19.0.0-canary-36e62c603-20240418" rollup: "npm:4.13.0" tsx: "npm:4.7.1" typescript: "npm:5.4.5" @@ -8899,7 +8897,7 @@ __metadata: resolution: "@redwoodjs/web@workspace:packages/web" dependencies: "@apollo/client": "npm:3.9.9" - "@apollo/experimental-nextjs-app-support": "npm:0.0.0-commit-b8a73fe" + "@apollo/client-react-streaming": "npm:0.10.0" "@babel/cli": "npm:7.24.1" "@babel/core": "npm:^7.22.20" "@babel/plugin-transform-runtime": "npm:7.24.3" @@ -8916,8 +8914,8 @@ __metadata: graphql-sse: "npm:2.5.2" graphql-tag: "npm:2.12.6" nodemon: "npm:3.1.0" - react: "npm:18.3.0-canary-a870b2d54-20240314" - react-dom: "npm:18.3.0-canary-a870b2d54-20240314" + react: "npm:19.0.0-canary-36e62c603-20240418" + react-dom: "npm:19.0.0-canary-36e62c603-20240418" react-helmet-async: "npm:2.0.4" react-hot-toast: "npm:2.4.1" stacktracey: "npm:2.1.8" @@ -8926,8 +8924,8 @@ __metadata: typescript: "npm:5.4.5" vitest: "npm:1.4.0" peerDependencies: - react: 18.3.0-canary-a870b2d54-20240314 - react-dom: 18.3.0-canary-a870b2d54-20240314 + react: 19.0.0-canary-36e62c603-20240418 + react-dom: 19.0.0-canary-36e62c603-20240418 bin: cross-env: ./dist/bins/cross-env.js msw: ./dist/bins/msw.js @@ -10045,13 +10043,13 @@ __metadata: languageName: node linkType: hard -"@storybook/react-dom-shim@npm:7.6.17": - version: 7.6.17 - resolution: "@storybook/react-dom-shim@npm:7.6.17" +"@storybook/react-dom-shim@https://verdaccio.tobbe.dev/@storybook/react-dom-shim/-/react-dom-shim-8.0.8.tgz": + version: 8.0.8 + resolution: "@storybook/react-dom-shim@https://verdaccio.tobbe.dev/@storybook/react-dom-shim/-/react-dom-shim-8.0.8.tgz" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10c0/20558c58f9f0a3a00c5a1bbf2aa3517e3d318e6528f503129c99fb9ee4b604a225e79725f67e01e6e99d5d8c7db0614575dcc89af7768381afe59c976cb7cfc0 + checksum: 10c0/993d7e5032d82a496ddff82eefd4a097c743554def5d44aa7dcd43e80e1b619f07bc6f19d3876fb76663b7116f443fb614800786bc49c054f91af0d7bee0c197 languageName: node linkType: hard @@ -27149,14 +27147,14 @@ __metadata: languageName: node linkType: hard -"react-dom@npm:18.3.0-canary-a870b2d54-20240314": - version: 18.3.0-canary-a870b2d54-20240314 - resolution: "react-dom@npm:18.3.0-canary-a870b2d54-20240314" +"react-dom@npm:19.0.0-canary-36e62c603-20240418": + version: 19.0.0-canary-36e62c603-20240418 + resolution: "react-dom@npm:19.0.0-canary-36e62c603-20240418" dependencies: - scheduler: "npm:0.24.0-canary-a870b2d54-20240314" + scheduler: "npm:0.25.0-canary-36e62c603-20240418" peerDependencies: - react: 18.3.0-canary-a870b2d54-20240314 - checksum: 10c0/6896473a3a7ed802f6b85c9601c64b0f1fe58ffbf3829ee5ac819a503fa16f5ec4d39b4b3f188cb2bf9ba9fb74cbdc28844c03cc2a4208303595220e5877d1b5 + react: 19.0.0-canary-36e62c603-20240418 + checksum: 10c0/e793e44af18b02d7e684a9e1dfbeb51e24ebcf17295303813b4a9e91962c51c6d1857a10d06aaeb390d5b503251225a93ef7d8e8a6e696a21a2148812575870c languageName: node linkType: hard @@ -27302,17 +27300,17 @@ __metadata: languageName: node linkType: hard -"react-server-dom-webpack@npm:18.3.0-canary-a870b2d54-20240314": - version: 18.3.0-canary-a870b2d54-20240314 - resolution: "react-server-dom-webpack@npm:18.3.0-canary-a870b2d54-20240314" +"react-server-dom-webpack@npm:19.0.0-canary-36e62c603-20240418": + version: 19.0.0-canary-36e62c603-20240418 + resolution: "react-server-dom-webpack@npm:19.0.0-canary-36e62c603-20240418" dependencies: acorn-loose: "npm:^8.3.0" neo-async: "npm:^2.6.1" peerDependencies: - react: 18.3.0-canary-a870b2d54-20240314 - react-dom: 18.3.0-canary-a870b2d54-20240314 + react: 19.0.0-canary-36e62c603-20240418 + react-dom: 19.0.0-canary-36e62c603-20240418 webpack: ^5.59.0 - checksum: 10c0/9040df3d8549898dbf4afd7bc86a01948e47b6eda998bda0e663a69fefa6922fa5977aaec0d0795938aac62c97d1da9307636051d0d12ec429c3c416cad23ffb + checksum: 10c0/cea48503f3e5b45d8ceb6103a809eac7715917373a352a6f5bfa969378f2bbe0aeec05522b4e1819770cc2f40315e42bf4b5a3a06cffb1c9adf12d1dfc980bb4 languageName: node linkType: hard @@ -27342,10 +27340,10 @@ __metadata: languageName: node linkType: hard -"react@npm:18.3.0-canary-a870b2d54-20240314": - version: 18.3.0-canary-a870b2d54-20240314 - resolution: "react@npm:18.3.0-canary-a870b2d54-20240314" - checksum: 10c0/f89b119c6fefc0956c815ad99e39ba83bc44485c4187143003a01906ef1d750a02f0018210eb192d1d0bdcd28a280139bf399bc59c972fc9e8f9938ee8c63387 +"react@npm:19.0.0-canary-36e62c603-20240418": + version: 19.0.0-canary-36e62c603-20240418 + resolution: "react@npm:19.0.0-canary-36e62c603-20240418" + checksum: 10c0/c9e48c9a21cd21736d6e0523bdf72f0b3d88b3581b70ccc0aba761927eaae823d1c8c2b047678827737792a92c01d40b977d422cd7195760e4f88879cca15446 languageName: node linkType: hard @@ -28451,10 +28449,10 @@ __metadata: languageName: node linkType: hard -"scheduler@npm:0.24.0-canary-a870b2d54-20240314": - version: 0.24.0-canary-a870b2d54-20240314 - resolution: "scheduler@npm:0.24.0-canary-a870b2d54-20240314" - checksum: 10c0/ac70f95c1d0cbf6de8bf0d1b2f1c8bb063d0ea0ce9410de720b9eeb17d85dc18bc9bc3c2ab89332cb0d7e746b68f7599ccc4915bcf3ea3a4541797bb1f2ec587 +"scheduler@npm:0.25.0-canary-36e62c603-20240418": + version: 0.25.0-canary-36e62c603-20240418 + resolution: "scheduler@npm:0.25.0-canary-36e62c603-20240418" + checksum: 10c0/bf7adcdd9c3d786405dd3f8c9a107cc7fd8e8b62dd491f308c68a07cbd62da4caa73a20431b42d47cd0bd7f97e809ec1e3f5e2d35a9eedf9f827d3eb4789c299 languageName: node linkType: hard @@ -28644,13 +28642,6 @@ __metadata: languageName: node linkType: hard -"server-only@npm:^0.0.1": - version: 0.0.1 - resolution: "server-only@npm:0.0.1" - checksum: 10c0/4704f0ef85da0be981af6d4ed8e739d39bcfd265b9c246a684060acda5642d0fdc6daffc2308e71e2682c5f508090978802eae0a77623c9b90a49f9ae68048d6 - languageName: node - linkType: hard - "set-blocking@npm:^2.0.0": version: 2.0.0 resolution: "set-blocking@npm:2.0.0" @@ -29669,12 +29660,12 @@ __metadata: languageName: node linkType: hard -"superjson@npm:^1.12.2": - version: 1.13.1 - resolution: "superjson@npm:1.13.1" +"superjson@npm:^1.12.2 || ^2.0.0": + version: 2.2.1 + resolution: "superjson@npm:2.2.1" dependencies: copy-anything: "npm:^3.0.2" - checksum: 10c0/596edde148df1f05f09236b0715ad97bcf803514e65a271d4f945557e35652b838e65c96520946b7ee7a62cb96f26a565749dc14897de2bcf9ac12371f1a4f8c + checksum: 10c0/5d8202c955170bd98ef2647f712754ac54d2d007923cfdb53a4b035304d8964b8c41d5eff41ee277896e2ac32e06abb009b571f1589416b729fe40216320cc7a languageName: node linkType: hard