@payloadcms/next 3.32.0-internal.f2e77bd → 3.32.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"getSafeRedirect.d.ts","sourceRoot":"","sources":["../../src/utilities/getSafeRedirect.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,kBACX,MAAM,GAAG,MAAM,EAAE,aACtB,MAAM,KACf,MAmBF,CAAA"}
1
+ {"version":3,"file":"getSafeRedirect.d.ts","sourceRoot":"","sources":["../../src/utilities/getSafeRedirect.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,kBACX,MAAM,GAAG,MAAM,EAAE,aACtB,MAAM,KACf,MA8BF,CAAA"}
@@ -2,13 +2,23 @@ export const getSafeRedirect = (redirectParam, fallback = '/') => {
2
2
  if (typeof redirectParam !== 'string') {
3
3
  return fallback;
4
4
  }
5
- // Ensures that any leading or trailing whitespace doesn’t affect the checks
6
- const redirectPath = redirectParam.trim();
5
+ // Normalize and decode the path
6
+ let redirectPath;
7
+ try {
8
+ redirectPath = decodeURIComponent(redirectParam.trim());
9
+ } catch {
10
+ return fallback // invalid encoding
11
+ ;
12
+ }
7
13
  const isSafeRedirect =
8
14
  // Must start with a single forward slash (e.g., "/admin")
9
15
  redirectPath.startsWith('/') &&
10
- // Prevent protocol-relative URLs (e.g., "//evil.com")
16
+ // Prevent protocol-relative URLs (e.g., "//example.com")
11
17
  !redirectPath.startsWith('//') &&
18
+ // Prevent encoded slashes that could resolve to protocol-relative
19
+ !redirectPath.startsWith('/%2F') &&
20
+ // Prevent backslash-based escape attempts (e.g., "/\\/example.com", "/\\\\example.com", "/\\example.com")
21
+ !redirectPath.startsWith('/\\/') && !redirectPath.startsWith('/\\\\') && !redirectPath.startsWith('/\\') &&
12
22
  // Prevent javascript-based schemes (e.g., "/javascript:alert(1)")
13
23
  !redirectPath.toLowerCase().startsWith('/javascript:') &&
14
24
  // Prevent attempts to redirect to full URLs using "/http:" or "/https:"
@@ -1 +1 @@
1
- {"version":3,"file":"getSafeRedirect.js","names":["getSafeRedirect","redirectParam","fallback","redirectPath","trim","isSafeRedirect","startsWith","toLowerCase"],"sources":["../../src/utilities/getSafeRedirect.ts"],"sourcesContent":["export const getSafeRedirect = (\n redirectParam: string | string[],\n fallback: string = '/',\n): string => {\n if (typeof redirectParam !== 'string') {\n return fallback\n }\n\n // Ensures that any leading or trailing whitespace doesn’t affect the checks\n const redirectPath = redirectParam.trim()\n\n const isSafeRedirect =\n // Must start with a single forward slash (e.g., \"/admin\")\n redirectPath.startsWith('/') &&\n // Prevent protocol-relative URLs (e.g., \"//evil.com\")\n !redirectPath.startsWith('//') &&\n // Prevent javascript-based schemes (e.g., \"/javascript:alert(1)\")\n !redirectPath.toLowerCase().startsWith('/javascript:') &&\n // Prevent attempts to redirect to full URLs using \"/http:\" or \"/https:\"\n !redirectPath.toLowerCase().startsWith('/http')\n\n return isSafeRedirect ? redirectPath : fallback\n}\n"],"mappings":"AAAA,OAAO,MAAMA,eAAA,GAAkBA,CAC7BC,aAAA,EACAC,QAAA,GAAmB,GAAG;EAEtB,IAAI,OAAOD,aAAA,KAAkB,UAAU;IACrC,OAAOC,QAAA;EACT;EAEA;EACA,MAAMC,YAAA,GAAeF,aAAA,CAAcG,IAAI;EAEvC,MAAMC,cAAA;EACJ;EACAF,YAAA,CAAaG,UAAU,CAAC;EACxB;EACA,CAACH,YAAA,CAAaG,UAAU,CAAC;EACzB;EACA,CAACH,YAAA,CAAaI,WAAW,GAAGD,UAAU,CAAC;EACvC;EACA,CAACH,YAAA,CAAaI,WAAW,GAAGD,UAAU,CAAC;EAEzC,OAAOD,cAAA,GAAiBF,YAAA,GAAeD,QAAA;AACzC","ignoreList":[]}
1
+ {"version":3,"file":"getSafeRedirect.js","names":["getSafeRedirect","redirectParam","fallback","redirectPath","decodeURIComponent","trim","isSafeRedirect","startsWith","toLowerCase"],"sources":["../../src/utilities/getSafeRedirect.ts"],"sourcesContent":["export const getSafeRedirect = (\n redirectParam: string | string[],\n fallback: string = '/',\n): string => {\n if (typeof redirectParam !== 'string') {\n return fallback\n }\n\n // Normalize and decode the path\n let redirectPath: string\n try {\n redirectPath = decodeURIComponent(redirectParam.trim())\n } catch {\n return fallback // invalid encoding\n }\n\n const isSafeRedirect =\n // Must start with a single forward slash (e.g., \"/admin\")\n redirectPath.startsWith('/') &&\n // Prevent protocol-relative URLs (e.g., \"//example.com\")\n !redirectPath.startsWith('//') &&\n // Prevent encoded slashes that could resolve to protocol-relative\n !redirectPath.startsWith('/%2F') &&\n // Prevent backslash-based escape attempts (e.g., \"/\\\\/example.com\", \"/\\\\\\\\example.com\", \"/\\\\example.com\")\n !redirectPath.startsWith('/\\\\/') &&\n !redirectPath.startsWith('/\\\\\\\\') &&\n !redirectPath.startsWith('/\\\\') &&\n // Prevent javascript-based schemes (e.g., \"/javascript:alert(1)\")\n !redirectPath.toLowerCase().startsWith('/javascript:') &&\n // Prevent attempts to redirect to full URLs using \"/http:\" or \"/https:\"\n !redirectPath.toLowerCase().startsWith('/http')\n\n return isSafeRedirect ? redirectPath : fallback\n}\n"],"mappings":"AAAA,OAAO,MAAMA,eAAA,GAAkBA,CAC7BC,aAAA,EACAC,QAAA,GAAmB,GAAG;EAEtB,IAAI,OAAOD,aAAA,KAAkB,UAAU;IACrC,OAAOC,QAAA;EACT;EAEA;EACA,IAAIC,YAAA;EACJ,IAAI;IACFA,YAAA,GAAeC,kBAAA,CAAmBH,aAAA,CAAcI,IAAI;EACtD,EAAE,MAAM;IACN,OAAOH,QAAA,CAAS;IAAA;EAClB;EAEA,MAAMI,cAAA;EACJ;EACAH,YAAA,CAAaI,UAAU,CAAC;EACxB;EACA,CAACJ,YAAA,CAAaI,UAAU,CAAC;EACzB;EACA,CAACJ,YAAA,CAAaI,UAAU,CAAC;EACzB;EACA,CAACJ,YAAA,CAAaI,UAAU,CAAC,WACzB,CAACJ,YAAA,CAAaI,UAAU,CAAC,YACzB,CAACJ,YAAA,CAAaI,UAAU,CAAC;EACzB;EACA,CAACJ,YAAA,CAAaK,WAAW,GAAGD,UAAU,CAAC;EACvC;EACA,CAACJ,YAAA,CAAaK,WAAW,GAAGD,UAAU,CAAC;EAEzC,OAAOD,cAAA,GAAiBH,YAAA,GAAeD,QAAA;AACzC","ignoreList":[]}
@@ -0,0 +1,32 @@
1
+ import { getSafeRedirect } from './getSafeRedirect';
2
+ const fallback = '/admin' // default fallback if the input is unsafe or invalid
3
+ ;
4
+ describe('getSafeRedirect', () => {
5
+ // Valid - safe redirect paths
6
+ it.each([['/dashboard'], ['/admin/settings'], ['/projects?id=123'], ['/hello-world']])('should allow safe relative path: %s', input => {
7
+ // If the input is a clean relative path, it should be returned as-is
8
+ expect(getSafeRedirect(input, fallback)).toBe(input);
9
+ });
10
+ // Invalid types or empty inputs
11
+ it.each(['', null, undefined, 123, {}, []])('should fallback on invalid or non-string input: %s', input => {
12
+ // If the input is not a valid string, it should return the fallback
13
+ expect(getSafeRedirect(input, fallback)).toBe(fallback);
14
+ });
15
+ // Unsafe redirect patterns
16
+ it.each(['//example.com', '/javascript:alert(1)', '/JavaScript:alert(1)', '/http://unknown.com', '/https://unknown.com', '/%2Funknown.com', '/\\/unknown.com', '/\\\\unknown.com', '/\\unknown.com', '%2F%2Funknown.com', '%2Fjavascript:alert(1)'])('should block unsafe redirect: %s', input => {
17
+ // All of these should return the fallback because they’re unsafe
18
+ expect(getSafeRedirect(input, fallback)).toBe(fallback);
19
+ });
20
+ // Input with extra spaces should still be properly handled
21
+ it('should trim whitespace before evaluating', () => {
22
+ // A valid path with surrounding spaces should still be accepted
23
+ expect(getSafeRedirect(' /dashboard ', fallback)).toBe('/dashboard');
24
+ // An unsafe path with spaces should still be rejected
25
+ expect(getSafeRedirect(' //example.com ', fallback)).toBe(fallback);
26
+ });
27
+ // If decoding the input fails (e.g., invalid percent encoding), it should not crash
28
+ it('should return fallback on invalid encoding', () => {
29
+ expect(getSafeRedirect('%E0%A4%A', fallback)).toBe(fallback);
30
+ });
31
+ });
32
+ //# sourceMappingURL=getSafeRedirect.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSafeRedirect.spec.js","names":["getSafeRedirect","fallback","describe","it","each","input","expect","toBe","undefined"],"sources":["../../src/utilities/getSafeRedirect.spec.ts"],"sourcesContent":["import { getSafeRedirect } from './getSafeRedirect'\n\nconst fallback = '/admin' // default fallback if the input is unsafe or invalid\n\ndescribe('getSafeRedirect', () => {\n // Valid - safe redirect paths\n it.each([['/dashboard'], ['/admin/settings'], ['/projects?id=123'], ['/hello-world']])(\n 'should allow safe relative path: %s',\n (input) => {\n // If the input is a clean relative path, it should be returned as-is\n expect(getSafeRedirect(input, fallback)).toBe(input)\n },\n )\n\n // Invalid types or empty inputs\n it.each(['', null, undefined, 123, {}, []])(\n 'should fallback on invalid or non-string input: %s',\n (input) => {\n // If the input is not a valid string, it should return the fallback\n expect(getSafeRedirect(input as any, fallback)).toBe(fallback)\n },\n )\n\n // Unsafe redirect patterns\n it.each([\n '//example.com', // protocol-relative URL\n '/javascript:alert(1)', // JavaScript scheme\n '/JavaScript:alert(1)', // case-insensitive JavaScript\n '/http://unknown.com', // disguised external redirect\n '/https://unknown.com', // disguised external redirect\n '/%2Funknown.com', // encoded slash — could resolve to //\n '/\\\\/unknown.com', // escaped slash\n '/\\\\\\\\unknown.com', // double escaped slashes\n '/\\\\unknown.com', // single escaped slash\n '%2F%2Funknown.com', // fully encoded protocol-relative path\n '%2Fjavascript:alert(1)', // encoded JavaScript scheme\n ])('should block unsafe redirect: %s', (input) => {\n // All of these should return the fallback because they’re unsafe\n expect(getSafeRedirect(input, fallback)).toBe(fallback)\n })\n\n // Input with extra spaces should still be properly handled\n it('should trim whitespace before evaluating', () => {\n // A valid path with surrounding spaces should still be accepted\n expect(getSafeRedirect(' /dashboard ', fallback)).toBe('/dashboard')\n\n // An unsafe path with spaces should still be rejected\n expect(getSafeRedirect(' //example.com ', fallback)).toBe(fallback)\n })\n\n // If decoding the input fails (e.g., invalid percent encoding), it should not crash\n it('should return fallback on invalid encoding', () => {\n expect(getSafeRedirect('%E0%A4%A', fallback)).toBe(fallback)\n })\n})\n"],"mappings":"AAAA,SAASA,eAAe,QAAQ;AAEhC,MAAMC,QAAA,GAAW,SAAS;AAAA;AAE1BC,QAAA,CAAS,mBAAmB;EAC1B;EACAC,EAAA,CAAGC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,kBAAkB,EAAE,CAAC,mBAAmB,EAAE,CAAC,eAAe,CAAC,EACnF,uCACCC,KAAA;IACC;IACAC,MAAA,CAAON,eAAA,CAAgBK,KAAA,EAAOJ,QAAA,GAAWM,IAAI,CAACF,KAAA;EAChD;EAGF;EACAF,EAAA,CAAGC,IAAI,CAAC,CAAC,IAAI,MAAMI,SAAA,EAAW,KAAK,CAAC,GAAG,EAAE,CAAC,EACxC,sDACCH,KAAA;IACC;IACAC,MAAA,CAAON,eAAA,CAAgBK,KAAA,EAAcJ,QAAA,GAAWM,IAAI,CAACN,QAAA;EACvD;EAGF;EACAE,EAAA,CAAGC,IAAI,CAAC,CACN,iBACA,wBACA,wBACA,uBACA,wBACA,mBACA,mBACA,oBACA,kBACA,qBACA,yBACD,EAAE,oCAAqCC,KAAA;IACtC;IACAC,MAAA,CAAON,eAAA,CAAgBK,KAAA,EAAOJ,QAAA,GAAWM,IAAI,CAACN,QAAA;EAChD;EAEA;EACAE,EAAA,CAAG,4CAA4C;IAC7C;IACAG,MAAA,CAAON,eAAA,CAAgB,oBAAoBC,QAAA,GAAWM,IAAI,CAAC;IAE3D;IACAD,MAAA,CAAON,eAAA,CAAgB,uBAAuBC,QAAA,GAAWM,IAAI,CAACN,QAAA;EAChE;EAEA;EACAE,EAAA,CAAG,8CAA8C;IAC/CG,MAAA,CAAON,eAAA,CAAgB,YAAYC,QAAA,GAAWM,IAAI,CAACN,QAAA;EACrD;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/List/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAIpB,SAAS,EAMV,MAAM,SAAS,CAAA;AAYhB,OAAO,KAAmB,MAAM,OAAO,CAAA;AAMvC,KAAK,kBAAkB,GAAG;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,EAAE,SAAS,CAAA;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC,GAAG,oBAAoB,CAAA;AAExB,eAAO,MAAM,cAAc,SACnB,kBAAkB,KACvB,OAAO,CAAC;IACT,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;CACtB,CAsPA,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAWjD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/List/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAIpB,SAAS,EAMV,MAAM,SAAS,CAAA;AAYhB,OAAO,KAAmB,MAAM,OAAO,CAAA;AAMvC,KAAK,kBAAkB,GAAG;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,EAAE,SAAS,CAAA;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC,GAAG,oBAAoB,CAAA;AAExB,eAAO,MAAM,cAAc,SACnB,kBAAkB,KACvB,OAAO,CAAC;IACT,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;CACtB,CAwPA,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAWjD,CAAA"}
@@ -147,6 +147,7 @@ export const renderListView = async args => {
147
147
  drawerSlug,
148
148
  enableRowSelections,
149
149
  i18n: req.i18n,
150
+ orderableFieldName: collectionConfig.orderable === true ? '_order' : undefined,
150
151
  payload,
151
152
  useAsTitle: collectionConfig.admin.useAsTitle
152
153
  });
@@ -201,6 +202,7 @@ export const renderListView = async args => {
201
202
  defaultSort: sort,
202
203
  listPreferences: listPreferences,
203
204
  modifySearchParams: !isInDrawer,
205
+ orderableFieldName: collectionConfig.orderable === true ? '_order' : undefined,
204
206
  children: RenderServerComponent({
205
207
  clientProps: {
206
208
  ...listViewSlots,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["DefaultListView","HydrateAuthProvider","ListQueryProvider","RenderServerComponent","renderFilters","renderTable","upsertPreferences","notFound","formatAdminURL","isNumber","mergeListSearchAndWhere","transformColumnsToPreferences","React","Fragment","getDocumentPermissions","renderListViewSlots","resolveAllFilterOptions","renderListView","args","clientConfig","customCellProps","disableBulkDelete","disableBulkEdit","disableQueryPresets","drawerSlug","enableRowSelections","initPageResult","overrideEntityVisibility","params","query","queryFromArgs","searchParams","collectionConfig","slug","collectionSlug","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","collections","read","Error","columns","listPreferences","key","value","limit","Number","undefined","preset","sort","routes","admin","adminRoute","includes","page","pagination","defaultLimit","defaultSort","where","search","baseListFilter","and","filter","Boolean","queryPreset","queryPresetPermissions","findByID","id","collection","depth","overrideAccess","find","c","data","then","docPermissions","err","logger","error","draft","fallbackLocale","includeLockStatus","clientCollectionConfig","columnState","Table","columnPreferences","docs","useAsTitle","renderedFilters","fields","importMap","resolvedFilterOptions","staticDescription","description","t","newDocumentURL","path","hasCreatePermission","create","serverProps","listSearchableFields","listViewSlots","clientProps","isInDrawer","List","_jsxs","_jsx","modifySearchParams","Component","components","views","list","Fallback","ListView","RenderedList","message","console"],"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n ColumnPreference,\n DefaultDocumentIDType,\n ListPreferences,\n ListQuery,\n ListViewClientProps,\n ListViewServerPropsOnly,\n QueryPreset,\n SanitizedCollectionPermission,\n Where,\n} from 'payload'\n\nimport { DefaultListView, HydrateAuthProvider, ListQueryProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { renderFilters, renderTable, upsertPreferences } from '@payloadcms/ui/rsc'\nimport { notFound } from 'next/navigation.js'\nimport {\n formatAdminURL,\n isNumber,\n mergeListSearchAndWhere,\n transformColumnsToPreferences,\n} from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { getDocumentPermissions } from '../Document/getDocumentPermissions.js'\nimport { renderListViewSlots } from './renderListViewSlots.js'\nimport { resolveAllFilterOptions } from './resolveAllFilterOptions.js'\n\ntype RenderListViewArgs = {\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n disableQueryPresets?: boolean\n drawerSlug?: string\n enableRowSelections: boolean\n overrideEntityVisibility?: boolean\n query: ListQuery\n redirectAfterDelete?: boolean\n redirectAfterDuplicate?: boolean\n} & AdminViewServerProps\n\nexport const renderListView = async (\n args: RenderListViewArgs,\n): Promise<{\n List: React.ReactNode\n}> => {\n const {\n clientConfig,\n customCellProps,\n disableBulkDelete,\n disableBulkEdit,\n disableQueryPresets,\n drawerSlug,\n enableRowSelections,\n initPageResult,\n overrideEntityVisibility,\n params,\n query: queryFromArgs,\n searchParams,\n } = args\n\n const {\n collectionConfig,\n collectionConfig: { slug: collectionSlug },\n locale: fullLocale,\n permissions,\n req,\n req: {\n i18n,\n locale,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n if (!permissions?.collections?.[collectionSlug]?.read) {\n throw new Error('not-found')\n }\n\n const query = queryFromArgs || queryFromReq\n\n const columns: ColumnPreference[] = transformColumnsToPreferences(\n query?.columns as ColumnPreference[] | string,\n )\n\n /**\n * @todo: find a pattern to avoid setting preferences on hard navigation, i.e. direct links, page refresh, etc.\n * This will ensure that prefs are only updated when explicitly set by the user\n * This could potentially be done by injecting a `sessionID` into the params and comparing it against a session cookie\n */\n const listPreferences = await upsertPreferences<ListPreferences>({\n key: `${collectionSlug}-list`,\n req,\n value: {\n columns,\n limit: isNumber(query?.limit) ? Number(query.limit) : undefined,\n preset: (query?.preset as DefaultDocumentIDType) || null,\n sort: query?.sort as string,\n },\n })\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n if (collectionConfig) {\n if (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility) {\n throw new Error('not-found')\n }\n\n const page = isNumber(query?.page) ? Number(query.page) : 0\n\n const limit = listPreferences?.limit || collectionConfig.admin.pagination.defaultLimit\n\n const sort =\n listPreferences?.sort ||\n (typeof collectionConfig.defaultSort === 'string' ? collectionConfig.defaultSort : undefined)\n\n let where = mergeListSearchAndWhere({\n collectionConfig,\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: (query?.where as Where) || undefined,\n })\n\n if (typeof collectionConfig.admin?.baseListFilter === 'function') {\n const baseListFilter = await collectionConfig.admin.baseListFilter({\n limit,\n page,\n req,\n sort,\n })\n\n if (baseListFilter) {\n where = {\n and: [where, baseListFilter].filter(Boolean),\n }\n }\n }\n\n let queryPreset: QueryPreset | undefined\n let queryPresetPermissions: SanitizedCollectionPermission | undefined\n\n if (listPreferences?.preset) {\n try {\n queryPreset = (await payload.findByID({\n id: listPreferences?.preset,\n collection: 'payload-query-presets',\n depth: 0,\n overrideAccess: false,\n user,\n })) as QueryPreset\n\n if (queryPreset) {\n queryPresetPermissions = await getDocumentPermissions({\n id: queryPreset.id,\n collectionConfig: config.collections.find((c) => c.slug === 'payload-query-presets'),\n data: queryPreset,\n req,\n })?.then(({ docPermissions }) => docPermissions)\n }\n } catch (err) {\n req.payload.logger.error(`Error fetching query preset or preset permissions: ${err}`)\n }\n }\n\n const data = await payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n includeLockStatus: true,\n limit,\n locale,\n overrideAccess: false,\n page,\n req,\n sort,\n user,\n where: where || {},\n })\n\n const clientCollectionConfig = clientConfig.collections.find((c) => c.slug === collectionSlug)\n\n const { columnState, Table } = renderTable({\n clientCollectionConfig,\n collectionConfig,\n columnPreferences: listPreferences?.columns,\n columns,\n customCellProps,\n docs: data.docs,\n drawerSlug,\n enableRowSelections,\n i18n: req.i18n,\n payload,\n useAsTitle: collectionConfig.admin.useAsTitle,\n })\n\n const renderedFilters = renderFilters(collectionConfig.fields, req.payload.importMap)\n\n const resolvedFilterOptions = await resolveAllFilterOptions({\n fields: collectionConfig.fields,\n req,\n })\n\n const staticDescription =\n typeof collectionConfig.admin.description === 'function'\n ? collectionConfig.admin.description({ t: i18n.t })\n : collectionConfig.admin.description\n\n const newDocumentURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n })\n\n const hasCreatePermission = permissions?.collections?.[collectionSlug]?.create\n\n const serverProps: ListViewServerPropsOnly = {\n collectionConfig,\n data,\n i18n,\n limit,\n listPreferences,\n listSearchableFields: collectionConfig.admin.listSearchableFields,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }\n\n const listViewSlots = renderListViewSlots({\n clientProps: {\n collectionSlug,\n hasCreatePermission,\n newDocumentURL,\n },\n collectionConfig,\n description: staticDescription,\n payload,\n serverProps,\n })\n\n const isInDrawer = Boolean(drawerSlug)\n\n return {\n List: (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <ListQueryProvider\n collectionSlug={collectionSlug}\n columns={transformColumnsToPreferences(columnState)}\n data={data}\n defaultLimit={limit}\n defaultSort={sort}\n listPreferences={listPreferences}\n modifySearchParams={!isInDrawer}\n >\n {RenderServerComponent({\n clientProps: {\n ...listViewSlots,\n collectionSlug,\n columnState,\n disableBulkDelete,\n disableBulkEdit,\n disableQueryPresets,\n enableRowSelections,\n hasCreatePermission,\n listPreferences,\n newDocumentURL,\n queryPreset,\n queryPresetPermissions,\n renderedFilters,\n resolvedFilterOptions,\n Table,\n } satisfies ListViewClientProps,\n Component: collectionConfig?.admin?.components?.views?.list?.Component,\n Fallback: DefaultListView,\n importMap: payload.importMap,\n serverProps,\n })}\n </ListQueryProvider>\n </Fragment>\n ),\n }\n }\n\n throw new Error('not-found')\n}\n\nexport const ListView: React.FC<RenderListViewArgs> = async (args) => {\n try {\n const { List: RenderedList } = await renderListView({ ...args, enableRowSelections: true })\n return RenderedList\n } catch (error) {\n if (error.message === 'not-found') {\n notFound()\n } else {\n console.error(error) // eslint-disable-line no-console\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["DefaultListView","HydrateAuthProvider","ListQueryProvider","RenderServerComponent","renderFilters","renderTable","upsertPreferences","notFound","formatAdminURL","isNumber","mergeListSearchAndWhere","transformColumnsToPreferences","React","Fragment","getDocumentPermissions","renderListViewSlots","resolveAllFilterOptions","renderListView","args","clientConfig","customCellProps","disableBulkDelete","disableBulkEdit","disableQueryPresets","drawerSlug","enableRowSelections","initPageResult","overrideEntityVisibility","params","query","queryFromArgs","searchParams","collectionConfig","slug","collectionSlug","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","collections","read","Error","columns","listPreferences","key","value","limit","Number","undefined","preset","sort","routes","admin","adminRoute","includes","page","pagination","defaultLimit","defaultSort","where","search","baseListFilter","and","filter","Boolean","queryPreset","queryPresetPermissions","findByID","id","collection","depth","overrideAccess","find","c","data","then","docPermissions","err","logger","error","draft","fallbackLocale","includeLockStatus","clientCollectionConfig","columnState","Table","columnPreferences","docs","orderableFieldName","orderable","useAsTitle","renderedFilters","fields","importMap","resolvedFilterOptions","staticDescription","description","t","newDocumentURL","path","hasCreatePermission","create","serverProps","listSearchableFields","listViewSlots","clientProps","isInDrawer","List","_jsxs","_jsx","modifySearchParams","Component","components","views","list","Fallback","ListView","RenderedList","message","console"],"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n ColumnPreference,\n DefaultDocumentIDType,\n ListPreferences,\n ListQuery,\n ListViewClientProps,\n ListViewServerPropsOnly,\n QueryPreset,\n SanitizedCollectionPermission,\n Where,\n} from 'payload'\n\nimport { DefaultListView, HydrateAuthProvider, ListQueryProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { renderFilters, renderTable, upsertPreferences } from '@payloadcms/ui/rsc'\nimport { notFound } from 'next/navigation.js'\nimport {\n formatAdminURL,\n isNumber,\n mergeListSearchAndWhere,\n transformColumnsToPreferences,\n} from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { getDocumentPermissions } from '../Document/getDocumentPermissions.js'\nimport { renderListViewSlots } from './renderListViewSlots.js'\nimport { resolveAllFilterOptions } from './resolveAllFilterOptions.js'\n\ntype RenderListViewArgs = {\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n disableQueryPresets?: boolean\n drawerSlug?: string\n enableRowSelections: boolean\n overrideEntityVisibility?: boolean\n query: ListQuery\n redirectAfterDelete?: boolean\n redirectAfterDuplicate?: boolean\n} & AdminViewServerProps\n\nexport const renderListView = async (\n args: RenderListViewArgs,\n): Promise<{\n List: React.ReactNode\n}> => {\n const {\n clientConfig,\n customCellProps,\n disableBulkDelete,\n disableBulkEdit,\n disableQueryPresets,\n drawerSlug,\n enableRowSelections,\n initPageResult,\n overrideEntityVisibility,\n params,\n query: queryFromArgs,\n searchParams,\n } = args\n\n const {\n collectionConfig,\n collectionConfig: { slug: collectionSlug },\n locale: fullLocale,\n permissions,\n req,\n req: {\n i18n,\n locale,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n if (!permissions?.collections?.[collectionSlug]?.read) {\n throw new Error('not-found')\n }\n\n const query = queryFromArgs || queryFromReq\n\n const columns: ColumnPreference[] = transformColumnsToPreferences(\n query?.columns as ColumnPreference[] | string,\n )\n\n /**\n * @todo: find a pattern to avoid setting preferences on hard navigation, i.e. direct links, page refresh, etc.\n * This will ensure that prefs are only updated when explicitly set by the user\n * This could potentially be done by injecting a `sessionID` into the params and comparing it against a session cookie\n */\n const listPreferences = await upsertPreferences<ListPreferences>({\n key: `${collectionSlug}-list`,\n req,\n value: {\n columns,\n limit: isNumber(query?.limit) ? Number(query.limit) : undefined,\n preset: (query?.preset as DefaultDocumentIDType) || null,\n sort: query?.sort as string,\n },\n })\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n if (collectionConfig) {\n if (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility) {\n throw new Error('not-found')\n }\n\n const page = isNumber(query?.page) ? Number(query.page) : 0\n\n const limit = listPreferences?.limit || collectionConfig.admin.pagination.defaultLimit\n\n const sort =\n listPreferences?.sort ||\n (typeof collectionConfig.defaultSort === 'string' ? collectionConfig.defaultSort : undefined)\n\n let where = mergeListSearchAndWhere({\n collectionConfig,\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: (query?.where as Where) || undefined,\n })\n\n if (typeof collectionConfig.admin?.baseListFilter === 'function') {\n const baseListFilter = await collectionConfig.admin.baseListFilter({\n limit,\n page,\n req,\n sort,\n })\n\n if (baseListFilter) {\n where = {\n and: [where, baseListFilter].filter(Boolean),\n }\n }\n }\n\n let queryPreset: QueryPreset | undefined\n let queryPresetPermissions: SanitizedCollectionPermission | undefined\n\n if (listPreferences?.preset) {\n try {\n queryPreset = (await payload.findByID({\n id: listPreferences?.preset,\n collection: 'payload-query-presets',\n depth: 0,\n overrideAccess: false,\n user,\n })) as QueryPreset\n\n if (queryPreset) {\n queryPresetPermissions = await getDocumentPermissions({\n id: queryPreset.id,\n collectionConfig: config.collections.find((c) => c.slug === 'payload-query-presets'),\n data: queryPreset,\n req,\n })?.then(({ docPermissions }) => docPermissions)\n }\n } catch (err) {\n req.payload.logger.error(`Error fetching query preset or preset permissions: ${err}`)\n }\n }\n\n const data = await payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n includeLockStatus: true,\n limit,\n locale,\n overrideAccess: false,\n page,\n req,\n sort,\n user,\n where: where || {},\n })\n\n const clientCollectionConfig = clientConfig.collections.find((c) => c.slug === collectionSlug)\n\n const { columnState, Table } = renderTable({\n clientCollectionConfig,\n collectionConfig,\n columnPreferences: listPreferences?.columns,\n columns,\n customCellProps,\n docs: data.docs,\n drawerSlug,\n enableRowSelections,\n i18n: req.i18n,\n orderableFieldName: collectionConfig.orderable === true ? '_order' : undefined,\n payload,\n useAsTitle: collectionConfig.admin.useAsTitle,\n })\n\n const renderedFilters = renderFilters(collectionConfig.fields, req.payload.importMap)\n\n const resolvedFilterOptions = await resolveAllFilterOptions({\n fields: collectionConfig.fields,\n req,\n })\n\n const staticDescription =\n typeof collectionConfig.admin.description === 'function'\n ? collectionConfig.admin.description({ t: i18n.t })\n : collectionConfig.admin.description\n\n const newDocumentURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n })\n\n const hasCreatePermission = permissions?.collections?.[collectionSlug]?.create\n\n const serverProps: ListViewServerPropsOnly = {\n collectionConfig,\n data,\n i18n,\n limit,\n listPreferences,\n listSearchableFields: collectionConfig.admin.listSearchableFields,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }\n\n const listViewSlots = renderListViewSlots({\n clientProps: {\n collectionSlug,\n hasCreatePermission,\n newDocumentURL,\n },\n collectionConfig,\n description: staticDescription,\n payload,\n serverProps,\n })\n\n const isInDrawer = Boolean(drawerSlug)\n\n return {\n List: (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <ListQueryProvider\n collectionSlug={collectionSlug}\n columns={transformColumnsToPreferences(columnState)}\n data={data}\n defaultLimit={limit}\n defaultSort={sort}\n listPreferences={listPreferences}\n modifySearchParams={!isInDrawer}\n orderableFieldName={collectionConfig.orderable === true ? '_order' : undefined}\n >\n {RenderServerComponent({\n clientProps: {\n ...listViewSlots,\n collectionSlug,\n columnState,\n disableBulkDelete,\n disableBulkEdit,\n disableQueryPresets,\n enableRowSelections,\n hasCreatePermission,\n listPreferences,\n newDocumentURL,\n queryPreset,\n queryPresetPermissions,\n renderedFilters,\n resolvedFilterOptions,\n Table,\n } satisfies ListViewClientProps,\n Component: collectionConfig?.admin?.components?.views?.list?.Component,\n Fallback: DefaultListView,\n importMap: payload.importMap,\n serverProps,\n })}\n </ListQueryProvider>\n </Fragment>\n ),\n }\n }\n\n throw new Error('not-found')\n}\n\nexport const ListView: React.FC<RenderListViewArgs> = async (args) => {\n try {\n const { List: RenderedList } = await renderListView({ ...args, enableRowSelections: true })\n return RenderedList\n } catch (error) {\n if (error.message === 'not-found') {\n notFound()\n } else {\n console.error(error) // eslint-disable-line no-console\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,uBAAuB,EAAgC,MAAM,SAAS,CAAA;AAEpF,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,aAAa,CAAA;AAEnC,wBAAsB,YAAY,CAAC,KAAK,EAAE,uBAAuB,8BAkMhE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,uBAAuB,EAAgC,MAAM,SAAS,CAAA;AAEpF,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,aAAa,CAAA;AAEnC,wBAAsB,YAAY,CAAC,KAAK,EAAE,uBAAuB,8BAmMhE"}
@@ -179,6 +179,7 @@ export async function VersionsView(props) {
179
179
  defaultLimit: limitToUse,
180
180
  defaultSort: sort,
181
181
  modifySearchParams: true,
182
+ orderableFieldName: collectionConfig?.orderable === true ? '_order' : undefined,
182
183
  children: /*#__PURE__*/_jsx(VersionsViewClient, {
183
184
  baseClass: baseClass,
184
185
  columns: columns,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Gutter","ListQueryProvider","SetDocumentStepNav","notFound","logError","isNumber","React","buildVersionColumns","getLatestVersion","VersionsViewClient","baseClass","VersionsView","props","initPageResult","searchParams","collectionConfig","docID","id","globalConfig","req","i18n","payload","config","t","user","collectionSlug","slug","globalSlug","limit","page","sort","localization","routes","api","apiRoute","serverURL","versionsData","limitToUse","Number","undefined","latestPublishedVersion","latestDraftVersion","admin","pagination","defaultLimit","whereQuery","and","parent","equals","versions","drafts","push","snapshot","not_equals","findVersions","collection","depth","overrideAccess","parseInt","toString","where","type","parentID","status","err","findGlobalVersions","fetchURL","publishedNewerThanDraft","updatedAt","columns","docs","pluralLabel","labels","plural","label","_jsxs","Fragment","_jsx","useAsTitle","view","className","data","defaultSort","modifySearchParams","paginationLimits","limits"],"sources":["../../../src/views/Versions/index.tsx"],"sourcesContent":["import { Gutter, ListQueryProvider, SetDocumentStepNav } from '@payloadcms/ui'\nimport { notFound } from 'next/navigation.js'\nimport { type DocumentViewServerProps, logError, type PaginatedDocs } from 'payload'\nimport { isNumber } from 'payload/shared'\nimport React from 'react'\n\nimport { buildVersionColumns } from './buildColumns.js'\nimport { getLatestVersion } from './getLatestVersion.js'\nimport { VersionsViewClient } from './index.client.js'\nimport './index.scss'\n\nexport const baseClass = 'versions'\n\nexport async function VersionsView(props: DocumentViewServerProps) {\n const { initPageResult, searchParams } = props\n\n const {\n collectionConfig,\n docID: id,\n globalConfig,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n t,\n user,\n },\n } = initPageResult\n\n const collectionSlug = collectionConfig?.slug\n const globalSlug = globalConfig?.slug\n const { limit, page, sort } = searchParams\n\n const {\n localization,\n routes: { api: apiRoute },\n serverURL,\n } = config\n\n let versionsData: PaginatedDocs\n let limitToUse = isNumber(limit) ? Number(limit) : undefined\n let latestPublishedVersion = null\n let latestDraftVersion = null\n\n if (collectionSlug) {\n limitToUse = limitToUse || collectionConfig.admin.pagination.defaultLimit\n const whereQuery: {\n and: Array<{ parent?: { equals: number | string }; snapshot?: { not_equals: boolean } }>\n } = {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n ],\n }\n\n if (localization && collectionConfig?.versions?.drafts) {\n whereQuery.and.push({\n snapshot: {\n not_equals: true,\n },\n })\n }\n\n try {\n versionsData = await payload.findVersions({\n collection: collectionSlug,\n depth: 0,\n limit: limitToUse,\n overrideAccess: false,\n page: page ? parseInt(page.toString(), 10) : undefined,\n req,\n sort: sort as string,\n user,\n where: whereQuery,\n })\n if (collectionConfig?.versions?.drafts) {\n latestDraftVersion = await getLatestVersion({\n slug: collectionSlug,\n type: 'collection',\n parentID: id,\n payload,\n status: 'draft',\n })\n latestPublishedVersion = await getLatestVersion({\n slug: collectionSlug,\n type: 'collection',\n parentID: id,\n payload,\n status: 'published',\n })\n }\n } catch (err) {\n logError({ err, payload })\n }\n }\n\n if (globalSlug) {\n limitToUse = limitToUse || 10\n const whereQuery =\n localization && globalConfig?.versions?.drafts\n ? {\n snapshot: {\n not_equals: true,\n },\n }\n : {}\n\n try {\n versionsData = await payload.findGlobalVersions({\n slug: globalSlug,\n depth: 0,\n limit: limitToUse,\n overrideAccess: false,\n page: page ? parseInt(page as string, 10) : undefined,\n req,\n sort: sort as string,\n user,\n where: whereQuery,\n })\n\n if (globalConfig?.versions?.drafts) {\n latestDraftVersion = await getLatestVersion({\n slug: globalSlug,\n type: 'global',\n payload,\n status: 'draft',\n })\n latestPublishedVersion = await getLatestVersion({\n slug: globalSlug,\n type: 'global',\n payload,\n status: 'published',\n })\n }\n } catch (err) {\n logError({ err, payload })\n }\n\n if (!versionsData) {\n return notFound()\n }\n }\n const fetchURL = collectionSlug\n ? `${serverURL}${apiRoute}/${collectionSlug}/versions`\n : globalSlug\n ? `${serverURL}${apiRoute}/globals/${globalSlug}/versions`\n : ''\n\n const publishedNewerThanDraft = latestPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt\n\n if (publishedNewerThanDraft) {\n latestDraftVersion = {\n id: '',\n updatedAt: '',\n }\n }\n\n const columns = buildVersionColumns({\n collectionConfig,\n config,\n docID: id,\n docs: versionsData?.docs,\n globalConfig,\n i18n,\n latestDraftVersion: latestDraftVersion?.id,\n latestPublishedVersion: latestPublishedVersion?.id,\n })\n\n const pluralLabel = collectionConfig?.labels?.plural\n ? typeof collectionConfig.labels.plural === 'function'\n ? collectionConfig.labels.plural({ i18n, t })\n : collectionConfig.labels.plural\n : globalConfig?.label\n\n return (\n <React.Fragment>\n <SetDocumentStepNav\n collectionSlug={collectionConfig?.slug}\n globalSlug={globalConfig?.slug}\n id={id}\n pluralLabel={pluralLabel}\n useAsTitle={collectionConfig?.admin?.useAsTitle || globalConfig?.slug}\n view={i18n.t('version:versions')}\n />\n <main className={baseClass}>\n <Gutter className={`${baseClass}__wrap`}>\n <ListQueryProvider\n data={versionsData}\n defaultLimit={limitToUse}\n defaultSort={sort as string}\n modifySearchParams\n >\n <VersionsViewClient\n baseClass={baseClass}\n columns={columns}\n fetchURL={fetchURL}\n paginationLimits={collectionConfig?.admin?.pagination?.limits}\n />\n </ListQueryProvider>\n </Gutter>\n </main>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Gutter","ListQueryProvider","SetDocumentStepNav","notFound","logError","isNumber","React","buildVersionColumns","getLatestVersion","VersionsViewClient","baseClass","VersionsView","props","initPageResult","searchParams","collectionConfig","docID","id","globalConfig","req","i18n","payload","config","t","user","collectionSlug","slug","globalSlug","limit","page","sort","localization","routes","api","apiRoute","serverURL","versionsData","limitToUse","Number","undefined","latestPublishedVersion","latestDraftVersion","admin","pagination","defaultLimit","whereQuery","and","parent","equals","versions","drafts","push","snapshot","not_equals","findVersions","collection","depth","overrideAccess","parseInt","toString","where","type","parentID","status","err","findGlobalVersions","fetchURL","publishedNewerThanDraft","updatedAt","columns","docs","pluralLabel","labels","plural","label","_jsxs","Fragment","_jsx","useAsTitle","view","className","data","defaultSort","modifySearchParams","orderableFieldName","orderable","paginationLimits","limits"],"sources":["../../../src/views/Versions/index.tsx"],"sourcesContent":["import { Gutter, ListQueryProvider, SetDocumentStepNav } from '@payloadcms/ui'\nimport { notFound } from 'next/navigation.js'\nimport { type DocumentViewServerProps, logError, type PaginatedDocs } from 'payload'\nimport { isNumber } from 'payload/shared'\nimport React from 'react'\n\nimport { buildVersionColumns } from './buildColumns.js'\nimport { getLatestVersion } from './getLatestVersion.js'\nimport { VersionsViewClient } from './index.client.js'\nimport './index.scss'\n\nexport const baseClass = 'versions'\n\nexport async function VersionsView(props: DocumentViewServerProps) {\n const { initPageResult, searchParams } = props\n\n const {\n collectionConfig,\n docID: id,\n globalConfig,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n t,\n user,\n },\n } = initPageResult\n\n const collectionSlug = collectionConfig?.slug\n const globalSlug = globalConfig?.slug\n const { limit, page, sort } = searchParams\n\n const {\n localization,\n routes: { api: apiRoute },\n serverURL,\n } = config\n\n let versionsData: PaginatedDocs\n let limitToUse = isNumber(limit) ? Number(limit) : undefined\n let latestPublishedVersion = null\n let latestDraftVersion = null\n\n if (collectionSlug) {\n limitToUse = limitToUse || collectionConfig.admin.pagination.defaultLimit\n const whereQuery: {\n and: Array<{ parent?: { equals: number | string }; snapshot?: { not_equals: boolean } }>\n } = {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n ],\n }\n\n if (localization && collectionConfig?.versions?.drafts) {\n whereQuery.and.push({\n snapshot: {\n not_equals: true,\n },\n })\n }\n\n try {\n versionsData = await payload.findVersions({\n collection: collectionSlug,\n depth: 0,\n limit: limitToUse,\n overrideAccess: false,\n page: page ? parseInt(page.toString(), 10) : undefined,\n req,\n sort: sort as string,\n user,\n where: whereQuery,\n })\n if (collectionConfig?.versions?.drafts) {\n latestDraftVersion = await getLatestVersion({\n slug: collectionSlug,\n type: 'collection',\n parentID: id,\n payload,\n status: 'draft',\n })\n latestPublishedVersion = await getLatestVersion({\n slug: collectionSlug,\n type: 'collection',\n parentID: id,\n payload,\n status: 'published',\n })\n }\n } catch (err) {\n logError({ err, payload })\n }\n }\n\n if (globalSlug) {\n limitToUse = limitToUse || 10\n const whereQuery =\n localization && globalConfig?.versions?.drafts\n ? {\n snapshot: {\n not_equals: true,\n },\n }\n : {}\n\n try {\n versionsData = await payload.findGlobalVersions({\n slug: globalSlug,\n depth: 0,\n limit: limitToUse,\n overrideAccess: false,\n page: page ? parseInt(page as string, 10) : undefined,\n req,\n sort: sort as string,\n user,\n where: whereQuery,\n })\n\n if (globalConfig?.versions?.drafts) {\n latestDraftVersion = await getLatestVersion({\n slug: globalSlug,\n type: 'global',\n payload,\n status: 'draft',\n })\n latestPublishedVersion = await getLatestVersion({\n slug: globalSlug,\n type: 'global',\n payload,\n status: 'published',\n })\n }\n } catch (err) {\n logError({ err, payload })\n }\n\n if (!versionsData) {\n return notFound()\n }\n }\n const fetchURL = collectionSlug\n ? `${serverURL}${apiRoute}/${collectionSlug}/versions`\n : globalSlug\n ? `${serverURL}${apiRoute}/globals/${globalSlug}/versions`\n : ''\n\n const publishedNewerThanDraft = latestPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt\n\n if (publishedNewerThanDraft) {\n latestDraftVersion = {\n id: '',\n updatedAt: '',\n }\n }\n\n const columns = buildVersionColumns({\n collectionConfig,\n config,\n docID: id,\n docs: versionsData?.docs,\n globalConfig,\n i18n,\n latestDraftVersion: latestDraftVersion?.id,\n latestPublishedVersion: latestPublishedVersion?.id,\n })\n\n const pluralLabel = collectionConfig?.labels?.plural\n ? typeof collectionConfig.labels.plural === 'function'\n ? collectionConfig.labels.plural({ i18n, t })\n : collectionConfig.labels.plural\n : globalConfig?.label\n\n return (\n <React.Fragment>\n <SetDocumentStepNav\n collectionSlug={collectionConfig?.slug}\n globalSlug={globalConfig?.slug}\n id={id}\n pluralLabel={pluralLabel}\n useAsTitle={collectionConfig?.admin?.useAsTitle || globalConfig?.slug}\n view={i18n.t('version:versions')}\n />\n <main className={baseClass}>\n <Gutter className={`${baseClass}__wrap`}>\n <ListQueryProvider\n data={versionsData}\n defaultLimit={limitToUse}\n defaultSort={sort as string}\n modifySearchParams\n orderableFieldName={collectionConfig?.orderable === true ? '_order' : undefined}\n >\n <VersionsViewClient\n baseClass={baseClass}\n columns={columns}\n fetchURL={fetchURL}\n paginationLimits={collectionConfig?.admin?.pagination?.limits}\n />\n </ListQueryProvider>\n </Gutter>\n </main>\n </React.Fragment>\n )\n}\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.32.0-internal.f2e77bd",
3
+ "version": "3.32.0",
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.5",
80
80
  "sass": "1.77.4",
81
81
  "uuid": "10.0.0",
82
- "@payloadcms/graphql": "3.32.0-internal.f2e77bd",
83
- "@payloadcms/ui": "3.32.0-internal.f2e77bd",
84
- "@payloadcms/translations": "3.32.0-internal.f2e77bd"
82
+ "@payloadcms/translations": "3.32.0",
83
+ "@payloadcms/graphql": "3.32.0",
84
+ "@payloadcms/ui": "3.32.0"
85
85
  },
86
86
  "devDependencies": {
87
87
  "@babel/cli": "7.26.4",
@@ -99,13 +99,13 @@
99
99
  "esbuild-sass-plugin": "3.3.1",
100
100
  "eslint-plugin-react-compiler": "19.0.0-beta-714736e-20250131",
101
101
  "swc-plugin-transform-remove-imports": "3.1.0",
102
- "payload": "3.32.0-internal.f2e77bd",
102
+ "payload": "3.32.0",
103
103
  "@payloadcms/eslint-config": "3.28.0"
104
104
  },
105
105
  "peerDependencies": {
106
106
  "graphql": "^16.8.1",
107
107
  "next": "^15.2.3",
108
- "payload": "3.32.0-internal.f2e77bd"
108
+ "payload": "3.32.0"
109
109
  },
110
110
  "engines": {
111
111
  "node": "^18.20.2 || >=20.9.0"