@payloadcms/ui 4.0.0-canary.35 → 4.0.0-canary.37

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 (237) hide show
  1. package/dist/css/app.css +1 -0
  2. package/dist/css/preflight.css +1 -0
  3. package/dist/css/spacing.css +3 -0
  4. package/dist/elements/AppHeader/index.css +3 -0
  5. package/dist/elements/Banner/index.css +4 -0
  6. package/dist/elements/Banner/index.d.ts.map +1 -1
  7. package/dist/elements/Banner/index.js +1 -0
  8. package/dist/elements/Banner/index.js.map +1 -1
  9. package/dist/elements/BulkUpload/ActionsBar/index.css +1 -0
  10. package/dist/elements/BulkUpload/AddingFilesView/index.css +2 -4
  11. package/dist/elements/BulkUpload/FileSidebar/index.css +1 -0
  12. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  13. package/dist/elements/BulkUpload/FormsManager/index.js +12 -7
  14. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  15. package/dist/elements/BulkUpload/index.css +2 -0
  16. package/dist/elements/Collapsible/index.css +1 -0
  17. package/dist/elements/DatePicker/index.css +2 -0
  18. package/dist/elements/Dialog/index.css +1 -0
  19. package/dist/elements/DocumentControls/index.css +1 -0
  20. package/dist/elements/DocumentFields/index.css +2 -0
  21. package/dist/elements/DocumentHeader/Tabs/index.css +1 -0
  22. package/dist/elements/DocumentHeader/index.css +1 -0
  23. package/dist/elements/EditUpload/index.css +1 -1
  24. package/dist/elements/FieldDiffContainer/index.css +1 -0
  25. package/dist/elements/FieldDiffLabel/index.css +1 -0
  26. package/dist/elements/FileDetails/StaticFileDetails/index.css +2 -0
  27. package/dist/elements/HTMLDiff/index.css +1 -0
  28. package/dist/elements/ItemsDrawer/index.css +3 -0
  29. package/dist/elements/ListControls/index.css +1 -0
  30. package/dist/elements/ListControls/index.d.ts.map +1 -1
  31. package/dist/elements/ListControls/index.js +7 -1
  32. package/dist/elements/ListControls/index.js.map +1 -1
  33. package/dist/elements/ListControls/types.d.ts +3 -1
  34. package/dist/elements/ListControls/types.d.ts.map +1 -1
  35. package/dist/elements/ListControls/types.js.map +1 -1
  36. package/dist/elements/ListControlsBar/index.css +1 -0
  37. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +1 -1
  38. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  39. package/dist/elements/LivePreview/Window/index.css +1 -0
  40. package/dist/elements/Nav/getNavPrefs.d.ts.map +1 -1
  41. package/dist/elements/Nav/getNavPrefs.js +2 -0
  42. package/dist/elements/Nav/getNavPrefs.js.map +1 -1
  43. package/dist/elements/Nav/index.css +2 -0
  44. package/dist/elements/PageControls/index.css +1 -0
  45. package/dist/elements/PillSelector/index.css +1 -0
  46. package/dist/elements/PreviewSizes/index.css +2 -0
  47. package/dist/elements/PublishButton/index.css +1 -0
  48. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  49. package/dist/elements/PublishButton/index.js +11 -25
  50. package/dist/elements/PublishButton/index.js.map +1 -1
  51. package/dist/elements/QueryPresets/fields/Heading/index.css +1 -0
  52. package/dist/elements/RenderTitle/index.css +1 -0
  53. package/dist/elements/Table/index.css +1 -0
  54. package/dist/elements/TableSection/index.css +1 -0
  55. package/dist/elements/Tabs/index.css +1 -0
  56. package/dist/elements/Thumbnail/index.css +1 -0
  57. package/dist/elements/TimezonePicker/index.css +1 -0
  58. package/dist/elements/Tooltip/index.css +7 -0
  59. package/dist/elements/WhereBuilder/Condition/index.css +1 -0
  60. package/dist/elements/WhereBuilder/index.css +2 -0
  61. package/dist/fields/Array/index.css +1 -0
  62. package/dist/fields/Blocks/index.css +1 -0
  63. package/dist/fields/Group/index.css +1 -0
  64. package/dist/fields/Row/index.css +2 -0
  65. package/dist/fields/Tabs/index.css +1 -0
  66. package/dist/forms/RenderFields/index.css +1 -0
  67. package/dist/hooks/useControllableState.js +3 -3
  68. package/dist/hooks/useControllableState.js.map +1 -1
  69. package/dist/layouts/Root/index.d.ts +3 -6
  70. package/dist/layouts/Root/index.d.ts.map +1 -1
  71. package/dist/layouts/Root/index.js +2 -4
  72. package/dist/layouts/Root/index.js.map +1 -1
  73. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  74. package/dist/providers/DocumentInfo/index.js +30 -19
  75. package/dist/providers/DocumentInfo/index.js.map +1 -1
  76. package/dist/providers/Locale/index.d.ts.map +1 -1
  77. package/dist/providers/Locale/index.js +6 -7
  78. package/dist/providers/Locale/index.js.map +1 -1
  79. package/dist/styles.css +5 -1
  80. package/dist/templates/Default/Wrapper/index.css +2 -0
  81. package/dist/templates/Default/index.css +1 -0
  82. package/dist/utilities/getDocPreferences.d.ts.map +1 -1
  83. package/dist/utilities/getDocPreferences.js +1 -0
  84. package/dist/utilities/getDocPreferences.js.map +1 -1
  85. package/dist/utilities/getPreferences.d.ts.map +1 -1
  86. package/dist/utilities/getPreferences.js +1 -0
  87. package/dist/utilities/getPreferences.js.map +1 -1
  88. package/dist/utilities/getVersions.d.ts.map +1 -1
  89. package/dist/utilities/getVersions.js +8 -0
  90. package/dist/utilities/getVersions.js.map +1 -1
  91. package/dist/utilities/handleAuthRedirect.d.ts.map +1 -1
  92. package/dist/utilities/handleAuthRedirect.js +4 -1
  93. package/dist/utilities/handleAuthRedirect.js.map +1 -1
  94. package/dist/utilities/isPathMatchingRoute.d.ts.map +1 -1
  95. package/dist/utilities/isPathMatchingRoute.js +7 -5
  96. package/dist/utilities/isPathMatchingRoute.js.map +1 -1
  97. package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
  98. package/dist/utilities/schedulePublishHandler.js +2 -0
  99. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  100. package/dist/utilities/upsertPreferences.d.ts.map +1 -1
  101. package/dist/utilities/upsertPreferences.js +3 -0
  102. package/dist/utilities/upsertPreferences.js.map +1 -1
  103. package/dist/views/API/index.css +1 -0
  104. package/dist/views/Dashboard/Default/ModularDashboard/index.css +2 -0
  105. package/dist/views/Document/handleServerFunction.d.ts.map +1 -1
  106. package/dist/views/Document/handleServerFunction.js +1 -0
  107. package/dist/views/Document/handleServerFunction.js.map +1 -1
  108. package/dist/views/Edit/index.css +1 -0
  109. package/dist/views/HierarchyList/HierarchyTable/SlotTable.css +1 -0
  110. package/dist/views/HierarchyList/index.css +1 -0
  111. package/dist/views/List/ListHeader/index.css +1 -0
  112. package/dist/views/List/ListHeader/index.d.ts +0 -1
  113. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  114. package/dist/views/List/ListHeader/index.js +2 -6
  115. package/dist/views/List/ListHeader/index.js.map +1 -1
  116. package/dist/views/List/enrichDocsWithVersionStatus.d.ts.map +1 -1
  117. package/dist/views/List/enrichDocsWithVersionStatus.js +1 -0
  118. package/dist/views/List/enrichDocsWithVersionStatus.js.map +1 -1
  119. package/dist/views/List/handleServerFunction.d.ts.map +1 -1
  120. package/dist/views/List/handleServerFunction.js +1 -0
  121. package/dist/views/List/handleServerFunction.js.map +1 -1
  122. package/dist/views/List/index.client.d.ts.map +1 -1
  123. package/dist/views/List/index.client.js +3 -2
  124. package/dist/views/List/index.client.js.map +1 -1
  125. package/dist/views/List/index.css +2 -0
  126. package/dist/views/NotFound/client.d.ts +2 -0
  127. package/dist/views/NotFound/client.d.ts.map +1 -0
  128. package/dist/views/NotFound/client.js +4 -0
  129. package/dist/views/NotFound/client.js.map +1 -0
  130. package/dist/views/Root/index.d.ts.map +1 -1
  131. package/dist/views/Root/index.js +26 -19
  132. package/dist/views/Root/index.js.map +1 -1
  133. package/dist/views/Version/Default/index.css +2 -0
  134. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.css +8 -0
  135. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.d.ts.map +1 -1
  136. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js +1 -0
  137. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js.map +1 -1
  138. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.css +1 -0
  139. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.css +1 -0
  140. package/dist/views/Version/RenderFieldsToDiff/index.css +2 -0
  141. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  142. package/dist/views/Version/Restore/index.js +9 -6
  143. package/dist/views/Version/Restore/index.js.map +1 -1
  144. package/dist/views/Versions/VersionPillLabel/index.css +1 -0
  145. package/dist/views/Versions/index.css +1 -0
  146. package/dist/widgets/CollectionCards/index.css +4 -0
  147. package/package.json +11 -6
  148. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js +0 -120
  149. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js.map +0 -1
  150. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js +0 -144
  151. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js.map +0 -1
  152. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +0 -885
  153. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +0 -1
  154. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js +0 -87
  155. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js.map +0 -1
  156. package/dist/elements/CommandPalette/buildActions.spec.js +0 -158
  157. package/dist/elements/CommandPalette/buildActions.spec.js.map +0 -1
  158. package/dist/elements/CommandPalette/highlightLabel.spec.js +0 -78
  159. package/dist/elements/CommandPalette/highlightLabel.spec.js.map +0 -1
  160. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js +0 -143
  161. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js.map +0 -1
  162. package/dist/elements/Toasts/fieldErrors.spec.js +0 -46
  163. package/dist/elements/Toasts/fieldErrors.spec.js.map +0 -1
  164. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.spec.js +0 -152
  165. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.spec.js.map +0 -1
  166. package/dist/elements/WhereBuilder/conditionValue.spec.js +0 -65
  167. package/dist/elements/WhereBuilder/conditionValue.spec.js.map +0 -1
  168. package/dist/fields/Upload/Input.spec.js +0 -242
  169. package/dist/fields/Upload/Input.spec.js.map +0 -1
  170. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.d.ts +0 -2
  171. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.d.ts.map +0 -1
  172. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js +0 -67
  173. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js.map +0 -1
  174. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.spec.js +0 -150
  175. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.spec.js.map +0 -1
  176. package/dist/layouts/Root/index.spec.js +0 -20
  177. package/dist/layouts/Root/index.spec.js.map +0 -1
  178. package/dist/providers/Auth/authSessionRequests.spec.js +0 -121
  179. package/dist/providers/Auth/authSessionRequests.spec.js.map +0 -1
  180. package/dist/providers/Auth/sessionActivity.spec.js +0 -44
  181. package/dist/providers/Auth/sessionActivity.spec.js.map +0 -1
  182. package/dist/providers/Auth/tabSessionSync/index.spec.js +0 -463
  183. package/dist/providers/Auth/tabSessionSync/index.spec.js.map +0 -1
  184. package/dist/providers/Auth/useAuthSessionTimers.spec.js +0 -311
  185. package/dist/providers/Auth/useAuthSessionTimers.spec.js.map +0 -1
  186. package/dist/providers/RouteTransition/ProgressBar/index.spec.js +0 -44
  187. package/dist/providers/RouteTransition/ProgressBar/index.spec.js.map +0 -1
  188. package/dist/providers/TableColumns/buildColumnState/index.spec.js +0 -40
  189. package/dist/providers/TableColumns/buildColumnState/index.spec.js.map +0 -1
  190. package/dist/utilities/appendCacheTag.spec.js +0 -34
  191. package/dist/utilities/appendCacheTag.spec.js.map +0 -1
  192. package/dist/utilities/formatAbsoluteURL.spec.js +0 -27
  193. package/dist/utilities/formatAbsoluteURL.spec.js.map +0 -1
  194. package/dist/utilities/formatMetadata.spec.js +0 -83
  195. package/dist/utilities/formatMetadata.spec.js.map +0 -1
  196. package/dist/utilities/fuzzyMatch.spec.js +0 -38
  197. package/dist/utilities/fuzzyMatch.spec.js.map +0 -1
  198. package/dist/utilities/getRequestLocale.d.ts +0 -7
  199. package/dist/utilities/getRequestLocale.d.ts.map +0 -1
  200. package/dist/utilities/getRequestLocale.js +0 -20
  201. package/dist/utilities/getRequestLocale.js.map +0 -1
  202. package/dist/utilities/initReq.d.ts +0 -16
  203. package/dist/utilities/initReq.d.ts.map +0 -1
  204. package/dist/utilities/initReq.js +0 -146
  205. package/dist/utilities/initReq.js.map +0 -1
  206. package/dist/utilities/initReq.spec.js +0 -226
  207. package/dist/utilities/initReq.spec.js.map +0 -1
  208. package/dist/utilities/isAbsoluteURL.spec.js +0 -11
  209. package/dist/utilities/isAbsoluteURL.spec.js.map +0 -1
  210. package/dist/utilities/isCustomAdminView.spec.js +0 -90
  211. package/dist/utilities/isCustomAdminView.spec.js.map +0 -1
  212. package/dist/utilities/isHttpURL.spec.js +0 -25
  213. package/dist/utilities/isHttpURL.spec.js.map +0 -1
  214. package/dist/utilities/isPathMatchingRoute.spec.js +0 -178
  215. package/dist/utilities/isPathMatchingRoute.spec.js.map +0 -1
  216. package/dist/utilities/isPublicAdminRoute.spec.js +0 -34
  217. package/dist/utilities/isPublicAdminRoute.spec.js.map +0 -1
  218. package/dist/utilities/normalizeRelationshipValue.spec.js +0 -373
  219. package/dist/utilities/normalizeRelationshipValue.spec.js.map +0 -1
  220. package/dist/utilities/recentlyViewed.spec.js +0 -92
  221. package/dist/utilities/recentlyViewed.spec.js.map +0 -1
  222. package/dist/utilities/selectiveCache.d.ts +0 -12
  223. package/dist/utilities/selectiveCache.d.ts.map +0 -1
  224. package/dist/utilities/selectiveCache.js +0 -37
  225. package/dist/utilities/selectiveCache.js.map +0 -1
  226. package/dist/views/Root/getCustomCollectionViewByRoute.spec.js +0 -168
  227. package/dist/views/Root/getCustomCollectionViewByRoute.spec.js.map +0 -1
  228. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.spec.js +0 -258
  229. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.spec.js.map +0 -1
  230. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +0 -915
  231. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +0 -1
  232. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +0 -47
  233. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +0 -1
  234. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +0 -125
  235. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +0 -1
  236. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js +0 -100
  237. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js.map +0 -1
