@payloadcms/next 3.0.0-beta.74 → 3.0.0-beta.76

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 (55) hide show
  1. package/dist/cjs/withPayload.cjs +15 -13
  2. package/dist/cjs/withPayload.cjs.map +1 -1
  3. package/dist/elements/EmailAndUsername/index.js +1 -0
  4. package/dist/elements/EmailAndUsername/index.js.map +1 -1
  5. package/dist/elements/Nav/index.client.d.ts.map +1 -1
  6. package/dist/elements/Nav/index.client.js +5 -3
  7. package/dist/elements/Nav/index.client.js.map +1 -1
  8. package/dist/elements/Nav/index.scss +0 -7
  9. package/dist/layouts/Root/index.d.ts.map +1 -1
  10. package/dist/layouts/Root/index.js +16 -1
  11. package/dist/layouts/Root/index.js.map +1 -1
  12. package/dist/prod/styles.css +1 -1
  13. package/dist/utilities/meta.d.ts.map +1 -1
  14. package/dist/utilities/meta.js +2 -4
  15. package/dist/utilities/meta.js.map +1 -1
  16. package/dist/views/Account/index.js +3 -4
  17. package/dist/views/Account/index.js.map +1 -1
  18. package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
  19. package/dist/views/CreateFirstUser/index.client.js +1 -0
  20. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  21. package/dist/views/Dashboard/index.js +3 -4
  22. package/dist/views/Dashboard/index.js.map +1 -1
  23. package/dist/views/Document/index.d.ts.map +1 -1
  24. package/dist/views/Document/index.js +3 -4
  25. package/dist/views/Document/index.js.map +1 -1
  26. package/dist/views/Edit/Default/index.d.ts.map +1 -1
  27. package/dist/views/Edit/Default/index.js +4 -1
  28. package/dist/views/Edit/Default/index.js.map +1 -1
  29. package/dist/views/List/index.d.ts.map +1 -1
  30. package/dist/views/List/index.js +20 -7
  31. package/dist/views/List/index.js.map +1 -1
  32. package/dist/views/NotFound/index.d.ts.map +1 -1
  33. package/dist/views/NotFound/index.js +12 -21
  34. package/dist/views/NotFound/index.js.map +1 -1
  35. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +1 -1
  36. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +41 -21
  37. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  38. package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts +2 -2
  39. package/dist/views/Version/RenderFieldsToDiff/fields/index.js +3 -2
  40. package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
  41. package/dist/views/Version/index.d.ts +1 -1
  42. package/dist/views/Version/index.d.ts.map +1 -1
  43. package/dist/views/Version/index.js +32 -5
  44. package/dist/views/Version/index.js.map +1 -1
  45. package/dist/views/Versions/getLatestVersion.d.ts +13 -4
  46. package/dist/views/Versions/getLatestVersion.d.ts.map +1 -1
  47. package/dist/views/Versions/getLatestVersion.js +6 -1
  48. package/dist/views/Versions/getLatestVersion.js.map +1 -1
  49. package/dist/views/Versions/index.d.ts.map +1 -1
  50. package/dist/views/Versions/index.js +24 -4
  51. package/dist/views/Versions/index.js.map +1 -1
  52. package/dist/withPayload.d.ts.map +1 -1
  53. package/dist/withPayload.js +15 -13
  54. package/dist/withPayload.js.map +1 -1
  55. package/package.json +7 -7
@@ -10,51 +10,71 @@ import { diffStyles } from '../styles.js';
10
10
  const ReactDiffViewer = ReactDiffViewerImport.default || ReactDiffViewerImport;
11
11
  const baseClass = 'relationship-diff';
