Compare commits
13 Commits
main
...
perf/initr
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
36940b2f2d | ||
|
|
6d6bbd2276 | ||
|
|
8833ed15ac | ||
|
|
95986b2380 | ||
|
|
10dd85481a | ||
|
|
9d66c7efe3 | ||
|
|
9447119672 | ||
|
|
8c4bef37e7 | ||
|
|
b3bd6c4b4f | ||
|
|
96a4fb75b3 | ||
|
|
5b40897305 | ||
|
|
996fe9df49 | ||
|
|
1b626b510b |
@@ -4,8 +4,7 @@ import type { ImportMap, LanguageOptions, SanitizedConfig, ServerFunctionClient
|
||||
import { rtlLanguages } from '@payloadcms/translations'
|
||||
import { ProgressBar, RootProvider } from '@payloadcms/ui'
|
||||
import { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig'
|
||||
import { headers as getHeaders, cookies as nextCookies } from 'next/headers.js'
|
||||
import { getPayload, getRequestLanguage, parseCookies } from 'payload'
|
||||
import { cookies as nextCookies } from 'next/headers.js'
|
||||
import React from 'react'
|
||||
|
||||
import { getNavPrefs } from '../../elements/Nav/getNavPrefs.js'
|
||||
@@ -34,16 +33,16 @@ export const RootLayout = async ({
|
||||
}) => {
|
||||
checkDependencies()
|
||||
|
||||
const config = await configPromise
|
||||
|
||||
const headers = await getHeaders()
|
||||
const cookies = parseCookies(headers)
|
||||
|
||||
const languageCode = getRequestLanguage({
|
||||
config,
|
||||
const {
|
||||
cookies,
|
||||
headers,
|
||||
})
|
||||
languageCode,
|
||||
permissions,
|
||||
req,
|
||||
req: {
|
||||
payload: { config },
|
||||
},
|
||||
} = await initReq({ configPromise, importMap, key: 'RootLayout' })
|
||||
|
||||
const theme = getRequestTheme({
|
||||
config,
|
||||
@@ -51,10 +50,6 @@ export const RootLayout = async ({
|
||||
headers,
|
||||
})
|
||||
|
||||
const payload = await getPayload({ config, importMap })
|
||||
|
||||
const { permissions, req } = await initReq(config)
|
||||
|
||||
const dir = (rtlLanguages as unknown as AcceptedLanguages[]).includes(languageCode)
|
||||
? 'RTL'
|
||||
: 'LTR'
|
||||
@@ -134,11 +129,11 @@ export const RootLayout = async ({
|
||||
{Array.isArray(config.admin?.components?.providers) &&
|
||||
config.admin?.components?.providers.length > 0 ? (
|
||||
<NestProviders
|
||||
importMap={payload.importMap}
|
||||
importMap={req.payload.importMap}
|
||||
providers={config.admin?.components?.providers}
|
||||
serverProps={{
|
||||
i18n: req.i18n,
|
||||
payload,
|
||||
payload: req.payload,
|
||||
permissions,
|
||||
user: req.user,
|
||||
}}
|
||||
|
||||
@@ -13,7 +13,11 @@ import { initReq } from './initReq.js'
|
||||
export const handleServerFunctions: ServerFunctionHandler = async (args) => {
|
||||
const { name: fnKey, args: fnArgs, config: configPromise, importMap } = args
|
||||
|
||||
const { req } = await initReq(configPromise)
|
||||
const { req } = await initReq({
|
||||
configPromise,
|
||||
importMap,
|
||||
key: 'RootLayout',
|
||||
})
|
||||
|
||||
const augmentedArgs: Parameters<ServerFunction>[0] = {
|
||||
...fnArgs,
|
||||
|
||||
@@ -18,31 +18,38 @@ export const initPage = async ({
|
||||
importMap,
|
||||
route,
|
||||
searchParams,
|
||||
useLayoutReq,
|
||||
}: Args): Promise<InitPageResult> => {
|
||||
const headers = await getHeaders()
|
||||
const payload = await getPayload({ config: configPromise, importMap })
|
||||
const queryString = `${qs.stringify(searchParams ?? {}, { addQueryPrefix: true })}`
|
||||
|
||||
const {
|
||||
cookies,
|
||||
locale,
|
||||
permissions,
|
||||
req,
|
||||
req: { payload },
|
||||
} = await initReq({
|
||||
configPromise,
|
||||
importMap,
|
||||
key: useLayoutReq ? 'RootLayout' : 'initPage',
|
||||
overrides: {
|
||||
fallbackLocale: false,
|
||||
req: {
|
||||
query: qs.parse(queryString, {
|
||||
depth: 10,
|
||||
ignoreQueryPrefix: true,
|
||||
}),
|
||||
},
|
||||
},
|
||||
urlSuffix: `${route}${searchParams ? queryString : ''}`,
|
||||
})
|
||||
|
||||
const {
|
||||
collections,
|
||||
globals,
|
||||
routes: { admin: adminRoute },
|
||||
} = payload.config
|
||||
|
||||
const cookies = parseCookies(headers)
|
||||
|
||||
const { locale, permissions, req } = await initReq(payload.config, {
|
||||
fallbackLocale: false,
|
||||
req: {
|
||||
headers,
|
||||
query: qs.parse(queryString, {
|
||||
depth: 10,
|
||||
ignoreQueryPrefix: true,
|
||||
}),
|
||||
url: `${payload.config.serverURL}${route}${searchParams ? queryString : ''}`,
|
||||
},
|
||||
})
|
||||
|
||||
const languageOptions = Object.entries(payload.config.i18n.supportedLanguages || {}).reduce(
|
||||
(acc, [language, languageConfig]) => {
|
||||
if (Object.keys(payload.config.i18n.supportedLanguages).includes(language)) {
|
||||
|
||||
@@ -20,4 +20,15 @@ export type Args = {
|
||||
* The search parameters of the current route provided to all pages in Next.js.
|
||||
*/
|
||||
searchParams: { [key: string]: string | string[] | undefined }
|
||||
/**
|
||||
* If `useLayoutReq` is `true`, this page will use the cached `req` created by the root layout
|
||||
* instead of creating a new one.
|
||||
*
|
||||
* This is improves performance for pages that are able to share the same `req` as the root layout,
|
||||
* as permissions do not need to be re-calculated.
|
||||
*
|
||||
* If the page has unique query and url params that need to be part of the `req` object, or if you
|
||||
* need permissions calculation to respect those you should not use this property.
|
||||
*/
|
||||
useLayoutReq?: boolean
|
||||
}
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
import type { I18n, I18nClient } from '@payloadcms/translations'
|
||||
import type { Locale, PayloadRequest, SanitizedConfig, SanitizedPermissions } from 'payload'
|
||||
import type { AcceptedLanguages, I18n, I18nClient } from '@payloadcms/translations'
|
||||
import type {
|
||||
ImportMap,
|
||||
Locale,
|
||||
Payload,
|
||||
PayloadRequest,
|
||||
SanitizedConfig,
|
||||
SanitizedPermissions,
|
||||
User,
|
||||
} from 'payload'
|
||||
|
||||
import { initI18n } from '@payloadcms/translations'
|
||||
import { headers as getHeaders } from 'next/headers.js'
|
||||
@@ -16,73 +24,197 @@ import { cache } from 'react'
|
||||
import { getRequestLocale } from './getRequestLocale.js'
|
||||
|
||||
type Result = {
|
||||
cookies: Map<string, string>
|
||||
headers: Awaited<ReturnType<typeof getHeaders>>
|
||||
languageCode: AcceptedLanguages
|
||||
locale?: Locale
|
||||
permissions: SanitizedPermissions
|
||||
req: PayloadRequest
|
||||
}
|
||||
|
||||
export const initReq = cache(async function (
|
||||
configPromise: Promise<SanitizedConfig> | SanitizedConfig,
|
||||
overrides?: Parameters<typeof createLocalReq>[0],
|
||||
): Promise<Result> {
|
||||
const config = await configPromise
|
||||
const payload = await getPayload({ config })
|
||||
|
||||
const headers = await getHeaders()
|
||||
const cookies = parseCookies(headers)
|
||||
|
||||
const languageCode = getRequestLanguage({
|
||||
config,
|
||||
cookies,
|
||||
headers,
|
||||
})
|
||||
|
||||
const i18n: I18nClient = await initI18n({
|
||||
config: config.i18n,
|
||||
context: 'client',
|
||||
language: languageCode,
|
||||
})
|
||||
|
||||
/**
|
||||
* Cannot simply call `payload.auth` here, as we need the user to get the locale, and we need the locale to get the access results
|
||||
* I.e. the `payload.auth` function would call `getAccessResults` without a fully-formed `req` object
|
||||
*/
|
||||
const { responseHeaders, user } = await executeAuthStrategies({
|
||||
headers,
|
||||
payload,
|
||||
})
|
||||
|
||||
const { req: reqOverrides, ...optionsOverrides } = overrides || {}
|
||||
|
||||
const req = await createLocalReq(
|
||||
{
|
||||
req: {
|
||||
headers,
|
||||
host: headers.get('host'),
|
||||
i18n: i18n as I18n,
|
||||
responseHeaders,
|
||||
url: `${payload.config.serverURL}`,
|
||||
user,
|
||||
...(reqOverrides || {}),
|
||||
},
|
||||
...(optionsOverrides || {}),
|
||||
},
|
||||
payload,
|
||||
)
|
||||
|
||||
const locale = await getRequestLocale({
|
||||
req,
|
||||
})
|
||||
|
||||
req.locale = locale?.code
|
||||
|
||||
const permissions = await getAccessResults({
|
||||
req,
|
||||
})
|
||||
type PartialResult = {
|
||||
cookies: Map<string, string>
|
||||
headers: Awaited<ReturnType<typeof getHeaders>>
|
||||
i18n: I18nClient
|
||||
languageCode: AcceptedLanguages
|
||||
payload: Payload
|
||||
responseHeaders: Headers
|
||||
user: null | User
|
||||
}
|
||||
|
||||
/**
|
||||
* Stable object to cache the partial request object across all pages
|
||||
*/
|
||||
const getPartialInitReqContainer = cache(function (): {
|
||||
reqResult: false | PartialResult | Promise<PartialResult>
|
||||
} {
|
||||
return {
|
||||
locale,
|
||||
permissions,
|
||||
req,
|
||||
reqResult: false,
|
||||
}
|
||||
})
|
||||
|
||||
/**
|
||||
* Stable object to cache the request object across all pages with the same key
|
||||
*/
|
||||
const getInitReqContainer = cache(function (
|
||||
/**
|
||||
* The key is solely used to control caching behavior
|
||||
*/
|
||||
key: string,
|
||||
): {
|
||||
reqResult: false | Promise<Result> | Result
|
||||
} {
|
||||
return {
|
||||
reqResult: false,
|
||||
}
|
||||
})
|
||||
|
||||
/**
|
||||
* Initializes a partial request object. This does not construct the `req` object and does
|
||||
* not run access control.
|
||||
*
|
||||
* The output of this function can be cached across all pages, which is why it is
|
||||
* separated from `initReq`.
|
||||
*/
|
||||
const initPartialReq = async function ({
|
||||
configPromise,
|
||||
importMap,
|
||||
}: {
|
||||
configPromise: Promise<SanitizedConfig> | SanitizedConfig
|
||||
importMap: ImportMap
|
||||
}): Promise<PartialResult> {
|
||||
const partialReqContainer = getPartialInitReqContainer()
|
||||
|
||||
if (
|
||||
partialReqContainer?.reqResult &&
|
||||
'then' in partialReqContainer.reqResult &&
|
||||
typeof partialReqContainer?.reqResult?.then === 'function'
|
||||
) {
|
||||
return await partialReqContainer.reqResult
|
||||
}
|
||||
|
||||
partialReqContainer.reqResult = (async () => {
|
||||
const config = await configPromise
|
||||
const payload = await getPayload({ config, importMap })
|
||||
|
||||
const headers = await getHeaders()
|
||||
const cookies = parseCookies(headers)
|
||||
|
||||
const languageCode = getRequestLanguage({
|
||||
config,
|
||||
cookies,
|
||||
headers,
|
||||
})
|
||||
|
||||
const i18n: I18nClient = await initI18n({
|
||||
config: config.i18n,
|
||||
context: 'client',
|
||||
language: languageCode,
|
||||
})
|
||||
|
||||
/**
|
||||
* Cannot simply call `payload.auth` here, as we need the user to get the locale, and we need the locale to get the access results
|
||||
* I.e. the `payload.auth` function would call `getAccessResults` without a fully-formed `req` object
|
||||
*/
|
||||
const { responseHeaders, user } = await executeAuthStrategies({
|
||||
headers,
|
||||
payload,
|
||||
})
|
||||
|
||||
const result: PartialResult = {
|
||||
cookies,
|
||||
headers,
|
||||
i18n,
|
||||
languageCode,
|
||||
payload,
|
||||
responseHeaders,
|
||||
user,
|
||||
}
|
||||
|
||||
return result
|
||||
})()
|
||||
|
||||
partialReqContainer.reqResult = await partialReqContainer.reqResult
|
||||
|
||||
return partialReqContainer.reqResult
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes a full request object, including the `req` object and access control.
|
||||
* As access control and getting the request locale is dependent on the current URL and
|
||||
* query parameters, this function cannot be cached as often as the partial request object.
|
||||
*/
|
||||
export const initReq = async function ({
|
||||
configPromise,
|
||||
importMap,
|
||||
key,
|
||||
overrides,
|
||||
urlSuffix,
|
||||
}: {
|
||||
configPromise: Promise<SanitizedConfig> | SanitizedConfig
|
||||
importMap: ImportMap
|
||||
key: string
|
||||
overrides?: Parameters<typeof createLocalReq>[0]
|
||||
urlSuffix?: string
|
||||
}): Promise<Result> {
|
||||
const { cookies, headers, i18n, languageCode, payload, responseHeaders, user } =
|
||||
await initPartialReq({
|
||||
configPromise,
|
||||
importMap,
|
||||
})
|
||||
|
||||
const reqContainer = getInitReqContainer(key)
|
||||
|
||||
if (
|
||||
reqContainer?.reqResult &&
|
||||
'then' in reqContainer.reqResult &&
|
||||
typeof reqContainer?.reqResult?.then === 'function'
|
||||
) {
|
||||
return await reqContainer.reqResult
|
||||
}
|
||||
|
||||
reqContainer.reqResult = (async () => {
|
||||
const { req: reqOverrides, ...optionsOverrides } = overrides || {}
|
||||
|
||||
const req = await createLocalReq(
|
||||
{
|
||||
req: {
|
||||
headers,
|
||||
host: headers.get('host'),
|
||||
i18n: i18n as I18n,
|
||||
responseHeaders,
|
||||
url: `${payload.config.serverURL}${urlSuffix || ''}`,
|
||||
user,
|
||||
...(reqOverrides || {}),
|
||||
},
|
||||
...(optionsOverrides || {}),
|
||||
},
|
||||
payload,
|
||||
)
|
||||
|
||||
const locale = await getRequestLocale({
|
||||
req,
|
||||
})
|
||||
|
||||
req.locale = locale?.code
|
||||
|
||||
const permissions = await getAccessResults({
|
||||
req,
|
||||
})
|
||||
|
||||
const result: Result = {
|
||||
cookies,
|
||||
headers,
|
||||
languageCode,
|
||||
locale,
|
||||
permissions,
|
||||
req,
|
||||
}
|
||||
|
||||
return result
|
||||
})()
|
||||
|
||||
reqContainer.reqResult = await reqContainer.reqResult
|
||||
|
||||
return reqContainer.reqResult
|
||||
}
|
||||
|
||||
@@ -58,6 +58,7 @@ export const NotFoundPage = async ({
|
||||
redirectUnauthenticatedUser: true,
|
||||
route: formatAdminURL({ adminRoute, path: '/not-found' }),
|
||||
searchParams,
|
||||
useLayoutReq: true,
|
||||
})
|
||||
|
||||
const params = await paramsPromise
|
||||
|
||||
@@ -84,6 +84,7 @@
|
||||
"pretest": "pnpm build"
|
||||
},
|
||||
"dependencies": {
|
||||
"@monaco-editor/react": "4.6.0",
|
||||
"@next/env": "^15.1.5",
|
||||
"@payloadcms/translations": "workspace:*",
|
||||
"@types/busboy": "1.5.4",
|
||||
@@ -116,7 +117,6 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@hyrious/esbuild-plugin-commonjs": "^0.2.4",
|
||||
"@monaco-editor/react": "4.7.0",
|
||||
"@payloadcms/eslint-config": "workspace:*",
|
||||
"@types/json-schema": "7.0.15",
|
||||
"@types/minimist": "1.2.2",
|
||||
|
||||
@@ -122,7 +122,7 @@
|
||||
"@faceless-ui/modal": "3.0.0-beta.2",
|
||||
"@faceless-ui/scroll-info": "2.0.0",
|
||||
"@faceless-ui/window-info": "3.0.1",
|
||||
"@monaco-editor/react": "4.7.0",
|
||||
"@monaco-editor/react": "4.6.0",
|
||||
"@payloadcms/translations": "workspace:*",
|
||||
"bson-objectid": "2.0.4",
|
||||
"date-fns": "4.1.0",
|
||||
|
||||
69
pnpm-lock.yaml
generated
69
pnpm-lock.yaml
generated
@@ -45,7 +45,7 @@ importers:
|
||||
version: 1.50.0
|
||||
'@sentry/nextjs':
|
||||
specifier: ^8.33.1
|
||||
version: 8.37.1(@opentelemetry/core@1.27.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.54.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.27.0(@opentelemetry/api@1.9.0))(next@15.1.5(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4))(react@19.0.0)(webpack@5.96.1(@swc/core@1.10.12(@swc/helpers@0.5.15)))
|
||||
version: 8.37.1(@opentelemetry/core@1.27.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.54.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.27.0(@opentelemetry/api@1.9.0))(next@15.1.5(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4))(react@19.0.0)(webpack@5.96.1(@swc/core@1.10.12(@swc/helpers@0.5.15))(esbuild@0.19.12))
|
||||
'@sentry/node':
|
||||
specifier: ^8.33.1
|
||||
version: 8.37.1
|
||||
@@ -135,7 +135,7 @@ importers:
|
||||
version: 10.1.3(@aws-sdk/credential-providers@3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0)))(socks@2.8.3)
|
||||
next:
|
||||
specifier: 15.1.5
|
||||
version: 15.1.5(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4)
|
||||
version: 15.1.5(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4)
|
||||
open:
|
||||
specifier: ^10.1.0
|
||||
version: 10.1.0
|
||||
@@ -774,6 +774,9 @@ importers:
|
||||
|
||||
packages/payload:
|
||||
dependencies:
|
||||
'@monaco-editor/react':
|
||||
specifier: 4.6.0
|
||||
version: 4.6.0(monaco-editor@0.52.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
'@next/env':
|
||||
specifier: ^15.1.5
|
||||
version: 15.1.5
|
||||
@@ -868,9 +871,6 @@ importers:
|
||||
'@hyrious/esbuild-plugin-commonjs':
|
||||
specifier: ^0.2.4
|
||||
version: 0.2.4(cjs-module-lexer@1.4.1)(esbuild@0.24.2)
|
||||
'@monaco-editor/react':
|
||||
specifier: 4.7.0
|
||||
version: 4.7.0(monaco-editor@0.52.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
'@payloadcms/eslint-config':
|
||||
specifier: workspace:*
|
||||
version: link:../eslint-config
|
||||
@@ -1011,7 +1011,7 @@ importers:
|
||||
dependencies:
|
||||
next:
|
||||
specifier: ^15.0.3
|
||||
version: 15.1.3(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4)
|
||||
version: 15.1.3(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4)
|
||||
devDependencies:
|
||||
'@payloadcms/eslint-config':
|
||||
specifier: workspace:*
|
||||
@@ -1073,7 +1073,7 @@ importers:
|
||||
dependencies:
|
||||
'@sentry/nextjs':
|
||||
specifier: ^8.33.1
|
||||
version: 8.37.1(@opentelemetry/core@1.27.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.54.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.27.0(@opentelemetry/api@1.9.0))(next@15.1.5(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4))(react@19.0.0)(webpack@5.96.1(@swc/core@1.10.12(@swc/helpers@0.5.15)))
|
||||
version: 8.37.1(@opentelemetry/core@1.27.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.54.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.27.0(@opentelemetry/api@1.9.0))(next@15.1.5(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4))(react@19.0.0)(webpack@5.96.1(@swc/core@1.10.12(@swc/helpers@0.5.15))(esbuild@0.19.12))
|
||||
'@sentry/types':
|
||||
specifier: ^8.33.1
|
||||
version: 8.37.1
|
||||
@@ -1423,7 +1423,7 @@ importers:
|
||||
version: link:../plugin-cloud-storage
|
||||
uploadthing:
|
||||
specifier: 7.3.0
|
||||
version: 7.3.0(next@15.1.5(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4))
|
||||
version: 7.3.0(next@15.1.5(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4))
|
||||
devDependencies:
|
||||
payload:
|
||||
specifier: workspace:*
|
||||
@@ -1491,8 +1491,8 @@ importers:
|
||||
specifier: 3.0.1
|
||||
version: 3.0.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
'@monaco-editor/react':
|
||||
specifier: 4.7.0
|
||||
version: 4.7.0(monaco-editor@0.52.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
specifier: 4.6.0
|
||||
version: 4.6.0(monaco-editor@0.52.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
'@payloadcms/translations':
|
||||
specifier: workspace:*
|
||||
version: link:../translations
|
||||
@@ -1703,7 +1703,7 @@ importers:
|
||||
version: link:../packages/ui
|
||||
'@sentry/nextjs':
|
||||
specifier: ^8.33.1
|
||||
version: 8.37.1(@opentelemetry/core@1.27.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.54.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.27.0(@opentelemetry/api@1.9.0))(next@15.1.5(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4))(react@19.0.0)(webpack@5.96.1(@swc/core@1.10.12(@swc/helpers@0.5.15)))
|
||||
version: 8.37.1(@opentelemetry/core@1.27.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.54.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.27.0(@opentelemetry/api@1.9.0))(next@15.1.5(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4))(react@19.0.0)(webpack@5.96.1(@swc/core@1.10.12(@swc/helpers@0.5.15))(esbuild@0.19.12))
|
||||
'@sentry/react':
|
||||
specifier: ^7.77.0
|
||||
version: 7.119.2(react@19.0.0)
|
||||
@@ -1757,7 +1757,7 @@ importers:
|
||||
version: 8.9.5(@aws-sdk/credential-providers@3.687.0(@aws-sdk/client-sso-oidc@3.687.0(@aws-sdk/client-sts@3.687.0)))(socks@2.8.3)
|
||||
next:
|
||||
specifier: 15.1.5
|
||||
version: 15.1.5(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4)
|
||||
version: 15.1.5(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4)
|
||||
nodemailer:
|
||||
specifier: 6.9.16
|
||||
version: 6.9.16
|
||||
@@ -3989,11 +3989,13 @@ packages:
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
'@monaco-editor/loader@1.5.0':
|
||||
resolution: {integrity: sha512-hKoGSM+7aAc7eRTRjpqAZucPmoNOC4UUbknb/VNoTkEIkCPhqV8LfbsgM1webRM7S/z21eHEx9Fkwx8Z/C/+Xw==}
|
||||
'@monaco-editor/loader@1.4.0':
|
||||
resolution: {integrity: sha512-00ioBig0x642hytVspPl7DbQyaSWRaolYie/UFNjoTdvoKPzo6xrXLhTk9ixgIKcLH5b5vDOjVNiGyY+uDCUlg==}
|
||||
peerDependencies:
|
||||
monaco-editor: '>= 0.21.0 < 1'
|
||||
|
||||
'@monaco-editor/react@4.7.0':
|
||||
resolution: {integrity: sha512-cyzXQCtO47ydzxpQtCGSQGOC8Gk3ZUeBXFAxD+CWXYFo5OqZyZUonFl0DwUlTyAfRHntBfw2p3w4s9R6oe1eCA==}
|
||||
'@monaco-editor/react@4.6.0':
|
||||
resolution: {integrity: sha512-RFkU9/i7cN2bsq/iTkurMWOEErmYcY6JiQI3Jn+WeR/FGISH8JbHERjpS9oRuSOPvDMJI0Z8nJeKkbOs9sBYQw==}
|
||||
peerDependencies:
|
||||
monaco-editor: '>= 0.25.0 < 1'
|
||||
react: 19.0.0
|
||||
@@ -7877,6 +7879,7 @@ packages:
|
||||
|
||||
libsql@0.4.7:
|
||||
resolution: {integrity: sha512-T9eIRCs6b0J1SHKYIvD8+KCJMcWZ900iZyxdnSCdqxN12Z1ijzT+jY5nrk72Jw4B0HGzms2NgpryArlJqvc3Lw==}
|
||||
cpu: [x64, arm64, wasm32]
|
||||
os: [darwin, linux, win32]
|
||||
|
||||
lie@3.1.1:
|
||||
@@ -13025,13 +13028,14 @@ snapshots:
|
||||
'@libsql/win32-x64-msvc@0.4.7':
|
||||
optional: true
|
||||
|
||||
'@monaco-editor/loader@1.5.0':
|
||||
'@monaco-editor/loader@1.4.0(monaco-editor@0.52.0)':
|
||||
dependencies:
|
||||
monaco-editor: 0.52.0
|
||||
state-local: 1.0.7
|
||||
|
||||
'@monaco-editor/react@4.7.0(monaco-editor@0.52.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
|
||||
'@monaco-editor/react@4.6.0(monaco-editor@0.52.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
|
||||
dependencies:
|
||||
'@monaco-editor/loader': 1.5.0
|
||||
'@monaco-editor/loader': 1.4.0(monaco-editor@0.52.0)
|
||||
monaco-editor: 0.52.0
|
||||
react: 19.0.0
|
||||
react-dom: 19.0.0(react@19.0.0)
|
||||
@@ -13710,7 +13714,7 @@ snapshots:
|
||||
'@sentry/utils': 7.119.2
|
||||
localforage: 1.10.0
|
||||
|
||||
'@sentry/nextjs@8.37.1(@opentelemetry/core@1.27.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.54.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.27.0(@opentelemetry/api@1.9.0))(next@15.1.5(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4))(react@19.0.0)(webpack@5.96.1(@swc/core@1.10.12(@swc/helpers@0.5.15)))':
|
||||
'@sentry/nextjs@8.37.1(@opentelemetry/core@1.27.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.54.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.27.0(@opentelemetry/api@1.9.0))(next@15.1.5(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4))(react@19.0.0)(webpack@5.96.1(@swc/core@1.10.12(@swc/helpers@0.5.15))(esbuild@0.19.12))':
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/instrumentation-http': 0.53.0(@opentelemetry/api@1.9.0)
|
||||
@@ -13724,9 +13728,9 @@ snapshots:
|
||||
'@sentry/types': 8.37.1
|
||||
'@sentry/utils': 8.37.1
|
||||
'@sentry/vercel-edge': 8.37.1
|
||||
'@sentry/webpack-plugin': 2.22.6(webpack@5.96.1(@swc/core@1.10.12(@swc/helpers@0.5.15)))
|
||||
'@sentry/webpack-plugin': 2.22.6(webpack@5.96.1(@swc/core@1.10.12(@swc/helpers@0.5.15))(esbuild@0.19.12))
|
||||
chalk: 3.0.0
|
||||
next: 15.1.5(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4)
|
||||
next: 15.1.5(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4)
|
||||
resolve: 1.22.8
|
||||
rollup: 3.29.5
|
||||
stacktrace-parser: 0.1.10
|
||||
@@ -13834,12 +13838,12 @@ snapshots:
|
||||
'@sentry/types': 8.37.1
|
||||
'@sentry/utils': 8.37.1
|
||||
|
||||
'@sentry/webpack-plugin@2.22.6(webpack@5.96.1(@swc/core@1.10.12(@swc/helpers@0.5.15)))':
|
||||
'@sentry/webpack-plugin@2.22.6(webpack@5.96.1(@swc/core@1.10.12(@swc/helpers@0.5.15))(esbuild@0.19.12))':
|
||||
dependencies:
|
||||
'@sentry/bundler-plugin-core': 2.22.6
|
||||
unplugin: 1.0.1
|
||||
uuid: 9.0.0
|
||||
webpack: 5.96.1(@swc/core@1.10.12(@swc/helpers@0.5.15))
|
||||
webpack: 5.96.1(@swc/core@1.10.12(@swc/helpers@0.5.15))(esbuild@0.19.12)
|
||||
transitivePeerDependencies:
|
||||
- encoding
|
||||
- supports-color
|
||||
@@ -18218,7 +18222,7 @@ snapshots:
|
||||
- '@babel/core'
|
||||
- babel-plugin-macros
|
||||
|
||||
next@15.1.3(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4):
|
||||
next@15.1.3(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4):
|
||||
dependencies:
|
||||
'@next/env': 15.1.3
|
||||
'@swc/counter': 0.1.3
|
||||
@@ -18246,7 +18250,7 @@ snapshots:
|
||||
- '@babel/core'
|
||||
- babel-plugin-macros
|
||||
|
||||
next@15.1.5(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4):
|
||||
next@15.1.5(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4):
|
||||
dependencies:
|
||||
'@next/env': 15.1.5
|
||||
'@swc/counter': 0.1.3
|
||||
@@ -19647,16 +19651,17 @@ snapshots:
|
||||
ansi-escapes: 4.3.2
|
||||
supports-hyperlinks: 2.3.0
|
||||
|
||||
terser-webpack-plugin@5.3.10(@swc/core@1.10.12(@swc/helpers@0.5.15))(webpack@5.96.1(@swc/core@1.10.12(@swc/helpers@0.5.15))):
|
||||
terser-webpack-plugin@5.3.10(@swc/core@1.10.12(@swc/helpers@0.5.15))(esbuild@0.19.12)(webpack@5.96.1(@swc/core@1.10.12(@swc/helpers@0.5.15))(esbuild@0.19.12)):
|
||||
dependencies:
|
||||
'@jridgewell/trace-mapping': 0.3.25
|
||||
jest-worker: 27.5.1
|
||||
schema-utils: 3.3.0
|
||||
serialize-javascript: 6.0.2
|
||||
terser: 5.36.0
|
||||
webpack: 5.96.1(@swc/core@1.10.12(@swc/helpers@0.5.15))
|
||||
webpack: 5.96.1(@swc/core@1.10.12(@swc/helpers@0.5.15))(esbuild@0.19.12)
|
||||
optionalDependencies:
|
||||
'@swc/core': 1.10.12(@swc/helpers@0.5.15)
|
||||
esbuild: 0.19.12
|
||||
|
||||
terser@5.36.0:
|
||||
dependencies:
|
||||
@@ -19937,14 +19942,14 @@ snapshots:
|
||||
escalade: 3.2.0
|
||||
picocolors: 1.1.1
|
||||
|
||||
uploadthing@7.3.0(next@15.1.5(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4)):
|
||||
uploadthing@7.3.0(next@15.1.5(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4)):
|
||||
dependencies:
|
||||
'@effect/platform': 0.69.8(effect@3.10.3)
|
||||
'@uploadthing/mime-types': 0.3.2
|
||||
'@uploadthing/shared': 7.1.1
|
||||
effect: 3.10.3
|
||||
optionalDependencies:
|
||||
next: 15.1.5(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4)
|
||||
next: 15.1.5(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4)
|
||||
|
||||
uri-js@4.4.1:
|
||||
dependencies:
|
||||
@@ -20042,7 +20047,7 @@ snapshots:
|
||||
|
||||
webpack-virtual-modules@0.5.0: {}
|
||||
|
||||
webpack@5.96.1(@swc/core@1.10.12(@swc/helpers@0.5.15)):
|
||||
webpack@5.96.1(@swc/core@1.10.12(@swc/helpers@0.5.15))(esbuild@0.19.12):
|
||||
dependencies:
|
||||
'@types/eslint-scope': 3.7.7
|
||||
'@types/estree': 1.0.6
|
||||
@@ -20064,7 +20069,7 @@ snapshots:
|
||||
neo-async: 2.6.2
|
||||
schema-utils: 3.3.0
|
||||
tapable: 2.2.1
|
||||
terser-webpack-plugin: 5.3.10(@swc/core@1.10.12(@swc/helpers@0.5.15))(webpack@5.96.1(@swc/core@1.10.12(@swc/helpers@0.5.15)))
|
||||
terser-webpack-plugin: 5.3.10(@swc/core@1.10.12(@swc/helpers@0.5.15))(esbuild@0.19.12)(webpack@5.96.1(@swc/core@1.10.12(@swc/helpers@0.5.15))(esbuild@0.19.12))
|
||||
watchpack: 2.4.2
|
||||
webpack-sources: 3.2.3
|
||||
transitivePeerDependencies:
|
||||
|
||||
Reference in New Issue
Block a user