@payloadcms/next 3.25.0-canary.46647b4 → 3.25.0-canary.6d6bbd2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/cjs/withPayload.cjs +0 -3
  2. package/dist/cjs/withPayload.cjs.map +1 -1
  3. package/dist/elements/Nav/getNavPrefs.d.ts +2 -5
  4. package/dist/elements/Nav/getNavPrefs.d.ts.map +1 -1
  5. package/dist/elements/Nav/getNavPrefs.js +23 -24
  6. package/dist/elements/Nav/getNavPrefs.js.map +1 -1
  7. package/dist/elements/Nav/index.js +1 -4
  8. package/dist/elements/Nav/index.js.map +1 -1
  9. package/dist/layouts/Root/index.d.ts.map +1 -1
  10. package/dist/layouts/Root/index.js +18 -22
  11. package/dist/layouts/Root/index.js.map +1 -1
  12. package/dist/prod/styles.css +1 -1
  13. package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
  14. package/dist/utilities/handleServerFunctions.js +5 -1
  15. package/dist/utilities/handleServerFunctions.js.map +1 -1
  16. package/dist/utilities/initPage/index.d.ts +1 -1
  17. package/dist/utilities/initPage/index.d.ts.map +1 -1
  18. package/dist/utilities/initPage/index.js +26 -24
  19. package/dist/utilities/initPage/index.js.map +1 -1
  20. package/dist/utilities/initPage/types.d.ts +11 -0
  21. package/dist/utilities/initPage/types.d.ts.map +1 -1
  22. package/dist/utilities/initPage/types.js.map +1 -1
  23. package/dist/utilities/initReq.d.ts +18 -2
  24. package/dist/utilities/initReq.d.ts.map +1 -1
  25. package/dist/utilities/initReq.js +138 -52
  26. package/dist/utilities/initReq.js.map +1 -1
  27. package/dist/views/NotFound/index.d.ts.map +1 -1
  28. package/dist/views/NotFound/index.js +2 -1
  29. package/dist/views/NotFound/index.js.map +1 -1
  30. package/dist/withPayload.d.ts.map +1 -1
  31. package/dist/withPayload.js +0 -3
  32. package/dist/withPayload.js.map +1 -1
  33. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"handleServerFunctions.d.ts","sourceRoot":"","sources":["../../src/utilities/handleServerFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAYpE,eAAO,MAAM,qBAAqB,EAAE,qBA4BnC,CAAA"}