12
12
  const generateLabelFromValue = (collections, field, locale, value)=>{
13
- let relation;
13
+ if (Array.isArray(value)) {
14
+ return value.map((v)=>generateLabelFromValue(collections, field, locale, v)).filter(Boolean) // Filters out any undefined or empty values
15
+ .join(', ');
16
+ }
14
17
  let relatedDoc;
15
18
  let valueToReturn = '';
16
19
  const relationTo = 'relationTo' in field.fieldComponentProps ? field.fieldComponentProps.relationTo : undefined;
17
20
  if (value === null || typeof value === 'undefined') {
18
21
  return String(value);
19
22
  }
20
- if (Array.isArray(relationTo)) {
21
- if (typeof value === 'object') {
22
- relation = value.relationTo;
23
- relatedDoc = value.value;
24
- }
23
+ if (typeof value === 'object' && 'relationTo' in value) {
24
+ relatedDoc = value.value;
25
25
  } else {
26
- relation = relationTo;
26
+ // Non-polymorphic relationship
27
27
  relatedDoc = value;
28
28
  }
29
- const relatedCollection = collections.find((c)=>c.slug === relation);
29
+ const relatedCollection = relationTo ? collections.find((c)=>c.slug === (typeof value === 'object' && 'relationTo' in value ? value.relationTo : relationTo)) : null;
30
30
  if (relatedCollection) {
31
31
  const useAsTitle = relatedCollection?.admin?.useAsTitle;
32
32
  const useAsTitleField = relatedCollection.fields.find((f)=>fieldAffectsData(f) && !fieldIsPresentationalOnly(f) && f.name === useAsTitle);
33
33
  let titleFieldIsLocalized = false;
34
- if (useAsTitleField && fieldAffectsData(useAsTitleField)) titleFieldIsLocalized = useAsTitleField.localized;
34
+ if (useAsTitleField && fieldAffectsData(useAsTitleField)) {
35
+ titleFieldIsLocalized = useAsTitleField.localized;
36
+ }
35
37
  if (typeof relatedDoc?.[useAsTitle] !== 'undefined') {
36
38
  valueToReturn = relatedDoc[useAsTitle];
37
39
  } else if (typeof relatedDoc?.id !== 'undefined') {
38
40
  valueToReturn = relatedDoc.id;
41
+ } else {
42
+ valueToReturn = relatedDoc;
39
43
  }
40
44
  if (typeof valueToReturn === 'object' && titleFieldIsLocalized) {
41
45
  valueToReturn = valueToReturn[locale];
42
46
  }
47
+ } else if (relatedDoc) {
48
+ // Handle non-polymorphic `hasMany` relationships or fallback
49
+ if (typeof relatedDoc?.id !== 'undefined') {
50
+ valueToReturn = relatedDoc.id;
51
+ } else {
52
+ valueToReturn = relatedDoc;
53
+ }
54
+ }
55
+ if (typeof valueToReturn === 'object' && valueToReturn !== null) {
56
+ valueToReturn = JSON.stringify(valueToReturn);
43
57
  }
44
58
  return valueToReturn;
45
59
  };
46
60
  const Relationship = ({ comparison, field, i18n, locale, version })=>{
47
- let placeholder = '';
61
+ const placeholder = `[${i18n.t('general:noValue')}]`;
48
62
  const { collections } = useConfig();
49
- if (version === comparison) placeholder = `[${i18n.t('general:noValue')}]`;
50
- let versionToRender = version;
51
- let comparisonToRender = comparison;
52
- if ('hasMany' in field && field.hasMany) {
53
- if (Array.isArray(version)) versionToRender = version.map((val)=>generateLabelFromValue(collections, field, locale, val)).join(', ');
54
- if (Array.isArray(comparison)) comparisonToRender = comparison.map((val)=>generateLabelFromValue(collections, field, locale, val)).join(', ');
55
- } else {
56
- versionToRender = generateLabelFromValue(collections, field, locale, version);
57
- comparisonToRender = generateLabelFromValue(collections, field, locale, comparison);
63
+ let versionToRender = placeholder;
64
+ let comparisonToRender = placeholder;
65
+ if (version) {
66
+ if ('hasMany' in field && field.hasMany && Array.isArray(version)) {
67
+ versionToRender = version.map((val)=>generateLabelFromValue(collections, field, locale, val)).join(', ') || placeholder;
68
+ } else {
69
+ versionToRender = generateLabelFromValue(collections, field, locale, version) || placeholder;
70
+ }
71
+ }
72
+ if (comparison) {
73
+ if ('hasMany' in field && field.hasMany && Array.isArray(comparison)) {
74
+ comparisonToRender = comparison.map((val)=>generateLabelFromValue(collections, field, locale, val)).join(', ') || placeholder;
75
+ } else {
76
+ comparisonToRender = generateLabelFromValue(collections, field, locale, comparison) || placeholder;
77
+ }
58
78
  }
59
79
  const label = 'label' in field.fieldComponentProps && typeof field.fieldComponentProps.label !== 'boolean' && typeof field.fieldComponentProps.label !== 'function' ? field.fieldComponentProps.label : '';
60
80
  return /*#__PURE__*/ _jsxs("div", {
@@ -71,8 +91,8 @@ const Relationship = ({ comparison, field, i18n, locale, version })=>{
71
91
  }),
72
92
  /*#__PURE__*/ _jsx(ReactDiffViewer, {
73
93
  hideLineNumbers: true,
74
- newValue: typeof versionToRender !== 'undefined' ? String(versionToRender) : placeholder,
75
- oldValue: typeof comparisonToRender !== 'undefined' ? String(comparisonToRender) : placeholder,
94
+ newValue: versionToRender,
95
+ oldValue: comparisonToRender,
76
96
  showDiffOnly: false,
77
97
  splitView: true,
78
98
  styles: diffStyles
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, MappedField } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useConfig } from '@payloadcms/ui'\nimport { fieldAffectsData, fieldIsPresentationalOnly } from 'payload/shared'\nimport React from 'react'\nimport ReactDiffViewerImport from 'react-diff-viewer-continued'\n\nimport type { Props } from '../types.js'\n\nimport Label from '../../Label/index.js'\nimport { diffStyles } from '../styles.js'\nimport './index.scss'\n\nconst ReactDiffViewer = (ReactDiffViewerImport.default ||\n ReactDiffViewerImport) as unknown as typeof ReactDiffViewerImport.default\n\nconst baseClass = 'relationship-diff'\n\ntype RelationshipValue = Record<string, any>\n\nconst generateLabelFromValue = (\n collections: ClientCollectionConfig[],\n field: MappedField,\n locale: string,\n value: { relationTo: string; value: RelationshipValue } | RelationshipValue,\n): string => {\n let relation: string\n let relatedDoc: RelationshipValue\n let valueToReturn = '' as any\n\n const relationTo =\n 'relationTo' in field.fieldComponentProps ? field.fieldComponentProps.relationTo : undefined\n\n if (value === null || typeof value === 'undefined') {\n return String(value)\n }\n\n if (Array.isArray(relationTo)) {\n if (typeof value === 'object') {\n relation = value.relationTo\n relatedDoc = value.value\n }\n } else {\n relation = relationTo\n relatedDoc = value\n }\n\n const relatedCollection = collections.find((c) => c.slug === relation)\n\n if (relatedCollection) {\n const useAsTitle = relatedCollection?.admin?.useAsTitle\n const useAsTitleField = relatedCollection.fields.find(\n (f) => fieldAffectsData(f) && !fieldIsPresentationalOnly(f) && f.name === useAsTitle,\n )\n let titleFieldIsLocalized = false\n\n if (useAsTitleField && fieldAffectsData(useAsTitleField))\n titleFieldIsLocalized = useAsTitleField.localized\n\n if (typeof relatedDoc?.[useAsTitle] !== 'undefined') {\n valueToReturn = relatedDoc[useAsTitle]\n } else if (typeof relatedDoc?.id !== 'undefined') {\n valueToReturn = relatedDoc.id\n }\n\n if (typeof valueToReturn === 'object' && titleFieldIsLocalized) {\n valueToReturn = valueToReturn[locale]\n }\n }\n\n return valueToReturn\n}\n\nconst Relationship: React.FC<Props> = ({ comparison, field, i18n, locale, version }) => {\n let placeholder = ''\n\n const { collections } = useConfig()\n\n if (version === comparison) placeholder = `[${i18n.t('general:noValue')}]`\n\n let versionToRender = version\n let comparisonToRender = comparison\n\n if ('hasMany' in field && field.hasMany) {\n if (Array.isArray(version))\n versionToRender = version\n .map((val) => generateLabelFromValue(collections, field, locale, val))\n .join(', ')\n if (Array.isArray(comparison))\n comparisonToRender = comparison\n .map((val) => generateLabelFromValue(collections, field, locale, val))\n .join(', ')\n } else {\n versionToRender = generateLabelFromValue(collections, field, locale, version)\n comparisonToRender = generateLabelFromValue(collections, field, locale, comparison)\n }\n\n const label =\n 'label' in field.fieldComponentProps &&\n typeof field.fieldComponentProps.label !== 'boolean' &&\n typeof field.fieldComponentProps.label !== 'function'\n ? field.fieldComponentProps.label\n : ''\n\n return (\n <div className={baseClass}>\n <Label>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {getTranslation(label, i18n)}\n </Label>\n <ReactDiffViewer\n hideLineNumbers\n newValue={typeof versionToRender !== 'undefined' ? String(versionToRender) : placeholder}\n oldValue={\n typeof comparisonToRender !== 'undefined' ? String(comparisonToRender) : placeholder\n }\n showDiffOnly={false}\n splitView\n styles={diffStyles}\n />\n </div>\n )\n}\n\nexport default Relationship\n"],"names":["getTranslation","useConfig","fieldAffectsData","fieldIsPresentationalOnly","React","ReactDiffViewerImport","Label","diffStyles","ReactDiffViewer","default","baseClass","generateLabelFromValue","collections","field","locale","value","relation","relatedDoc","valueToReturn","relationTo","fieldComponentProps","undefined","String","Array","isArray","relatedCollection","find","c","slug","useAsTitle","admin","useAsTitleField","fields","f","name","titleFieldIsLocalized","localized","id","Relationship","comparison","i18n","version","placeholder","t","versionToRender","comparisonToRender","hasMany","map","val","join","label","div","className","span","hideLineNumbers","newValue","oldValue","showDiffOnly","splitView","styles"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, MappedField } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useConfig } from '@payloadcms/ui'\nimport { fieldAffectsData, fieldIsPresentationalOnly } from 'payload/shared'\nimport React from 'react'\nimport ReactDiffViewerImport from 'react-diff-viewer-continued'\n\nimport type { Props } from '../types.js'\n\nimport Label from '../../Label/index.js'\nimport { diffStyles } from '../styles.js'\nimport './index.scss'\n\nconst ReactDiffViewer = (ReactDiffViewerImport.default ||\n ReactDiffViewerImport) as unknown as typeof ReactDiffViewerImport.default\n\nconst baseClass = 'relationship-diff'\n\ntype RelationshipValue = Record<string, any>\n\nconst generateLabelFromValue = (\n collections: ClientCollectionConfig[],\n field: MappedField,\n locale: string,\n value: { relationTo: string; value: RelationshipValue } | RelationshipValue,\n): string => {\n if (Array.isArray(value)) {\n return value\n .map((v) => generateLabelFromValue(collections, field, locale, v))\n .filter(Boolean) // Filters out any undefined or empty values\n .join(', ')\n }\n\n let relatedDoc: RelationshipValue\n let valueToReturn = '' as any\n\n const relationTo =\n 'relationTo' in field.fieldComponentProps ? field.fieldComponentProps.relationTo : undefined\n\n if (value === null || typeof value === 'undefined') {\n return String(value)\n }\n\n if (typeof value === 'object' && 'relationTo' in value) {\n relatedDoc = value.value\n } else {\n // Non-polymorphic relationship\n relatedDoc = value\n }\n\n const relatedCollection = relationTo\n ? collections.find(\n (c) =>\n c.slug ===\n (typeof value === 'object' && 'relationTo' in value ? value.relationTo : relationTo),\n )\n : null\n\n if (relatedCollection) {\n const useAsTitle = relatedCollection?.admin?.useAsTitle\n const useAsTitleField = relatedCollection.fields.find(\n (f) => fieldAffectsData(f) && !fieldIsPresentationalOnly(f) && f.name === useAsTitle,\n )\n let titleFieldIsLocalized = false\n\n if (useAsTitleField && fieldAffectsData(useAsTitleField)) {\n titleFieldIsLocalized = useAsTitleField.localized\n }\n\n if (typeof relatedDoc?.[useAsTitle] !== 'undefined') {\n valueToReturn = relatedDoc[useAsTitle]\n } else if (typeof relatedDoc?.id !== 'undefined') {\n valueToReturn = relatedDoc.id\n } else {\n valueToReturn = relatedDoc\n }\n\n if (typeof valueToReturn === 'object' && titleFieldIsLocalized) {\n valueToReturn = valueToReturn[locale]\n }\n } else if (relatedDoc) {\n // Handle non-polymorphic `hasMany` relationships or fallback\n if (typeof relatedDoc?.id !== 'undefined') {\n valueToReturn = relatedDoc.id\n } else {\n valueToReturn = relatedDoc\n }\n }\n\n if (typeof valueToReturn === 'object' && valueToReturn !== null) {\n valueToReturn = JSON.stringify(valueToReturn)\n }\n\n return valueToReturn\n}\n\nconst Relationship: React.FC<Props> = ({ comparison, field, i18n, locale, version }) => {\n const placeholder = `[${i18n.t('general:noValue')}]`\n\n const { collections } = useConfig()\n\n let versionToRender: string | undefined = placeholder\n let comparisonToRender: string | undefined = placeholder\n\n if (version) {\n if ('hasMany' in field && field.hasMany && Array.isArray(version)) {\n versionToRender =\n version.map((val) => generateLabelFromValue(collections, field, locale, val)).join(', ') ||\n placeholder\n } else {\n versionToRender = generateLabelFromValue(collections, field, locale, version) || placeholder\n }\n }\n\n if (comparison) {\n if ('hasMany' in field && field.hasMany && Array.isArray(comparison)) {\n comparisonToRender =\n comparison\n .map((val) => generateLabelFromValue(collections, field, locale, val))\n .join(', ') || placeholder\n } else {\n comparisonToRender =\n generateLabelFromValue(collections, field, locale, comparison) || placeholder\n }\n }\n\n const label =\n 'label' in field.fieldComponentProps &&\n typeof field.fieldComponentProps.label !== 'boolean' &&\n typeof field.fieldComponentProps.label !== 'function'\n ? field.fieldComponentProps.label\n : ''\n\n return (\n <div className={baseClass}>\n <Label>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {getTranslation(label, i18n)}\n </Label>\n <ReactDiffViewer\n hideLineNumbers\n newValue={versionToRender}\n oldValue={comparisonToRender}\n showDiffOnly={false}\n splitView\n styles={diffStyles}\n />\n </div>\n )\n}\n\nexport default Relationship\n"],"names":["getTranslation","useConfig","fieldAffectsData","fieldIsPresentationalOnly","React","ReactDiffViewerImport","Label","diffStyles","ReactDiffViewer","default","baseClass","generateLabelFromValue","collections","field","locale","value","Array","isArray","map","v","filter","Boolean","join","relatedDoc","valueToReturn","relationTo","fieldComponentProps","undefined","String","relatedCollection","find","c","slug","useAsTitle","admin","useAsTitleField","fields","f","name","titleFieldIsLocalized","localized","id","JSON","stringify","Relationship","comparison","i18n","version","placeholder","t","versionToRender","comparisonToRender","hasMany","val","label","div","className","span","hideLineNumbers","newValue","oldValue","showDiffOnly","splitView","styles"],"mappings":"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"}
@@ -13,7 +13,7 @@ declare const _default: {
13
13
  radio: import("react").FC<{
14
14
  field: import("packages/payload/src/index.js").MappedField & import("packages/payload/src/index.js").SelectFieldProps;
15
15
  } & Omit<import("./types.js").Props, "field">>;
16
- relationship: any;
16
+ relationship: import("react").FC<import("./types.js").Props>;
17
17
  richText: import("react").FC<import("./types.js").Props>;
18
18
  row: import("react").FC<import("./types.js").Props>;
19
19
  select: import("react").FC<{
@@ -24,7 +24,7 @@ declare const _default: {
24
24
  } & Omit<import("./types.js").Props, "field">>;
25
25
  text: import("react").FC<import("./types.js").Props>;
26
26
  textarea: import("react").FC<import("./types.js").Props>;
27
- upload: any;
27
+ upload: import("react").FC<import("./types.js").Props>;
28
28
  };
29
29
  export default _default;
30
30
  //# sourceMappingURL=index.d.ts.map
@@ -1,5 +1,6 @@
1
1
  import Iterable from './Iterable/index.js';
2
2
  import Nested from './Nested/index.js';
3
+ import Relationship from './Relationship/index.js';
3
4
  import Select from './Select/index.js';
4
5
  import Tabs from './Tabs/index.js';
5
6
  import Text from './Text/index.js';
@@ -16,14 +17,14 @@ export default {
16
17
  number: Text,
17
18
  point: Text,
18
19
  radio: Select,
19
- relationship: null,
20
+ relationship: Relationship,
20
21
  richText: Text,
21
22
  row: Nested,
22
23
  select: Select,
23
24
  tabs: Tabs,
24
25
  text: Text,
25
26
  textarea: Text,
26
- upload: null
27
+ upload: Relationship
27
28
  };
28
29
 
29
30
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/views/Version/RenderFieldsToDiff/fields/index.tsx"],"sourcesContent":["import Iterable from './Iterable/index.js'\nimport Nested from './Nested/index.js'\nimport Relationship from './Relationship/index.js'\nimport Select from './Select/index.js'\nimport Tabs from './Tabs/index.js'\nimport Text from './Text/index.js'\n\nexport default {\n array: Iterable,\n blocks: Iterable,\n checkbox: Text,\n code: Text,\n collapsible: Nested,\n date: Text,\n email: Text,\n group: Nested,\n json: Text,\n number: Text,\n point: Text,\n radio: Select,\n relationship: null,\n richText: Text,\n row: Nested,\n select: Select,\n tabs: Tabs,\n text: Text,\n textarea: Text,\n upload: null,\n}\n"],"names":["Iterable","Nested","Select","Tabs","Text","array","blocks","checkbox","code","collapsible","date","email","group","json","number","point","radio","relationship","richText","row","select","tabs","text","textarea","upload"],"mappings":"AAAA,OAAOA,cAAc,sBAAqB;AAC1C,OAAOC,YAAY,oBAAmB;AAEtC,OAAOC,YAAY,oBAAmB;AACtC,OAAOC,UAAU,kBAAiB;AAClC,OAAOC,UAAU,kBAAiB;AAElC,eAAe;IACbC,OAAOL;IACPM,QAAQN;IACRO,UAAUH;IACVI,MAAMJ;IACNK,aAAaR;IACbS,MAAMN;IACNO,OAAOP;IACPQ,OAAOX;IACPY,MAAMT;IACNU,QAAQV;IACRW,OAAOX;IACPY,OAAOd;IACPe,cAAc;IACdC,UAAUd;IACVe,KAAKlB;IACLmB,QAAQlB;IACRmB,MAAMlB;IACNmB,MAAMlB;IACNmB,UAAUnB;IACVoB,QAAQ;AACV,EAAC"}
1
+ {"version":3,"sources":["../../../../../src/views/Version/RenderFieldsToDiff/fields/index.tsx"],"sourcesContent":["import Iterable from './Iterable/index.js'\nimport Nested from './Nested/index.js'\nimport Relationship from './Relationship/index.js'\nimport Select from './Select/index.js'\nimport Tabs from './Tabs/index.js'\nimport Text from './Text/index.js'\n\nexport default {\n array: Iterable,\n blocks: Iterable,\n checkbox: Text,\n code: Text,\n collapsible: Nested,\n date: Text,\n email: Text,\n group: Nested,\n json: Text,\n number: Text,\n point: Text,\n radio: Select,\n relationship: Relationship,\n richText: Text,\n row: Nested,\n select: Select,\n tabs: Tabs,\n text: Text,\n textarea: Text,\n upload: Relationship,\n}\n"],"names":["Iterable","Nested","Relationship","Select","Tabs","Text","array","blocks","checkbox","code","collapsible","date","email","group","json","number","point","radio","relationship","richText","row","select","tabs","text","textarea","upload"],"mappings":"AAAA,OAAOA,cAAc,sBAAqB;AAC1C,OAAOC,YAAY,oBAAmB;AACtC,OAAOC,kBAAkB,0BAAyB;AAClD,OAAOC,YAAY,oBAAmB;AACtC,OAAOC,UAAU,kBAAiB;AAClC,OAAOC,UAAU,kBAAiB;AAElC,eAAe;IACbC,OAAON;IACPO,QAAQP;IACRQ,UAAUH;IACVI,MAAMJ;IACNK,aAAaT;IACbU,MAAMN;IACNO,OAAOP;IACPQ,OAAOZ;IACPa,MAAMT;IACNU,QAAQV;IACRW,OAAOX;IACPY,OAAOd;IACPe,cAAchB;IACdiB,UAAUd;IACVe,KAAKnB;IACLoB,QAAQlB;IACRmB,MAAMlB;IACNmB,MAAMlB;IACNmB,UAAUnB;IACVoB,QAAQvB;AACV,EAAC"}
@@ -1,3 +1,3 @@
1
- import type { EditViewComponent } from 'payload';
1
+ import { type EditViewComponent } from 'payload';
2
2
  export declare const VersionView: EditViewComponent;
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Version/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,iBAAiB,EAGlB,MAAM,SAAS,CAAA;AAQhB,eAAO,MAAM,WAAW,EAAE,iBAgHzB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Version/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,iBAAiB,EAIvB,MAAM,SAAS,CAAA;AAMhB,eAAO,MAAM,WAAW,EAAE,iBA2IzB,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { notFound } from 'next/navigation.js';
3
+ import { deepCopyObjectSimple } from 'payload';
3
4
  import React from 'react';
4
5
  import { getLatestVersion } from '../Versions/getLatestVersion.js';
5
6
  import { DefaultVersionView } from './Default/index.js';
@@ -30,8 +31,18 @@ export const VersionView = async (props)=>{
30
31
  user
31
32
  });
32
33
  if (collectionConfig?.versions?.drafts) {
33
- latestDraftVersion = await getLatestVersion(payload, slug, 'draft', 'collection');
34
- latestPublishedVersion = await getLatestVersion(payload, slug, 'published', 'collection');
34
+ latestDraftVersion = await getLatestVersion({
35
+ slug,
36
+ type: 'collection',
37
+ payload,
38
+ status: 'draft'
39
+ });
40
+ latestPublishedVersion = await getLatestVersion({
41
+ slug,
42
+ type: 'collection',
43
+ payload,
44
+ status: 'published'
45
+ });
35
46
  }
36
47
  } catch (error) {
37
48
  return notFound();
@@ -52,8 +63,18 @@ export const VersionView = async (props)=>{
52
63
  user
53
64
  });
54
65
  if (globalConfig?.versions?.drafts) {
55
- latestDraftVersion = await getLatestVersion(payload, slug, 'draft', 'global');
56
- latestPublishedVersion = await getLatestVersion(payload, slug, 'published', 'global');
66
+ latestDraftVersion = await getLatestVersion({
67
+ slug,
68
+ type: 'global',
69
+ payload,
70
+ status: 'draft'
71
+ });
72
+ latestPublishedVersion = await getLatestVersion({
73
+ slug,
74
+ type: 'global',
75
+ payload,
76
+ status: 'published'
77
+ });
57
78
  }
58
79
  } catch (error) {
59
80
  return notFound();
@@ -76,7 +97,13 @@ export const VersionView = async (props)=>{
76
97
  }
77
98
  return /*#__PURE__*/ _jsx(DefaultVersionView, {
78
99
  doc: doc,
79
- docPermissions: docPermissions,
100
+ /**
101
+ * After bumping the Next.js canary to 104, and React to 19.0.0-rc-06d0b89e-20240801" we have to deepCopy the permissions object (https://github.com/payloadcms/payload/pull/7541).
102
+ * If both HydrateClientUser and RenderCustomComponent receive the same permissions object (same object reference), we get a
103
+ * "TypeError: Cannot read properties of undefined (reading '$$typeof')" error
104
+ *
105
+ * // TODO: Revisit this in the future and figure out why this is happening. Might be a React/Next.js bug. We don't know why it happens, and a future React/Next version might unbreak this (keep an eye on this and remove deepCopyObjectSimple if that's the case)
106
+ */ docPermissions: deepCopyObjectSimple(docPermissions),
80
107
  initialComparisonDoc: latestVersion,
81
108
  latestDraftVersion: latestDraftVersion?.id,
82
109
  latestPublishedVersion: latestPublishedVersion?.id,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/Version/index.tsx"],"sourcesContent":["import type {\n CollectionPermission,\n Document,\n EditViewComponent,\n GlobalPermission,\n OptionObject,\n} from 'payload'\n\nimport { notFound } from 'next/navigation.js'\nimport React from 'react'\n\nimport { getLatestVersion } from '../Versions/getLatestVersion.js'\nimport { DefaultVersionView } from './Default/index.js'\n\nexport const VersionView: EditViewComponent = async (props) => {\n const { initPageResult, routeSegments } = props\n\n const {\n collectionConfig,\n docID: id,\n globalConfig,\n permissions,\n req,\n req: { payload, payload: { config } = {}, user } = {},\n } = initPageResult\n\n const versionID = routeSegments[routeSegments.length - 1]\n\n const collectionSlug = collectionConfig?.slug\n const globalSlug = globalConfig?.slug\n\n const { localization } = config\n\n let docPermissions: CollectionPermission | GlobalPermission\n let slug: string\n\n let doc: Document\n let latestPublishedVersion = null\n let latestDraftVersion = null\n\n if (collectionSlug) {\n // /collections/:slug/:id/versions/:versionID\n slug = collectionSlug\n docPermissions = permissions.collections[collectionSlug]\n\n try {\n doc = await payload.findVersionByID({\n id: versionID,\n collection: slug,\n depth: 1,\n locale: '*',\n overrideAccess: false,\n req,\n user,\n })\n\n if (collectionConfig?.versions?.drafts) {\n latestDraftVersion = await getLatestVersion(payload, slug, 'draft', 'collection')\n latestPublishedVersion = await getLatestVersion(payload, slug, 'published', 'collection')\n }\n } catch (error) {\n return notFound()\n }\n }\n\n if (globalSlug) {\n // /globals/:slug/versions/:versionID\n slug = globalSlug\n docPermissions = permissions.globals[globalSlug]\n\n try {\n doc = await payload.findGlobalVersionByID({\n id: versionID,\n slug,\n depth: 1,\n locale: '*',\n overrideAccess: false,\n req,\n user,\n })\n\n if (globalConfig?.versions?.drafts) {\n latestDraftVersion = await getLatestVersion(payload, slug, 'draft', 'global')\n latestPublishedVersion = await getLatestVersion(payload, slug, 'published', 'global')\n }\n } catch (error) {\n return notFound()\n }\n }\n\n const publishedNewerThanDraft = latestPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt\n\n if (publishedNewerThanDraft) {\n latestDraftVersion = {\n id: '',\n updatedAt: '',\n }\n }\n\n const localeOptions: OptionObject[] =\n localization &&\n localization.locales.map(({ code, label }) => ({\n label,\n value: code,\n }))\n\n const latestVersion =\n latestPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt\n ? latestPublishedVersion\n : latestDraftVersion\n\n if (!doc) {\n return notFound()\n }\n\n return (\n <DefaultVersionView\n doc={doc}\n docPermissions={docPermissions}\n initialComparisonDoc={latestVersion}\n latestDraftVersion={latestDraftVersion?.id}\n latestPublishedVersion={latestPublishedVersion?.id}\n localeOptions={localeOptions}\n versionID={versionID}\n />\n )\n}\n"],"names":["notFound","React","getLatestVersion","DefaultVersionView","VersionView","props","initPageResult","routeSegments","collectionConfig","docID","id","globalConfig","permissions","req","payload","config","user","versionID","length","collectionSlug","slug","globalSlug","localization","docPermissions","doc","latestPublishedVersion","latestDraftVersion","collections","findVersionByID","collection","depth","locale","overrideAccess","versions","drafts","error","globals","findGlobalVersionByID","publishedNewerThanDraft","updatedAt","localeOptions","locales","map","code","label","value","latestVersion","initialComparisonDoc"],"mappings":";AAQA,SAASA,QAAQ,QAAQ,qBAAoB;AAC7C,OAAOC,WAAW,QAAO;AAEzB,SAASC,gBAAgB,QAAQ,kCAAiC;AAClE,SAASC,kBAAkB,QAAQ,qBAAoB;AAEvD,OAAO,MAAMC,cAAiC,OAAOC;IACnD,MAAM,EAAEC,cAAc,EAAEC,aAAa,EAAE,GAAGF;IAE1C,MAAM,EACJG,gBAAgB,EAChBC,OAAOC,EAAE,EACTC,YAAY,EACZC,WAAW,EACXC,GAAG,EACHA,KAAK,EAAEC,OAAO,EAAEA,SAAS,EAAEC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAG,CAAC,CAAC,EACtD,GAAGV;IAEJ,MAAMW,YAAYV,aAAa,CAACA,cAAcW,MAAM,GAAG,EAAE;IAEzD,MAAMC,iBAAiBX,kBAAkBY;IACzC,MAAMC,aAAaV,cAAcS;IAEjC,MAAM,EAAEE,YAAY,EAAE,GAAGP;IAEzB,IAAIQ;IACJ,IAAIH;IAEJ,IAAII;IACJ,IAAIC,yBAAyB;IAC7B,IAAIC,qBAAqB;IAEzB,IAAIP,gBAAgB;QAClB,6CAA6C;QAC7CC,OAAOD;QACPI,iBAAiBX,YAAYe,WAAW,CAACR,eAAe;QAExD,IAAI;YACFK,MAAM,MAAMV,QAAQc,eAAe,CAAC;gBAClClB,IAAIO;gBACJY,YAAYT;gBACZU,OAAO;gBACPC,QAAQ;gBACRC,gBAAgB;gBAChBnB;gBACAG;YACF;YAEA,IAAIR,kBAAkByB,UAAUC,QAAQ;gBACtCR,qBAAqB,MAAMxB,iBAAiBY,SAASM,MAAM,SAAS;gBACpEK,yBAAyB,MAAMvB,iBAAiBY,SAASM,MAAM,aAAa;YAC9E;QACF,EAAE,OAAOe,OAAO;YACd,OAAOnC;QACT;IACF;IAEA,IAAIqB,YAAY;QACd,qCAAqC;QACrCD,OAAOC;QACPE,iBAAiBX,YAAYwB,OAAO,CAACf,WAAW;QAEhD,IAAI;YACFG,MAAM,MAAMV,QAAQuB,qBAAqB,CAAC;gBACxC3B,IAAIO;gBACJG;gBACAU,OAAO;gBACPC,QAAQ;gBACRC,gBAAgB;gBAChBnB;gBACAG;YACF;YAEA,IAAIL,cAAcsB,UAAUC,QAAQ;gBAClCR,qBAAqB,MAAMxB,iBAAiBY,SAASM,MAAM,SAAS;gBACpEK,yBAAyB,MAAMvB,iBAAiBY,SAASM,MAAM,aAAa;YAC9E;QACF,EAAE,OAAOe,OAAO;YACd,OAAOnC;QACT;IACF;IAEA,MAAMsC,0BAA0Bb,wBAAwBc,YAAYb,oBAAoBa;IAExF,IAAID,yBAAyB;QAC3BZ,qBAAqB;YACnBhB,IAAI;YACJ6B,WAAW;QACb;IACF;IAEA,MAAMC,gBACJlB,gBACAA,aAAamB,OAAO,CAACC,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAEC,KAAK,EAAE,GAAM,CAAA;YAC7CA;YACAC,OAAOF;QACT,CAAA;IAEF,MAAMG,gBACJrB,wBAAwBc,YAAYb,oBAAoBa,YACpDd,yBACAC;IAEN,IAAI,CAACF,KAAK;QACR,OAAOxB;IACT;IAEA,qBACE,KAACG;QACCqB,KAAKA;QACLD,gBAAgBA;QAChBwB,sBAAsBD;QACtBpB,oBAAoBA,oBAAoBhB;QACxCe,wBAAwBA,wBAAwBf;QAChD8B,eAAeA;QACfvB,WAAWA;;AAGjB,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/Version/index.tsx"],"sourcesContent":["import { notFound } from 'next/navigation.js'\nimport {\n type CollectionPermission,\n type Document,\n type EditViewComponent,\n type GlobalPermission,\n type OptionObject,\n deepCopyObjectSimple,\n} from 'payload'\nimport React from 'react'\n\nimport { getLatestVersion } from '../Versions/getLatestVersion.js'\nimport { DefaultVersionView } from './Default/index.js'\n\nexport const VersionView: EditViewComponent = async (props) => {\n const { initPageResult, routeSegments } = props\n\n const {\n collectionConfig,\n docID: id,\n globalConfig,\n permissions,\n req,\n req: { payload, payload: { config } = {}, user } = {},\n } = initPageResult\n\n const versionID = routeSegments[routeSegments.length - 1]\n\n const collectionSlug = collectionConfig?.slug\n const globalSlug = globalConfig?.slug\n\n const { localization } = config\n\n let docPermissions: CollectionPermission | GlobalPermission\n let slug: string\n\n let doc: Document\n let latestPublishedVersion = null\n let latestDraftVersion = null\n\n if (collectionSlug) {\n // /collections/:slug/:id/versions/:versionID\n slug = collectionSlug\n docPermissions = permissions.collections[collectionSlug]\n\n try {\n doc = await payload.findVersionByID({\n id: versionID,\n collection: slug,\n depth: 1,\n locale: '*',\n overrideAccess: false,\n req,\n user,\n })\n\n if (collectionConfig?.versions?.drafts) {\n latestDraftVersion = await getLatestVersion({\n slug,\n type: 'collection',\n payload,\n status: 'draft',\n })\n latestPublishedVersion = await getLatestVersion({\n slug,\n type: 'collection',\n payload,\n status: 'published',\n })\n }\n } catch (error) {\n return notFound()\n }\n }\n\n if (globalSlug) {\n // /globals/:slug/versions/:versionID\n slug = globalSlug\n docPermissions = permissions.globals[globalSlug]\n\n try {\n doc = await payload.findGlobalVersionByID({\n id: versionID,\n slug,\n depth: 1,\n locale: '*',\n overrideAccess: false,\n req,\n user,\n })\n\n if (globalConfig?.versions?.drafts) {\n latestDraftVersion = await getLatestVersion({\n slug,\n type: 'global',\n payload,\n status: 'draft',\n })\n latestPublishedVersion = await getLatestVersion({\n slug,\n type: 'global',\n payload,\n status: 'published',\n })\n }\n } catch (error) {\n return notFound()\n }\n }\n\n const publishedNewerThanDraft = latestPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt\n\n if (publishedNewerThanDraft) {\n latestDraftVersion = {\n id: '',\n updatedAt: '',\n }\n }\n\n const localeOptions: OptionObject[] =\n localization &&\n localization.locales.map(({ code, label }) => ({\n label,\n value: code,\n }))\n\n const latestVersion =\n latestPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt\n ? latestPublishedVersion\n : latestDraftVersion\n\n if (!doc) {\n return notFound()\n }\n\n return (\n <DefaultVersionView\n doc={doc}\n /**\n * After bumping the Next.js canary to 104, and React to 19.0.0-rc-06d0b89e-20240801\" we have to deepCopy the permissions object (https://github.com/payloadcms/payload/pull/7541).\n * If both HydrateClientUser and RenderCustomComponent receive the same permissions object (same object reference), we get a\n * \"TypeError: Cannot read properties of undefined (reading '$$typeof')\" error\n *\n * // TODO: Revisit this in the future and figure out why this is happening. Might be a React/Next.js bug. We don't know why it happens, and a future React/Next version might unbreak this (keep an eye on this and remove deepCopyObjectSimple if that's the case)\n */\n docPermissions={deepCopyObjectSimple(docPermissions)}\n initialComparisonDoc={latestVersion}\n latestDraftVersion={latestDraftVersion?.id}\n latestPublishedVersion={latestPublishedVersion?.id}\n localeOptions={localeOptions}\n versionID={versionID}\n />\n )\n}\n"],"names":["notFound","deepCopyObjectSimple","React","getLatestVersion","DefaultVersionView","VersionView","props","initPageResult","routeSegments","collectionConfig","docID","id","globalConfig","permissions","req","payload","config","user","versionID","length","collectionSlug","slug","globalSlug","localization","docPermissions","doc","latestPublishedVersion","latestDraftVersion","collections","findVersionByID","collection","depth","locale","overrideAccess","versions","drafts","type","status","error","globals","findGlobalVersionByID","publishedNewerThanDraft","updatedAt","localeOptions","locales","map","code","label","value","latestVersion","initialComparisonDoc"],"mappings":";AAAA,SAASA,QAAQ,QAAQ,qBAAoB;AAC7C,SAMEC,oBAAoB,QACf,UAAS;AAChB,OAAOC,WAAW,QAAO;AAEzB,SAASC,gBAAgB,QAAQ,kCAAiC;AAClE,SAASC,kBAAkB,QAAQ,qBAAoB;AAEvD,OAAO,MAAMC,cAAiC,OAAOC;IACnD,MAAM,EAAEC,cAAc,EAAEC,aAAa,EAAE,GAAGF;IAE1C,MAAM,EACJG,gBAAgB,EAChBC,OAAOC,EAAE,EACTC,YAAY,EACZC,WAAW,EACXC,GAAG,EACHA,KAAK,EAAEC,OAAO,EAAEA,SAAS,EAAEC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAG,CAAC,CAAC,EACtD,GAAGV;IAEJ,MAAMW,YAAYV,aAAa,CAACA,cAAcW,MAAM,GAAG,EAAE;IAEzD,MAAMC,iBAAiBX,kBAAkBY;IACzC,MAAMC,aAAaV,cAAcS;IAEjC,MAAM,EAAEE,YAAY,EAAE,GAAGP;IAEzB,IAAIQ;IACJ,IAAIH;IAEJ,IAAII;IACJ,IAAIC,yBAAyB;IAC7B,IAAIC,qBAAqB;IAEzB,IAAIP,gBAAgB;QAClB,6CAA6C;QAC7CC,OAAOD;QACPI,iBAAiBX,YAAYe,WAAW,CAACR,eAAe;QAExD,IAAI;YACFK,MAAM,MAAMV,QAAQc,eAAe,CAAC;gBAClClB,IAAIO;gBACJY,YAAYT;gBACZU,OAAO;gBACPC,QAAQ;gBACRC,gBAAgB;gBAChBnB;gBACAG;YACF;YAEA,IAAIR,kBAAkByB,UAAUC,QAAQ;gBACtCR,qBAAqB,MAAMxB,iBAAiB;oBAC1CkB;oBACAe,MAAM;oBACNrB;oBACAsB,QAAQ;gBACV;gBACAX,yBAAyB,MAAMvB,iBAAiB;oBAC9CkB;oBACAe,MAAM;oBACNrB;oBACAsB,QAAQ;gBACV;YACF;QACF,EAAE,OAAOC,OAAO;YACd,OAAOtC;QACT;IACF;IAEA,IAAIsB,YAAY;QACd,qCAAqC;QACrCD,OAAOC;QACPE,iBAAiBX,YAAY0B,OAAO,CAACjB,WAAW;QAEhD,IAAI;YACFG,MAAM,MAAMV,QAAQyB,qBAAqB,CAAC;gBACxC7B,IAAIO;gBACJG;gBACAU,OAAO;gBACPC,QAAQ;gBACRC,gBAAgB;gBAChBnB;gBACAG;YACF;YAEA,IAAIL,cAAcsB,UAAUC,QAAQ;gBAClCR,qBAAqB,MAAMxB,iBAAiB;oBAC1CkB;oBACAe,MAAM;oBACNrB;oBACAsB,QAAQ;gBACV;gBACAX,yBAAyB,MAAMvB,iBAAiB;oBAC9CkB;oBACAe,MAAM;oBACNrB;oBACAsB,QAAQ;gBACV;YACF;QACF,EAAE,OAAOC,OAAO;YACd,OAAOtC;QACT;IACF;IAEA,MAAMyC,0BAA0Bf,wBAAwBgB,YAAYf,oBAAoBe;IAExF,IAAID,yBAAyB;QAC3Bd,qBAAqB;YACnBhB,IAAI;YACJ+B,WAAW;QACb;IACF;IAEA,MAAMC,gBACJpB,gBACAA,aAAaqB,OAAO,CAACC,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAEC,KAAK,EAAE,GAAM,CAAA;YAC7CA;YACAC,OAAOF;QACT,CAAA;IAEF,MAAMG,gBACJvB,wBAAwBgB,YAAYf,oBAAoBe,YACpDhB,yBACAC;IAEN,IAAI,CAACF,KAAK;QACR,OAAOzB;IACT;IAEA,qBACE,KAACI;QACCqB,KAAKA;QACL;;;;;;OAMC,GACDD,gBAAgBvB,qBAAqBuB;QACrC0B,sBAAsBD;QACtBtB,oBAAoBA,oBAAoBhB;QACxCe,wBAAwBA,wBAAwBf;QAChDgC,eAAeA;QACfzB,WAAWA;;AAGjB,EAAC"}
@@ -1,5 +1,14 @@
1
- export declare function getLatestVersion(payload: any, slug: any, status: any, type?: string): Promise<{
2
- id: any;
3
- updatedAt: any;
4
- }>;
1
+ import type { Payload } from 'payload';
2
+ type ReturnType = {
3
+ id: string;
4
+ updatedAt: string;
5
+ } | null;
6
+ type Args = {
7
+ payload: Payload;
8
+ slug: string;
9
+ status: 'draft' | 'published';
10
+ type: 'collection' | 'global';
11
+ };
12
+ export declare function getLatestVersion(args: Args): Promise<ReturnType>;
13
+ export {};
5
14
  //# sourceMappingURL=getLatestVersion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getLatestVersion.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/getLatestVersion.ts"],"names":[],"mappings":"AAAA,wBAAsB,gBAAgB,CAAC,OAAO,KAAA,EAAE,IAAI,KAAA,EAAE,MAAM,KAAA,EAAE,IAAI,SAAe;;;GA+BhF"}
1
+ {"version":3,"file":"getLatestVersion.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/getLatestVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,KAAK,UAAU,GAAG;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,IAAI,CAAA;AAER,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,OAAO,GAAG,WAAW,CAAA;IAC7B,IAAI,EAAE,YAAY,GAAG,QAAQ,CAAA;CAC9B,CAAA;AACD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAsCtE"}
@@ -1,4 +1,5 @@
1
- export async function getLatestVersion(payload, slug, status, type = 'collection') {
1
+ export async function getLatestVersion(args) {
2
+ const { slug, type = 'collection', payload, status } = args;
2
3
  try {
3
4
  const sharedOptions = {
4
5
  depth: 0,
@@ -17,12 +18,16 @@ export async function getLatestVersion(payload, slug, status, type = 'collection
17
18
  slug,
18
19
  ...sharedOptions
19
20
  });
21
+ if (!response.docs.length) {
22
+ return null;
23
+ }
20
24
  return {
21
25
  id: response.docs[0].id,
22
26
  updatedAt: response.docs[0].updatedAt
23
27
  };
24
28
  } catch (e) {
25
29
  console.error(e);
30
+ return null;
26
31
  }
27
32
  }
28
33
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/Versions/getLatestVersion.ts"],"sourcesContent":["export async function getLatestVersion(payload, slug, status, type = 'collection') {\n try {\n const sharedOptions = {\n depth: 0,\n limit: 1,\n sort: '-updatedAt',\n where: {\n 'version._status': {\n equals: status,\n },\n },\n }\n\n const response =\n type === 'collection'\n ? await payload.findVersions({\n collection: slug,\n ...sharedOptions,\n })\n : await payload.findGlobalVersions({\n slug,\n ...sharedOptions,\n })\n\n return {\n id: response.docs[0].id,\n updatedAt: response.docs[0].updatedAt,\n }\n } catch (e) {\n console.error(e)\n }\n}\n"],"names":["getLatestVersion","payload","slug","status","type","sharedOptions","depth","limit","sort","where","equals","response","findVersions","collection","findGlobalVersions","id","docs","updatedAt","e","console","error"],"mappings":"AAAA,OAAO,eAAeA,iBAAiBC,OAAO,EAAEC,IAAI,EAAEC,MAAM,EAAEC,OAAO,YAAY;IAC/E,IAAI;QACF,MAAMC,gBAAgB;YACpBC,OAAO;YACPC,OAAO;YACPC,MAAM;YACNC,OAAO;gBACL,mBAAmB;oBACjBC,QAAQP;gBACV;YACF;QACF;QAEA,MAAMQ,WACJP,SAAS,eACL,MAAMH,QAAQW,YAAY,CAAC;YACzBC,YAAYX;YACZ,GAAGG,aAAa;QAClB,KACA,MAAMJ,QAAQa,kBAAkB,CAAC;YAC/BZ;YACA,GAAGG,aAAa;QAClB;QAEN,OAAO;YACLU,IAAIJ,SAASK,IAAI,CAAC,EAAE,CAACD,EAAE;YACvBE,WAAWN,SAASK,IAAI,CAAC,EAAE,CAACC,SAAS;QACvC;IACF,EAAE,OAAOC,GAAG;QACVC,QAAQC,KAAK,CAACF;IAChB;AACF"}
1
+ {"version":3,"sources":["../../../src/views/Versions/getLatestVersion.ts"],"sourcesContent":["import type { Payload } from 'payload'\n\ntype ReturnType = {\n id: string\n updatedAt: string\n} | null\n\ntype Args = {\n payload: Payload\n slug: string\n status: 'draft' | 'published'\n type: 'collection' | 'global'\n}\nexport async function getLatestVersion(args: Args): Promise<ReturnType> {\n const { slug, type = 'collection', payload, status } = args\n\n try {\n const sharedOptions = {\n depth: 0,\n limit: 1,\n sort: '-updatedAt',\n where: {\n 'version._status': {\n equals: status,\n },\n },\n }\n\n const response =\n type === 'collection'\n ? await payload.findVersions({\n collection: slug,\n ...sharedOptions,\n })\n : await payload.findGlobalVersions({\n slug,\n ...sharedOptions,\n })\n\n if (!response.docs.length) {\n return null\n }\n\n return {\n id: response.docs[0].id,\n updatedAt: response.docs[0].updatedAt,\n }\n } catch (e) {\n console.error(e)\n return null\n }\n}\n"],"names":["getLatestVersion","args","slug","type","payload","status","sharedOptions","depth","limit","sort","where","equals","response","findVersions","collection","findGlobalVersions","docs","length","id","updatedAt","e","console","error"],"mappings":"AAaA,OAAO,eAAeA,iBAAiBC,IAAU;IAC/C,MAAM,EAAEC,IAAI,EAAEC,OAAO,YAAY,EAAEC,OAAO,EAAEC,MAAM,EAAE,GAAGJ;IAEvD,IAAI;QACF,MAAMK,gBAAgB;YACpBC,OAAO;YACPC,OAAO;YACPC,MAAM;YACNC,OAAO;gBACL,mBAAmB;oBACjBC,QAAQN;gBACV;YACF;QACF;QAEA,MAAMO,WACJT,SAAS,eACL,MAAMC,QAAQS,YAAY,CAAC;YACzBC,YAAYZ;YACZ,GAAGI,aAAa;QAClB,KACA,MAAMF,QAAQW,kBAAkB,CAAC;YAC/Bb;YACA,GAAGI,aAAa;QAClB;QAEN,IAAI,CAACM,SAASI,IAAI,CAACC,MAAM,EAAE;YACzB,OAAO;QACT;QAEA,OAAO;YACLC,IAAIN,SAASI,IAAI,CAAC,EAAE,CAACE,EAAE;YACvBC,WAAWP,SAASI,IAAI,CAAC,EAAE,CAACG,SAAS;QACvC;IACF,EAAE,OAAOC,GAAG;QACVC,QAAQC,KAAK,CAACF;QACd,OAAO;IACT;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,SAAS,CAAA;AAW/D,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,aAAa,CAAA;AAEnC,eAAO,MAAM,YAAY,EAAE,iBA8I1B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,SAAS,CAAA;AAW/D,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,aAAa,CAAA;AAEnC,eAAO,MAAM,YAAY,EAAE,iBA6J1B,CAAA"}
@@ -38,8 +38,18 @@ export const VersionsView = async (props)=>{
38
38
  }
39
39
  });
40
40
  if (collectionConfig?.versions?.drafts) {
41
- latestDraftVersion = await getLatestVersion(payload, collectionSlug, 'draft', 'collection');
42
- latestPublishedVersion = await getLatestVersion(payload, collectionSlug, 'published', 'collection');
41
+ latestDraftVersion = await getLatestVersion({
42
+ slug: collectionSlug,
43
+ type: 'collection',
44
+ payload,
45
+ status: 'draft'
46
+ });
47
+ latestPublishedVersion = await getLatestVersion({
48
+ slug: collectionSlug,
49
+ type: 'collection',
50
+ payload,
51
+ status: 'published'
52
+ });
43
53
  }
44
54
  } catch (error) {
45
55
  console.error(error) // eslint-disable-line no-console
@@ -60,8 +70,18 @@ export const VersionsView = async (props)=>{
60
70
  user
61
71
  });
62
72
  if (globalConfig?.versions?.drafts) {
63
- latestDraftVersion = await getLatestVersion(payload, globalSlug, 'draft', 'global');
64
- latestPublishedVersion = await getLatestVersion(payload, globalSlug, 'published', 'global');
73
+ latestDraftVersion = await getLatestVersion({
74
+ slug: globalSlug,
75
+ type: 'global',
76
+ payload,
77
+ status: 'draft'
78
+ });
79
+ latestPublishedVersion = await getLatestVersion({
80
+ slug: globalSlug,
81
+ type: 'global',
82
+ payload,
83
+ status: 'published'
84
+ });
65
85
  }
66
86
  } catch (error) {
67
87
  console.error(error) // eslint-disable-line no-console
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/Versions/index.tsx"],"sourcesContent":["import type { EditViewComponent, PaginatedDocs } from 'payload'\n\nimport { Gutter, ListQueryProvider } from '@payloadcms/ui'\nimport { notFound } from 'next/navigation.js'\nimport { isNumber } from 'payload/shared'\nimport React from 'react'\n\nimport { SetDocumentStepNav } from '../Edit/Default/SetDocumentStepNav/index.js'\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 const VersionsView: EditViewComponent = async (props) => {\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 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 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 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: {\n parent: {\n equals: id,\n },\n },\n })\n if (collectionConfig?.versions?.drafts) {\n latestDraftVersion = await getLatestVersion(payload, collectionSlug, 'draft', 'collection')\n latestPublishedVersion = await getLatestVersion(\n payload,\n collectionSlug,\n 'published',\n 'collection',\n )\n }\n } catch (error) {\n console.error(error) // eslint-disable-line no-console\n }\n }\n\n if (globalSlug) {\n limitToUse = limitToUse || 10\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 })\n\n if (globalConfig?.versions?.drafts) {\n latestDraftVersion = await getLatestVersion(payload, globalSlug, 'draft', 'global')\n latestPublishedVersion = await getLatestVersion(payload, globalSlug, 'published', 'global')\n }\n } catch (error) {\n console.error(error) // eslint-disable-line no-console\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 globalConfig,\n i18n,\n latestDraftVersion: latestDraftVersion?.id,\n latestPublishedVersion: latestPublishedVersion?.id,\n })\n\n return (\n <React.Fragment>\n <SetDocumentStepNav\n collectionSlug={collectionConfig?.slug}\n globalSlug={globalConfig?.slug}\n id={id}\n pluralLabel={collectionConfig?.labels?.plural || globalConfig?.label}\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"],"names":["Gutter","ListQueryProvider","notFound","isNumber","React","SetDocumentStepNav","buildVersionColumns","getLatestVersion","VersionsViewClient","baseClass","VersionsView","props","initPageResult","searchParams","collectionConfig","docID","id","globalConfig","req","i18n","payload","config","user","collectionSlug","slug","globalSlug","limit","page","sort","routes","api","apiRoute","serverURL","versionsData","limitToUse","Number","undefined","latestPublishedVersion","latestDraftVersion","admin","pagination","defaultLimit","findVersions","collection","depth","overrideAccess","parseInt","toString","where","parent","equals","versions","drafts","error","console","findGlobalVersions","fetchURL","publishedNewerThanDraft","updatedAt","columns","Fragment","pluralLabel","labels","plural","label","useAsTitle","view","t","main","className","data","defaultSort","modifySearchParams","paginationLimits","limits"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/views/Versions/index.tsx"],"sourcesContent":["import type { EditViewComponent, PaginatedDocs } from 'payload'\n\nimport { Gutter, ListQueryProvider } from '@payloadcms/ui'\nimport { notFound } from 'next/navigation.js'\nimport { isNumber } from 'payload/shared'\nimport React from 'react'\n\nimport { SetDocumentStepNav } from '../Edit/Default/SetDocumentStepNav/index.js'\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 const VersionsView: EditViewComponent = async (props) => {\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 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 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 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: {\n parent: {\n equals: id,\n },\n },\n })\n if (collectionConfig?.versions?.drafts) {\n latestDraftVersion = await getLatestVersion({\n slug: collectionSlug,\n type: 'collection',\n payload,\n status: 'draft',\n })\n latestPublishedVersion = await getLatestVersion({\n slug: collectionSlug,\n type: 'collection',\n payload,\n status: 'published',\n })\n }\n } catch (error) {\n console.error(error) // eslint-disable-line no-console\n }\n }\n\n if (globalSlug) {\n limitToUse = limitToUse || 10\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 })\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 (error) {\n console.error(error) // eslint-disable-line no-console\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 globalConfig,\n i18n,\n latestDraftVersion: latestDraftVersion?.id,\n latestPublishedVersion: latestPublishedVersion?.id,\n })\n\n return (\n <React.Fragment>\n <SetDocumentStepNav\n collectionSlug={collectionConfig?.slug}\n globalSlug={globalConfig?.slug}\n id={id}\n pluralLabel={collectionConfig?.labels?.plural || globalConfig?.label}\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"],"names":["Gutter","ListQueryProvider","notFound","isNumber","React","SetDocumentStepNav","buildVersionColumns","getLatestVersion","VersionsViewClient","baseClass","VersionsView","props","initPageResult","searchParams","collectionConfig","docID","id","globalConfig","req","i18n","payload","config","user","collectionSlug","slug","globalSlug","limit","page","sort","routes","api","apiRoute","serverURL","versionsData","limitToUse","Number","undefined","latestPublishedVersion","latestDraftVersion","admin","pagination","defaultLimit","findVersions","collection","depth","overrideAccess","parseInt","toString","where","parent","equals","versions","drafts","type","status","error","console","findGlobalVersions","fetchURL","publishedNewerThanDraft","updatedAt","columns","Fragment","pluralLabel","labels","plural","label","useAsTitle","view","t","main","className","data","defaultSort","modifySearchParams","paginationLimits","limits"],"mappings":"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"}
@@ -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,CAyHrC"}
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,CAwHrC"}
@@ -13,21 +13,23 @@
13
13
  env: {
14
14
  ...nextConfig?.env || {}
15
15
  },
16
+ outputFileTracingExcludes: {
17
+ ...nextConfig?.outputFileTracingExcludes || {},
18
+ '**/*': [
19
+ ...nextConfig?.outputFileTracingExcludes?.['**/*'] || [],
20
+ 'drizzle-kit',
21
+ 'drizzle-kit/api'
22
+ ]
23
+ },
24
+ outputFileTracingIncludes: {
25
+ ...nextConfig?.outputFileTracingIncludes || {},
26
+ '**/*': [
27
+ ...nextConfig?.outputFileTracingIncludes?.['**/*'] || [],
28
+ '@libsql/client'
29
+ ]
30
+ },
16
31
  experimental: {
17
32
  ...nextConfig?.experimental || {},
18
- outputFileTracingExcludes: {
19
- '**/*': [
20
- ...nextConfig.experimental?.outputFileTracingExcludes?.['**/*'] || [],
21
- 'drizzle-kit',
22
- 'drizzle-kit/api'
23
- ]
24
- },
25
- outputFileTracingIncludes: {
26
- '**/*': [
27
- ...nextConfig.experimental?.outputFileTracingIncludes?.['**/*'] || [],
28
- '@libsql/client'
29
- ]
30
- },
31
33
  turbo: {
32
34
  ...nextConfig?.experimental?.turbo || {},
33
35
  resolveAlias: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/withPayload.js"],"sourcesContent":["/**\n * @param {import('next').NextConfig} nextConfig\n *\n * @returns {import('next').NextConfig}\n * */\nexport const withPayload = (nextConfig = {}) => {\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 may cause stale data to load in 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 }\n\n /**\n * @type {import('next').NextConfig}\n */\n const toReturn = {\n ...nextConfig,\n env: {\n ...(nextConfig?.env || {}),\n },\n experimental: {\n ...(nextConfig?.experimental || {}),\n outputFileTracingExcludes: {\n '**/*': [\n ...(nextConfig.experimental?.outputFileTracingExcludes?.['**/*'] || []),\n 'drizzle-kit',\n 'drizzle-kit/api',\n ],\n },\n outputFileTracingIncludes: {\n '**/*': [\n ...(nextConfig.experimental?.outputFileTracingIncludes?.['**/*'] || []),\n '@libsql/client',\n ],\n },\n turbo: {\n ...(nextConfig?.experimental?.turbo || {}),\n resolveAlias: {\n ...(nextConfig?.experimental?.turbo?.resolveAlias || {}),\n 'payload-mock-package': 'payload-mock-package',\n },\n },\n },\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 ],\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"],"names":["withPayload","nextConfig","experimental","staleTimes","dynamic","console","warn","toReturn","env","outputFileTracingExcludes","outputFileTracingIncludes","turbo","resolveAlias","headers","headersFromConfig","source","key","value","serverExternalPackages","webpack","webpackConfig","webpackOptions","incomingWebpackConfig","externals","ignoreWarnings","module","file","resolve","alias","fallback","aws4","kerberos","snappy","basePath","NEXT_BASE_PATH"],"mappings":"AAAA;;;;GAIG,GACH,OAAO,MAAMA,cAAc,CAACC,aAAa,CAAC,CAAC;IACzC,IAAIA,WAAWC,YAAY,EAAEC,YAAYC,SAAS;QAChDC,QAAQC,IAAI,CACV;IAEJ;IAEA;;GAEC,GACD,MAAMC,WAAW;QACf,GAAGN,UAAU;QACbO,KAAK;YACH,GAAIP,YAAYO,OAAO,CAAC,CAAC;QAC3B;QACAN,cAAc;YACZ,GAAID,YAAYC,gBAAgB,CAAC,CAAC;YAClCO,2BAA2B;gBACzB,QAAQ;uBACFR,WAAWC,YAAY,EAAEO,2BAA2B,CAAC,OAAO,IAAI,EAAE;oBACtE;oBACA;iBACD;YACH;YACAC,2BAA2B;gBACzB,QAAQ;uBACFT,WAAWC,YAAY,EAAEQ,2BAA2B,CAAC,OAAO,IAAI,EAAE;oBACtE;iBACD;YACH;YACAC,OAAO;gBACL,GAAIV,YAAYC,cAAcS,SAAS,CAAC,CAAC;gBACzCC,cAAc;oBACZ,GAAIX,YAAYC,cAAcS,OAAOC,gBAAgB,CAAC,CAAC;oBACvD,wBAAwB;gBAC1B;YACF;QACF;QACAC,SAAS;YACP,MAAMC,oBAAoB,aAAab,aAAa,MAAMA,WAAWY,OAAO,KAAK,EAAE;YAEnF,OAAO;mBACDC,qBAAqB,EAAE;gBAC3B;oBACEC,QAAQ;oBACRF,SAAS;wBACP;4BACEG,KAAK;4BACLC,OAAO;wBACT;wBACA;4BACED,KAAK;4BACLC,OAAO;wBACT;wBACA;4BACED,KAAK;4BACLC,OAAO;wBACT;qBACD;gBACH;aACD;QACH;QACAC,wBAAwB;eAClBjB,YAAYiB,0BAA0B,EAAE;YAC5C;YACA;YACA;YACA;YACA;YACA;SACD;QACDC,SAAS,CAACC,eAAeC;YACvB,MAAMC,wBACJ,OAAOrB,WAAWkB,OAAO,KAAK,aAC1BlB,WAAWkB,OAAO,CAACC,eAAeC,kBAClCD;YAEN,OAAO;gBACL,GAAGE,qBAAqB;gBACxBC,WAAW;uBACLD,uBAAuBC,aAAa,EAAE;oBAC1C;oBACA;oBACA;oBACA;iBACD;gBACDC,gBAAgB;uBACVF,uBAAuBE,kBAAkB,EAAE;oBAC/C;wBAAEC,QAAQ;oBAAwC;oBAClD;wBAAEC,MAAM;oBAAwC;oBAChD;wBAAED,QAAQ;oBAAuC;oBACjD;wBAAEC,MAAM;oBAAuC;iBAChD;gBACDC,SAAS;oBACP,GAAIL,uBAAuBK,WAAW,CAAC,CAAC;oBACxCC,OAAO;wBACL,GAAIN,uBAAuBK,SAASC,SAAS,CAAC,CAAC;oBACjD;oBACAC,UAAU;wBACR,GAAIP,uBAAuBK,SAASE,YAAY,CAAC,CAAC;wBAClD,iCAAiC;wBACjC,oBAAoB;wBACpBC,MAAM;wBACNC,UAAU;wBACV,6BAA6B;wBAC7BC,QAAQ;wBACR,kBAAkB;wBAClB,eAAe;oBACjB;gBACF;YACF;QACF;IACF;IAEA,IAAI/B,WAAWgC,QAAQ,EAAE;QACvB1B,SAASC,GAAG,CAAC0B,cAAc,GAAGjC,WAAWgC,QAAQ;IACnD;IAEA,OAAO1B;AACT,EAAC;AAED,eAAeP,YAAW"}
1
+ {"version":3,"sources":["../src/withPayload.js"],"sourcesContent":["/**\n * @param {import('next').NextConfig} nextConfig\n *\n * @returns {import('next').NextConfig}\n * */\nexport const withPayload = (nextConfig = {}) => {\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 may cause stale data to load in 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 }\n\n /**\n * @type {import('next').NextConfig}\n */\n const toReturn = {\n ...nextConfig,\n env: {\n ...(nextConfig?.env || {}),\n },\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 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 ],\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"],"names":["withPayload","nextConfig","experimental","staleTimes","dynamic","console","warn","toReturn","env","outputFileTracingExcludes","outputFileTracingIncludes","turbo","resolveAlias","headers","headersFromConfig","source","key","value","serverExternalPackages","webpack","webpackConfig","webpackOptions","incomingWebpackConfig","externals","ignoreWarnings","module","file","resolve","alias","fallback","aws4","kerberos","snappy","basePath","NEXT_BASE_PATH"],"mappings":"AAAA;;;;GAIG,GACH,OAAO,MAAMA,cAAc,CAACC,aAAa,CAAC,CAAC;IACzC,IAAIA,WAAWC,YAAY,EAAEC,YAAYC,SAAS;QAChDC,QAAQC,IAAI,CACV;IAEJ;IAEA;;GAEC,GACD,MAAMC,WAAW;QACf,GAAGN,UAAU;QACbO,KAAK;YACH,GAAIP,YAAYO,OAAO,CAAC,CAAC;QAC3B;QACAC,2BAA2B;YACzB,GAAIR,YAAYQ,6BAA6B,CAAC,CAAC;YAC/C,QAAQ;mBACFR,YAAYQ,2BAA2B,CAAC,OAAO,IAAI,EAAE;gBACzD;gBACA;aACD;QACH;QACAC,2BAA2B;YACzB,GAAIT,YAAYS,6BAA6B,CAAC,CAAC;YAC/C,QAAQ;mBAAKT,YAAYS,2BAA2B,CAAC,OAAO,IAAI,EAAE;gBAAG;aAAiB;QACxF;QACAR,cAAc;YACZ,GAAID,YAAYC,gBAAgB,CAAC,CAAC;YAClCS,OAAO;gBACL,GAAIV,YAAYC,cAAcS,SAAS,CAAC,CAAC;gBACzCC,cAAc;oBACZ,GAAIX,YAAYC,cAAcS,OAAOC,gBAAgB,CAAC,CAAC;oBACvD,wBAAwB;gBAC1B;YACF;QACF;QACAC,SAAS;YACP,MAAMC,oBAAoB,aAAab,aAAa,MAAMA,WAAWY,OAAO,KAAK,EAAE;YAEnF,OAAO;mBACDC,qBAAqB,EAAE;gBAC3B;oBACEC,QAAQ;oBACRF,SAAS;wBACP;4BACEG,KAAK;4BACLC,OAAO;wBACT;wBACA;4BACED,KAAK;4BACLC,OAAO;wBACT;wBACA;4BACED,KAAK;4BACLC,OAAO;wBACT;qBACD;gBACH;aACD;QACH;QACAC,wBAAwB;eAClBjB,YAAYiB,0BAA0B,EAAE;YAC5C;YACA;YACA;YACA;YACA;YACA;SACD;QACDC,SAAS,CAACC,eAAeC;YACvB,MAAMC,wBACJ,OAAOrB,WAAWkB,OAAO,KAAK,aAC1BlB,WAAWkB,OAAO,CAACC,eAAeC,kBAClCD;YAEN,OAAO;gBACL,GAAGE,qBAAqB;gBACxBC,WAAW;uBACLD,uBAAuBC,aAAa,EAAE;oBAC1C;oBACA;oBACA;oBACA;iBACD;gBACDC,gBAAgB;uBACVF,uBAAuBE,kBAAkB,EAAE;oBAC/C;wBAAEC,QAAQ;oBAAwC;oBAClD;wBAAEC,MAAM;oBAAwC;oBAChD;wBAAED,QAAQ;oBAAuC;oBACjD;wBAAEC,MAAM;oBAAuC;iBAChD;gBACDC,SAAS;oBACP,GAAIL,uBAAuBK,WAAW,CAAC,CAAC;oBACxCC,OAAO;wBACL,GAAIN,uBAAuBK,SAASC,SAAS,CAAC,CAAC;oBACjD;oBACAC,UAAU;wBACR,GAAIP,uBAAuBK,SAASE,YAAY,CAAC,CAAC;wBAClD,iCAAiC;wBACjC,oBAAoB;wBACpBC,MAAM;wBACNC,UAAU;wBACV,6BAA6B;wBAC7BC,QAAQ;wBACR,kBAAkB;wBAClB,eAAe;oBACjB;gBACF;YACF;QACF;IACF;IAEA,IAAI/B,WAAWgC,QAAQ,EAAE;QACvB1B,SAASC,GAAG,CAAC0B,cAAc,GAAGjC,WAAWgC,QAAQ;IACnD;IAEA,OAAO1B;AACT,EAAC;AAED,eAAeP,YAAW"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/next",
3
- "version": "3.0.0-beta.74",
3
+ "version": "3.0.0-beta.76",
4
4
  "homepage": "https://payloadcms.com",
5
5
  "repository": {
6
6
  "type": "git",
@@ -63,9 +63,9 @@
63
63
  "sonner": "^1.5.0",
64
64
  "uuid": "10.0.0",
65
65
  "ws": "^8.16.0",
66
- "@payloadcms/graphql": "3.0.0-beta.74",
67
- "@payloadcms/translations": "3.0.0-beta.74",
68
- "@payloadcms/ui": "3.0.0-beta.74"
66
+ "@payloadcms/graphql": "3.0.0-beta.76",
67
+ "@payloadcms/translations": "3.0.0-beta.76",
68
+ "@payloadcms/ui": "3.0.0-beta.76"
69
69
  },
70
70
  "devDependencies": {
71
71
  "@next/eslint-plugin-next": "^14.1.0",
@@ -78,12 +78,12 @@
78
78
  "esbuild-sass-plugin": "3.3.1",
79
79
  "swc-plugin-transform-remove-imports": "1.14.0",
80
80
  "@payloadcms/eslint-config": "3.0.0-beta.59",
81
- "payload": "3.0.0-beta.74"
81
+ "payload": "3.0.0-beta.76"
82
82
  },
83
83
  "peerDependencies": {
84
84
  "graphql": "^16.8.1",
85
- "next": "^15.0.0-canary.53",
86
- "payload": "3.0.0-beta.74"
85
+ "next": "^15.0.0-canary.104",
86
+ "payload": "3.0.0-beta.76"
87
87
  },
88
88
  "engines": {
89
89
  "node": "^18.20.2 || >=20.9.0"