@@ -6,6 +6,7 @@
6
6
  isolation: isolate;
7
7
  }
8
8
 
9
+ /* stylelint-disable-next-line plugin/no-non-standard-breakpoints -- TODO: pre-existing; align with a canonical breakpoint */
9
10
  @media (min-width: 1441px) {
10
11
  .template-default {
11
12
  grid-template-columns: 0 auto;
@@ -16,6 +17,7 @@
16
17
  }
17
18
  }
18
19
 
20
+ /* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
19
21
  @media (max-width: 1440px) {
20
22
  .template-default--nav-hydrated.template-default--nav-open {
21
23
  grid-template-columns: var(--nav-width) auto;
@@ -15,6 +15,7 @@
15
15
 
16
16
  }
17
17
 
18
+ /* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
18
19
  @media (max-width: 768px) {
19
20
  .template-default__wrap {
20
21
  min-width: 100%;
@@ -1 +1 @@
1
- {"version":3,"file":"getDocPreferences.d.ts","sourceRoot":"","sources":["../../src/utilities/getDocPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAIjE,KAAK,IAAI,GAAG;IACV,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAED,eAAO,MAAM,iBAAiB,uDAM3B,IAAI,KAAG,OAAO,CAAC,mBAAmB,CA2CpC,CAAA"}
1
+ {"version":3,"file":"getDocPreferences.d.ts","sourceRoot":"","sources":["../../src/utilities/getDocPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAIjE,KAAK,IAAI,GAAG;IACV,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAED,eAAO,MAAM,iBAAiB,uDAM3B,IAAI,KAAG,OAAO,CAAC,mBAAmB,CA4CpC,CAAA"}
@@ -18,6 +18,7 @@ export const getDocPreferences = async ({
18
18
  collection: 'payload-preferences',
19
19
  depth: 0,
20
20
  limit: 1,
21
+ overrideAccess: true,
21
22
  where: {
22
23
  and: [{
23
24
  key: {
@@ -1 +1 @@
1
- {"version":3,"file":"getDocPreferences.js","names":["sanitizeID","getDocPreferences","id","collectionSlug","globalSlug","payload","user","preferencesKey","preferencesResult","find","collection","depth","limit","where","and","key","equals","docs","value","fields"],"sources":["../../src/utilities/getDocPreferences.ts"],"sourcesContent":["import type { DocumentPreferences, Payload, User } from 'payload'\n\nimport { sanitizeID } from '../utilities/sanitizeID.js'\n\ntype Args = {\n collectionSlug?: string\n globalSlug?: string\n id?: number | string\n payload: Payload\n user: User\n}\n\nexport const getDocPreferences = async ({\n id,\n collectionSlug,\n globalSlug,\n payload,\n user,\n}: Args): Promise<DocumentPreferences> => {\n let preferencesKey\n\n if (collectionSlug && id) {\n preferencesKey = `collection-${collectionSlug}-${id}`\n }\n\n if (globalSlug) {\n preferencesKey = `global-${globalSlug}`\n }\n\n if (preferencesKey) {\n const preferencesResult = (await payload.find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n where: {\n and: [\n {\n key: {\n equals: preferencesKey,\n },\n },\n {\n 'user.relationTo': {\n equals: user.collection,\n },\n },\n {\n 'user.value': {\n equals: sanitizeID(user.id),\n },\n },\n ],\n },\n })) as unknown as { docs: { value: DocumentPreferences }[] }\n\n if (preferencesResult?.docs?.[0]?.value) {\n return preferencesResult.docs[0].value\n }\n }\n\n return { fields: {} }\n}\n"],"mappings":"AAEA,SAASA,UAAU,QAAQ;AAU3B,OAAO,MAAMC,iBAAA,GAAoB,MAAAA,CAAO;EACtCC,EAAE;EACFC,cAAc;EACdC,UAAU;EACVC,OAAO;EACPC;AAAI,CACC;EACL,IAAIC,cAAA;EAEJ,IAAIJ,cAAA,IAAkBD,EAAA,EAAI;IACxBK,cAAA,GAAiB,cAAcJ,cAAA,IAAkBD,EAAA,EAAI;EACvD;EAEA,IAAIE,UAAA,EAAY;IACdG,cAAA,GAAiB,UAAUH,UAAA,EAAY;EACzC;EAEA,IAAIG,cAAA,EAAgB;IAClB,MAAMC,iBAAA,GAAqB,MAAMH,OAAA,CAAQI,IAAI,CAAC;MAC5CC,UAAA,EAAY;MACZC,KAAA,EAAO;MACPC,KAAA,EAAO;MACPC,KAAA,EAAO;QACLC,GAAA,EAAK,CACH;UACEC,GAAA,EAAK;YACHC,MAAA,EAAQT;UACV;QACF,GACA;UACE,mBAAmB;YACjBS,MAAA,EAAQV,IAAA,CAAKI;UACf;QACF,GACA;UACE,cAAc;YACZM,MAAA,EAAQhB,UAAA,CAAWM,IAAA,CAAKJ,EAAE;UAC5B;QACF;MAEJ;IACF;IAEA,IAAIM,iBAAA,EAAmBS,IAAA,GAAO,EAAE,EAAEC,KAAA,EAAO;MACvC,OAAOV,iBAAA,CAAkBS,IAAI,CAAC,EAAE,CAACC,KAAK;IACxC;EACF;EAEA,OAAO;IAAEC,MAAA,EAAQ,CAAC;EAAE;AACtB","ignoreList":[]}
1
+ {"version":3,"file":"getDocPreferences.js","names":["sanitizeID","getDocPreferences","id","collectionSlug","globalSlug","payload","user","preferencesKey","preferencesResult","find","collection","depth","limit","overrideAccess","where","and","key","equals","docs","value","fields"],"sources":["../../src/utilities/getDocPreferences.ts"],"sourcesContent":["import type { DocumentPreferences, Payload, User } from 'payload'\n\nimport { sanitizeID } from '../utilities/sanitizeID.js'\n\ntype Args = {\n collectionSlug?: string\n globalSlug?: string\n id?: number | string\n payload: Payload\n user: User\n}\n\nexport const getDocPreferences = async ({\n id,\n collectionSlug,\n globalSlug,\n payload,\n user,\n}: Args): Promise<DocumentPreferences> => {\n let preferencesKey\n\n if (collectionSlug && id) {\n preferencesKey = `collection-${collectionSlug}-${id}`\n }\n\n if (globalSlug) {\n preferencesKey = `global-${globalSlug}`\n }\n\n if (preferencesKey) {\n const preferencesResult = (await payload.find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n overrideAccess: true,\n where: {\n and: [\n {\n key: {\n equals: preferencesKey,\n },\n },\n {\n 'user.relationTo': {\n equals: user.collection,\n },\n },\n {\n 'user.value': {\n equals: sanitizeID(user.id),\n },\n },\n ],\n },\n })) as unknown as { docs: { value: DocumentPreferences }[] }\n\n if (preferencesResult?.docs?.[0]?.value) {\n return preferencesResult.docs[0].value\n }\n }\n\n return { fields: {} }\n}\n"],"mappings":"AAEA,SAASA,UAAU,QAAQ;AAU3B,OAAO,MAAMC,iBAAA,GAAoB,MAAAA,CAAO;EACtCC,EAAE;EACFC,cAAc;EACdC,UAAU;EACVC,OAAO;EACPC;AAAI,CACC;EACL,IAAIC,cAAA;EAEJ,IAAIJ,cAAA,IAAkBD,EAAA,EAAI;IACxBK,cAAA,GAAiB,cAAcJ,cAAA,IAAkBD,EAAA,EAAI;EACvD;EAEA,IAAIE,UAAA,EAAY;IACdG,cAAA,GAAiB,UAAUH,UAAA,EAAY;EACzC;EAEA,IAAIG,cAAA,EAAgB;IAClB,MAAMC,iBAAA,GAAqB,MAAMH,OAAA,CAAQI,IAAI,CAAC;MAC5CC,UAAA,EAAY;MACZC,KAAA,EAAO;MACPC,KAAA,EAAO;MACPC,cAAA,EAAgB;MAChBC,KAAA,EAAO;QACLC,GAAA,EAAK,CACH;UACEC,GAAA,EAAK;YACHC,MAAA,EAAQV;UACV;QACF,GACA;UACE,mBAAmB;YACjBU,MAAA,EAAQX,IAAA,CAAKI;UACf;QACF,GACA;UACE,cAAc;YACZO,MAAA,EAAQjB,UAAA,CAAWM,IAAA,CAAKJ,EAAE;UAC5B;QACF;MAEJ;IACF;IAEA,IAAIM,iBAAA,EAAmBU,IAAA,GAAO,EAAE,EAAEC,KAAA,EAAO;MACvC,OAAOX,iBAAA,CAAkBU,IAAI,CAAC,EAAE,CAACC,KAAK;IACxC;EACF;EAEA,OAAO;IAAEC,MAAA,EAAQ,CAAC;EAAE;AACtB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"getPreferences.d.ts","sourceRoot":"","sources":["../../src/utilities/getPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAI7D,eAAO,MAAM,cAAc,GAClB,CAAC,OACD,MAAM,WACF,OAAO,UACR,qBAAqB,YACnB,MAAM,KACf,OAAO,CAAC;IAAE,EAAE,EAAE,qBAAqB,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CA+BnD,CAAA"}
1
+ {"version":3,"file":"getPreferences.d.ts","sourceRoot":"","sources":["../../src/utilities/getPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAI7D,eAAO,MAAM,cAAc,GAClB,CAAC,OACD,MAAM,WACF,OAAO,UACR,qBAAqB,YACnB,MAAM,KACf,OAAO,CAAC;IAAE,EAAE,EAAE,qBAAqB,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAgCnD,CAAA"}
@@ -4,6 +4,7 @@ export const getPreferences = cache(async (key, payload, userID, userSlug) => {
4
4
  collection: 'payload-preferences',
5
5
  depth: 0,
6
6
  limit: 1,
7
+ overrideAccess: true,
7
8
  pagination: false,
8
9
  where: {
9
10
  and: [{
@@ -1 +1 @@
1
- {"version":3,"file":"getPreferences.js","names":["cache","getPreferences","key","payload","userID","userSlug","result","find","collection","depth","limit","pagination","where","and","equals","then","res","docs"],"sources":["../../src/utilities/getPreferences.ts"],"sourcesContent":["import type { DefaultDocumentIDType, Payload } from 'payload'\n\nimport { cache } from 'react'\n\nexport const getPreferences = cache(\n async <T>(\n key: string,\n payload: Payload,\n userID: DefaultDocumentIDType,\n userSlug: string,\n ): Promise<{ id: DefaultDocumentIDType; value: T }> => {\n const result = (await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n pagination: false,\n where: {\n and: [\n {\n key: {\n equals: key,\n },\n },\n {\n 'user.relationTo': {\n equals: userSlug,\n },\n },\n {\n 'user.value': {\n equals: userID,\n },\n },\n ],\n },\n })\n .then((res) => res.docs?.[0])) as { id: DefaultDocumentIDType; value: T }\n\n return result\n },\n)\n"],"mappings":"AAEA,SAASA,KAAK,QAAQ;AAEtB,OAAO,MAAMC,cAAA,GAAiBD,KAAA,CAC5B,OACEE,GAAA,EACAC,OAAA,EACAC,MAAA,EACAC,QAAA;EAEA,MAAMC,MAAA,GAAU,MAAMH,OAAA,CACnBI,IAAI,CAAC;IACJC,UAAA,EAAY;IACZC,KAAA,EAAO;IACPC,KAAA,EAAO;IACPC,UAAA,EAAY;IACZC,KAAA,EAAO;MACLC,GAAA,EAAK,CACH;QACEX,GAAA,EAAK;UACHY,MAAA,EAAQZ;QACV;MACF,GACA;QACE,mBAAmB;UACjBY,MAAA,EAAQT;QACV;MACF,GACA;QACE,cAAc;UACZS,MAAA,EAAQV;QACV;MACF;IAEJ;EACF,GACCW,IAAI,CAAEC,GAAA,IAAQA,GAAA,CAAIC,IAAI,GAAG,EAAE;EAE9B,OAAOX,MAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"getPreferences.js","names":["cache","getPreferences","key","payload","userID","userSlug","result","find","collection","depth","limit","overrideAccess","pagination","where","and","equals","then","res","docs"],"sources":["../../src/utilities/getPreferences.ts"],"sourcesContent":["import type { DefaultDocumentIDType, Payload } from 'payload'\n\nimport { cache } from 'react'\n\nexport const getPreferences = cache(\n async <T>(\n key: string,\n payload: Payload,\n userID: DefaultDocumentIDType,\n userSlug: string,\n ): Promise<{ id: DefaultDocumentIDType; value: T }> => {\n const result = (await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n overrideAccess: true,\n pagination: false,\n where: {\n and: [\n {\n key: {\n equals: key,\n },\n },\n {\n 'user.relationTo': {\n equals: userSlug,\n },\n },\n {\n 'user.value': {\n equals: userID,\n },\n },\n ],\n },\n })\n .then((res) => res.docs?.[0])) as { id: DefaultDocumentIDType; value: T }\n\n return result\n },\n)\n"],"mappings":"AAEA,SAASA,KAAK,QAAQ;AAEtB,OAAO,MAAMC,cAAA,GAAiBD,KAAA,CAC5B,OACEE,GAAA,EACAC,OAAA,EACAC,MAAA,EACAC,QAAA;EAEA,MAAMC,MAAA,GAAU,MAAMH,OAAA,CACnBI,IAAI,CAAC;IACJC,UAAA,EAAY;IACZC,KAAA,EAAO;IACPC,KAAA,EAAO;IACPC,cAAA,EAAgB;IAChBC,UAAA,EAAY;IACZC,KAAA,EAAO;MACLC,GAAA,EAAK,CACH;QACEZ,GAAA,EAAK;UACHa,MAAA,EAAQb;QACV;MACF,GACA;QACE,mBAAmB;UACjBa,MAAA,EAAQV;QACV;MACF,GACA;QACE,cAAc;UACZU,MAAA,EAAQX;QACV;MACF;IAEJ;EACF,GACCY,IAAI,CAAEC,GAAA,IAAQA,GAAA,CAAIC,IAAI,GAAG,EAAE;EAE9B,OAAOZ,MAAA;AACT","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"getVersions.d.ts","sourceRoot":"","sources":["../../src/utilities/getVersions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,EACrB,IAAI,EACL,MAAM,SAAS,CAAA;AAQhB,KAAK,IAAI,GAAG;IACV,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACzB,cAAc,EAAE,4BAA4B,CAAA;IAC5C,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAED,KAAK,MAAM,GAAG,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAA;IACxB,4BAA4B,EAAE,OAAO,CAAA;IACrC,uBAAuB,EAAE,MAAM,CAAA;IAC/B,YAAY,EAAE,MAAM,CAAA;CACrB,CAAC,CAAA;AAKF,eAAO,MAAM,WAAW,+FASrB,IAAI,KAAG,MAoPT,CAAA"}
1
+ {"version":3,"file":"getVersions.d.ts","sourceRoot":"","sources":["../../src/utilities/getVersions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,EACrB,IAAI,EACL,MAAM,SAAS,CAAA;AAQhB,KAAK,IAAI,GAAG;IACV,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACzB,cAAc,EAAE,4BAA4B,CAAA;IAC5C,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAED,KAAK,MAAM,GAAG,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAA;IACxB,4BAA4B,EAAE,OAAO,CAAA;IACrC,uBAAuB,EAAE,MAAM,CAAA;IAC/B,YAAY,EAAE,MAAM,CAAA;CACrB,CAAC,CAAA;AAKF,eAAO,MAAM,WAAW,+FASrB,IAAI,KAAG,MA4PT,CAAA"}
@@ -55,6 +55,7 @@ export const getVersions = async ({
55
55
  depth: 0,
56
56
  limit: 1,
57
57
  locale: locale || undefined,
58
+ overrideAccess: true,
58
59
  pagination: false,
59
60
  select: {
60
61
  updatedAt: true
@@ -89,6 +90,7 @@ export const getVersions = async ({
89
90
  depth: 0,
90
91
  limit: 1,
91
92
  locale,
93
+ overrideAccess: true,
92
94
  select: {
93
95
  autosave: true
94
96
  },
@@ -106,6 +108,7 @@ export const getVersions = async ({
106
108
  } = await payload.countVersions({
107
109
  collection: collectionConfig.slug,
108
110
  locale,
111
+ overrideAccess: true,
109
112
  user,
110
113
  where: combineQueries({
111
114
  and: [{
@@ -137,6 +140,7 @@ export const getVersions = async ({
137
140
  } = await payload.countVersions({
138
141
  collection: collectionConfig.slug,
139
142
  locale,
143
+ overrideAccess: true,
140
144
  user,
141
145
  where: combineQueries(countVersionsWhere, extractAccessFromPermission(docPermissions.readVersions))
142
146
  }));
@@ -151,6 +155,7 @@ export const getVersions = async ({
151
155
  slug: globalConfig.slug,
152
156
  depth: 0,
153
157
  locale,
158
+ overrideAccess: true,
154
159
  select: {
155
160
  updatedAt: true
156
161
  },
@@ -165,6 +170,7 @@ export const getVersions = async ({
165
170
  slug: globalConfig.slug,
166
171
  limit: 1,
167
172
  locale,
173
+ overrideAccess: true,
168
174
  select: {
169
175
  autosave: true
170
176
  },
@@ -181,6 +187,7 @@ export const getVersions = async ({
181
187
  } = await payload.countGlobalVersions({
182
188
  global: globalConfig.slug,
183
189
  locale,
190
+ overrideAccess: true,
184
191
  user,
185
192
  where: combineQueries({
186
193
  and: [{
@@ -202,6 +209,7 @@ export const getVersions = async ({
202
209
  } = await payload.countGlobalVersions({
203
210
  global: globalConfig.slug,
204
211
  locale,
212
+ overrideAccess: true,
205
213
  user
206
214
  }));
207
215
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getVersions.js","names":["combineQueries","extractAccessFromPermission","hasAutosaveEnabled","hasDraftsEnabled","sanitizeID","traverseForLocalizedFields","getVersions","id","idArg","collectionConfig","doc","docPermissions","globalConfig","locale","payload","user","publishedDoc","hasPublishedDoc","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","entityConfig","versionsConfig","versions","hasLocalizedFields","fields","localizedDraftsEnabled","config","localization","shouldFetchVersions","Boolean","readVersions","_status","find","collection","slug","depth","limit","undefined","pagination","select","updatedAt","where","and","equals","docs","parent","mostRecentVersion","findVersions","autosave","totalDocs","countVersions","greater_than","countVersionsWhere","findGlobal","findGlobalVersions","countGlobalVersions","global"],"sources":["../../src/utilities/getVersions.ts"],"sourcesContent":["import type {\n Payload,\n SanitizedCollectionConfig,\n SanitizedDocumentPermissions,\n SanitizedGlobalConfig,\n User,\n} from 'payload'\n\nimport { combineQueries, extractAccessFromPermission } from 'payload'\nimport { hasAutosaveEnabled, hasDraftsEnabled } from 'payload/shared'\n\nimport { sanitizeID } from './sanitizeID.js'\nimport { traverseForLocalizedFields } from './traverseForLocalizedFields.js'\n\ntype Args = {\n collectionConfig?: SanitizedCollectionConfig\n /**\n * Optional - performance optimization.\n * If a document has been fetched before fetching versions, pass it here.\n * If this document is set to published, we can skip the query to find out if a published document exists,\n * as the passed in document is proof of its existence.\n */\n doc?: Record<string, any>\n docPermissions: SanitizedDocumentPermissions\n globalConfig?: SanitizedGlobalConfig\n id?: number | string\n locale?: string\n payload: Payload\n user: User\n}\n\ntype Result = Promise<{\n hasPublishedDoc: boolean\n mostRecentVersionIsAutosaved: boolean\n unpublishedVersionCount: number\n versionCount: number\n}>\n\n// TODO: in the future, we can parallelize some of these queries\n// this will speed up the API by ~30-100ms or so\n// Note from the future: I have attempted parallelizing these queries, but it made this function almost 2x slower.\nexport const getVersions = async ({\n id: idArg,\n collectionConfig,\n doc,\n docPermissions,\n globalConfig,\n locale,\n payload,\n user,\n}: Args): Result => {\n const id = sanitizeID(idArg)\n let publishedDoc\n let hasPublishedDoc = false\n let mostRecentVersionIsAutosaved = false\n let unpublishedVersionCount = 0\n let versionCount = 0\n\n const entityConfig = collectionConfig || globalConfig\n const versionsConfig = entityConfig?.versions\n const hasLocalizedFields = traverseForLocalizedFields(entityConfig.fields)\n const localizedDraftsEnabled =\n hasDraftsEnabled(entityConfig) &&\n typeof payload.config.localization === 'object' &&\n hasLocalizedFields\n\n const shouldFetchVersions = Boolean(versionsConfig && docPermissions?.readVersions)\n\n if (!shouldFetchVersions) {\n // Without readVersions permission, determine published status from the _status field\n const hasPublishedDoc = localizedDraftsEnabled\n ? doc?._status === 'published'\n : doc?._status !== 'draft'\n\n return {\n hasPublishedDoc,\n mostRecentVersionIsAutosaved,\n unpublishedVersionCount,\n versionCount,\n }\n }\n\n if (collectionConfig) {\n if (!id) {\n return {\n hasPublishedDoc,\n mostRecentVersionIsAutosaved,\n unpublishedVersionCount,\n versionCount,\n }\n }\n\n if (hasDraftsEnabled(collectionConfig)) {\n // Find out if a published document exists\n if (doc?._status === 'published') {\n publishedDoc = doc\n } else {\n publishedDoc = (\n await payload.find({\n collection: collectionConfig.slug,\n depth: 0,\n limit: 1,\n locale: locale || undefined,\n pagination: false,\n select: {\n updatedAt: true,\n },\n user,\n where: {\n and: [\n {\n _status: {\n equals: 'published',\n },\n },\n {\n id: {\n equals: id,\n },\n },\n ],\n },\n })\n )?.docs?.[0]\n }\n\n if (publishedDoc) {\n hasPublishedDoc = true\n }\n\n if (hasAutosaveEnabled(collectionConfig)) {\n const where: Record<string, any> = {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n ],\n }\n\n const mostRecentVersion = await payload.findVersions({\n collection: collectionConfig.slug,\n depth: 0,\n limit: 1,\n locale,\n select: {\n autosave: true,\n },\n user,\n where: combineQueries(where, extractAccessFromPermission(docPermissions.readVersions)),\n })\n\n if (\n mostRecentVersion.docs[0] &&\n 'autosave' in mostRecentVersion.docs[0] &&\n mostRecentVersion.docs[0].autosave\n ) {\n mostRecentVersionIsAutosaved = true\n }\n }\n\n if (publishedDoc?.updatedAt) {\n ;({ totalDocs: unpublishedVersionCount } = await payload.countVersions({\n collection: collectionConfig.slug,\n locale,\n user,\n where: combineQueries(\n {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n {\n 'version._status': {\n equals: 'draft',\n },\n },\n {\n updatedAt: {\n greater_than: publishedDoc.updatedAt,\n },\n },\n ],\n },\n extractAccessFromPermission(docPermissions.readVersions),\n ),\n }))\n }\n }\n\n const countVersionsWhere: Record<string, any> = {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n ],\n }\n\n ;({ totalDocs: versionCount } = await payload.countVersions({\n collection: collectionConfig.slug,\n locale,\n user,\n where: combineQueries(\n countVersionsWhere,\n extractAccessFromPermission(docPermissions.readVersions),\n ),\n }))\n }\n\n if (globalConfig) {\n // Find out if a published document exists\n if (hasDraftsEnabled(globalConfig)) {\n if (doc?._status === 'published') {\n publishedDoc = doc\n } else {\n publishedDoc = await payload.findGlobal({\n slug: globalConfig.slug,\n depth: 0,\n locale,\n select: {\n updatedAt: true,\n },\n user,\n })\n }\n\n if (publishedDoc?._status === 'published') {\n hasPublishedDoc = true\n }\n\n if (hasAutosaveEnabled(globalConfig)) {\n const mostRecentVersion = await payload.findGlobalVersions({\n slug: globalConfig.slug,\n limit: 1,\n locale,\n select: {\n autosave: true,\n },\n user,\n })\n\n if (\n mostRecentVersion.docs[0] &&\n 'autosave' in mostRecentVersion.docs[0] &&\n mostRecentVersion.docs[0].autosave\n ) {\n mostRecentVersionIsAutosaved = true\n }\n }\n\n if (publishedDoc?.updatedAt) {\n ;({ totalDocs: unpublishedVersionCount } = await payload.countGlobalVersions({\n global: globalConfig.slug,\n locale,\n user,\n where: combineQueries(\n {\n and: [\n {\n 'version._status': {\n equals: 'draft',\n },\n },\n {\n updatedAt: {\n greater_than: publishedDoc.updatedAt,\n },\n },\n ],\n },\n extractAccessFromPermission(docPermissions.readVersions),\n ),\n }))\n }\n }\n\n ;({ totalDocs: versionCount } = await payload.countGlobalVersions({\n global: globalConfig.slug,\n locale,\n user,\n }))\n }\n\n return {\n hasPublishedDoc,\n mostRecentVersionIsAutosaved,\n unpublishedVersionCount,\n versionCount,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"getVersions.js","names":["combineQueries","extractAccessFromPermission","hasAutosaveEnabled","hasDraftsEnabled","sanitizeID","traverseForLocalizedFields","getVersions","id","idArg","collectionConfig","doc","docPermissions","globalConfig","locale","payload","user","publishedDoc","hasPublishedDoc","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","entityConfig","versionsConfig","versions","hasLocalizedFields","fields","localizedDraftsEnabled","config","localization","shouldFetchVersions","Boolean","readVersions","_status","find","collection","slug","depth","limit","undefined","overrideAccess","pagination","select","updatedAt","where","and","equals","docs","parent","mostRecentVersion","findVersions","autosave","totalDocs","countVersions","greater_than","countVersionsWhere","findGlobal","findGlobalVersions","countGlobalVersions","global"],"sources":["../../src/utilities/getVersions.ts"],"sourcesContent":["import type {\n Payload,\n SanitizedCollectionConfig,\n SanitizedDocumentPermissions,\n SanitizedGlobalConfig,\n User,\n} from 'payload'\n\nimport { combineQueries, extractAccessFromPermission } from 'payload'\nimport { hasAutosaveEnabled, hasDraftsEnabled } from 'payload/shared'\n\nimport { sanitizeID } from './sanitizeID.js'\nimport { traverseForLocalizedFields } from './traverseForLocalizedFields.js'\n\ntype Args = {\n collectionConfig?: SanitizedCollectionConfig\n /**\n * Optional - performance optimization.\n * If a document has been fetched before fetching versions, pass it here.\n * If this document is set to published, we can skip the query to find out if a published document exists,\n * as the passed in document is proof of its existence.\n */\n doc?: Record<string, any>\n docPermissions: SanitizedDocumentPermissions\n globalConfig?: SanitizedGlobalConfig\n id?: number | string\n locale?: string\n payload: Payload\n user: User\n}\n\ntype Result = Promise<{\n hasPublishedDoc: boolean\n mostRecentVersionIsAutosaved: boolean\n unpublishedVersionCount: number\n versionCount: number\n}>\n\n// TODO: in the future, we can parallelize some of these queries\n// this will speed up the API by ~30-100ms or so\n// Note from the future: I have attempted parallelizing these queries, but it made this function almost 2x slower.\nexport const getVersions = async ({\n id: idArg,\n collectionConfig,\n doc,\n docPermissions,\n globalConfig,\n locale,\n payload,\n user,\n}: Args): Result => {\n const id = sanitizeID(idArg)\n let publishedDoc\n let hasPublishedDoc = false\n let mostRecentVersionIsAutosaved = false\n let unpublishedVersionCount = 0\n let versionCount = 0\n\n const entityConfig = collectionConfig || globalConfig\n const versionsConfig = entityConfig?.versions\n const hasLocalizedFields = traverseForLocalizedFields(entityConfig.fields)\n const localizedDraftsEnabled =\n hasDraftsEnabled(entityConfig) &&\n typeof payload.config.localization === 'object' &&\n hasLocalizedFields\n\n const shouldFetchVersions = Boolean(versionsConfig && docPermissions?.readVersions)\n\n if (!shouldFetchVersions) {\n // Without readVersions permission, determine published status from the _status field\n const hasPublishedDoc = localizedDraftsEnabled\n ? doc?._status === 'published'\n : doc?._status !== 'draft'\n\n return {\n hasPublishedDoc,\n mostRecentVersionIsAutosaved,\n unpublishedVersionCount,\n versionCount,\n }\n }\n\n if (collectionConfig) {\n if (!id) {\n return {\n hasPublishedDoc,\n mostRecentVersionIsAutosaved,\n unpublishedVersionCount,\n versionCount,\n }\n }\n\n if (hasDraftsEnabled(collectionConfig)) {\n // Find out if a published document exists\n if (doc?._status === 'published') {\n publishedDoc = doc\n } else {\n publishedDoc = (\n await payload.find({\n collection: collectionConfig.slug,\n depth: 0,\n limit: 1,\n locale: locale || undefined,\n overrideAccess: true,\n pagination: false,\n select: {\n updatedAt: true,\n },\n user,\n where: {\n and: [\n {\n _status: {\n equals: 'published',\n },\n },\n {\n id: {\n equals: id,\n },\n },\n ],\n },\n })\n )?.docs?.[0]\n }\n\n if (publishedDoc) {\n hasPublishedDoc = true\n }\n\n if (hasAutosaveEnabled(collectionConfig)) {\n const where: Record<string, any> = {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n ],\n }\n\n const mostRecentVersion = await payload.findVersions({\n collection: collectionConfig.slug,\n depth: 0,\n limit: 1,\n locale,\n overrideAccess: true,\n select: {\n autosave: true,\n },\n user,\n where: combineQueries(where, extractAccessFromPermission(docPermissions.readVersions)),\n })\n\n if (\n mostRecentVersion.docs[0] &&\n 'autosave' in mostRecentVersion.docs[0] &&\n mostRecentVersion.docs[0].autosave\n ) {\n mostRecentVersionIsAutosaved = true\n }\n }\n\n if (publishedDoc?.updatedAt) {\n ;({ totalDocs: unpublishedVersionCount } = await payload.countVersions({\n collection: collectionConfig.slug,\n locale,\n overrideAccess: true,\n user,\n where: combineQueries(\n {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n {\n 'version._status': {\n equals: 'draft',\n },\n },\n {\n updatedAt: {\n greater_than: publishedDoc.updatedAt,\n },\n },\n ],\n },\n extractAccessFromPermission(docPermissions.readVersions),\n ),\n }))\n }\n }\n\n const countVersionsWhere: Record<string, any> = {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n ],\n }\n\n ;({ totalDocs: versionCount } = await payload.countVersions({\n collection: collectionConfig.slug,\n locale,\n overrideAccess: true,\n user,\n where: combineQueries(\n countVersionsWhere,\n extractAccessFromPermission(docPermissions.readVersions),\n ),\n }))\n }\n\n if (globalConfig) {\n // Find out if a published document exists\n if (hasDraftsEnabled(globalConfig)) {\n if (doc?._status === 'published') {\n publishedDoc = doc\n } else {\n publishedDoc = await payload.findGlobal({\n slug: globalConfig.slug,\n depth: 0,\n locale,\n overrideAccess: true,\n select: {\n updatedAt: true,\n },\n user,\n })\n }\n\n if (publishedDoc?._status === 'published') {\n hasPublishedDoc = true\n }\n\n if (hasAutosaveEnabled(globalConfig)) {\n const mostRecentVersion = await payload.findGlobalVersions({\n slug: globalConfig.slug,\n limit: 1,\n locale,\n overrideAccess: true,\n select: {\n autosave: true,\n },\n user,\n })\n\n if (\n mostRecentVersion.docs[0] &&\n 'autosave' in mostRecentVersion.docs[0] &&\n mostRecentVersion.docs[0].autosave\n ) {\n mostRecentVersionIsAutosaved = true\n }\n }\n\n if (publishedDoc?.updatedAt) {\n ;({ totalDocs: unpublishedVersionCount } = await payload.countGlobalVersions({\n global: globalConfig.slug,\n locale,\n overrideAccess: true,\n user,\n where: combineQueries(\n {\n and: [\n {\n 'version._status': {\n equals: 'draft',\n },\n },\n {\n updatedAt: {\n greater_than: publishedDoc.updatedAt,\n },\n },\n ],\n },\n extractAccessFromPermission(docPermissions.readVersions),\n ),\n }))\n }\n }\n\n ;({ totalDocs: versionCount } = await payload.countGlobalVersions({\n global: globalConfig.slug,\n locale,\n overrideAccess: true,\n user,\n }))\n }\n\n return {\n hasPublishedDoc,\n mostRecentVersionIsAutosaved,\n unpublishedVersionCount,\n versionCount,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"handleAuthRedirect.d.ts","sourceRoot":"","sources":["../../src/utilities/handleAuthRedirect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAKnC,KAAK,IAAI,GAAG;IACV,MAAM,EAAE;QACN,KAAK,EAAE;YACL,MAAM,EAAE;gBACN,KAAK,EAAE,MAAM,CAAA;gBACb,YAAY,EAAE,MAAM,CAAA;aACrB,CAAA;SACF,CAAA;QACD,MAAM,EAAE;YACN,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;KACF,CAAA;IACD,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;IAClD,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ,CAAA;AAED,gFAAgF;AAChF,eAAO,MAAM,kBAAkB,0CAA2C,IAAI,KAAG,MAkChF,CAAA"}
1
+ {"version":3,"file":"handleAuthRedirect.d.ts","sourceRoot":"","sources":["../../src/utilities/handleAuthRedirect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAKnC,KAAK,IAAI,GAAG;IACV,MAAM,EAAE;QACN,KAAK,EAAE;YACL,MAAM,EAAE;gBACN,KAAK,EAAE,MAAM,CAAA;gBACb,YAAY,EAAE,MAAM,CAAA;aACrB,CAAA;SACF,CAAA;QACD,MAAM,EAAE;YACN,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;KACF,CAAA;IACD,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;IAClD,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ,CAAA;AAED,gFAAgF;AAChF,eAAO,MAAM,kBAAkB,0CAA2C,IAAI,KAAG,MAuChF,CAAA"}
@@ -21,7 +21,10 @@ export const handleAuthRedirect = ({
21
21
  if (searchParams && 'redirect' in searchParams) {
22
22
  delete searchParams.redirect;
23
23
  }
24
- const redirectRoute = (route !== adminRoute ? route : '') + (Object.keys(searchParams ?? {}).length > 0 ? `${qs.stringify(searchParams, {
24
+ const redirectRoute = (route !== adminRoute ? formatAdminURL({
25
+ adminRoute: '/',
26
+ path: route
27
+ }) : '') + (Object.keys(searchParams ?? {}).length > 0 ? `${qs.stringify(searchParams, {
25
28
  addQueryPrefix: true
26
29
  })}` : '');
27
30
  const redirectTo = formatAdminURL({
@@ -1 +1 @@
1
- {"version":3,"file":"handleAuthRedirect.js","names":["formatAdminURL","qs","handleAuthRedirect","config","route","searchParams","user","admin","routes","login","loginRouteFromConfig","unauthorized","unauthorizedRoute","adminRoute","redirect","redirectRoute","Object","keys","length","stringify","addQueryPrefix","redirectTo","path","parsedLoginRouteSearchParams","parse","split","searchParamsWithRedirect"],"sources":["../../src/utilities/handleAuthRedirect.ts"],"sourcesContent":["import type { User } from 'payload'\n\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\n\ntype Args = {\n config: {\n admin: {\n routes: {\n login: string\n unauthorized: string\n }\n }\n routes: {\n admin: string\n }\n }\n route: string\n searchParams: { [key: string]: string | string[] }\n user?: User\n}\n\n/** Builds the redirect URL for unauthenticated or unauthorized admin access. */\nexport const handleAuthRedirect = ({ config, route, searchParams, user }: Args): string => {\n const {\n admin: {\n routes: { login: loginRouteFromConfig, unauthorized: unauthorizedRoute },\n },\n routes: { admin: adminRoute },\n } = config\n\n if (searchParams && 'redirect' in searchParams) {\n delete searchParams.redirect\n }\n\n const redirectRoute =\n (route !== adminRoute ? route : '') +\n (Object.keys(searchParams ?? {}).length > 0\n ? `${qs.stringify(searchParams, { addQueryPrefix: true })}`\n : '')\n\n const redirectTo = formatAdminURL({\n adminRoute,\n path: (user ? unauthorizedRoute : loginRouteFromConfig) as `/${string}`,\n })\n\n const parsedLoginRouteSearchParams = qs.parse(redirectTo.split('?')[1] ?? '')\n\n const searchParamsWithRedirect = `${qs.stringify(\n {\n ...parsedLoginRouteSearchParams,\n ...(redirectRoute ? { redirect: redirectRoute } : {}),\n },\n { addQueryPrefix: true },\n )}`\n\n return `${redirectTo.split('?', 1)[0]}${searchParamsWithRedirect}`\n}\n"],"mappings":"AAEA,SAASA,cAAc,QAAQ;AAC/B,YAAYC,EAAA,MAAQ;AAmBpB;AACA,OAAO,MAAMC,kBAAA,GAAqBA,CAAC;EAAEC,MAAM;EAAEC,KAAK;EAAEC,YAAY;EAAEC;AAAI,CAAQ;EAC5E,MAAM;IACJC,KAAA,EAAO;MACLC,MAAA,EAAQ;QAAEC,KAAA,EAAOC,oBAAoB;QAAEC,YAAA,EAAcC;MAAiB;IAAE,CACzE;IACDJ,MAAA,EAAQ;MAAED,KAAA,EAAOM;IAAU;EAAE,CAC9B,GAAGV,MAAA;EAEJ,IAAIE,YAAA,IAAgB,cAAcA,YAAA,EAAc;IAC9C,OAAOA,YAAA,CAAaS,QAAQ;EAC9B;EAEA,MAAMC,aAAA,GACJ,CAACX,KAAA,KAAUS,UAAA,GAAaT,KAAA,GAAQ,EAAC,KAChCY,MAAA,CAAOC,IAAI,CAACZ,YAAA,IAAgB,CAAC,GAAGa,MAAM,GAAG,IACtC,GAAGjB,EAAA,CAAGkB,SAAS,CAACd,YAAA,EAAc;IAAEe,cAAA,EAAgB;EAAK,IAAI,GACzD,EAAC;EAEP,MAAMC,UAAA,GAAarB,cAAA,CAAe;IAChCa,UAAA;IACAS,IAAA,EAAOhB,IAAA,GAAOM,iBAAA,GAAoBF;EACpC;EAEA,MAAMa,4BAAA,GAA+BtB,EAAA,CAAGuB,KAAK,CAACH,UAAA,CAAWI,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI;EAE1E,MAAMC,wBAAA,GAA2B,GAAGzB,EAAA,CAAGkB,SAAS,CAC9C;IACE,GAAGI,4BAA4B;IAC/B,IAAIR,aAAA,GAAgB;MAAED,QAAA,EAAUC;IAAc,IAAI,CAAC,CAAC;EACtD,GACA;IAAEK,cAAA,EAAgB;EAAK,IACtB;EAEH,OAAO,GAAGC,UAAA,CAAWI,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,GAAGC,wBAAA,EAA0B;AACpE","ignoreList":[]}
1
+ {"version":3,"file":"handleAuthRedirect.js","names":["formatAdminURL","qs","handleAuthRedirect","config","route","searchParams","user","admin","routes","login","loginRouteFromConfig","unauthorized","unauthorizedRoute","adminRoute","redirect","redirectRoute","path","Object","keys","length","stringify","addQueryPrefix","redirectTo","parsedLoginRouteSearchParams","parse","split","searchParamsWithRedirect"],"sources":["../../src/utilities/handleAuthRedirect.ts"],"sourcesContent":["import type { User } from 'payload'\n\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\n\ntype Args = {\n config: {\n admin: {\n routes: {\n login: string\n unauthorized: string\n }\n }\n routes: {\n admin: string\n }\n }\n route: string\n searchParams: { [key: string]: string | string[] }\n user?: User\n}\n\n/** Builds the redirect URL for unauthenticated or unauthorized admin access. */\nexport const handleAuthRedirect = ({ config, route, searchParams, user }: Args): string => {\n const {\n admin: {\n routes: { login: loginRouteFromConfig, unauthorized: unauthorizedRoute },\n },\n routes: { admin: adminRoute },\n } = config\n\n if (searchParams && 'redirect' in searchParams) {\n delete searchParams.redirect\n }\n\n const redirectRoute =\n (route !== adminRoute\n ? formatAdminURL({\n adminRoute: '/',\n path: route as `/${string}`,\n })\n : '') +\n (Object.keys(searchParams ?? {}).length > 0\n ? `${qs.stringify(searchParams, { addQueryPrefix: true })}`\n : '')\n\n const redirectTo = formatAdminURL({\n adminRoute,\n path: (user ? unauthorizedRoute : loginRouteFromConfig) as `/${string}`,\n })\n\n const parsedLoginRouteSearchParams = qs.parse(redirectTo.split('?')[1] ?? '')\n\n const searchParamsWithRedirect = `${qs.stringify(\n {\n ...parsedLoginRouteSearchParams,\n ...(redirectRoute ? { redirect: redirectRoute } : {}),\n },\n { addQueryPrefix: true },\n )}`\n\n return `${redirectTo.split('?', 1)[0]}${searchParamsWithRedirect}`\n}\n"],"mappings":"AAEA,SAASA,cAAc,QAAQ;AAC/B,YAAYC,EAAA,MAAQ;AAmBpB;AACA,OAAO,MAAMC,kBAAA,GAAqBA,CAAC;EAAEC,MAAM;EAAEC,KAAK;EAAEC,YAAY;EAAEC;AAAI,CAAQ;EAC5E,MAAM;IACJC,KAAA,EAAO;MACLC,MAAA,EAAQ;QAAEC,KAAA,EAAOC,oBAAoB;QAAEC,YAAA,EAAcC;MAAiB;IAAE,CACzE;IACDJ,MAAA,EAAQ;MAAED,KAAA,EAAOM;IAAU;EAAE,CAC9B,GAAGV,MAAA;EAEJ,IAAIE,YAAA,IAAgB,cAAcA,YAAA,EAAc;IAC9C,OAAOA,YAAA,CAAaS,QAAQ;EAC9B;EAEA,MAAMC,aAAA,GACJ,CAACX,KAAA,KAAUS,UAAA,GACPb,cAAA,CAAe;IACba,UAAA,EAAY;IACZG,IAAA,EAAMZ;EACR,KACA,EAAC,KACJa,MAAA,CAAOC,IAAI,CAACb,YAAA,IAAgB,CAAC,GAAGc,MAAM,GAAG,IACtC,GAAGlB,EAAA,CAAGmB,SAAS,CAACf,YAAA,EAAc;IAAEgB,cAAA,EAAgB;EAAK,IAAI,GACzD,EAAC;EAEP,MAAMC,UAAA,GAAatB,cAAA,CAAe;IAChCa,UAAA;IACAG,IAAA,EAAOV,IAAA,GAAOM,iBAAA,GAAoBF;EACpC;EAEA,MAAMa,4BAAA,GAA+BtB,EAAA,CAAGuB,KAAK,CAACF,UAAA,CAAWG,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI;EAE1E,MAAMC,wBAAA,GAA2B,GAAGzB,EAAA,CAAGmB,SAAS,CAC9C;IACE,GAAGG,4BAA4B;IAC/B,IAAIR,aAAA,GAAgB;MAAED,QAAA,EAAUC;IAAc,IAAI,CAAC,CAAC;EACtD,GACA;IAAEM,cAAA,EAAgB;EAAK,IACtB;EAEH,OAAO,GAAGC,UAAA,CAAWG,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,GAAGC,wBAAA,EAA0B;AACpE","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"isPathMatchingRoute.d.ts","sourceRoot":"","sources":["../../src/utilities/isPathMatchingRoute.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,gEAM7B;IACD,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,YA4BA,CAAA"}
1
+ {"version":3,"file":"isPathMatchingRoute.d.ts","sourceRoot":"","sources":["../../src/utilities/isPathMatchingRoute.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB,gEAM7B;IACD,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,YA6BA,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { pathToRegexp } from 'path-to-regexp';
2
+ import { stripTrailingSlash } from 'payload/shared';
2
3
  export const isPathMatchingRoute = ({
3
4
  currentRoute,
4
5
  exact,
@@ -9,21 +10,22 @@ export const isPathMatchingRoute = ({
9
10
  if (!viewPath) {
10
11
  return false;
11
12
  }
13
+ const normalizedCurrentRoute = strict ? currentRoute : stripTrailingSlash(currentRoute);
12
14
  const keys = [];
13
15
  const regex = pathToRegexp(viewPath, keys, {
14
16
  sensitive,
15
17
  strict
16
18
  });
17
- const match = regex.exec(currentRoute);
18
- const viewRoute = match?.[0] || viewPath;
19
+ const match = regex.exec(normalizedCurrentRoute);
20
+ const viewRoute = strict ? match?.[0] || viewPath : stripTrailingSlash(match?.[0] || viewPath);
19
21
  if (exact) {
20
- return currentRoute === viewRoute;
22
+ return normalizedCurrentRoute === viewRoute;
21
23
  }
22
24
  if (!exact) {
23
- if (!currentRoute.startsWith(viewRoute)) {
25
+ if (!normalizedCurrentRoute.startsWith(viewRoute)) {
24
26
  return false;
25
27
  }
26
- const remainingPath = currentRoute.slice(viewRoute.length);
28
+ const remainingPath = normalizedCurrentRoute.slice(viewRoute.length);
27
29
  return remainingPath === '' || remainingPath.startsWith('/');
28
30
  }
29
31
  };
@@ -1 +1 @@
1
- {"version":3,"file":"isPathMatchingRoute.js","names":["pathToRegexp","isPathMatchingRoute","currentRoute","exact","path","viewPath","sensitive","strict","keys","regex","match","exec","viewRoute","startsWith","remainingPath","slice","length"],"sources":["../../src/utilities/isPathMatchingRoute.ts"],"sourcesContent":["import { pathToRegexp } from 'path-to-regexp'\n\nexport const isPathMatchingRoute = ({\n currentRoute,\n exact,\n path: viewPath,\n sensitive,\n strict,\n}: {\n currentRoute: string\n exact?: boolean\n path?: string\n sensitive?: boolean\n strict?: boolean\n}) => {\n if (!viewPath) {\n return false\n }\n\n const keys = []\n\n const regex = pathToRegexp(viewPath, keys, {\n sensitive,\n strict,\n })\n\n const match = regex.exec(currentRoute)\n const viewRoute = match?.[0] || viewPath\n\n if (exact) {\n return currentRoute === viewRoute\n }\n\n if (!exact) {\n if (!currentRoute.startsWith(viewRoute)) {\n return false\n }\n\n const remainingPath = currentRoute.slice(viewRoute.length)\n\n return remainingPath === '' || remainingPath.startsWith('/')\n }\n}\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ;AAE7B,OAAO,MAAMC,mBAAA,GAAsBA,CAAC;EAClCC,YAAY;EACZC,KAAK;EACLC,IAAA,EAAMC,QAAQ;EACdC,SAAS;EACTC;AAAM,CAOP;EACC,IAAI,CAACF,QAAA,EAAU;IACb,OAAO;EACT;EAEA,MAAMG,IAAA,GAAO,EAAE;EAEf,MAAMC,KAAA,GAAQT,YAAA,CAAaK,QAAA,EAAUG,IAAA,EAAM;IACzCF,SAAA;IACAC;EACF;EAEA,MAAMG,KAAA,GAAQD,KAAA,CAAME,IAAI,CAACT,YAAA;EACzB,MAAMU,SAAA,GAAYF,KAAA,GAAQ,EAAE,IAAIL,QAAA;EAEhC,IAAIF,KAAA,EAAO;IACT,OAAOD,YAAA,KAAiBU,SAAA;EAC1B;EAEA,IAAI,CAACT,KAAA,EAAO;IACV,IAAI,CAACD,YAAA,CAAaW,UAAU,CAACD,SAAA,GAAY;MACvC,OAAO;IACT;IAEA,MAAME,aAAA,GAAgBZ,YAAA,CAAaa,KAAK,CAACH,SAAA,CAAUI,MAAM;IAEzD,OAAOF,aAAA,KAAkB,MAAMA,aAAA,CAAcD,UAAU,CAAC;EAC1D;AACF","ignoreList":[]}
1
+ {"version":3,"file":"isPathMatchingRoute.js","names":["pathToRegexp","stripTrailingSlash","isPathMatchingRoute","currentRoute","exact","path","viewPath","sensitive","strict","normalizedCurrentRoute","keys","regex","match","exec","viewRoute","startsWith","remainingPath","slice","length"],"sources":["../../src/utilities/isPathMatchingRoute.ts"],"sourcesContent":["import { pathToRegexp } from 'path-to-regexp'\nimport { stripTrailingSlash } from 'payload/shared'\n\nexport const isPathMatchingRoute = ({\n currentRoute,\n exact,\n path: viewPath,\n sensitive,\n strict,\n}: {\n currentRoute: string\n exact?: boolean\n path?: string\n sensitive?: boolean\n strict?: boolean\n}) => {\n if (!viewPath) {\n return false\n }\n\n const normalizedCurrentRoute = strict ? currentRoute : stripTrailingSlash(currentRoute)\n const keys = []\n\n const regex = pathToRegexp(viewPath, keys, {\n sensitive,\n strict,\n })\n\n const match = regex.exec(normalizedCurrentRoute)\n const viewRoute = strict ? match?.[0] || viewPath : stripTrailingSlash(match?.[0] || viewPath)\n\n if (exact) {\n return normalizedCurrentRoute === viewRoute\n }\n\n if (!exact) {\n if (!normalizedCurrentRoute.startsWith(viewRoute)) {\n return false\n }\n\n const remainingPath = normalizedCurrentRoute.slice(viewRoute.length)\n\n return remainingPath === '' || remainingPath.startsWith('/')\n }\n}\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ;AAC7B,SAASC,kBAAkB,QAAQ;AAEnC,OAAO,MAAMC,mBAAA,GAAsBA,CAAC;EAClCC,YAAY;EACZC,KAAK;EACLC,IAAA,EAAMC,QAAQ;EACdC,SAAS;EACTC;AAAM,CAOP;EACC,IAAI,CAACF,QAAA,EAAU;IACb,OAAO;EACT;EAEA,MAAMG,sBAAA,GAAyBD,MAAA,GAASL,YAAA,GAAeF,kBAAA,CAAmBE,YAAA;EAC1E,MAAMO,IAAA,GAAO,EAAE;EAEf,MAAMC,KAAA,GAAQX,YAAA,CAAaM,QAAA,EAAUI,IAAA,EAAM;IACzCH,SAAA;IACAC;EACF;EAEA,MAAMI,KAAA,GAAQD,KAAA,CAAME,IAAI,CAACJ,sBAAA;EACzB,MAAMK,SAAA,GAAYN,MAAA,GAASI,KAAA,GAAQ,EAAE,IAAIN,QAAA,GAAWL,kBAAA,CAAmBW,KAAA,GAAQ,EAAE,IAAIN,QAAA;EAErF,IAAIF,KAAA,EAAO;IACT,OAAOK,sBAAA,KAA2BK,SAAA;EACpC;EAEA,IAAI,CAACV,KAAA,EAAO;IACV,IAAI,CAACK,sBAAA,CAAuBM,UAAU,CAACD,SAAA,GAAY;MACjD,OAAO;IACT;IAEA,MAAME,aAAA,GAAgBP,sBAAA,CAAuBQ,KAAK,CAACH,SAAA,CAAUI,MAAM;IAEnE,OAAOF,aAAA,KAAkB,MAAMA,aAAA,CAAcD,UAAU,CAAC;EAC1D;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"schedulePublishHandler.d.ts","sourceRoot":"","sources":["../../src/utilities/schedulePublishHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAKvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mDAAmD,CAAA;AAKtF,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,CAAC,EAAE,IAAI,CAAA;IACX;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,IAAI,CAAC,wBAAwB,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAA;AAE7D,MAAM,MAAM,sCAAsC,GAAG;IACnD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,kCAAkC,EAAE,cAAc,CAC7D,sCAAsC,EACtC,OAAO,CAAC,aAAa,EAAE,CAAC,CAiDzB,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,cAAc,CAAC,0BAA0B,CA+D7E,CAAA"}
1
+ {"version":3,"file":"schedulePublishHandler.d.ts","sourceRoot":"","sources":["../../src/utilities/schedulePublishHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAKvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mDAAmD,CAAA;AAKtF,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,CAAC,EAAE,IAAI,CAAA;IACX;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,IAAI,CAAC,wBAAwB,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAA;AAE7D,MAAM,MAAM,sCAAsC,GAAG;IACnD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,kCAAkC,EAAE,cAAc,CAC7D,sCAAsC,EACtC,OAAO,CAAC,aAAa,EAAE,CAAC,CAiDzB,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,cAAc,CAAC,0BAA0B,CAiE7E,CAAA"}
@@ -79,6 +79,7 @@ export const schedulePublishHandler = async ({
79
79
  if (deleteID) {
80
80
  await payload.delete({
81
81
  collection: 'payload-jobs',
82
+ overrideAccess: true,
82
83
  req,
83
84
  where: {
84
85
  and: [{
@@ -105,6 +106,7 @@ export const schedulePublishHandler = async ({
105
106
  value: user.id
106
107
  } : undefined
107
108
  },
109
+ overrideAccess: true,
108
110
  task: 'schedulePublish',
109
111
  waitUntil: date
110
112
  });
@@ -1 +1 @@
1
- {"version":3,"file":"schedulePublishHandler.js","names":["canAccessAdmin","Forbidden","hasScheduledPublishEnabled","buildUpcomingScheduleWhere","getDocumentPermissions","getUpcomingScheduledPublishHandler","id","collectionSlug","globalSlug","req","payload","collectionConfig","collections","config","undefined","globalConfig","globals","find","slug","entityConfig","hasValidTarget","Boolean","t","hasPublishPermission","data","docs","db","collection","limit","sort","where","map","job","input","type","locale","timezone","waitUntil","schedulePublishHandler","date","deleteID","doc","global","localeToPublish","i18n","user","delete","and","equals","taskSlug","jobs","queue","relationTo","value","task","err","error","logger","message"],"sources":["../../src/utilities/schedulePublishHandler.ts"],"sourcesContent":["import type { SchedulePublishTaskInput, ServerFunction } from 'payload'\n\nimport { canAccessAdmin, Forbidden } from 'payload'\nimport { hasScheduledPublishEnabled } from 'payload/shared'\n\nimport type { UpcomingEvent } from '../elements/PublishButton/ScheduleDrawer/types.js'\n\nimport { buildUpcomingScheduleWhere } from '../elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.js'\nimport { getDocumentPermissions } from './getDocumentPermissions.js'\n\nexport type SchedulePublishHandlerArgs = {\n date?: Date\n /**\n * The job id to delete to remove a scheduled publish event\n */\n deleteID?: number | string\n localeToPublish?: string\n timezone?: string\n} & Pick<SchedulePublishTaskInput, 'doc' | 'global' | 'type'>\n\nexport type GetUpcomingScheduledPublishHandlerArgs = {\n collectionSlug?: string\n globalSlug?: string\n id?: number | string\n}\n\nexport const getUpcomingScheduledPublishHandler: ServerFunction<\n GetUpcomingScheduledPublishHandlerArgs,\n Promise<UpcomingEvent[]>\n> = async ({ id, collectionSlug, globalSlug, req }) => {\n const { payload } = req\n\n await canAccessAdmin({ req })\n\n const collectionConfig = collectionSlug ? payload.collections[collectionSlug]?.config : undefined\n const globalConfig = globalSlug\n ? payload.config.globals.find(({ slug }) => slug === globalSlug)\n : undefined\n const entityConfig = collectionConfig || globalConfig\n const hasValidTarget = Boolean(\n entityConfig &&\n hasScheduledPublishEnabled(entityConfig) &&\n ((collectionConfig && id !== undefined && !globalSlug) || (globalConfig && !collectionSlug)),\n )\n\n if (!hasValidTarget) {\n throw new Forbidden(req.t)\n }\n\n const { hasPublishPermission } = await getDocumentPermissions({\n id,\n collectionConfig,\n data: {},\n globalConfig,\n req,\n })\n\n if (!hasPublishPermission) {\n throw new Forbidden(req.t)\n }\n\n const { docs } = await payload.db.find<UpcomingEvent>({\n collection: 'payload-jobs',\n limit: 0,\n sort: 'waitUntil',\n where: buildUpcomingScheduleWhere({ id, collectionSlug, globalSlug }),\n })\n\n return docs.map((job) => ({\n id: job.id,\n input: {\n type: job.input?.type === 'unpublish' ? 'unpublish' : 'publish',\n locale: job.input?.locale,\n timezone: job.input?.timezone,\n },\n waitUntil: job.waitUntil,\n }))\n}\n\nexport const schedulePublishHandler: ServerFunction<SchedulePublishHandlerArgs> = async ({\n type,\n date,\n deleteID,\n doc,\n global,\n localeToPublish,\n req,\n timezone,\n}) => {\n const { i18n, payload, user } = req\n\n await canAccessAdmin({ req })\n\n try {\n if (deleteID) {\n await payload.delete({\n collection: 'payload-jobs',\n req,\n where: {\n and: [{ id: { equals: deleteID } }, { taskSlug: { equals: 'schedulePublish' } }],\n },\n })\n }\n\n await payload.jobs.queue({\n input: {\n type,\n doc,\n global,\n locale: localeToPublish,\n timezone,\n user:\n user && user.collection\n ? {\n relationTo: user.collection,\n value: user.id,\n }\n : undefined,\n },\n task: 'schedulePublish',\n waitUntil: date,\n })\n } catch (err) {\n let error\n\n if (deleteID) {\n error = `Error deleting scheduled publish event with ID ${deleteID}`\n } else {\n error = `Error scheduling ${type} for `\n if (doc) {\n error += `document with ID ${doc.value} in collection ${doc.relationTo}`\n }\n }\n\n payload.logger.error({ err }, error)\n\n return {\n error,\n }\n }\n\n return { message: i18n.t('general:success') }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"schedulePublishHandler.js","names":["canAccessAdmin","Forbidden","hasScheduledPublishEnabled","buildUpcomingScheduleWhere","getDocumentPermissions","getUpcomingScheduledPublishHandler","id","collectionSlug","globalSlug","req","payload","collectionConfig","collections","config","undefined","globalConfig","globals","find","slug","entityConfig","hasValidTarget","Boolean","t","hasPublishPermission","data","docs","db","collection","limit","sort","where","map","job","input","type","locale","timezone","waitUntil","schedulePublishHandler","date","deleteID","doc","global","localeToPublish","i18n","user","delete","overrideAccess","and","equals","taskSlug","jobs","queue","relationTo","value","task","err","error","logger","message"],"sources":["../../src/utilities/schedulePublishHandler.ts"],"sourcesContent":["import type { SchedulePublishTaskInput, ServerFunction } from 'payload'\n\nimport { canAccessAdmin, Forbidden } from 'payload'\nimport { hasScheduledPublishEnabled } from 'payload/shared'\n\nimport type { UpcomingEvent } from '../elements/PublishButton/ScheduleDrawer/types.js'\n\nimport { buildUpcomingScheduleWhere } from '../elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.js'\nimport { getDocumentPermissions } from './getDocumentPermissions.js'\n\nexport type SchedulePublishHandlerArgs = {\n date?: Date\n /**\n * The job id to delete to remove a scheduled publish event\n */\n deleteID?: number | string\n localeToPublish?: string\n timezone?: string\n} & Pick<SchedulePublishTaskInput, 'doc' | 'global' | 'type'>\n\nexport type GetUpcomingScheduledPublishHandlerArgs = {\n collectionSlug?: string\n globalSlug?: string\n id?: number | string\n}\n\nexport const getUpcomingScheduledPublishHandler: ServerFunction<\n GetUpcomingScheduledPublishHandlerArgs,\n Promise<UpcomingEvent[]>\n> = async ({ id, collectionSlug, globalSlug, req }) => {\n const { payload } = req\n\n await canAccessAdmin({ req })\n\n const collectionConfig = collectionSlug ? payload.collections[collectionSlug]?.config : undefined\n const globalConfig = globalSlug\n ? payload.config.globals.find(({ slug }) => slug === globalSlug)\n : undefined\n const entityConfig = collectionConfig || globalConfig\n const hasValidTarget = Boolean(\n entityConfig &&\n hasScheduledPublishEnabled(entityConfig) &&\n ((collectionConfig && id !== undefined && !globalSlug) || (globalConfig && !collectionSlug)),\n )\n\n if (!hasValidTarget) {\n throw new Forbidden(req.t)\n }\n\n const { hasPublishPermission } = await getDocumentPermissions({\n id,\n collectionConfig,\n data: {},\n globalConfig,\n req,\n })\n\n if (!hasPublishPermission) {\n throw new Forbidden(req.t)\n }\n\n const { docs } = await payload.db.find<UpcomingEvent>({\n collection: 'payload-jobs',\n limit: 0,\n sort: 'waitUntil',\n where: buildUpcomingScheduleWhere({ id, collectionSlug, globalSlug }),\n })\n\n return docs.map((job) => ({\n id: job.id,\n input: {\n type: job.input?.type === 'unpublish' ? 'unpublish' : 'publish',\n locale: job.input?.locale,\n timezone: job.input?.timezone,\n },\n waitUntil: job.waitUntil,\n }))\n}\n\nexport const schedulePublishHandler: ServerFunction<SchedulePublishHandlerArgs> = async ({\n type,\n date,\n deleteID,\n doc,\n global,\n localeToPublish,\n req,\n timezone,\n}) => {\n const { i18n, payload, user } = req\n\n await canAccessAdmin({ req })\n\n try {\n if (deleteID) {\n await payload.delete({\n collection: 'payload-jobs',\n overrideAccess: true,\n req,\n where: {\n and: [{ id: { equals: deleteID } }, { taskSlug: { equals: 'schedulePublish' } }],\n },\n })\n }\n\n await payload.jobs.queue({\n input: {\n type,\n doc,\n global,\n locale: localeToPublish,\n timezone,\n user:\n user && user.collection\n ? {\n relationTo: user.collection,\n value: user.id,\n }\n : undefined,\n },\n overrideAccess: true,\n task: 'schedulePublish',\n waitUntil: date,\n })\n } catch (err) {\n let error\n\n if (deleteID) {\n error = `Error deleting scheduled publish event with ID ${deleteID}`\n } else {\n error = `Error scheduling ${type} for `\n if (doc) {\n error += `document with ID ${doc.value} in collection ${doc.relationTo}`\n }\n }\n\n payload.logger.error({ err }, error)\n\n return {\n error,\n }\n }\n\n return { message: i18n.t('general:success') }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"upsertPreferences.d.ts","sourceRoot":"","sources":["../../src/utilities/upsertPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAO7E,KAAK,aAAa,CAAC,CAAC,IAAI;IACtB,EAAE,EAAE,qBAAqB,GAAG,SAAS,CAAA;IACrC,KAAK,CAAC,EAAE,CAAC,GAAG,SAAS,CAAA;CACtB,CAAA;AAED,KAAK,YAAY,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,CAAA;AAQ5E,eAAO,MAAM,cAAc,GAClB,CAAC,OACD,MAAM,WACF,OAAO,UACR,qBAAqB,YACnB,MAAM,KACf,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CA+B5B,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAU,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,oDAK/E;IACD,WAAW,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,YAAY,KAAK,CAAC,CAAA;IACnF,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,cAAc,CAAA;IACnB,KAAK,EAAE,CAAC,CAAA;CACT,KAAG,OAAO,CAAC,CAAC,CA0DZ,CAAA"}
1
+ {"version":3,"file":"upsertPreferences.d.ts","sourceRoot":"","sources":["../../src/utilities/upsertPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAO7E,KAAK,aAAa,CAAC,CAAC,IAAI;IACtB,EAAE,EAAE,qBAAqB,GAAG,SAAS,CAAA;IACrC,KAAK,CAAC,EAAE,CAAC,GAAG,SAAS,CAAA;CACtB,CAAA;AAED,KAAK,YAAY,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,CAAA;AAQ5E,eAAO,MAAM,cAAc,GAClB,CAAC,OACD,MAAM,WACF,OAAO,UACR,qBAAqB,YACnB,MAAM,KACf,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAgC5B,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAU,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,oDAK/E;IACD,WAAW,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,YAAY,KAAK,CAAC,CAAA;IACnF,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,cAAc,CAAA;IACnB,KAAK,EAAE,CAAC,CAAA;CACT,KAAG,OAAO,CAAC,CAAC,CA4DZ,CAAA"}
@@ -10,6 +10,7 @@ export const getPreferences = cache(async (key, payload, userID, userSlug) => {
10
10
  collection: 'payload-preferences',
11
11
  depth: 0,
12
12
  limit: 1,
13
+ overrideAccess: true,
13
14
  pagination: false,
14
15
  where: {
15
16
  and: [{
@@ -58,6 +59,7 @@ export const upsertPreferences = async ({
58
59
  },
59
60
  depth: 0,
60
61
  disableTransaction: true,
62
+ overrideAccess: true,
61
63
  user: req.user
62
64
  });
63
65
  return createdPrefs.value;
@@ -83,6 +85,7 @@ export const upsertPreferences = async ({
83
85
  },
84
86
  depth: 0,
85
87
  disableTransaction: true,
88
+ overrideAccess: true,
86
89
  user: req.user
87
90
  })?.then(res => res.value);
88
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"upsertPreferences.js","names":["dequal","cache","removeUndefined","defaultMerge","existingValue","incomingValue","getPreferences","key","payload","userID","userSlug","result","find","collection","depth","limit","pagination","where","and","equals","then","res","docs","upsertPreferences","customMerge","req","value","existingPrefs","user","id","newPrefs","createdPrefs","create","data","disableTransaction","mergedPrefs","update"],"sources":["../../src/utilities/upsertPreferences.ts"],"sourcesContent":["import type { DefaultDocumentIDType, Payload, PayloadRequest } from 'payload'\n\nimport { dequal } from 'dequal/lite'\nimport { cache } from 'react'\n\nimport { removeUndefined } from './removeUndefined.js'\n\ntype PreferenceDoc<T> = {\n id: DefaultDocumentIDType | undefined\n value?: T | undefined\n}\n\ntype DefaultMerge = <T>(existingValue: T, incomingValue: T | undefined) => T\n\nconst defaultMerge: DefaultMerge = <T>(existingValue: T, incomingValue: T | undefined) =>\n ({\n ...(typeof existingValue === 'object' ? existingValue : {}), // Shallow merge existing prefs to acquire any missing keys from incoming value\n ...removeUndefined(incomingValue || {}),\n }) as T\n\nexport const getPreferences = cache(\n async <T>(\n key: string,\n payload: Payload,\n userID: DefaultDocumentIDType,\n userSlug: string,\n ): Promise<PreferenceDoc<T>> => {\n const result = (await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n pagination: false,\n where: {\n and: [\n {\n key: {\n equals: key,\n },\n },\n {\n 'user.relationTo': {\n equals: userSlug,\n },\n },\n {\n 'user.value': {\n equals: userID,\n },\n },\n ],\n },\n })\n .then((res) => res.docs?.[0])) as { id: DefaultDocumentIDType; value: T }\n\n return result\n },\n)\n\n/**\n * Will update the given preferences by key, creating a new record if it doesn't already exist, or merging existing preferences with the new value.\n * This is not possible to do with the existing `db.upsert` operation because it stores on the `value` key and does not perform a deep merge beyond the first level.\n * I.e. if you have a preferences record with a `value` key, `db.upsert` will overwrite the existing value. In the future if this supported we should use that instead.\n * @param req - The PayloadRequest object\n * @param key - The key of the preferences to update\n * @param value - The new value to merge with the existing preferences\n */\nexport const upsertPreferences = async <T extends Record<string, unknown> | string>({\n customMerge,\n key,\n req,\n value: incomingValue,\n}: {\n customMerge?: (existingValue: T, incomingValue: T, defaultMerge: DefaultMerge) => T\n key: string\n req: PayloadRequest\n value: T\n}): Promise<T> => {\n const existingPrefs: PreferenceDoc<T> = req.user\n ? await getPreferences<T>(key, req.payload, req.user.id, req.user.collection)\n : ({} as PreferenceDoc<T>)\n\n let newPrefs = existingPrefs?.value\n\n if (!existingPrefs?.id) {\n const createdPrefs = await req.payload.create({\n collection: 'payload-preferences',\n data: {\n key,\n user: {\n collection: req.user.collection,\n value: req.user.id,\n },\n value: incomingValue,\n },\n depth: 0,\n disableTransaction: true,\n user: req.user,\n })\n return createdPrefs.value\n } else {\n let mergedPrefs: T\n\n if (typeof customMerge === 'function') {\n mergedPrefs = customMerge(existingPrefs.value, incomingValue, defaultMerge)\n } else {\n // Strings are valid JSON, i.e. `locale` saved as a string to the locale preferences\n mergedPrefs =\n typeof incomingValue === 'object'\n ? defaultMerge<T>(existingPrefs.value, incomingValue)\n : incomingValue\n }\n\n if (!dequal(mergedPrefs, existingPrefs.value)) {\n newPrefs = await req.payload\n .update({\n id: existingPrefs.id,\n collection: 'payload-preferences',\n data: {\n key,\n user: {\n collection: req.user.collection,\n value: req.user.id,\n },\n value: mergedPrefs,\n },\n depth: 0,\n disableTransaction: true,\n user: req.user,\n })\n ?.then((res) => res.value)\n }\n }\n\n return newPrefs\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"upsertPreferences.js","names":["dequal","cache","removeUndefined","defaultMerge","existingValue","incomingValue","getPreferences","key","payload","userID","userSlug","result","find","collection","depth","limit","overrideAccess","pagination","where","and","equals","then","res","docs","upsertPreferences","customMerge","req","value","existingPrefs","user","id","newPrefs","createdPrefs","create","data","disableTransaction","mergedPrefs","update"],"sources":["../../src/utilities/upsertPreferences.ts"],"sourcesContent":["import type { DefaultDocumentIDType, Payload, PayloadRequest } from 'payload'\n\nimport { dequal } from 'dequal/lite'\nimport { cache } from 'react'\n\nimport { removeUndefined } from './removeUndefined.js'\n\ntype PreferenceDoc<T> = {\n id: DefaultDocumentIDType | undefined\n value?: T | undefined\n}\n\ntype DefaultMerge = <T>(existingValue: T, incomingValue: T | undefined) => T\n\nconst defaultMerge: DefaultMerge = <T>(existingValue: T, incomingValue: T | undefined) =>\n ({\n ...(typeof existingValue === 'object' ? existingValue : {}), // Shallow merge existing prefs to acquire any missing keys from incoming value\n ...removeUndefined(incomingValue || {}),\n }) as T\n\nexport const getPreferences = cache(\n async <T>(\n key: string,\n payload: Payload,\n userID: DefaultDocumentIDType,\n userSlug: string,\n ): Promise<PreferenceDoc<T>> => {\n const result = (await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n overrideAccess: true,\n pagination: false,\n where: {\n and: [\n {\n key: {\n equals: key,\n },\n },\n {\n 'user.relationTo': {\n equals: userSlug,\n },\n },\n {\n 'user.value': {\n equals: userID,\n },\n },\n ],\n },\n })\n .then((res) => res.docs?.[0])) as { id: DefaultDocumentIDType; value: T }\n\n return result\n },\n)\n\n/**\n * Will update the given preferences by key, creating a new record if it doesn't already exist, or merging existing preferences with the new value.\n * This is not possible to do with the existing `db.upsert` operation because it stores on the `value` key and does not perform a deep merge beyond the first level.\n * I.e. if you have a preferences record with a `value` key, `db.upsert` will overwrite the existing value. In the future if this supported we should use that instead.\n * @param req - The PayloadRequest object\n * @param key - The key of the preferences to update\n * @param value - The new value to merge with the existing preferences\n */\nexport const upsertPreferences = async <T extends Record<string, unknown> | string>({\n customMerge,\n key,\n req,\n value: incomingValue,\n}: {\n customMerge?: (existingValue: T, incomingValue: T, defaultMerge: DefaultMerge) => T\n key: string\n req: PayloadRequest\n value: T\n}): Promise<T> => {\n const existingPrefs: PreferenceDoc<T> = req.user\n ? await getPreferences<T>(key, req.payload, req.user.id, req.user.collection)\n : ({} as PreferenceDoc<T>)\n\n let newPrefs = existingPrefs?.value\n\n if (!existingPrefs?.id) {\n const createdPrefs = await req.payload.create({\n collection: 'payload-preferences',\n data: {\n key,\n user: {\n collection: req.user.collection,\n value: req.user.id,\n },\n value: incomingValue,\n },\n depth: 0,\n disableTransaction: true,\n overrideAccess: true,\n user: req.user,\n })\n return createdPrefs.value\n } else {\n let mergedPrefs: T\n\n if (typeof customMerge === 'function') {\n mergedPrefs = customMerge(existingPrefs.value, incomingValue, defaultMerge)\n } else {\n // Strings are valid JSON, i.e. `locale` saved as a string to the locale preferences\n mergedPrefs =\n typeof incomingValue === 'object'\n ? defaultMerge<T>(existingPrefs.value, incomingValue)\n : incomingValue\n }\n\n if (!dequal(mergedPrefs, existingPrefs.value)) {\n newPrefs = await req.payload\n .update({\n id: existingPrefs.id,\n collection: 'payload-preferences',\n data: {\n key,\n user: {\n collection: req.user.collection,\n value: req.user.id,\n },\n value: mergedPrefs,\n },\n depth: 0,\n disableTransaction: true,\n overrideAccess: true,\n user: req.user,\n })\n ?.then((res) => res.value)\n }\n }\n\n return newPrefs\n}\n"],"mappings":"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","ignoreList":[]}
@@ -170,6 +170,7 @@
170
170
  border-radius: 0;
171
171
  }
172
172
 
173
+ /* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
173
174
  @media (max-width: 1024px) {
174
175
  .query-inspector__content {
175
176
  display: flex;
@@ -26,8 +26,10 @@
26
26
  }
27
27
  }
28
28
 
29
+ /* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
29
30
  @media (max-width: 768px) {
30
31
  .modular-dashboard .widget {
32
+ /* stylelint-disable-next-line plugin/no-important -- TODO: pre-existing; revisit whether specificity can win instead */
31
33
  width: 100% !important;
32
34
  }
33
35
 
@@ -1 +1 @@
1
- {"version":3,"file":"handleServerFunction.d.ts","sourceRoot":"","sources":["../../../src/views/Document/handleServerFunction.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAA;AAK5F,eAAO,MAAM,qBAAqB,EAAE,4BAyHnC,CAAA"}
1
+ {"version":3,"file":"handleServerFunction.d.ts","sourceRoot":"","sources":["../../../src/views/Document/handleServerFunction.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAA;AAK5F,eAAO,MAAM,qBAAqB,EAAE,4BA0HnC,CAAA"}
@@ -51,6 +51,7 @@ export const renderDocumentHandler = async args => {
51
51
  collection: 'payload-preferences',
52
52
  depth: 0,
53
53
  limit: 1,
54
+ overrideAccess: true,
54
55
  where: {
55
56
  and: [{
56
57
  key: {
@@ -1 +1 @@
1
- {"version":3,"file":"handleServerFunction.js","names":["canAccessAdmin","isEntityHidden","applyLocaleFiltering","getClientConfig","renderDocument","renderDocumentHandler","args","collectionSlug","cookies","disableActions","docID","drawerSlug","initialData","locale","overrideEntityVisibility","paramsOverride","permissions","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","req","i18n","payload","config","user","searchParams","userWithReadAccess","versions","clientConfig","importMap","preferences","preferencesKey","find","collection","depth","limit","where","and","key","equals","id","then","res","docs","value","visibleEntities","collections","map","slug","admin","hidden","filter","Boolean","globals","data","Document","documentSubViewType","initPageResult","collectionConfig","globalConfig","global","languageOptions","undefined","translations","params","segments","String","server","viewType"],"sources":["../../../src/views/Document/handleServerFunction.tsx"],"sourcesContent":["import type { DocumentPreferences, VisibleEntities } from 'payload'\n\nimport { canAccessAdmin, isEntityHidden } from 'payload'\nimport { applyLocaleFiltering } from 'payload/shared'\n\nimport type { RenderDocumentServerFunction } from '../../providers/ServerFunctions/index.js'\n\nimport { getClientConfig } from '../../utilities/getClientConfig.js'\nimport { renderDocument } from './index.js'\n\nexport const renderDocumentHandler: RenderDocumentServerFunction = async (args) => {\n const {\n collectionSlug,\n cookies,\n disableActions,\n docID,\n drawerSlug,\n initialData,\n locale,\n overrideEntityVisibility,\n paramsOverride,\n permissions,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n user,\n },\n searchParams = {},\n user: userWithReadAccess,\n versions,\n } = args\n\n await canAccessAdmin({ req })\n\n const clientConfig = getClientConfig({\n config,\n i18n,\n importMap: req.payload.importMap,\n user,\n })\n await applyLocaleFiltering({ clientConfig, config, req })\n\n let preferences: DocumentPreferences\n\n if (docID) {\n const preferencesKey = `${collectionSlug}-edit-${docID}`\n\n preferences = await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n where: {\n and: [\n {\n key: {\n equals: preferencesKey,\n },\n },\n {\n 'user.relationTo': {\n equals: user.collection,\n },\n },\n {\n 'user.value': {\n equals: user.id,\n },\n },\n ],\n },\n })\n .then((res) => res.docs[0]?.value as DocumentPreferences)\n }\n\n const visibleEntities: VisibleEntities = {\n collections: payload.config.collections\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n globals: payload.config.globals\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n }\n\n const { data, Document } = await renderDocument({\n clientConfig,\n disableActions,\n documentSubViewType: 'default',\n drawerSlug,\n i18n,\n importMap: payload.importMap,\n initialData,\n initPageResult: {\n collectionConfig: payload?.collections?.[collectionSlug]?.config,\n cookies,\n docID,\n globalConfig: payload.config.globals.find((global) => global.slug === collectionSlug),\n languageOptions: undefined, // TODO\n locale,\n permissions,\n req,\n translations: undefined, // TODO\n visibleEntities,\n },\n locale,\n overrideEntityVisibility,\n params: paramsOverride ?? {\n segments: ['collections', collectionSlug, String(docID)],\n },\n payload,\n permissions,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n searchParams,\n server: req.server,\n user: userWithReadAccess,\n versions,\n viewType: 'document',\n })\n\n return {\n data,\n Document,\n preferences,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"handleServerFunction.js","names":["canAccessAdmin","isEntityHidden","applyLocaleFiltering","getClientConfig","renderDocument","renderDocumentHandler","args","collectionSlug","cookies","disableActions","docID","drawerSlug","initialData","locale","overrideEntityVisibility","paramsOverride","permissions","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","req","i18n","payload","config","user","searchParams","userWithReadAccess","versions","clientConfig","importMap","preferences","preferencesKey","find","collection","depth","limit","overrideAccess","where","and","key","equals","id","then","res","docs","value","visibleEntities","collections","map","slug","admin","hidden","filter","Boolean","globals","data","Document","documentSubViewType","initPageResult","collectionConfig","globalConfig","global","languageOptions","undefined","translations","params","segments","String","server","viewType"],"sources":["../../../src/views/Document/handleServerFunction.tsx"],"sourcesContent":["import type { DocumentPreferences, VisibleEntities } from 'payload'\n\nimport { canAccessAdmin, isEntityHidden } from 'payload'\nimport { applyLocaleFiltering } from 'payload/shared'\n\nimport type { RenderDocumentServerFunction } from '../../providers/ServerFunctions/index.js'\n\nimport { getClientConfig } from '../../utilities/getClientConfig.js'\nimport { renderDocument } from './index.js'\n\nexport const renderDocumentHandler: RenderDocumentServerFunction = async (args) => {\n const {\n collectionSlug,\n cookies,\n disableActions,\n docID,\n drawerSlug,\n initialData,\n locale,\n overrideEntityVisibility,\n paramsOverride,\n permissions,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n user,\n },\n searchParams = {},\n user: userWithReadAccess,\n versions,\n } = args\n\n await canAccessAdmin({ req })\n\n const clientConfig = getClientConfig({\n config,\n i18n,\n importMap: req.payload.importMap,\n user,\n })\n await applyLocaleFiltering({ clientConfig, config, req })\n\n let preferences: DocumentPreferences\n\n if (docID) {\n const preferencesKey = `${collectionSlug}-edit-${docID}`\n\n preferences = await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n overrideAccess: true,\n where: {\n and: [\n {\n key: {\n equals: preferencesKey,\n },\n },\n {\n 'user.relationTo': {\n equals: user.collection,\n },\n },\n {\n 'user.value': {\n equals: user.id,\n },\n },\n ],\n },\n })\n .then((res) => res.docs[0]?.value as DocumentPreferences)\n }\n\n const visibleEntities: VisibleEntities = {\n collections: payload.config.collections\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n globals: payload.config.globals\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n }\n\n const { data, Document } = await renderDocument({\n clientConfig,\n disableActions,\n documentSubViewType: 'default',\n drawerSlug,\n i18n,\n importMap: payload.importMap,\n initialData,\n initPageResult: {\n collectionConfig: payload?.collections?.[collectionSlug]?.config,\n cookies,\n docID,\n globalConfig: payload.config.globals.find((global) => global.slug === collectionSlug),\n languageOptions: undefined, // TODO\n locale,\n permissions,\n req,\n translations: undefined, // TODO\n visibleEntities,\n },\n locale,\n overrideEntityVisibility,\n params: paramsOverride ?? {\n segments: ['collections', collectionSlug, String(docID)],\n },\n payload,\n permissions,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n searchParams,\n server: req.server,\n user: userWithReadAccess,\n versions,\n viewType: 'document',\n })\n\n return {\n data,\n Document,\n preferences,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -183,6 +183,7 @@
183
183
  border-radius: var(--radius-small);
184
184
  }
185
185
 
186
+ /* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
186
187
  @media (max-width: 768px) {
187
188
  .collection-edit__auth {
188
189
  margin-top: 0;
@@ -195,6 +195,7 @@
195
195
  }
196
196
  }
197
197
 
198
+ /* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
198
199
  @media (max-width: 1024px) {
199
200
  .slot-table__th,
200
201
  .slot-table__td {
@@ -52,6 +52,7 @@
52
52
  margin: 0;
53
53
  }
54
54
 
55
+ /* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
55
56
  @media (max-width: 768px) {
56
57
  .hierarchy-list {
57
58
  margin-top: var(--spacer-1);
@@ -13,6 +13,7 @@
13
13
  }
14
14
  }
15
15
 
16
+ /* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
16
17
  @media (max-width: 768px) {
17
18
  .list-drawer__header {
18
19
  margin-top: var(--spacer-5);
@@ -14,7 +14,6 @@ export type ListHeaderProps = {
14
14
  hasTrashPermission?: boolean;
15
15
  i18n: I18nClient;
16
16
  isBulkUploadEnabled: boolean;
17
- isTrashEnabled?: boolean;
18
17
  newDocumentURL: string;
19
18
  onBulkUploadSuccess?: () => void;
20
19
  smallBreak: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/List/ListHeader/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAGhE,OAAO,KAAK,MAAM,OAAO,CAAA;AAezB,OAAO,aAAa,CAAA;AAIpB,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,IAAI,EAAE,UAAU,CAAA;IAChB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC,UAAU,EAAE,OAAO,CAAA;IACnB,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAChC,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA+F1D,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/List/ListHeader/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAGhE,OAAO,KAAK,MAAM,OAAO,CAAA;AAYzB,OAAO,aAAa,CAAA;AAIpB,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,IAAI,EAAE,UAAU,CAAA;IAChB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC,UAAU,EAAE,OAAO,CAAA;IACnB,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAChC,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAuF1D,CAAA"}