feat!: support latest Next.js versions, fix server-only props being passed to Client Document Views (#7026)

**BREAKING:** The minimum required Next.js version has been bumped from
`15.0.0-rc.0` to `15.0.0-canary.53`. This is because the way client
components are represented changed somewhere between those versions, and
it is not feasible to support both versions in our RSC detection logic.
This commit is contained in:
Alessio Gravili
2024-07-08 09:24:56 -04:00
committed by GitHub
parent f39701401e
commit 1cf7d4db32
11 changed files with 83 additions and 101 deletions

View File

@@ -130,7 +130,7 @@
"lint-staged": "^14.0.1",
"minimist": "1.2.8",
"mongodb-memory-server": "^9.0",
"next": "15.0.0-rc.0",
"next": "15.0.0-canary.53",
"open": "^10.1.0",
"p-limit": "^5.0.0",
"pino": "8.15.0",

View File

@@ -100,7 +100,7 @@
},
"peerDependencies": {
"graphql": "^16.8.1",
"next": "^15.0.0-rc.0",
"next": "^15.0.0-canary.53",
"payload": "workspace:*"
},
"engines": {

View File

@@ -196,13 +196,6 @@ export const Document: React.FC<AdminViewProps> = async ({
}
}
const viewComponentProps: ServerSideEditViewProps = {
initPageResult,
params,
routeSegments: segments,
searchParams,
}
return (
<DocumentInfoProvider
action={action}
@@ -246,13 +239,14 @@ export const Document: React.FC<AdminViewProps> = async ({
<RenderCustomComponent
CustomComponent={ViewOverride || CustomView}
DefaultComponent={DefaultView}
componentProps={viewComponentProps}
serverOnlyProps={{
i18n,
initPageResult,
locale,
params,
payload,
permissions,
routeSegments: segments,
searchParams,
user,
}}

View File

@@ -1,47 +1,31 @@
import type React from 'react'
import { isPlainObject } from './isPlainObject.js'
/*
For reference: console.log output of [ClientComponent, RSC] array, tested in Turbo and Webpack (14.3.0-canary.37)
Both component functions async:
Turbo: [ [Function (anonymous)], [AsyncFunction: ExampleServer] ]
Webpack: [ {}, [AsyncFunction: ExampleServer] ]
Both component functions non-async:
Turbo: [ [Function (anonymous)], [Function: ExampleServer] ]
Webpack: [ {}, [Function: ExampleServer] ]
*/
const clientRefSymbol = Symbol.for('react.client.reference')
export function isReactServerComponentOrFunction<T extends any>(
component: React.ComponentType | any,
): component is T {
const isClassComponent =
typeof component === 'function' &&
component.prototype &&
typeof component.prototype.render === 'function'
const isFunctionalComponent =
typeof component === 'function' && (!component.prototype || !component.prototype.render)
if (component === null || component === undefined) {
return false
}
const hasClientComponentSymbol = component.$$typeof == clientRefSymbol
const isFunctionalComponent = typeof component === 'function'
// Anonymous functions are Client Components in Turbopack. RSCs should have a name
const isAnonymousFunction = typeof component === 'function' && component.name === ''
return (isClassComponent || isFunctionalComponent) && !isAnonymousFunction
const isRSC = isFunctionalComponent && !isAnonymousFunction && !hasClientComponentSymbol
return isRSC
}
export function isReactClientComponent<T extends any>(
component: React.ComponentType | any,
): component is T {
const isClientComponentWebpack = typeof component === 'object' && !isPlainObject(component) // In Webpack, client components are {}
const isClientComponentTurbo = typeof component === 'function' && component.name === '' // Anonymous functions are Client Components in Turbopack
return isClientComponentWebpack || isClientComponentTurbo
if (component === null || component === undefined) {
return false
}
return !isReactServerComponentOrFunction(component) && component.$$typeof == clientRefSymbol
}
export function isReactComponentOrFunction<T extends any>(

View File

@@ -122,7 +122,7 @@
"turbopack": "^0.0.1"
},
"peerDependencies": {
"next": "^15.0.0-rc.0",
"next": "^15.0.0-canary.53",
"payload": "workspace:*",
"react": "^19.0.0 || ^19.0.0-rc-f994737d14-20240522",
"react-dom": "^19.0.0 || ^19.0.0-rc-f994737d14-20240522"

116
pnpm-lock.yaml generated
View File

@@ -147,8 +147,8 @@ importers:
specifier: ^9.0
version: 9.1.8
next:
specifier: 15.0.0-rc.0
version: 15.0.0-rc.0(@babel/core@7.24.5)(@playwright/test@1.43.0)(babel-plugin-react-compiler@0.0.0-experimental-592953e-20240517)(react-dom@19.0.0-rc-f994737d14-20240522)(react@19.0.0-rc-f994737d14-20240522)
specifier: 15.0.0-canary.53
version: 15.0.0-canary.53(@babel/core@7.24.5)(@playwright/test@1.43.0)(babel-plugin-react-compiler@0.0.0-experimental-592953e-20240517)(react-dom@19.0.0-rc-f994737d14-20240522)(react@19.0.0-rc-f994737d14-20240522)
open:
specifier: ^10.1.0
version: 10.1.0
@@ -580,8 +580,8 @@ importers:
specifier: 1.6.2
version: 1.6.2
next:
specifier: ^15.0.0-rc.0
version: 15.0.0-rc.0(@babel/core@7.24.5)(@playwright/test@1.43.0)(react-dom@19.0.0-rc-f994737d14-20240522)(react@19.0.0-rc-f994737d14-20240522)(sass@1.77.4)
specifier: ^15.0.0-canary.53
version: 15.0.0-canary.53(@babel/core@7.24.5)(@playwright/test@1.43.0)(react-dom@19.0.0-rc-f994737d14-20240522)(react@19.0.0-rc-f994737d14-20240522)(sass@1.77.4)
path-to-regexp:
specifier: ^6.2.1
version: 6.2.2
@@ -1337,7 +1337,7 @@ importers:
version: link:../plugin-cloud-storage
uploadthing:
specifier: ^6.10.1
version: 6.10.4(next@15.0.0-rc.0)
version: 6.10.4(next@15.0.0-canary.53)
devDependencies:
payload:
specifier: workspace:*
@@ -1426,8 +1426,8 @@ importers:
specifier: 2.3.0
version: 2.3.0
next:
specifier: ^15.0.0-rc.0
version: 15.0.0-rc.0(@babel/core@7.24.5)(@playwright/test@1.43.0)(babel-plugin-react-compiler@0.0.0-experimental-592953e-20240517)(react-dom@19.0.0-rc-f994737d14-20240522)(react@19.0.0-rc-f994737d14-20240522)
specifier: ^15.0.0-canary.53
version: 15.0.0-canary.53(@babel/core@7.24.5)(@playwright/test@1.43.0)(babel-plugin-react-compiler@0.0.0-experimental-592953e-20240517)(react-dom@19.0.0-rc-f994737d14-20240522)(react@19.0.0-rc-f994737d14-20240522)
object-to-formdata:
specifier: 4.5.1
version: 4.5.1
@@ -1695,7 +1695,7 @@ importers:
version: 5.5.3
uploadthing:
specifier: ^6.10.1
version: 6.10.4(next@15.0.0-rc.0)
version: 6.10.4(next@15.0.0-canary.53)
packages:
@@ -6021,8 +6021,12 @@ packages:
- utf-8-validate
dev: true
/@next/env@15.0.0-canary.53:
resolution: {integrity: sha512-8GBJH7RckXulT5+PpxUT0cBzmxosv8NEcouXzKfC0qsqqTvD7B8XpqHSpHzITUwQH1ToG6a/Jb8fnDrwW/nhEw==}
/@next/env@15.0.0-rc.0:
resolution: {integrity: sha512-6W0ndQvHR9sXcqcKeR/inD2UTRCs9+VkSK3lfaGmEuZs7EjwwXMO2BPYjz9oBrtfPL3xuTjtXsHKSsalYQ5l1Q==}
dev: false
/@next/eslint-plugin-next@14.1.4:
resolution: {integrity: sha512-n4zYNLSyCo0Ln5b7qxqQeQ34OZKXwgbdcx6kmkQbywr+0k6M3Vinft0T72R6CDAcDrne2IAgSud4uWCzFgc5HA==}
@@ -6030,72 +6034,72 @@ packages:
glob: 10.3.10
dev: true
/@next/swc-darwin-arm64@15.0.0-rc.0:
resolution: {integrity: sha512-4OpTXvAWcSabXA5d688zdUwa3sfT9QrLnHMdpv4q2UDnnuqmOI0xLb6lrOxwpi+vHJNkneuNLqyc5HGBhkqL6A==}
/@next/swc-darwin-arm64@15.0.0-canary.53:
resolution: {integrity: sha512-G4HnRRmRmuvLdIjqnjj16wle274yBy0nIml0dDs4oRpMjJ2iyJ9q0d0T58GphHn/GWONULgP0N1jJxrDQ4K+Eg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
requiresBuild: true
optional: true
/@next/swc-darwin-x64@15.0.0-rc.0:
resolution: {integrity: sha512-/TD8M9DT244uhtFA8P/0DUbM7ftg2zio6yOo6ajV16vNjkcug9Kt9//Wa4SrJjWcsGZpViLctOlwn3/6JFAuAA==}
/@next/swc-darwin-x64@15.0.0-canary.53:
resolution: {integrity: sha512-eFdafKMyGA8Vg/Wq3kHc5vXYtVtn8m8w9LjqyTAuTwsExqBLMELH13qcXF924GXFLpKDhtpoel3/5lHFCHUKgQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
requiresBuild: true
optional: true
/@next/swc-linux-arm64-gnu@15.0.0-rc.0:
resolution: {integrity: sha512-3VTO32938AcqOlOI/U61/MIpeYrblP22VU1GrgmMQJozsAXEJgLCgf3wxZtn61/FG4Yc0tp7rPZE2t1fIGe0+w==}
/@next/swc-linux-arm64-gnu@15.0.0-canary.53:
resolution: {integrity: sha512-UyPqm19eaXeO6J9BoEJ+RARIEh+RPN2mWYOJmMXJKQ5gjYKSXzIYHFumYtZUMuDecIy8CYVmJl5xKomwpxbaiA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
requiresBuild: true
optional: true
/@next/swc-linux-arm64-musl@15.0.0-rc.0:
resolution: {integrity: sha512-0kDnxM3AfrrHFJ/wTkjkv7cVHIaGwv+CzDg9lL2BoLEM4kMQhH20DTsBOMqpTpo1K2KCg67LuTGd3QOITT5uFQ==}
/@next/swc-linux-arm64-musl@15.0.0-canary.53:
resolution: {integrity: sha512-j4UIFXRZ2WI8hMnjCNcXlkswdmNoS7qwERBf/HadaYU3pM96/7Vi4YDpB8tP9rCgWZzcsCh8HRH2i8S34RjrpA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
requiresBuild: true
optional: true
/@next/swc-linux-x64-gnu@15.0.0-rc.0:
resolution: {integrity: sha512-fPMNahzqYFjm5h0ncJ5+F3NrShmWhpusM+zrQl01MMU0Ed5xsL4pJJDSuXV4wPkNUSjCP3XstTjxR5kBdO4juQ==}
/@next/swc-linux-x64-gnu@15.0.0-canary.53:
resolution: {integrity: sha512-CraG4Y1ZVQg+E7YKaW59ee5LGmcKcJPpQPJhbmjBvsmiff5aekOju6j9B7pUyYNRu8fv75ld2M6/wrP4xtQc5A==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
requiresBuild: true
optional: true
/@next/swc-linux-x64-musl@15.0.0-rc.0:
resolution: {integrity: sha512-7/FLgOqrrQAxOVQrxfr3bGgZ83pSCmc2S3TXBILnHw0S8qLxmFjhSjH5ogaDmjrES/PSYMaX1FsP5Af88hp7Gw==}
/@next/swc-linux-x64-musl@15.0.0-canary.53:
resolution: {integrity: sha512-EMl7W5Z+s/bpuHINiewFzNDx0bjPuTuRguoL8pFHFpSvVF7OihlWLG4FWUe33aXbsYeMTSQ/EGoTaKBmBnePRg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
requiresBuild: true
optional: true
/@next/swc-win32-arm64-msvc@15.0.0-rc.0:
resolution: {integrity: sha512-5wcqoYHh7hbdghjH6Xs3i5/f0ov+i1Xw2E3O+BzZNESYVLgCM1q7KJu5gdGFoXA2gz5XaKF/VBcYHikLzyjgmA==}
/@next/swc-win32-arm64-msvc@15.0.0-canary.53:
resolution: {integrity: sha512-gWFWBchYaAOR9smQcS+9TvyqU7i6GMw/dwXq2+ojTt+GnOFPyEa9OnExVMdAIv8SlBG5rO/lYeXl++jeCtfwSg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
requiresBuild: true
optional: true
/@next/swc-win32-ia32-msvc@15.0.0-rc.0:
resolution: {integrity: sha512-/hqOmYRTvtBPToE4Dbl9n+sLYU7DPd52R+TtjIrrEzTMgFo2/d7un3sD7GKmb2OwOj/ExyGv6Bd/JzytBVxXlw==}
/@next/swc-win32-ia32-msvc@15.0.0-canary.53:
resolution: {integrity: sha512-pFxuXGVedIsA5xCxxHUNONz3f5v5JtemWgFdom2D3LeI47npQGb4jLUEj7nzcYM9AvrKtOkyHwhlNi+VcfWTEA==}
engines: {node: '>= 10'}
cpu: [ia32]
os: [win32]
requiresBuild: true
optional: true
/@next/swc-win32-x64-msvc@15.0.0-rc.0:
resolution: {integrity: sha512-2Jly5nShvCUzzngP3RzdQ3JcuEcHcnIEvkvZDCXqFAK+bWks4+qOkEUO1QIAERQ99J5J9/1AN/8zFBme3Mm57A==}
/@next/swc-win32-x64-msvc@15.0.0-canary.53:
resolution: {integrity: sha512-ImN6kLXH0hmzIhbHSM1qVLexp0ySgAmvahQ6OmyEpuO/gsHS3MiIB7X03XWlHoc0PcdrfX2v+W9FkJTM7UKSbw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
@@ -13566,8 +13570,8 @@ packages:
/next-tick@1.1.0:
resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==}
/next@15.0.0-rc.0(@babel/core@7.24.5)(@playwright/test@1.43.0)(babel-plugin-react-compiler@0.0.0-experimental-592953e-20240517)(react-dom@19.0.0-rc-f994737d14-20240522)(react@19.0.0-rc-f994737d14-20240522):
resolution: {integrity: sha512-IWcCvxUSCAuOK5gig4+9yiyt/dLKpIa+WT01Qcx4CBE4TtwJljyTDnCVVn64jDZ4qmSzsaEYXpb4DTI8qbk03A==}
/next@15.0.0-canary.53(@babel/core@7.24.5)(@playwright/test@1.43.0)(babel-plugin-react-compiler@0.0.0-experimental-592953e-20240517)(react-dom@19.0.0-rc-f994737d14-20240522)(react@19.0.0-rc-f994737d14-20240522):
resolution: {integrity: sha512-DSbMTIx/PFJPtIsRKoQzjHyRV6T/1Mir7vRrxiDkf1g223KGgjwn9hhvhjiLczUmBO6ec4vSnNNqWx0SuVXlJw==}
engines: {node: '>=18.17.0'}
hasBin: true
peerDependencies:
@@ -13587,7 +13591,7 @@ packages:
sass:
optional: true
dependencies:
'@next/env': 15.0.0-rc.0
'@next/env': 15.0.0-canary.53
'@playwright/test': 1.43.0
'@swc/helpers': 0.5.11
babel-plugin-react-compiler: 0.0.0-experimental-592953e-20240517
@@ -13597,24 +13601,24 @@ packages:
postcss: 8.4.31
react: 19.0.0-rc-f994737d14-20240522
react-dom: 19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522)
styled-jsx: 5.1.3(@babel/core@7.24.5)(react@19.0.0-rc-f994737d14-20240522)
styled-jsx: 5.1.6(@babel/core@7.24.5)(react@19.0.0-rc-f994737d14-20240522)
optionalDependencies:
'@next/swc-darwin-arm64': 15.0.0-rc.0
'@next/swc-darwin-x64': 15.0.0-rc.0
'@next/swc-linux-arm64-gnu': 15.0.0-rc.0
'@next/swc-linux-arm64-musl': 15.0.0-rc.0
'@next/swc-linux-x64-gnu': 15.0.0-rc.0
'@next/swc-linux-x64-musl': 15.0.0-rc.0
'@next/swc-win32-arm64-msvc': 15.0.0-rc.0
'@next/swc-win32-ia32-msvc': 15.0.0-rc.0
'@next/swc-win32-x64-msvc': 15.0.0-rc.0
'@next/swc-darwin-arm64': 15.0.0-canary.53
'@next/swc-darwin-x64': 15.0.0-canary.53
'@next/swc-linux-arm64-gnu': 15.0.0-canary.53
'@next/swc-linux-arm64-musl': 15.0.0-canary.53
'@next/swc-linux-x64-gnu': 15.0.0-canary.53
'@next/swc-linux-x64-musl': 15.0.0-canary.53
'@next/swc-win32-arm64-msvc': 15.0.0-canary.53
'@next/swc-win32-ia32-msvc': 15.0.0-canary.53
'@next/swc-win32-x64-msvc': 15.0.0-canary.53
sharp: 0.33.4
transitivePeerDependencies:
- '@babel/core'
- babel-plugin-macros
/next@15.0.0-rc.0(@babel/core@7.24.5)(@playwright/test@1.43.0)(react-dom@19.0.0-rc-f994737d14-20240522)(react@19.0.0-rc-f994737d14-20240522)(sass@1.77.4):
resolution: {integrity: sha512-IWcCvxUSCAuOK5gig4+9yiyt/dLKpIa+WT01Qcx4CBE4TtwJljyTDnCVVn64jDZ4qmSzsaEYXpb4DTI8qbk03A==}
/next@15.0.0-canary.53(@babel/core@7.24.5)(@playwright/test@1.43.0)(react-dom@19.0.0-rc-f994737d14-20240522)(react@19.0.0-rc-f994737d14-20240522)(sass@1.77.4):
resolution: {integrity: sha512-DSbMTIx/PFJPtIsRKoQzjHyRV6T/1Mir7vRrxiDkf1g223KGgjwn9hhvhjiLczUmBO6ec4vSnNNqWx0SuVXlJw==}
engines: {node: '>=18.17.0'}
hasBin: true
peerDependencies:
@@ -13634,7 +13638,7 @@ packages:
sass:
optional: true
dependencies:
'@next/env': 15.0.0-rc.0
'@next/env': 15.0.0-canary.53
'@playwright/test': 1.43.0
'@swc/helpers': 0.5.11
busboy: 1.6.0
@@ -13644,17 +13648,17 @@ packages:
react: 19.0.0-rc-f994737d14-20240522
react-dom: 19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522)
sass: 1.77.4
styled-jsx: 5.1.3(@babel/core@7.24.5)(react@19.0.0-rc-f994737d14-20240522)
styled-jsx: 5.1.6(@babel/core@7.24.5)(react@19.0.0-rc-f994737d14-20240522)
optionalDependencies:
'@next/swc-darwin-arm64': 15.0.0-rc.0
'@next/swc-darwin-x64': 15.0.0-rc.0
'@next/swc-linux-arm64-gnu': 15.0.0-rc.0
'@next/swc-linux-arm64-musl': 15.0.0-rc.0
'@next/swc-linux-x64-gnu': 15.0.0-rc.0
'@next/swc-linux-x64-musl': 15.0.0-rc.0
'@next/swc-win32-arm64-msvc': 15.0.0-rc.0
'@next/swc-win32-ia32-msvc': 15.0.0-rc.0
'@next/swc-win32-x64-msvc': 15.0.0-rc.0
'@next/swc-darwin-arm64': 15.0.0-canary.53
'@next/swc-darwin-x64': 15.0.0-canary.53
'@next/swc-linux-arm64-gnu': 15.0.0-canary.53
'@next/swc-linux-arm64-musl': 15.0.0-canary.53
'@next/swc-linux-x64-gnu': 15.0.0-canary.53
'@next/swc-linux-x64-musl': 15.0.0-canary.53
'@next/swc-win32-arm64-msvc': 15.0.0-canary.53
'@next/swc-win32-ia32-msvc': 15.0.0-canary.53
'@next/swc-win32-x64-msvc': 15.0.0-canary.53
sharp: 0.33.4
transitivePeerDependencies:
- '@babel/core'
@@ -16733,8 +16737,8 @@ packages:
/stubs@3.0.0:
resolution: {integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==}
/styled-jsx@5.1.3(@babel/core@7.24.5)(react@19.0.0-rc-f994737d14-20240522):
resolution: {integrity: sha512-qLRShOWTE/Mf6Bvl72kFeKBl8N2Eq9WIFfoAuvbtP/6tqlnj1SCjv117n2MIjOPpa1jTorYqLJgsHKy5Y3ziww==}
/styled-jsx@5.1.6(@babel/core@7.24.5)(react@19.0.0-rc-f994737d14-20240522):
resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==}
engines: {node: '>= 12.0.0'}
peerDependencies:
'@babel/core': '*'
@@ -17523,7 +17527,7 @@ packages:
escalade: 3.1.2
picocolors: 1.0.0
/uploadthing@6.10.4(next@15.0.0-rc.0):
/uploadthing@6.10.4(next@15.0.0-canary.53):
resolution: {integrity: sha512-0hGO0Q7R7MnxzVkUbYHE6PkwFieYH+UUa905uo7JtA0h3Gpc89bNDFaOfK8634Z66088VRLNVuWxY2FTIqw4sg==}
engines: {node: '>=18.13.0'}
peerDependencies:
@@ -17550,7 +17554,7 @@ packages:
consola: 3.2.3
effect: 3.1.5
fast-check: 3.18.0
next: 15.0.0-rc.0(@babel/core@7.24.5)(@playwright/test@1.43.0)(babel-plugin-react-compiler@0.0.0-experimental-592953e-20240517)(react-dom@19.0.0-rc-f994737d14-20240522)(react@19.0.0-rc-f994737d14-20240522)
next: 15.0.0-canary.53(@babel/core@7.24.5)(@playwright/test@1.43.0)(babel-plugin-react-compiler@0.0.0-experimental-592953e-20240517)(react-dom@19.0.0-rc-f994737d14-20240522)(react@19.0.0-rc-f994737d14-20240522)
std-env: 3.7.0
/uri-js@4.4.1:

View File

@@ -20,7 +20,7 @@
"@payloadcms/richtext-lexical": "beta",
"cross-env": "^7.0.3",
"graphql": "^16.8.1",
"next": "15.0.0-rc.0",
"next": "15.0.0-canary.53",
"payload": "beta",
"react": "^19.0.0-rc-f994737d14-20240522",
"react-dom": "^19.0.0-rc-f994737d14-20240522",

View File

@@ -20,7 +20,7 @@
"@payloadcms/richtext-lexical": "beta",
"cross-env": "^7.0.3",
"graphql": "^16.8.1",
"next": "15.0.0-rc.0",
"next": "15.0.0-canary.53",
"payload": "beta",
"react": "^19.0.0-rc-f994737d14-20240522",
"react-dom": "^19.0.0-rc-f994737d14-20240522",

View File

@@ -20,7 +20,7 @@
"@payloadcms/richtext-lexical": "beta",
"cross-env": "^7.0.3",
"graphql": "^16.8.1",
"next": "15.0.0-rc.0",
"next": "15.0.0-canary.53",
"payload": "beta",
"react": "^19.0.0-rc-f994737d14-20240522",
"react-dom": "^19.0.0-rc-f994737d14-20240522",

View File

@@ -21,7 +21,7 @@
"@payloadcms/storage-vercel-blob": "beta",
"cross-env": "^7.0.3",
"graphql": "^16.8.1",
"next": "15.0.0-rc.0",
"next": "15.0.0-canary.53",
"payload": "beta",
"react": "^19.0.0-rc-f994737d14-20240522",
"react-dom": "^19.0.0-rc-f994737d14-20240522"

View File

@@ -21,7 +21,7 @@
"@payloadcms/storage-vercel-blob": "beta",
"cross-env": "^7.0.3",
"graphql": "^16.8.1",
"next": "15.0.0-rc.0",
"next": "15.0.0-canary.53",
"payload": "beta",
"react": "^19.0.0-rc-f994737d14-20240522",
"react-dom": "^19.0.0-rc-f994737d14-20240522"