1
+ {"version":3,"file":"handleServerFunctions.d.ts","sourceRoot":"","sources":["../../src/utilities/handleServerFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAYpE,eAAO,MAAM,qBAAqB,EAAE,qBAgCnC,CAAA"}
@@ -15,7 +15,11 @@ export const handleServerFunctions = async args => {
15
15
  } = args;
16
16
  const {
17
17
  req
18
- } = await initReq(configPromise);
18
+ } = await initReq({
19
+ configPromise,
20
+ importMap,
21
+ key: 'RootLayout'
22
+ });
19
23
  const augmentedArgs = {
20
24
  ...fnArgs,
21
25
  importMap,
@@ -1 +1 @@
1
- {"version":3,"file":"handleServerFunctions.js","names":["copyDataFromLocaleHandler","buildFormStateHandler","buildTableStateHandler","schedulePublishHandler","renderDocumentHandler","renderDocumentSlotsHandler","renderListHandler","initReq","handleServerFunctions","args","name","fnKey","fnArgs","config","configPromise","importMap","req","augmentedArgs","serverFunctions","fn","Error"],"sources":["../../src/utilities/handleServerFunctions.ts"],"sourcesContent":["import type { ServerFunction, ServerFunctionHandler } from 'payload'\n\nimport { copyDataFromLocaleHandler } from '@payloadcms/ui/rsc'\nimport { buildFormStateHandler } from '@payloadcms/ui/utilities/buildFormState'\nimport { buildTableStateHandler } from '@payloadcms/ui/utilities/buildTableState'\nimport { schedulePublishHandler } from '@payloadcms/ui/utilities/schedulePublishHandler'\n\nimport { renderDocumentHandler } from '../views/Document/handleServerFunction.js'\nimport { renderDocumentSlotsHandler } from '../views/Document/renderDocumentSlots.js'\nimport { renderListHandler } from '../views/List/handleServerFunction.js'\nimport { initReq } from './initReq.js'\n\nexport const handleServerFunctions: ServerFunctionHandler = async (args) => {\n const { name: fnKey, args: fnArgs, config: configPromise, importMap } = args\n\n const { req } = await initReq(configPromise)\n\n const augmentedArgs: Parameters<ServerFunction>[0] = {\n ...fnArgs,\n importMap,\n req,\n }\n\n const serverFunctions = {\n 'copy-data-from-locale': copyDataFromLocaleHandler as any as ServerFunction,\n 'form-state': buildFormStateHandler as any as ServerFunction,\n 'render-document': renderDocumentHandler as any as ServerFunction,\n 'render-document-slots': renderDocumentSlotsHandler as any as ServerFunction,\n 'render-list': renderListHandler as any as ServerFunction,\n 'schedule-publish': schedulePublishHandler as any as ServerFunction,\n 'table-state': buildTableStateHandler as any as ServerFunction,\n }\n\n const fn = serverFunctions[fnKey]\n\n if (!fn) {\n throw new Error(`Unknown Server Function: ${fnKey}`)\n }\n\n return fn(augmentedArgs)\n}\n"],"mappings":"AAEA,SAASA,yBAAyB,QAAQ;AAC1C,SAASC,qBAAqB,QAAQ;AACtC,SAASC,sBAAsB,QAAQ;AACvC,SAASC,sBAAsB,QAAQ;AAEvC,SAASC,qBAAqB,QAAQ;AACtC,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,iBAAiB,QAAQ;AAClC,SAASC,OAAO,QAAQ;AAExB,OAAO,MAAMC,qBAAA,GAA+C,MAAOC,IAAA;EACjE,MAAM;IAAEC,IAAA,EAAMC,KAAK;IAAEF,IAAA,EAAMG,MAAM;IAAEC,MAAA,EAAQC,aAAa;IAAEC;EAAS,CAAE,GAAGN,IAAA;EAExE,MAAM;IAAEO;EAAG,CAAE,GAAG,MAAMT,OAAA,CAAQO,aAAA;EAE9B,MAAMG,aAAA,GAA+C;IACnD,GAAGL,MAAM;IACTG,SAAA;IACAC;EACF;EAEA,MAAME,eAAA,GAAkB;IACtB,yBAAyBlB,yBAAA;IACzB,cAAcC,qBAAA;IACd,mBAAmBG,qBAAA;IACnB,yBAAyBC,0BAAA;IACzB,eAAeC,iBAAA;IACf,oBAAoBH,sBAAA;IACpB,eAAeD;EACjB;EAEA,MAAMiB,EAAA,GAAKD,eAAe,CAACP,KAAA,CAAM;EAEjC,IAAI,CAACQ,EAAA,EAAI;IACP,MAAM,IAAIC,KAAA,CAAM,4BAA4BT,KAAA,EAAO;EACrD;EAEA,OAAOQ,EAAA,CAAGF,aAAA;AACZ","ignoreList":[]}
1
+ {"version":3,"file":"handleServerFunctions.js","names":["copyDataFromLocaleHandler","buildFormStateHandler","buildTableStateHandler","schedulePublishHandler","renderDocumentHandler","renderDocumentSlotsHandler","renderListHandler","initReq","handleServerFunctions","args","name","fnKey","fnArgs","config","configPromise","importMap","req","key","augmentedArgs","serverFunctions","fn","Error"],"sources":["../../src/utilities/handleServerFunctions.ts"],"sourcesContent":["import type { ServerFunction, ServerFunctionHandler } from 'payload'\n\nimport { copyDataFromLocaleHandler } from '@payloadcms/ui/rsc'\nimport { buildFormStateHandler } from '@payloadcms/ui/utilities/buildFormState'\nimport { buildTableStateHandler } from '@payloadcms/ui/utilities/buildTableState'\nimport { schedulePublishHandler } from '@payloadcms/ui/utilities/schedulePublishHandler'\n\nimport { renderDocumentHandler } from '../views/Document/handleServerFunction.js'\nimport { renderDocumentSlotsHandler } from '../views/Document/renderDocumentSlots.js'\nimport { renderListHandler } from '../views/List/handleServerFunction.js'\nimport { initReq } from './initReq.js'\n\nexport const handleServerFunctions: ServerFunctionHandler = async (args) => {\n const { name: fnKey, args: fnArgs, config: configPromise, importMap } = args\n\n const { req } = await initReq({\n configPromise,\n importMap,\n key: 'RootLayout',\n })\n\n const augmentedArgs: Parameters<ServerFunction>[0] = {\n ...fnArgs,\n importMap,\n req,\n }\n\n const serverFunctions = {\n 'copy-data-from-locale': copyDataFromLocaleHandler as any as ServerFunction,\n 'form-state': buildFormStateHandler as any as ServerFunction,\n 'render-document': renderDocumentHandler as any as ServerFunction,\n 'render-document-slots': renderDocumentSlotsHandler as any as ServerFunction,\n 'render-list': renderListHandler as any as ServerFunction,\n 'schedule-publish': schedulePublishHandler as any as ServerFunction,\n 'table-state': buildTableStateHandler as any as ServerFunction,\n }\n\n const fn = serverFunctions[fnKey]\n\n if (!fn) {\n throw new Error(`Unknown Server Function: ${fnKey}`)\n }\n\n return fn(augmentedArgs)\n}\n"],"mappings":"AAEA,SAASA,yBAAyB,QAAQ;AAC1C,SAASC,qBAAqB,QAAQ;AACtC,SAASC,sBAAsB,QAAQ;AACvC,SAASC,sBAAsB,QAAQ;AAEvC,SAASC,qBAAqB,QAAQ;AACtC,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,iBAAiB,QAAQ;AAClC,SAASC,OAAO,QAAQ;AAExB,OAAO,MAAMC,qBAAA,GAA+C,MAAOC,IAAA;EACjE,MAAM;IAAEC,IAAA,EAAMC,KAAK;IAAEF,IAAA,EAAMG,MAAM;IAAEC,MAAA,EAAQC,aAAa;IAAEC;EAAS,CAAE,GAAGN,IAAA;EAExE,MAAM;IAAEO;EAAG,CAAE,GAAG,MAAMT,OAAA,CAAQ;IAC5BO,aAAA;IACAC,SAAA;IACAE,GAAA,EAAK;EACP;EAEA,MAAMC,aAAA,GAA+C;IACnD,GAAGN,MAAM;IACTG,SAAA;IACAC;EACF;EAEA,MAAMG,eAAA,GAAkB;IACtB,yBAAyBnB,yBAAA;IACzB,cAAcC,qBAAA;IACd,mBAAmBG,qBAAA;IACnB,yBAAyBC,0BAAA;IACzB,eAAeC,iBAAA;IACf,oBAAoBH,sBAAA;IACpB,eAAeD;EACjB;EAEA,MAAMkB,EAAA,GAAKD,eAAe,CAACR,KAAA,CAAM;EAEjC,IAAI,CAACS,EAAA,EAAI;IACP,MAAM,IAAIC,KAAA,CAAM,4BAA4BV,KAAA,EAAO;EACrD;EAEA,OAAOS,EAAA,CAAGF,aAAA;AACZ","ignoreList":[]}
@@ -1,4 +1,4 @@
1
1
  import type { InitPageResult } from 'payload';
2
2
  import type { Args } from './types.js';
3
- export declare const initPage: ({ config: configPromise, importMap, route, searchParams, }: Args) => Promise<InitPageResult>;
3
+ export declare const initPage: ({ config: configPromise, importMap, route, searchParams, useLayoutReq, }: Args) => Promise<InitPageResult>;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,SAAS,CAAA;AAO9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAQtC,eAAO,MAAM,QAAQ,+DAKlB,IAAI,KAAG,OAAO,CAAC,cAAc,CA4F/B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,SAAS,CAAA;AAO9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAQtC,eAAO,MAAM,QAAQ,6EAMlB,IAAI,KAAG,OAAO,CAAC,cAAc,CAkG/B,CAAA"}
@@ -1,6 +1,5 @@
1
- import { headers as getHeaders } from 'next/headers.js';
2
1
  import { notFound } from 'next/navigation.js';
3
- import { getPayload, isEntityHidden, parseCookies } from 'payload';
2
+ import { isEntityHidden } from 'payload';
4
3
  import * as qs from 'qs-esm';
5
4
  import { initReq } from '../initReq.js';
6
5
  import { getRouteInfo } from './handleAdminPage.js';
@@ -11,16 +10,35 @@ export const initPage = async ({
11
10
  config: configPromise,
12
11
  importMap,
13
12
  route,
14
- searchParams
13
+ searchParams,
14
+ useLayoutReq
15
15
  }) => {
16
- const headers = await getHeaders();
17
- const payload = await getPayload({
18
- config: configPromise,
19
- importMap
20
- });
21
16
  const queryString = `${qs.stringify(searchParams ?? {}, {
22
17
  addQueryPrefix: true
23
18
  })}`;
19
+ const {
20
+ cookies,
21
+ locale,
22
+ permissions,
23
+ req,
24
+ req: {
25
+ payload
26
+ }
27
+ } = await initReq({
28
+ configPromise,
29
+ importMap,
30
+ key: useLayoutReq ? 'RootLayout' : 'initPage',
31
+ overrides: {
32
+ fallbackLocale: false,
33
+ req: {
34
+ query: qs.parse(queryString, {
35
+ depth: 10,
36
+ ignoreQueryPrefix: true
37
+ })
38
+ }
39
+ },
40
+ urlSuffix: `${route}${searchParams ? queryString : ''}`
41
+ });
24
42
  const {
25
43
  collections,
26
44
  globals,
@@ -28,22 +46,6 @@ export const initPage = async ({
28
46
  admin: adminRoute
29
47
  }
30
48
  } = payload.config;
31
- const cookies = parseCookies(headers);
32
- const {
33
- locale,
34
- permissions,
35
- req
36
- } = await initReq(payload.config, {
37
- fallbackLocale: false,
38
- req: {
39
- headers,
40
- query: qs.parse(queryString, {
41
- depth: 10,
42
- ignoreQueryPrefix: true
43
- }),
44
- url: `${payload.config.serverURL}${route}${searchParams ? queryString : ''}`
45
- }
46
- });
47
49
  const languageOptions = Object.entries(payload.config.i18n.supportedLanguages || {}).reduce((acc, [language, languageConfig]) => {
48
50
  if (Object.keys(payload.config.i18n.supportedLanguages).includes(language)) {
49
51
  acc.push({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["headers","getHeaders","notFound","getPayload","isEntityHidden","parseCookies","qs","initReq","getRouteInfo","handleAuthRedirect","isCustomAdminView","isPublicAdminRoute","initPage","config","configPromise","importMap","route","searchParams","payload","queryString","stringify","addQueryPrefix","collections","globals","routes","admin","adminRoute","cookies","locale","permissions","req","fallbackLocale","query","parse","depth","ignoreQueryPrefix","url","serverURL","languageOptions","Object","entries","i18n","supportedLanguages","reduce","acc","language","languageConfig","keys","includes","push","label","translations","general","thisLanguage","value","visibleEntities","map","slug","hidden","user","filter","Boolean","redirectTo","canAccessAdmin","collectionConfig","collectionSlug","docID","globalConfig","globalSlug","defaultIDType","db"],"sources":["../../../src/utilities/initPage/index.ts"],"sourcesContent":["import type { InitPageResult, VisibleEntities } from 'payload'\n\nimport { headers as getHeaders } from 'next/headers.js'\nimport { notFound } from 'next/navigation.js'\nimport { getPayload, isEntityHidden, parseCookies } from 'payload'\nimport * as qs from 'qs-esm'\n\nimport type { Args } from './types.js'\n\nimport { initReq } from '../initReq.js'\nimport { getRouteInfo } from './handleAdminPage.js'\nimport { handleAuthRedirect } from './handleAuthRedirect.js'\nimport { isCustomAdminView } from './isCustomAdminView.js'\nimport { isPublicAdminRoute } from './shared.js'\n\nexport const initPage = async ({\n config: configPromise,\n importMap,\n route,\n searchParams,\n}: Args): Promise<InitPageResult> => {\n const headers = await getHeaders()\n const payload = await getPayload({ config: configPromise, importMap })\n const queryString = `${qs.stringify(searchParams ?? {}, { addQueryPrefix: true })}`\n\n const {\n collections,\n globals,\n routes: { admin: adminRoute },\n } = payload.config\n\n const cookies = parseCookies(headers)\n\n const { locale, permissions, req } = await initReq(payload.config, {\n fallbackLocale: false,\n req: {\n headers,\n query: qs.parse(queryString, {\n depth: 10,\n ignoreQueryPrefix: true,\n }),\n url: `${payload.config.serverURL}${route}${searchParams ? queryString : ''}`,\n },\n })\n\n const languageOptions = Object.entries(payload.config.i18n.supportedLanguages || {}).reduce(\n (acc, [language, languageConfig]) => {\n if (Object.keys(payload.config.i18n.supportedLanguages).includes(language)) {\n acc.push({\n label: languageConfig.translations.general.thisLanguage,\n value: language,\n })\n }\n\n return acc\n },\n [],\n )\n\n const visibleEntities: VisibleEntities = {\n collections: collections\n .map(({ slug, admin: { hidden } }) =>\n !isEntityHidden({ hidden, user: req.user }) ? slug : null,\n )\n .filter(Boolean),\n globals: globals\n .map(({ slug, admin: { hidden } }) =>\n !isEntityHidden({ hidden, user: req.user }) ? slug : null,\n )\n .filter(Boolean),\n }\n\n let redirectTo = null\n\n if (\n !permissions.canAccessAdmin &&\n !isPublicAdminRoute({ adminRoute, config: payload.config, route }) &&\n !isCustomAdminView({ adminRoute, config: payload.config, route })\n ) {\n redirectTo = handleAuthRedirect({\n config: payload.config,\n route,\n searchParams,\n user: req.user,\n })\n }\n\n const { collectionConfig, collectionSlug, docID, globalConfig, globalSlug } = getRouteInfo({\n adminRoute,\n config: payload.config,\n defaultIDType: payload.db.defaultIDType,\n payload,\n route,\n })\n\n if ((collectionSlug && !collectionConfig) || (globalSlug && !globalConfig)) {\n return notFound()\n }\n\n return {\n collectionConfig,\n cookies,\n docID,\n globalConfig,\n languageOptions,\n locale,\n permissions,\n redirectTo,\n req,\n translations: req.i18n.translations,\n visibleEntities,\n }\n}\n"],"mappings":"AAEA,SAASA,OAAA,IAAWC,UAAU,QAAQ;AACtC,SAASC,QAAQ,QAAQ;AACzB,SAASC,UAAU,EAAEC,cAAc,EAAEC,YAAY,QAAQ;AACzD,YAAYC,EAAA,MAAQ;AAIpB,SAASC,OAAO,QAAQ;AACxB,SAASC,YAAY,QAAQ;AAC7B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,iBAAiB,QAAQ;AAClC,SAASC,kBAAkB,QAAQ;AAEnC,OAAO,MAAMC,QAAA,GAAW,MAAAA,CAAO;EAC7BC,MAAA,EAAQC,aAAa;EACrBC,SAAS;EACTC,KAAK;EACLC;AAAY,CACP;EACL,MAAMjB,OAAA,GAAU,MAAMC,UAAA;EACtB,MAAMiB,OAAA,GAAU,MAAMf,UAAA,CAAW;IAAEU,MAAA,EAAQC,aAAA;IAAeC;EAAU;EACpE,MAAMI,WAAA,GAAc,GAAGb,EAAA,CAAGc,SAAS,CAACH,YAAA,IAAgB,CAAC,GAAG;IAAEI,cAAA,EAAgB;EAAK,IAAI;EAEnF,MAAM;IACJC,WAAW;IACXC,OAAO;IACPC,MAAA,EAAQ;MAAEC,KAAA,EAAOC;IAAU;EAAE,CAC9B,GAAGR,OAAA,CAAQL,MAAM;EAElB,MAAMc,OAAA,GAAUtB,YAAA,CAAaL,OAAA;EAE7B,MAAM;IAAE4B,MAAM;IAAEC,WAAW;IAAEC;EAAG,CAAE,GAAG,MAAMvB,OAAA,CAAQW,OAAA,CAAQL,MAAM,EAAE;IACjEkB,cAAA,EAAgB;IAChBD,GAAA,EAAK;MACH9B,OAAA;MACAgC,KAAA,EAAO1B,EAAA,CAAG2B,KAAK,CAACd,WAAA,EAAa;QAC3Be,KAAA,EAAO;QACPC,iBAAA,EAAmB;MACrB;MACAC,GAAA,EAAK,GAAGlB,OAAA,CAAQL,MAAM,CAACwB,SAAS,GAAGrB,KAAA,GAAQC,YAAA,GAAeE,WAAA,GAAc;IAC1E;EACF;EAEA,MAAMmB,eAAA,GAAkBC,MAAA,CAAOC,OAAO,CAACtB,OAAA,CAAQL,MAAM,CAAC4B,IAAI,CAACC,kBAAkB,IAAI,CAAC,GAAGC,MAAM,CACzF,CAACC,GAAA,EAAK,CAACC,QAAA,EAAUC,cAAA,CAAe;IAC9B,IAAIP,MAAA,CAAOQ,IAAI,CAAC7B,OAAA,CAAQL,MAAM,CAAC4B,IAAI,CAACC,kBAAkB,EAAEM,QAAQ,CAACH,QAAA,GAAW;MAC1ED,GAAA,CAAIK,IAAI,CAAC;QACPC,KAAA,EAAOJ,cAAA,CAAeK,YAAY,CAACC,OAAO,CAACC,YAAY;QACvDC,KAAA,EAAOT;MACT;IACF;IAEA,OAAOD,GAAA;EACT,GACA,EAAE;EAGJ,MAAMW,eAAA,GAAmC;IACvCjC,WAAA,EAAaA,WAAA,CACVkC,GAAG,CAAC,CAAC;MAAEC,IAAI;MAAEhC,KAAA,EAAO;QAAEiC;MAAM;IAAE,CAAE,KAC/B,CAACtD,cAAA,CAAe;MAAEsD,MAAA;MAAQC,IAAA,EAAM7B,GAAA,CAAI6B;IAAK,KAAKF,IAAA,GAAO,MAEtDG,MAAM,CAACC,OAAA;IACVtC,OAAA,EAASA,OAAA,CACNiC,GAAG,CAAC,CAAC;MAAEC,IAAI;MAAEhC,KAAA,EAAO;QAAEiC;MAAM;IAAE,CAAE,KAC/B,CAACtD,cAAA,CAAe;MAAEsD,MAAA;MAAQC,IAAA,EAAM7B,GAAA,CAAI6B;IAAK,KAAKF,IAAA,GAAO,MAEtDG,MAAM,CAACC,OAAA;EACZ;EAEA,IAAIC,UAAA,GAAa;EAEjB,IACE,CAACjC,WAAA,CAAYkC,cAAc,IAC3B,CAACpD,kBAAA,CAAmB;IAAEe,UAAA;IAAYb,MAAA,EAAQK,OAAA,CAAQL,MAAM;IAAEG;EAAM,MAChE,CAACN,iBAAA,CAAkB;IAAEgB,UAAA;IAAYb,MAAA,EAAQK,OAAA,CAAQL,MAAM;IAAEG;EAAM,IAC/D;IACA8C,UAAA,GAAarD,kBAAA,CAAmB;MAC9BI,MAAA,EAAQK,OAAA,CAAQL,MAAM;MACtBG,KAAA;MACAC,YAAA;MACA0C,IAAA,EAAM7B,GAAA,CAAI6B;IACZ;EACF;EAEA,MAAM;IAAEK,gBAAgB;IAAEC,cAAc;IAAEC,KAAK;IAAEC,YAAY;IAAEC;EAAU,CAAE,GAAG5D,YAAA,CAAa;IACzFkB,UAAA;IACAb,MAAA,EAAQK,OAAA,CAAQL,MAAM;IACtBwD,aAAA,EAAenD,OAAA,CAAQoD,EAAE,CAACD,aAAa;IACvCnD,OAAA;IACAF;EACF;EAEA,IAAIiD,cAAC,IAAkB,CAACD,gBAAA,IAAsBI,UAAA,IAAc,CAACD,YAAA,EAAe;IAC1E,OAAOjE,QAAA;EACT;EAEA,OAAO;IACL8D,gBAAA;IACArC,OAAA;IACAuC,KAAA;IACAC,YAAA;IACA7B,eAAA;IACAV,MAAA;IACAC,WAAA;IACAiC,UAAA;IACAhC,GAAA;IACAqB,YAAA,EAAcrB,GAAA,CAAIW,IAAI,CAACU,YAAY;IACnCI;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["notFound","isEntityHidden","qs","initReq","getRouteInfo","handleAuthRedirect","isCustomAdminView","isPublicAdminRoute","initPage","config","configPromise","importMap","route","searchParams","useLayoutReq","queryString","stringify","addQueryPrefix","cookies","locale","permissions","req","payload","key","overrides","fallbackLocale","query","parse","depth","ignoreQueryPrefix","urlSuffix","collections","globals","routes","admin","adminRoute","languageOptions","Object","entries","i18n","supportedLanguages","reduce","acc","language","languageConfig","keys","includes","push","label","translations","general","thisLanguage","value","visibleEntities","map","slug","hidden","user","filter","Boolean","redirectTo","canAccessAdmin","collectionConfig","collectionSlug","docID","globalConfig","globalSlug","defaultIDType","db"],"sources":["../../../src/utilities/initPage/index.ts"],"sourcesContent":["import type { InitPageResult, VisibleEntities } from 'payload'\n\nimport { headers as getHeaders } from 'next/headers.js'\nimport { notFound } from 'next/navigation.js'\nimport { getPayload, isEntityHidden, parseCookies } from 'payload'\nimport * as qs from 'qs-esm'\n\nimport type { Args } from './types.js'\n\nimport { initReq } from '../initReq.js'\nimport { getRouteInfo } from './handleAdminPage.js'\nimport { handleAuthRedirect } from './handleAuthRedirect.js'\nimport { isCustomAdminView } from './isCustomAdminView.js'\nimport { isPublicAdminRoute } from './shared.js'\n\nexport const initPage = async ({\n config: configPromise,\n importMap,\n route,\n searchParams,\n useLayoutReq,\n}: Args): Promise<InitPageResult> => {\n const queryString = `${qs.stringify(searchParams ?? {}, { addQueryPrefix: true })}`\n\n const {\n cookies,\n locale,\n permissions,\n req,\n req: { payload },\n } = await initReq({\n configPromise,\n importMap,\n key: useLayoutReq ? 'RootLayout' : 'initPage',\n overrides: {\n fallbackLocale: false,\n req: {\n query: qs.parse(queryString, {\n depth: 10,\n ignoreQueryPrefix: true,\n }),\n },\n },\n urlSuffix: `${route}${searchParams ? queryString : ''}`,\n })\n\n const {\n collections,\n globals,\n routes: { admin: adminRoute },\n } = payload.config\n\n const languageOptions = Object.entries(payload.config.i18n.supportedLanguages || {}).reduce(\n (acc, [language, languageConfig]) => {\n if (Object.keys(payload.config.i18n.supportedLanguages).includes(language)) {\n acc.push({\n label: languageConfig.translations.general.thisLanguage,\n value: language,\n })\n }\n\n return acc\n },\n [],\n )\n\n const visibleEntities: VisibleEntities = {\n collections: collections\n .map(({ slug, admin: { hidden } }) =>\n !isEntityHidden({ hidden, user: req.user }) ? slug : null,\n )\n .filter(Boolean),\n globals: globals\n .map(({ slug, admin: { hidden } }) =>\n !isEntityHidden({ hidden, user: req.user }) ? slug : null,\n )\n .filter(Boolean),\n }\n\n let redirectTo = null\n\n if (\n !permissions.canAccessAdmin &&\n !isPublicAdminRoute({ adminRoute, config: payload.config, route }) &&\n !isCustomAdminView({ adminRoute, config: payload.config, route })\n ) {\n redirectTo = handleAuthRedirect({\n config: payload.config,\n route,\n searchParams,\n user: req.user,\n })\n }\n\n const { collectionConfig, collectionSlug, docID, globalConfig, globalSlug } = getRouteInfo({\n adminRoute,\n config: payload.config,\n defaultIDType: payload.db.defaultIDType,\n payload,\n route,\n })\n\n if ((collectionSlug && !collectionConfig) || (globalSlug && !globalConfig)) {\n return notFound()\n }\n\n return {\n collectionConfig,\n cookies,\n docID,\n globalConfig,\n languageOptions,\n locale,\n permissions,\n redirectTo,\n req,\n translations: req.i18n.translations,\n visibleEntities,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -21,5 +21,16 @@ export type Args = {
21
21
  searchParams: {
22
22
  [key: string]: string | string[] | undefined;
23
23
  };
24
+ /**
25
+ * If `useLayoutReq` is `true`, this page will use the cached `req` created by the root layout
26
+ * instead of creating a new one.
27
+ *
28
+ * This is improves performance for pages that are able to share the same `req` as the root layout,
29
+ * as permissions do not need to be re-calculated.
30
+ *
31
+ * If the page has unique query and url params that need to be part of the `req` object, or if you
32
+ * need permissions calculation to respect those you should not use this property.
33
+ */
34
+ useLayoutReq?: boolean;
24
35
  };
25
36
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzD,MAAM,MAAM,IAAI,GAAG;IACjB;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAA;IAClD,SAAS,EAAE,SAAS,CAAA;IACpB;;;OAGG;IACH,2BAA2B,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC9C;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAA;KAAE,CAAA;CAC/D,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzD,MAAM,MAAM,IAAI,GAAG;IACjB;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAA;IAClD,SAAS,EAAE,SAAS,CAAA;IACpB;;;OAGG;IACH,2BAA2B,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC9C;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAA;KAAE,CAAA;IAC9D;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/utilities/initPage/types.ts"],"sourcesContent":["import type { ImportMap, SanitizedConfig } from 'payload'\n\nexport type Args = {\n /**\n * Your sanitized Payload config.\n * If unresolved, this function will await the promise.\n */\n config: Promise<SanitizedConfig> | SanitizedConfig\n importMap: ImportMap\n /**\n * If true, redirects unauthenticated users to the admin login page.\n * If a string is provided, the user will be redirected to that specific URL.\n */\n redirectUnauthenticatedUser?: boolean | string\n /**\n * The current route, i.e. `/admin/collections/posts`.\n */\n route: string\n /**\n * The search parameters of the current route provided to all pages in Next.js.\n */\n searchParams: { [key: string]: string | string[] | undefined }\n}\n"],"mappings":"AAEA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/utilities/initPage/types.ts"],"sourcesContent":["import type { ImportMap, SanitizedConfig } from 'payload'\n\nexport type Args = {\n /**\n * Your sanitized Payload config.\n * If unresolved, this function will await the promise.\n */\n config: Promise<SanitizedConfig> | SanitizedConfig\n importMap: ImportMap\n /**\n * If true, redirects unauthenticated users to the admin login page.\n * If a string is provided, the user will be redirected to that specific URL.\n */\n redirectUnauthenticatedUser?: boolean | string\n /**\n * The current route, i.e. `/admin/collections/posts`.\n */\n route: string\n /**\n * The search parameters of the current route provided to all pages in Next.js.\n */\n searchParams: { [key: string]: string | string[] | undefined }\n /**\n * If `useLayoutReq` is `true`, this page will use the cached `req` created by the root layout\n * instead of creating a new one.\n *\n * This is improves performance for pages that are able to share the same `req` as the root layout,\n * as permissions do not need to be re-calculated.\n *\n * If the page has unique query and url params that need to be part of the `req` object, or if you\n * need permissions calculation to respect those you should not use this property.\n */\n useLayoutReq?: boolean\n}\n"],"mappings":"AAEA","ignoreList":[]}
@@ -1,10 +1,26 @@
1
- import type { Locale, PayloadRequest, SanitizedConfig, SanitizedPermissions } from 'payload';
1
+ import type { AcceptedLanguages } from '@payloadcms/translations';
2
+ import type { ImportMap, Locale, PayloadRequest, SanitizedConfig, SanitizedPermissions } from 'payload';
3
+ import { headers as getHeaders } from 'next/headers.js';
2
4
  import { createLocalReq } from 'payload';
3
5
  type Result = {
6
+ cookies: Map<string, string>;
7
+ headers: Awaited<ReturnType<typeof getHeaders>>;
8
+ languageCode: AcceptedLanguages;
4
9
  locale?: Locale;
5
10
  permissions: SanitizedPermissions;
6
11
  req: PayloadRequest;
7
12
  };
8
- export declare const initReq: (configPromise: Promise<SanitizedConfig> | SanitizedConfig, overrides?: Parameters<typeof createLocalReq>[0]) => Promise<Result>;
13
+ /**
14
+ * Initializes a full request object, including the `req` object and access control.
15
+ * As access control and getting the request locale is dependent on the current URL and
16
+ * query parameters, this function cannot be cached as often as the partial request object.
17
+ */
18
+ export declare const initReq: ({ configPromise, importMap, key, overrides, urlSuffix, }: {
19
+ configPromise: Promise<SanitizedConfig> | SanitizedConfig;
20
+ importMap: ImportMap;
21
+ key: string;
22
+ overrides?: Parameters<typeof createLocalReq>[0];
23
+ urlSuffix?: string;
24
+ }) => Promise<Result>;
9
25
  export {};
10
26
  //# sourceMappingURL=initReq.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"initReq.d.ts","sourceRoot":"","sources":["../../src/utilities/initReq.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAI5F,OAAO,EACL,cAAc,EAMf,MAAM,SAAS,CAAA;AAKhB,KAAK,MAAM,GAAG;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,oBAAoB,CAAA;IACjC,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,OAAO,kBACH,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,cAC7C,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,KAC/C,OAAO,CAAC,MAAM,CA6Df,CAAA"}
1
+ {"version":3,"file":"initReq.d.ts","sourceRoot":"","sources":["../../src/utilities/initReq.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAoB,MAAM,0BAA0B,CAAA;AACnF,OAAO,KAAK,EACV,SAAS,EACT,MAAM,EAEN,cAAc,EACd,eAAe,EACf,oBAAoB,EAErB,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EACL,cAAc,EAMf,MAAM,SAAS,CAAA;AAKhB,KAAK,MAAM,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAA;IAC/C,YAAY,EAAE,iBAAiB,CAAA;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,oBAAoB,CAAA;IACjC,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AA6GD;;;;GAIG;AACH,eAAO,MAAM,OAAO,6DAMjB;IACD,aAAa,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAA;IACzD,SAAS,EAAE,SAAS,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,KAAG,OAAO,CAAC,MAAM,CA6DjB,CAAA"}
@@ -3,61 +3,147 @@ import { headers as getHeaders } from 'next/headers.js';
3
3
  import { createLocalReq, executeAuthStrategies, getAccessResults, getPayload, getRequestLanguage, parseCookies } from 'payload';
4
4
  import { cache } from 'react';
5
5
  import { getRequestLocale } from './getRequestLocale.js';
6
- export const initReq = cache(async function (configPromise, overrides) {
7
- const config = await configPromise;
8
- const payload = await getPayload({
9
- config
10
- });
11
- const headers = await getHeaders();
12
- const cookies = parseCookies(headers);
13
- const languageCode = getRequestLanguage({
14
- config,
15
- cookies,
16
- headers
17
- });
18
- const i18n = await initI18n({
19
- config: config.i18n,
20
- context: 'client',
21
- language: languageCode
22
- });
23
- /**
24
- * 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
25
- * I.e. the `payload.auth` function would call `getAccessResults` without a fully-formed `req` object
26
- */
6
+ /**
7
+ * Stable object to cache the partial request object across all pages
8
+ */
9
+ const getPartialInitReqContainer = cache(function () {
10
+ return {
11
+ reqResult: false
12
+ };
13
+ });
14
+ /**
15
+ * Stable object to cache the request object across all pages with the same key
16
+ */
17
+ const getInitReqContainer = cache(function (
18
+ /**
19
+ * The key is solely used to control caching behavior
20
+ */
21
+ key) {
22
+ return {
23
+ reqResult: false
24
+ };
25
+ });
26
+ /**
27
+ * Initializes a partial request object. This does not construct the `req` object and does
28
+ * not run access control.
29
+ *
30
+ * The output of this function can be cached across all pages, which is why it is
31
+ * separated from `initReq`.
32
+ */
33
+ const initPartialReq = async function ({
34
+ configPromise,
35
+ importMap
36
+ }) {
37
+ const partialReqContainer = getPartialInitReqContainer();
38
+ if (partialReqContainer?.reqResult && 'then' in partialReqContainer.reqResult && typeof partialReqContainer?.reqResult?.then === 'function') {
39
+ return await partialReqContainer.reqResult;
40
+ }
41
+ partialReqContainer.reqResult = (async () => {
42
+ const config = await configPromise;
43
+ const payload = await getPayload({
44
+ config,
45
+ importMap
46
+ });
47
+ const headers = await getHeaders();
48
+ const cookies = parseCookies(headers);
49
+ const languageCode = getRequestLanguage({
50
+ config,
51
+ cookies,
52
+ headers
53
+ });
54
+ const i18n = await initI18n({
55
+ config: config.i18n,
56
+ context: 'client',
57
+ language: languageCode
58
+ });
59
+ /**
60
+ * 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
61
+ * I.e. the `payload.auth` function would call `getAccessResults` without a fully-formed `req` object
62
+ */
63
+ const {
64
+ responseHeaders,
65
+ user
66
+ } = await executeAuthStrategies({
67
+ headers,
68
+ payload
69
+ });
70
+ const result = {
71
+ cookies,
72
+ headers,
73
+ i18n,
74
+ languageCode,
75
+ payload,
76
+ responseHeaders,
77
+ user
78
+ };
79
+ return result;
80
+ })();
81
+ partialReqContainer.reqResult = await partialReqContainer.reqResult;
82
+ return partialReqContainer.reqResult;
83
+ };
84
+ /**
85
+ * Initializes a full request object, including the `req` object and access control.
86
+ * As access control and getting the request locale is dependent on the current URL and
87
+ * query parameters, this function cannot be cached as often as the partial request object.
88
+ */
89
+ export const initReq = async function ({
90
+ configPromise,
91
+ importMap,
92
+ key,
93
+ overrides,
94
+ urlSuffix
95
+ }) {
27
96
  const {
97
+ cookies,
98
+ headers,
99
+ i18n,
100
+ languageCode,
101
+ payload,
28
102
  responseHeaders,
29
103
  user
30
- } = await executeAuthStrategies({
31
- headers,
32
- payload
104
+ } = await initPartialReq({
105
+ configPromise,
106
+ importMap
33
107
  });
34
- const {
35
- req: reqOverrides,
36
- ...optionsOverrides
37
- } = overrides || {};
38
- const req = await createLocalReq({
39
- req: {
108
+ const reqContainer = getInitReqContainer(key);
109
+ if (reqContainer?.reqResult && 'then' in reqContainer.reqResult && typeof reqContainer?.reqResult?.then === 'function') {
110
+ return await reqContainer.reqResult;
111
+ }
112
+ reqContainer.reqResult = (async () => {
113
+ const {
114
+ req: reqOverrides,
115
+ ...optionsOverrides
116
+ } = overrides || {};
117
+ const req = await createLocalReq({
118
+ req: {
119
+ headers,
120
+ host: headers.get('host'),
121
+ i18n: i18n,
122
+ responseHeaders,
123
+ url: `${payload.config.serverURL}${urlSuffix || ''}`,
124
+ user,
125
+ ...(reqOverrides || {})
126
+ },
127
+ ...(optionsOverrides || {})
128
+ }, payload);
129
+ const locale = await getRequestLocale({
130
+ req
131
+ });
132
+ req.locale = locale?.code;
133
+ const permissions = await getAccessResults({
134
+ req
135
+ });
136
+ const result = {
137
+ cookies,
40
138
  headers,
41
- host: headers.get('host'),
42
- i18n: i18n,
43
- responseHeaders,
44
- url: `${payload.config.serverURL}`,
45
- user,
46
- ...(reqOverrides || {})
47
- },
48
- ...(optionsOverrides || {})
49
- }, payload);
50
- const locale = await getRequestLocale({
51
- req
52
- });
53
- req.locale = locale?.code;
54
- const permissions = await getAccessResults({
55
- req
56
- });
57
- return {
58
- locale,
59
- permissions,
60
- req
61
- };
62
- });
139
+ languageCode,
140
+ locale,
141
+ permissions,
142
+ req
143
+ };
144
+ return result;
145
+ })();
146
+ reqContainer.reqResult = await reqContainer.reqResult;
147
+ return reqContainer.reqResult;
148
+ };
63
149
  //# sourceMappingURL=initReq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"initReq.js","names":["initI18n","headers","getHeaders","createLocalReq","executeAuthStrategies","getAccessResults","getPayload","getRequestLanguage","parseCookies","cache","getRequestLocale","initReq","configPromise","overrides","config","payload","cookies","languageCode","i18n","context","language","responseHeaders","user","req","reqOverrides","optionsOverrides","host","get","url","serverURL","locale","code","permissions"],"sources":["../../src/utilities/initReq.ts"],"sourcesContent":["import type { I18n, I18nClient } from '@payloadcms/translations'\nimport type { Locale, PayloadRequest, SanitizedConfig, SanitizedPermissions } from 'payload'\n\nimport { initI18n } from '@payloadcms/translations'\nimport { headers as getHeaders } from 'next/headers.js'\nimport {\n createLocalReq,\n executeAuthStrategies,\n getAccessResults,\n getPayload,\n getRequestLanguage,\n parseCookies,\n} from 'payload'\nimport { cache } from 'react'\n\nimport { getRequestLocale } from './getRequestLocale.js'\n\ntype Result = {\n locale?: Locale\n permissions: SanitizedPermissions\n req: PayloadRequest\n}\n\nexport const initReq = cache(async function (\n configPromise: Promise<SanitizedConfig> | SanitizedConfig,\n overrides?: Parameters<typeof createLocalReq>[0],\n): Promise<Result> {\n const config = await configPromise\n const payload = await getPayload({ config })\n\n const headers = await getHeaders()\n const cookies = parseCookies(headers)\n\n const languageCode = getRequestLanguage({\n config,\n cookies,\n headers,\n })\n\n const i18n: I18nClient = await initI18n({\n config: config.i18n,\n context: 'client',\n language: languageCode,\n })\n\n /**\n * 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\n * I.e. the `payload.auth` function would call `getAccessResults` without a fully-formed `req` object\n */\n const { responseHeaders, user } = await executeAuthStrategies({\n headers,\n payload,\n })\n\n const { req: reqOverrides, ...optionsOverrides } = overrides || {}\n\n const req = await createLocalReq(\n {\n req: {\n headers,\n host: headers.get('host'),\n i18n: i18n as I18n,\n responseHeaders,\n url: `${payload.config.serverURL}`,\n user,\n ...(reqOverrides || {}),\n },\n ...(optionsOverrides || {}),\n },\n payload,\n )\n\n const locale = await getRequestLocale({\n req,\n })\n\n req.locale = locale?.code\n\n const permissions = await getAccessResults({\n req,\n })\n\n return {\n locale,\n permissions,\n req,\n }\n})\n"],"mappings":"AAGA,SAASA,QAAQ,QAAQ;AACzB,SAASC,OAAA,IAAWC,UAAU,QAAQ;AACtC,SACEC,cAAc,EACdC,qBAAqB,EACrBC,gBAAgB,EAChBC,UAAU,EACVC,kBAAkB,EAClBC,YAAY,QACP;AACP,SAASC,KAAK,QAAQ;AAEtB,SAASC,gBAAgB,QAAQ;AAQjC,OAAO,MAAMC,OAAA,GAAUF,KAAA,CAAM,gBAC3BG,aAAyD,EACzDC,SAAgD;EAEhD,MAAMC,MAAA,GAAS,MAAMF,aAAA;EACrB,MAAMG,OAAA,GAAU,MAAMT,UAAA,CAAW;IAAEQ;EAAO;EAE1C,MAAMb,OAAA,GAAU,MAAMC,UAAA;EACtB,MAAMc,OAAA,GAAUR,YAAA,CAAaP,OAAA;EAE7B,MAAMgB,YAAA,GAAeV,kBAAA,CAAmB;IACtCO,MAAA;IACAE,OAAA;IACAf;EACF;EAEA,MAAMiB,IAAA,GAAmB,MAAMlB,QAAA,CAAS;IACtCc,MAAA,EAAQA,MAAA,CAAOI,IAAI;IACnBC,OAAA,EAAS;IACTC,QAAA,EAAUH;EACZ;EAEA;;;;EAIA,MAAM;IAAEI,eAAe;IAAEC;EAAI,CAAE,GAAG,MAAMlB,qBAAA,CAAsB;IAC5DH,OAAA;IACAc;EACF;EAEA,MAAM;IAAEQ,GAAA,EAAKC,YAAY;IAAE,GAAGC;EAAA,CAAkB,GAAGZ,SAAA,IAAa,CAAC;EAEjE,MAAMU,GAAA,GAAM,MAAMpB,cAAA,CAChB;IACEoB,GAAA,EAAK;MACHtB,OAAA;MACAyB,IAAA,EAAMzB,OAAA,CAAQ0B,GAAG,CAAC;MAClBT,IAAA,EAAMA,IAAA;MACNG,eAAA;MACAO,GAAA,EAAK,GAAGb,OAAA,CAAQD,MAAM,CAACe,SAAS,EAAE;MAClCP,IAAA;MACA,IAAIE,YAAA,IAAgB,CAAC,CAAC;IACxB;IACA,IAAIC,gBAAA,IAAoB,CAAC,CAAC;EAC5B,GACAV,OAAA;EAGF,MAAMe,MAAA,GAAS,MAAMpB,gBAAA,CAAiB;IACpCa;EACF;EAEAA,GAAA,CAAIO,MAAM,GAAGA,MAAA,EAAQC,IAAA;EAErB,MAAMC,WAAA,GAAc,MAAM3B,gBAAA,CAAiB;IACzCkB;EACF;EAEA,OAAO;IACLO,MAAA;IACAE,WAAA;IACAT;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"initReq.js","names":["initI18n","headers","getHeaders","createLocalReq","executeAuthStrategies","getAccessResults","getPayload","getRequestLanguage","parseCookies","cache","getRequestLocale","getPartialInitReqContainer","reqResult","getInitReqContainer","key","initPartialReq","configPromise","importMap","partialReqContainer","then","config","payload","cookies","languageCode","i18n","context","language","responseHeaders","user","result","initReq","overrides","urlSuffix","reqContainer","req","reqOverrides","optionsOverrides","host","get","url","serverURL","locale","code","permissions"],"sources":["../../src/utilities/initReq.ts"],"sourcesContent":["import type { AcceptedLanguages, I18n, I18nClient } from '@payloadcms/translations'\nimport type {\n ImportMap,\n Locale,\n Payload,\n PayloadRequest,\n SanitizedConfig,\n SanitizedPermissions,\n User,\n} from 'payload'\n\nimport { initI18n } from '@payloadcms/translations'\nimport { headers as getHeaders } from 'next/headers.js'\nimport {\n createLocalReq,\n executeAuthStrategies,\n getAccessResults,\n getPayload,\n getRequestLanguage,\n parseCookies,\n} from 'payload'\nimport { cache } from 'react'\n\nimport { getRequestLocale } from './getRequestLocale.js'\n\ntype Result = {\n cookies: Map<string, string>\n headers: Awaited<ReturnType<typeof getHeaders>>\n languageCode: AcceptedLanguages\n locale?: Locale\n permissions: SanitizedPermissions\n req: PayloadRequest\n}\n\ntype PartialResult = {\n cookies: Map<string, string>\n headers: Awaited<ReturnType<typeof getHeaders>>\n i18n: I18nClient\n languageCode: AcceptedLanguages\n payload: Payload\n responseHeaders: Headers\n user: null | User\n}\n\n/**\n * Stable object to cache the partial request object across all pages\n */\nconst getPartialInitReqContainer = cache(function (): {\n reqResult: false | PartialResult | Promise<PartialResult>\n} {\n return {\n reqResult: false,\n }\n})\n\n/**\n * Stable object to cache the request object across all pages with the same key\n */\nconst getInitReqContainer = cache(function (\n /**\n * The key is solely used to control caching behavior\n */\n key: string,\n): {\n reqResult: false | Promise<Result> | Result\n} {\n return {\n reqResult: false,\n }\n})\n\n/**\n * Initializes a partial request object. This does not construct the `req` object and does\n * not run access control.\n *\n * The output of this function can be cached across all pages, which is why it is\n * separated from `initReq`.\n */\nconst initPartialReq = async function ({\n configPromise,\n importMap,\n}: {\n configPromise: Promise<SanitizedConfig> | SanitizedConfig\n importMap: ImportMap\n}): Promise<PartialResult> {\n const partialReqContainer = getPartialInitReqContainer()\n\n if (\n partialReqContainer?.reqResult &&\n 'then' in partialReqContainer.reqResult &&\n typeof partialReqContainer?.reqResult?.then === 'function'\n ) {\n return await partialReqContainer.reqResult\n }\n\n partialReqContainer.reqResult = (async () => {\n const config = await configPromise\n const payload = await getPayload({ config, importMap })\n\n const headers = await getHeaders()\n const cookies = parseCookies(headers)\n\n const languageCode = getRequestLanguage({\n config,\n cookies,\n headers,\n })\n\n const i18n: I18nClient = await initI18n({\n config: config.i18n,\n context: 'client',\n language: languageCode,\n })\n\n /**\n * 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\n * I.e. the `payload.auth` function would call `getAccessResults` without a fully-formed `req` object\n */\n const { responseHeaders, user } = await executeAuthStrategies({\n headers,\n payload,\n })\n\n const result: PartialResult = {\n cookies,\n headers,\n i18n,\n languageCode,\n payload,\n responseHeaders,\n user,\n }\n\n return result\n })()\n\n partialReqContainer.reqResult = await partialReqContainer.reqResult\n\n return partialReqContainer.reqResult\n}\n\n/**\n * Initializes a full request object, including the `req` object and access control.\n * As access control and getting the request locale is dependent on the current URL and\n * query parameters, this function cannot be cached as often as the partial request object.\n */\nexport const initReq = async function ({\n configPromise,\n importMap,\n key,\n overrides,\n urlSuffix,\n}: {\n configPromise: Promise<SanitizedConfig> | SanitizedConfig\n importMap: ImportMap\n key: string\n overrides?: Parameters<typeof createLocalReq>[0]\n urlSuffix?: string\n}): Promise<Result> {\n const { cookies, headers, i18n, languageCode, payload, responseHeaders, user } =\n await initPartialReq({\n configPromise,\n importMap,\n })\n\n const reqContainer = getInitReqContainer(key)\n\n if (\n reqContainer?.reqResult &&\n 'then' in reqContainer.reqResult &&\n typeof reqContainer?.reqResult?.then === 'function'\n ) {\n return await reqContainer.reqResult\n }\n\n reqContainer.reqResult = (async () => {\n const { req: reqOverrides, ...optionsOverrides } = overrides || {}\n\n const req = await createLocalReq(\n {\n req: {\n headers,\n host: headers.get('host'),\n i18n: i18n as I18n,\n responseHeaders,\n url: `${payload.config.serverURL}${urlSuffix || ''}`,\n user,\n ...(reqOverrides || {}),\n },\n ...(optionsOverrides || {}),\n },\n payload,\n )\n\n const locale = await getRequestLocale({\n req,\n })\n\n req.locale = locale?.code\n\n const permissions = await getAccessResults({\n req,\n })\n\n const result: Result = {\n cookies,\n headers,\n languageCode,\n locale,\n permissions,\n req,\n }\n\n return result\n })()\n\n reqContainer.reqResult = await reqContainer.reqResult\n\n return reqContainer.reqResult\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/NotFound/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAG/E,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,eAAO,MAAM,oBAAoB,+BAE9B;IACD,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAA;IAClD,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;CAC9C,KAAG,OAAO,CAAC,QAAQ,CAUnB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE;IACxC,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;CAC9C,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEvB,eAAO,MAAM,YAAY,oGAKtB;IACD,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAChC,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,OAAO,CAAC;QACd,QAAQ,EAAE,MAAM,EAAE,CAAA;KACnB,CAAC,CAAA;IACF,YAAY,EAAE,OAAO,CAAC;QACpB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAC,CAAA;CACH,+BAiCA,CAAA;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,oBAAoB,qBAEvD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/NotFound/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAG/E,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,eAAO,MAAM,oBAAoB,+BAE9B;IACD,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAA;IAClD,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;CAC9C,KAAG,OAAO,CAAC,QAAQ,CAUnB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE;IACxC,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;CAC9C,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEvB,eAAO,MAAM,YAAY,oGAKtB;IACD,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAChC,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,OAAO,CAAC;QACd,QAAQ,EAAE,MAAM,EAAE,CAAA;KACnB,CAAC,CAAA;IACF,YAAY,EAAE,OAAO,CAAC;QACpB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAC,CAAA;CACH,+BAkCA,CAAA;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,oBAAoB,qBAEvD"}
@@ -37,7 +37,8 @@ export const NotFoundPage = async ({
37
37
  adminRoute,
38
38
  path: '/not-found'
39
39
  }),
40
- searchParams
40
+ searchParams,
41
+ useLayoutReq: true
41
42
  });
42
43
  const params = await paramsPromise;
43
44
  if (!initPageResult.req.user || !initPageResult.permissions.canAccessAdmin) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["formatAdminURL","React","DefaultTemplate","getNextRequestI18n","initPage","NotFoundClient","generatePageMetadata","config","configPromise","i18n","title","t","NotFoundPage","importMap","params","paramsPromise","searchParams","searchParamsPromise","routes","admin","adminRoute","initPageResult","redirectUnauthenticatedUser","route","path","req","user","permissions","canAccessAdmin","_jsx","locale","payload","visibleEntities","NotFoundView","props","marginTop"],"sources":["../../../src/views/NotFound/index.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { Metadata } from 'next'\nimport type { AdminViewServerProps, ImportMap, SanitizedConfig } from 'payload'\n\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport React from 'react'\n\nimport { DefaultTemplate } from '../../templates/Default/index.js'\nimport { getNextRequestI18n } from '../../utilities/getNextRequestI18n.js'\nimport { initPage } from '../../utilities/initPage/index.js'\nimport { NotFoundClient } from './index.client.js'\n\nexport const generatePageMetadata = async ({\n config: configPromise,\n}: {\n config: Promise<SanitizedConfig> | SanitizedConfig\n params?: { [key: string]: string | string[] }\n}): Promise<Metadata> => {\n const config = await configPromise\n\n const i18n = await getNextRequestI18n({\n config,\n })\n\n return {\n title: i18n.t('general:notFound'),\n }\n}\n\nexport type GenerateViewMetadata = (args: {\n config: SanitizedConfig\n i18n: I18n\n params?: { [key: string]: string | string[] }\n}) => Promise<Metadata>\n\nexport const NotFoundPage = async ({\n config: configPromise,\n importMap,\n params: paramsPromise,\n searchParams: searchParamsPromise,\n}: {\n config: Promise<SanitizedConfig>\n importMap: ImportMap\n params: Promise<{\n segments: string[]\n }>\n searchParams: Promise<{\n [key: string]: string | string[]\n }>\n}) => {\n const config = await configPromise\n const { routes: { admin: adminRoute } = {} } = config\n\n const searchParams = await searchParamsPromise\n const initPageResult = await initPage({\n config,\n importMap,\n redirectUnauthenticatedUser: true,\n route: formatAdminURL({ adminRoute, path: '/not-found' }),\n searchParams,\n })\n\n const params = await paramsPromise\n\n if (!initPageResult.req.user || !initPageResult.permissions.canAccessAdmin) {\n return <NotFoundClient />\n }\n\n return (\n <DefaultTemplate\n i18n={initPageResult.req.i18n}\n locale={initPageResult.locale}\n params={params}\n payload={initPageResult.req.payload}\n permissions={initPageResult.permissions}\n searchParams={searchParams}\n user={initPageResult.req.user}\n visibleEntities={initPageResult.visibleEntities}\n >\n <NotFoundClient />\n </DefaultTemplate>\n )\n}\n\nexport function NotFoundView(props: AdminViewServerProps) {\n return <NotFoundClient marginTop=\"large\" />\n}\n"],"mappings":";AAIA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAElB,SAASC,eAAe,QAAQ;AAChC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAE/B,OAAO,MAAMC,oBAAA,GAAuB,MAAAA,CAAO;EACzCC,MAAA,EAAQC;AAAa,CAItB;EACC,MAAMD,MAAA,GAAS,MAAMC,aAAA;EAErB,MAAMC,IAAA,GAAO,MAAMN,kBAAA,CAAmB;IACpCI;EACF;EAEA,OAAO;IACLG,KAAA,EAAOD,IAAA,CAAKE,CAAC,CAAC;EAChB;AACF;AAQA,OAAO,MAAMC,YAAA,GAAe,MAAAA,CAAO;EACjCL,MAAA,EAAQC,aAAa;EACrBK,SAAS;EACTC,MAAA,EAAQC,aAAa;EACrBC,YAAA,EAAcC;AAAmB,CAUlC;EACC,MAAMV,MAAA,GAAS,MAAMC,aAAA;EACrB,MAAM;IAAEU,MAAA,EAAQ;MAAEC,KAAA,EAAOC;IAAU,CAAE,GAAG,CAAC;EAAC,CAAE,GAAGb,MAAA;EAE/C,MAAMS,YAAA,GAAe,MAAMC,mBAAA;EAC3B,MAAMI,cAAA,GAAiB,MAAMjB,QAAA,CAAS;IACpCG,MAAA;IACAM,SAAA;IACAS,2BAAA,EAA6B;IAC7BC,KAAA,EAAOvB,cAAA,CAAe;MAAEoB,UAAA;MAAYI,IAAA,EAAM;IAAa;IACvDR;EACF;EAEA,MAAMF,MAAA,GAAS,MAAMC,aAAA;EAErB,IAAI,CAACM,cAAA,CAAeI,GAAG,CAACC,IAAI,IAAI,CAACL,cAAA,CAAeM,WAAW,CAACC,cAAc,EAAE;IAC1E,oBAAOC,IAAA,CAACxB,cAAA;EACV;EAEA,oBACEwB,IAAA,CAAC3B,eAAA;IACCO,IAAA,EAAMY,cAAA,CAAeI,GAAG,CAAChB,IAAI;IAC7BqB,MAAA,EAAQT,cAAA,CAAeS,MAAM;IAC7BhB,MAAA,EAAQA,MAAA;IACRiB,OAAA,EAASV,cAAA,CAAeI,GAAG,CAACM,OAAO;IACnCJ,WAAA,EAAaN,cAAA,CAAeM,WAAW;IACvCX,YAAA,EAAcA,YAAA;IACdU,IAAA,EAAML,cAAA,CAAeI,GAAG,CAACC,IAAI;IAC7BM,eAAA,EAAiBX,cAAA,CAAeW,eAAe;cAE/C,aAAAH,IAAA,CAACxB,cAAA;;AAGP;AAEA,OAAO,SAAS4B,aAAaC,KAA2B;EACtD,oBAAOL,IAAA,CAACxB,cAAA;IAAe8B,SAAA,EAAU;;AACnC","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["formatAdminURL","React","DefaultTemplate","getNextRequestI18n","initPage","NotFoundClient","generatePageMetadata","config","configPromise","i18n","title","t","NotFoundPage","importMap","params","paramsPromise","searchParams","searchParamsPromise","routes","admin","adminRoute","initPageResult","redirectUnauthenticatedUser","route","path","useLayoutReq","req","user","permissions","canAccessAdmin","_jsx","locale","payload","visibleEntities","NotFoundView","props","marginTop"],"sources":["../../../src/views/NotFound/index.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { Metadata } from 'next'\nimport type { AdminViewServerProps, ImportMap, SanitizedConfig } from 'payload'\n\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport React from 'react'\n\nimport { DefaultTemplate } from '../../templates/Default/index.js'\nimport { getNextRequestI18n } from '../../utilities/getNextRequestI18n.js'\nimport { initPage } from '../../utilities/initPage/index.js'\nimport { NotFoundClient } from './index.client.js'\n\nexport const generatePageMetadata = async ({\n config: configPromise,\n}: {\n config: Promise<SanitizedConfig> | SanitizedConfig\n params?: { [key: string]: string | string[] }\n}): Promise<Metadata> => {\n const config = await configPromise\n\n const i18n = await getNextRequestI18n({\n config,\n })\n\n return {\n title: i18n.t('general:notFound'),\n }\n}\n\nexport type GenerateViewMetadata = (args: {\n config: SanitizedConfig\n i18n: I18n\n params?: { [key: string]: string | string[] }\n}) => Promise<Metadata>\n\nexport const NotFoundPage = async ({\n config: configPromise,\n importMap,\n params: paramsPromise,\n searchParams: searchParamsPromise,\n}: {\n config: Promise<SanitizedConfig>\n importMap: ImportMap\n params: Promise<{\n segments: string[]\n }>\n searchParams: Promise<{\n [key: string]: string | string[]\n }>\n}) => {\n const config = await configPromise\n const { routes: { admin: adminRoute } = {} } = config\n\n const searchParams = await searchParamsPromise\n const initPageResult = await initPage({\n config,\n importMap,\n redirectUnauthenticatedUser: true,\n route: formatAdminURL({ adminRoute, path: '/not-found' }),\n searchParams,\n useLayoutReq: true,\n })\n\n const params = await paramsPromise\n\n if (!initPageResult.req.user || !initPageResult.permissions.canAccessAdmin) {\n return <NotFoundClient />\n }\n\n return (\n <DefaultTemplate\n i18n={initPageResult.req.i18n}\n locale={initPageResult.locale}\n params={params}\n payload={initPageResult.req.payload}\n permissions={initPageResult.permissions}\n searchParams={searchParams}\n user={initPageResult.req.user}\n visibleEntities={initPageResult.visibleEntities}\n >\n <NotFoundClient />\n </DefaultTemplate>\n )\n}\n\nexport function NotFoundView(props: AdminViewServerProps) {\n return <NotFoundClient marginTop=\"large\" />\n}\n"],"mappings":";AAIA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAElB,SAASC,eAAe,QAAQ;AAChC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAE/B,OAAO,MAAMC,oBAAA,GAAuB,MAAAA,CAAO;EACzCC,MAAA,EAAQC;AAAa,CAItB;EACC,MAAMD,MAAA,GAAS,MAAMC,aAAA;EAErB,MAAMC,IAAA,GAAO,MAAMN,kBAAA,CAAmB;IACpCI;EACF;EAEA,OAAO;IACLG,KAAA,EAAOD,IAAA,CAAKE,CAAC,CAAC;EAChB;AACF;AAQA,OAAO,MAAMC,YAAA,GAAe,MAAAA,CAAO;EACjCL,MAAA,EAAQC,aAAa;EACrBK,SAAS;EACTC,MAAA,EAAQC,aAAa;EACrBC,YAAA,EAAcC;AAAmB,CAUlC;EACC,MAAMV,MAAA,GAAS,MAAMC,aAAA;EACrB,MAAM;IAAEU,MAAA,EAAQ;MAAEC,KAAA,EAAOC;IAAU,CAAE,GAAG,CAAC;EAAC,CAAE,GAAGb,MAAA;EAE/C,MAAMS,YAAA,GAAe,MAAMC,mBAAA;EAC3B,MAAMI,cAAA,GAAiB,MAAMjB,QAAA,CAAS;IACpCG,MAAA;IACAM,SAAA;IACAS,2BAAA,EAA6B;IAC7BC,KAAA,EAAOvB,cAAA,CAAe;MAAEoB,UAAA;MAAYI,IAAA,EAAM;IAAa;IACvDR,YAAA;IACAS,YAAA,EAAc;EAChB;EAEA,MAAMX,MAAA,GAAS,MAAMC,aAAA;EAErB,IAAI,CAACM,cAAA,CAAeK,GAAG,CAACC,IAAI,IAAI,CAACN,cAAA,CAAeO,WAAW,CAACC,cAAc,EAAE;IAC1E,oBAAOC,IAAA,CAACzB,cAAA;EACV;EAEA,oBACEyB,IAAA,CAAC5B,eAAA;IACCO,IAAA,EAAMY,cAAA,CAAeK,GAAG,CAACjB,IAAI;IAC7BsB,MAAA,EAAQV,cAAA,CAAeU,MAAM;IAC7BjB,MAAA,EAAQA,MAAA;IACRkB,OAAA,EAASX,cAAA,CAAeK,GAAG,CAACM,OAAO;IACnCJ,WAAA,EAAaP,cAAA,CAAeO,WAAW;IACvCZ,YAAA,EAAcA,YAAA;IACdW,IAAA,EAAMN,cAAA,CAAeK,GAAG,CAACC,IAAI;IAC7BM,eAAA,EAAiBZ,cAAA,CAAeY,eAAe;cAE/C,aAAAH,IAAA,CAACzB,cAAA;;AAGP;AAEA,OAAO,SAAS6B,aAAaC,KAA2B;EACtD,oBAAOL,IAAA,CAACzB,cAAA;IAAe+B,SAAA,EAAU;;AACnC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"withPayload.d.ts","sourceRoot":"","sources":["../src/withPayload.js"],"names":[],"mappings":"AAKO,yCAJI,OAAO,MAAM,EAAE,UAAU,GAEvB,OAAO,MAAM,EAAE,UAAU,CAuJrC"}
1
+ {"version":3,"file":"withPayload.d.ts","sourceRoot":"","sources":["../src/withPayload.js"],"names":[],"mappings":"AAKO,yCAJI,OAAO,MAAM,EAAE,UAAU,GAEvB,OAAO,MAAM,EAAE,UAAU,CAmJrC"}
@@ -105,9 +105,6 @@
105
105
  if (nextConfig.basePath) {
106
106
  toReturn.env.NEXT_BASE_PATH = nextConfig.basePath;
107
107
  }
108
- if (nextConfig.assetPrefix) {
109
- toReturn.env.NEXT_ASSET_PREFIX = nextConfig.assetPrefix;
110
- }
111
108
  return toReturn;
112
109
  };
113
110
  export default withPayload;
@@ -1 +1 @@
1
- {"version":3,"file":"withPayload.js","names":["withPayload","nextConfig","env","experimental","staleTimes","dynamic","console","warn","NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH","process","PAYLOAD_PATCH_TURBOPACK_WARNINGS","turbopackWarningText","consoleWarn","args","includes","poweredByHeader","key","value","toReturn","outputFileTracingExcludes","outputFileTracingIncludes","turbo","resolveAlias","headers","headersFromConfig","source","serverExternalPackages","webpack","webpackConfig","webpackOptions","incomingWebpackConfig","externals","ignoreWarnings","module","file","resolve","alias","fallback","aws4","kerberos","snappy","basePath","NEXT_BASE_PATH","assetPrefix","NEXT_ASSET_PREFIX"],"sources":["../src/withPayload.js"],"sourcesContent":["/**\n * @param {import('next').NextConfig} nextConfig\n *\n * @returns {import('next').NextConfig}\n * */\nexport const withPayload = (nextConfig = {}) => {\n const env = nextConfig?.env || {}\n\n if (nextConfig.experimental?.staleTimes?.dynamic) {\n console.warn(\n 'Payload detected a non-zero value for the `staleTimes.dynamic` option in your Next.js config. This will slow down page transitions and may cause stale data to load within the Admin panel. To clear this warning, remove the `staleTimes.dynamic` option from your Next.js config or set it to 0. In the future, Next.js may support scoping this option to specific routes.',\n )\n env.NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH = 'true'\n }\n\n if (process.env.PAYLOAD_PATCH_TURBOPACK_WARNINGS !== 'false') {\n const turbopackWarningText =\n 'Packages that should be external need to be installed in the project directory, so they can be resolved from the output files.\\nTry to install it into the project directory by running'\n\n const consoleWarn = console.warn\n console.warn = (...args) => {\n // Force to disable serverExternalPackages warnings: https://github.com/vercel/next.js/issues/68805\n if (\n (typeof args[1] === 'string' && args[1].includes(turbopackWarningText)) ||\n (typeof args[0] === 'string' && args[0].includes(turbopackWarningText))\n ) {\n return\n }\n\n consoleWarn(...args)\n }\n }\n\n const poweredByHeader = {\n key: 'X-Powered-By',\n value: 'Next.js, Payload',\n }\n\n /**\n * @type {import('next').NextConfig}\n */\n const toReturn = {\n ...nextConfig,\n env,\n outputFileTracingExcludes: {\n ...(nextConfig?.outputFileTracingExcludes || {}),\n '**/*': [\n ...(nextConfig?.outputFileTracingExcludes?.['**/*'] || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n ],\n },\n outputFileTracingIncludes: {\n ...(nextConfig?.outputFileTracingIncludes || {}),\n '**/*': [...(nextConfig?.outputFileTracingIncludes?.['**/*'] || []), '@libsql/client'],\n },\n experimental: {\n ...(nextConfig?.experimental || {}),\n turbo: {\n ...(nextConfig?.experimental?.turbo || {}),\n resolveAlias: {\n ...(nextConfig?.experimental?.turbo?.resolveAlias || {}),\n 'payload-mock-package': 'payload-mock-package',\n },\n },\n },\n // We disable the poweredByHeader here because we add it manually in the headers function below\n ...(nextConfig?.poweredByHeader !== false ? { poweredByHeader: false } : {}),\n headers: async () => {\n const headersFromConfig = 'headers' in nextConfig ? await nextConfig.headers() : []\n\n return [\n ...(headersFromConfig || []),\n {\n source: '/:path*',\n headers: [\n {\n key: 'Accept-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Vary',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Critical-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n ...(nextConfig?.poweredByHeader !== false ? [poweredByHeader] : []),\n ],\n },\n ]\n },\n serverExternalPackages: [\n ...(nextConfig?.serverExternalPackages || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n 'pino',\n 'libsql',\n 'pino-pretty',\n 'graphql',\n ],\n webpack: (webpackConfig, webpackOptions) => {\n const incomingWebpackConfig =\n typeof nextConfig.webpack === 'function'\n ? nextConfig.webpack(webpackConfig, webpackOptions)\n : webpackConfig\n\n return {\n ...incomingWebpackConfig,\n externals: [\n ...(incomingWebpackConfig?.externals || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n 'sharp',\n 'libsql',\n ],\n ignoreWarnings: [\n ...(incomingWebpackConfig?.ignoreWarnings || []),\n { module: /node_modules\\/mongodb\\/lib\\/utils\\.js/ },\n { file: /node_modules\\/mongodb\\/lib\\/utils\\.js/ },\n { module: /node_modules\\/mongodb\\/lib\\/bson\\.js/ },\n { file: /node_modules\\/mongodb\\/lib\\/bson\\.js/ },\n ],\n resolve: {\n ...(incomingWebpackConfig?.resolve || {}),\n alias: {\n ...(incomingWebpackConfig?.resolve?.alias || {}),\n },\n fallback: {\n ...(incomingWebpackConfig?.resolve?.fallback || {}),\n '@aws-sdk/credential-providers': false,\n '@mongodb-js/zstd': false,\n aws4: false,\n kerberos: false,\n 'mongodb-client-encryption': false,\n snappy: false,\n 'supports-color': false,\n 'yocto-queue': false,\n },\n },\n }\n },\n }\n\n if (nextConfig.basePath) {\n toReturn.env.NEXT_BASE_PATH = nextConfig.basePath\n }\n\n if (nextConfig.assetPrefix) {\n toReturn.env.NEXT_ASSET_PREFIX = nextConfig.assetPrefix\n }\n\n return toReturn\n}\n\nexport default withPayload\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"withPayload.js","names":["withPayload","nextConfig","env","experimental","staleTimes","dynamic","console","warn","NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH","process","PAYLOAD_PATCH_TURBOPACK_WARNINGS","turbopackWarningText","consoleWarn","args","includes","poweredByHeader","key","value","toReturn","outputFileTracingExcludes","outputFileTracingIncludes","turbo","resolveAlias","headers","headersFromConfig","source","serverExternalPackages","webpack","webpackConfig","webpackOptions","incomingWebpackConfig","externals","ignoreWarnings","module","file","resolve","alias","fallback","aws4","kerberos","snappy","basePath","NEXT_BASE_PATH"],"sources":["../src/withPayload.js"],"sourcesContent":["/**\n * @param {import('next').NextConfig} nextConfig\n *\n * @returns {import('next').NextConfig}\n * */\nexport const withPayload = (nextConfig = {}) => {\n const env = nextConfig?.env || {}\n\n if (nextConfig.experimental?.staleTimes?.dynamic) {\n console.warn(\n 'Payload detected a non-zero value for the `staleTimes.dynamic` option in your Next.js config. This will slow down page transitions and may cause stale data to load within the Admin panel. To clear this warning, remove the `staleTimes.dynamic` option from your Next.js config or set it to 0. In the future, Next.js may support scoping this option to specific routes.',\n )\n env.NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH = 'true'\n }\n\n if (process.env.PAYLOAD_PATCH_TURBOPACK_WARNINGS !== 'false') {\n const turbopackWarningText =\n 'Packages that should be external need to be installed in the project directory, so they can be resolved from the output files.\\nTry to install it into the project directory by running'\n\n const consoleWarn = console.warn\n console.warn = (...args) => {\n // Force to disable serverExternalPackages warnings: https://github.com/vercel/next.js/issues/68805\n if (\n (typeof args[1] === 'string' && args[1].includes(turbopackWarningText)) ||\n (typeof args[0] === 'string' && args[0].includes(turbopackWarningText))\n ) {\n return\n }\n\n consoleWarn(...args)\n }\n }\n\n const poweredByHeader = {\n key: 'X-Powered-By',\n value: 'Next.js, Payload',\n }\n\n /**\n * @type {import('next').NextConfig}\n */\n const toReturn = {\n ...nextConfig,\n env,\n outputFileTracingExcludes: {\n ...(nextConfig?.outputFileTracingExcludes || {}),\n '**/*': [\n ...(nextConfig?.outputFileTracingExcludes?.['**/*'] || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n ],\n },\n outputFileTracingIncludes: {\n ...(nextConfig?.outputFileTracingIncludes || {}),\n '**/*': [...(nextConfig?.outputFileTracingIncludes?.['**/*'] || []), '@libsql/client'],\n },\n experimental: {\n ...(nextConfig?.experimental || {}),\n turbo: {\n ...(nextConfig?.experimental?.turbo || {}),\n resolveAlias: {\n ...(nextConfig?.experimental?.turbo?.resolveAlias || {}),\n 'payload-mock-package': 'payload-mock-package',\n },\n },\n },\n // We disable the poweredByHeader here because we add it manually in the headers function below\n ...(nextConfig?.poweredByHeader !== false ? { poweredByHeader: false } : {}),\n headers: async () => {\n const headersFromConfig = 'headers' in nextConfig ? await nextConfig.headers() : []\n\n return [\n ...(headersFromConfig || []),\n {\n source: '/:path*',\n headers: [\n {\n key: 'Accept-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Vary',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n {\n key: 'Critical-CH',\n value: 'Sec-CH-Prefers-Color-Scheme',\n },\n ...(nextConfig?.poweredByHeader !== false ? [poweredByHeader] : []),\n ],\n },\n ]\n },\n serverExternalPackages: [\n ...(nextConfig?.serverExternalPackages || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n 'pino',\n 'libsql',\n 'pino-pretty',\n 'graphql',\n ],\n webpack: (webpackConfig, webpackOptions) => {\n const incomingWebpackConfig =\n typeof nextConfig.webpack === 'function'\n ? nextConfig.webpack(webpackConfig, webpackOptions)\n : webpackConfig\n\n return {\n ...incomingWebpackConfig,\n externals: [\n ...(incomingWebpackConfig?.externals || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n 'sharp',\n 'libsql',\n ],\n ignoreWarnings: [\n ...(incomingWebpackConfig?.ignoreWarnings || []),\n { module: /node_modules\\/mongodb\\/lib\\/utils\\.js/ },\n { file: /node_modules\\/mongodb\\/lib\\/utils\\.js/ },\n { module: /node_modules\\/mongodb\\/lib\\/bson\\.js/ },\n { file: /node_modules\\/mongodb\\/lib\\/bson\\.js/ },\n ],\n resolve: {\n ...(incomingWebpackConfig?.resolve || {}),\n alias: {\n ...(incomingWebpackConfig?.resolve?.alias || {}),\n },\n fallback: {\n ...(incomingWebpackConfig?.resolve?.fallback || {}),\n '@aws-sdk/credential-providers': false,\n '@mongodb-js/zstd': false,\n aws4: false,\n kerberos: false,\n 'mongodb-client-encryption': false,\n snappy: false,\n 'supports-color': false,\n 'yocto-queue': false,\n },\n },\n }\n },\n }\n\n if (nextConfig.basePath) {\n toReturn.env.NEXT_BASE_PATH = nextConfig.basePath\n }\n\n return toReturn\n}\n\nexport default withPayload\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/next",
3
- "version": "3.25.0-canary.46647b4",
3
+ "version": "3.25.0-canary.6d6bbd2",
4
4
  "homepage": "https://payloadcms.com",
5
5
  "repository": {
6
6
  "type": "git",
@@ -79,9 +79,9 @@
79
79
  "react-diff-viewer-continued": "4.0.4",
80
80
  "sass": "1.77.4",
81
81
  "uuid": "10.0.0",
82
- "@payloadcms/translations": "3.25.0-canary.46647b4",
83
- "@payloadcms/graphql": "3.25.0-canary.46647b4",
84
- "@payloadcms/ui": "3.25.0-canary.46647b4"
82
+ "@payloadcms/graphql": "3.25.0-canary.6d6bbd2",
83
+ "@payloadcms/translations": "3.25.0-canary.6d6bbd2",
84
+ "@payloadcms/ui": "3.25.0-canary.6d6bbd2"
85
85
  },
86
86
  "devDependencies": {
87
87
  "@babel/cli": "7.26.4",
@@ -100,12 +100,12 @@
100
100
  "eslint-plugin-react-compiler": "19.0.0-beta-714736e-20250131",
101
101
  "swc-plugin-transform-remove-imports": "3.1.0",
102
102
  "@payloadcms/eslint-config": "3.9.0",
103
- "payload": "3.25.0-canary.46647b4"
103
+ "payload": "3.25.0-canary.6d6bbd2"
104
104
  },
105
105
  "peerDependencies": {
106
106
  "graphql": "^16.8.1",
107
107
  "next": "^15.0.0",
108
- "payload": "3.25.0-canary.46647b4"
108
+ "payload": "3.25.0-canary.6d6bbd2"
109
109
  },
110
110
  "engines": {
111
111
  "node": "^18.20.2 || >=20.9.0"