payload 3.84.1 → 4.0.0-internal.d28e9fb

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 (400) hide show
  1. package/README.md +5 -5
  2. package/dist/admin/elements/Nav.d.ts +13 -0
  3. package/dist/admin/elements/Nav.d.ts.map +1 -1
  4. package/dist/admin/elements/Nav.js.map +1 -1
  5. package/dist/admin/functions/index.d.ts +1 -38
  6. package/dist/admin/functions/index.d.ts.map +1 -1
  7. package/dist/admin/functions/index.js.map +1 -1
  8. package/dist/admin/types.d.ts +5 -4
  9. package/dist/admin/types.d.ts.map +1 -1
  10. package/dist/admin/types.js.map +1 -1
  11. package/dist/admin/views/hierarchyList.d.ts +9 -0
  12. package/dist/admin/views/hierarchyList.d.ts.map +1 -0
  13. package/dist/admin/views/hierarchyList.js +3 -0
  14. package/dist/admin/views/hierarchyList.js.map +1 -0
  15. package/dist/admin/views/index.d.ts +1 -3
  16. package/dist/admin/views/index.d.ts.map +1 -1
  17. package/dist/admin/views/index.js.map +1 -1
  18. package/dist/admin/views/list.d.ts +43 -2
  19. package/dist/admin/views/list.d.ts.map +1 -1
  20. package/dist/admin/views/list.js.map +1 -1
  21. package/dist/bin/generateImportMap/iterateCollections.d.ts.map +1 -1
  22. package/dist/bin/generateImportMap/iterateCollections.js +1 -0
  23. package/dist/bin/generateImportMap/iterateCollections.js.map +1 -1
  24. package/dist/bin/generateImportMap/iterateConfig.d.ts.map +1 -1
  25. package/dist/bin/generateImportMap/iterateConfig.js +7 -0
  26. package/dist/bin/generateImportMap/iterateConfig.js.map +1 -1
  27. package/dist/bin/generateImportMap/iterateGlobals.d.ts.map +1 -1
  28. package/dist/bin/generateImportMap/iterateGlobals.js +20 -8
  29. package/dist/bin/generateImportMap/iterateGlobals.js.map +1 -1
  30. package/dist/bin/index.d.ts.map +1 -1
  31. package/dist/bin/index.js +1 -3
  32. package/dist/bin/index.js.map +1 -1
  33. package/dist/collections/config/client.d.ts +4 -2
  34. package/dist/collections/config/client.d.ts.map +1 -1
  35. package/dist/collections/config/client.js +13 -1
  36. package/dist/collections/config/client.js.map +1 -1
  37. package/dist/collections/config/defaults.js +1 -1
  38. package/dist/collections/config/defaults.js.map +1 -1
  39. package/dist/collections/config/sanitize.d.ts.map +1 -1
  40. package/dist/collections/config/sanitize.js +231 -184
  41. package/dist/collections/config/sanitize.js.map +1 -1
  42. package/dist/collections/config/types.d.ts +76 -91
  43. package/dist/collections/config/types.d.ts.map +1 -1
  44. package/dist/collections/config/types.js.map +1 -1
  45. package/dist/collections/operations/create.d.ts.map +1 -1
  46. package/dist/collections/operations/create.js +24 -19
  47. package/dist/collections/operations/create.js.map +1 -1
  48. package/dist/collections/operations/delete.d.ts.map +1 -1
  49. package/dist/collections/operations/delete.js +7 -2
  50. package/dist/collections/operations/delete.js.map +1 -1
  51. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  52. package/dist/collections/operations/deleteByID.js +7 -2
  53. package/dist/collections/operations/deleteByID.js.map +1 -1
  54. package/dist/collections/operations/find.d.ts.map +1 -1
  55. package/dist/collections/operations/find.js +7 -2
  56. package/dist/collections/operations/find.js.map +1 -1
  57. package/dist/collections/operations/findByID.d.ts.map +1 -1
  58. package/dist/collections/operations/findByID.js +10 -5
  59. package/dist/collections/operations/findByID.js.map +1 -1
  60. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  61. package/dist/collections/operations/findVersionByID.js +6 -4
  62. package/dist/collections/operations/findVersionByID.js.map +1 -1
  63. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  64. package/dist/collections/operations/findVersions.js +6 -4
  65. package/dist/collections/operations/findVersions.js.map +1 -1
  66. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  67. package/dist/collections/operations/restoreVersion.js +7 -2
  68. package/dist/collections/operations/restoreVersion.js.map +1 -1
  69. package/dist/collections/operations/update.d.ts.map +1 -1
  70. package/dist/collections/operations/update.js +7 -2
  71. package/dist/collections/operations/update.js.map +1 -1
  72. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  73. package/dist/collections/operations/updateByID.js +7 -2
  74. package/dist/collections/operations/updateByID.js.map +1 -1
  75. package/dist/collections/operations/utilities/update.d.ts.map +1 -1
  76. package/dist/collections/operations/utilities/update.js +5 -4
  77. package/dist/collections/operations/utilities/update.js.map +1 -1
  78. package/dist/config/client.d.ts.map +1 -1
  79. package/dist/config/client.js +0 -10
  80. package/dist/config/client.js.map +1 -1
  81. package/dist/config/defaults.d.ts.map +1 -1
  82. package/dist/config/defaults.js +0 -15
  83. package/dist/config/defaults.js.map +1 -1
  84. package/dist/config/orderable/index.d.ts.map +1 -1
  85. package/dist/config/orderable/index.js +0 -4
  86. package/dist/config/orderable/index.js.map +1 -1
  87. package/dist/config/sanitize.d.ts.map +1 -1
  88. package/dist/config/sanitize.js +252 -266
  89. package/dist/config/sanitize.js.map +1 -1
  90. package/dist/config/types.d.ts +120 -13
  91. package/dist/config/types.d.ts.map +1 -1
  92. package/dist/config/types.js.map +1 -1
  93. package/dist/exports/internal.d.ts +1 -0
  94. package/dist/exports/internal.d.ts.map +1 -1
  95. package/dist/exports/internal.js +1 -0
  96. package/dist/exports/internal.js.map +1 -1
  97. package/dist/exports/shared.d.ts +5 -3
  98. package/dist/exports/shared.d.ts.map +1 -1
  99. package/dist/exports/shared.js +3 -2
  100. package/dist/exports/shared.js.map +1 -1
  101. package/dist/fields/baseFields/slug/index.d.ts.map +1 -1
  102. package/dist/fields/baseFields/slug/index.js +6 -4
  103. package/dist/fields/baseFields/slug/index.js.map +1 -1
  104. package/dist/fields/config/client.d.ts.map +1 -1
  105. package/dist/fields/config/client.js +3 -2
  106. package/dist/fields/config/client.js.map +1 -1
  107. package/dist/fields/config/sanitize.d.ts.map +1 -1
  108. package/dist/fields/config/sanitize.js +335 -322
  109. package/dist/fields/config/sanitize.js.map +1 -1
  110. package/dist/fields/config/sanitizeJoinField.d.ts.map +1 -1
  111. package/dist/fields/config/sanitizeJoinField.js +3 -0
  112. package/dist/fields/config/sanitizeJoinField.js.map +1 -1
  113. package/dist/fields/config/types.d.ts +17 -73
  114. package/dist/fields/config/types.d.ts.map +1 -1
  115. package/dist/fields/config/types.js +11 -1
  116. package/dist/fields/config/types.js.map +1 -1
  117. package/dist/fields/isFieldDisabled.d.ts +12 -0
  118. package/dist/fields/isFieldDisabled.d.ts.map +1 -0
  119. package/dist/fields/isFieldDisabled.js +15 -0
  120. package/dist/fields/isFieldDisabled.js.map +1 -0
  121. package/dist/fields/isFieldDisabled.spec.js +134 -0
  122. package/dist/fields/isFieldDisabled.spec.js.map +1 -0
  123. package/dist/fields/validations.js +1 -1
  124. package/dist/fields/validations.js.map +1 -1
  125. package/dist/globals/config/client.d.ts +1 -1
  126. package/dist/globals/config/client.d.ts.map +1 -1
  127. package/dist/globals/config/client.js +2 -1
  128. package/dist/globals/config/client.js.map +1 -1
  129. package/dist/globals/config/sanitize.d.ts.map +1 -1
  130. package/dist/globals/config/sanitize.js +132 -122
  131. package/dist/globals/config/sanitize.js.map +1 -1
  132. package/dist/globals/config/types.d.ts +4 -57
  133. package/dist/globals/config/types.d.ts.map +1 -1
  134. package/dist/globals/config/types.js.map +1 -1
  135. package/dist/globals/operations/findOne.d.ts.map +1 -1
  136. package/dist/globals/operations/findOne.js +7 -2
  137. package/dist/globals/operations/findOne.js.map +1 -1
  138. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  139. package/dist/globals/operations/findVersionByID.js +6 -4
  140. package/dist/globals/operations/findVersionByID.js.map +1 -1
  141. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  142. package/dist/globals/operations/findVersions.js +6 -4
  143. package/dist/globals/operations/findVersions.js.map +1 -1
  144. package/dist/globals/operations/update.d.ts.map +1 -1
  145. package/dist/globals/operations/update.js +7 -2
  146. package/dist/globals/operations/update.js.map +1 -1
  147. package/dist/hierarchy/addHierarchyToCollection.d.ts +9 -0
  148. package/dist/hierarchy/addHierarchyToCollection.d.ts.map +1 -0
  149. package/dist/hierarchy/addHierarchyToCollection.js +76 -0
  150. package/dist/hierarchy/addHierarchyToCollection.js.map +1 -0
  151. package/dist/hierarchy/buildParentField.d.ts +11 -0
  152. package/dist/hierarchy/buildParentField.d.ts.map +1 -0
  153. package/dist/hierarchy/buildParentField.js +42 -0
  154. package/dist/hierarchy/buildParentField.js.map +1 -0
  155. package/dist/hierarchy/constants.d.ts +15 -0
  156. package/dist/hierarchy/constants.d.ts.map +1 -0
  157. package/dist/hierarchy/constants.js +11 -0
  158. package/dist/hierarchy/constants.js.map +1 -0
  159. package/dist/hierarchy/createFolderField.d.ts +39 -0
  160. package/dist/hierarchy/createFolderField.d.ts.map +1 -0
  161. package/dist/hierarchy/createFolderField.js +54 -0
  162. package/dist/hierarchy/createFolderField.js.map +1 -0
  163. package/dist/hierarchy/createTagField.d.ts +44 -0
  164. package/dist/hierarchy/createTagField.d.ts.map +1 -0
  165. package/dist/hierarchy/createTagField.js +48 -0
  166. package/dist/hierarchy/createTagField.js.map +1 -0
  167. package/dist/hierarchy/getInitialTreeData.d.ts +27 -0
  168. package/dist/hierarchy/getInitialTreeData.d.ts.map +1 -0
  169. package/dist/hierarchy/getInitialTreeData.js +125 -0
  170. package/dist/hierarchy/getInitialTreeData.js.map +1 -0
  171. package/dist/hierarchy/hooks/collectionAfterDelete.d.ts +14 -0
  172. package/dist/hierarchy/hooks/collectionAfterDelete.d.ts.map +1 -0
  173. package/dist/hierarchy/hooks/collectionAfterDelete.js +21 -0
  174. package/dist/hierarchy/hooks/collectionAfterDelete.js.map +1 -0
  175. package/dist/hierarchy/hooks/collectionAfterRead.d.ts +27 -0
  176. package/dist/hierarchy/hooks/collectionAfterRead.d.ts.map +1 -0
  177. package/dist/hierarchy/hooks/collectionAfterRead.js +72 -0
  178. package/dist/hierarchy/hooks/collectionAfterRead.js.map +1 -0
  179. package/dist/hierarchy/hooks/collectionBeforeChange.d.ts +19 -0
  180. package/dist/hierarchy/hooks/collectionBeforeChange.d.ts.map +1 -0
  181. package/dist/hierarchy/hooks/collectionBeforeChange.js +90 -0
  182. package/dist/hierarchy/hooks/collectionBeforeChange.js.map +1 -0
  183. package/dist/hierarchy/hooks/collectionBeforeDelete.d.ts +15 -0
  184. package/dist/hierarchy/hooks/collectionBeforeDelete.d.ts.map +1 -0
  185. package/dist/hierarchy/hooks/collectionBeforeDelete.js +20 -0
  186. package/dist/hierarchy/hooks/collectionBeforeDelete.js.map +1 -0
  187. package/dist/hierarchy/hooks/collectionBeforeOperation.d.ts +33 -0
  188. package/dist/hierarchy/hooks/collectionBeforeOperation.d.ts.map +1 -0
  189. package/dist/hierarchy/hooks/collectionBeforeOperation.js +66 -0
  190. package/dist/hierarchy/hooks/collectionBeforeOperation.js.map +1 -0
  191. package/dist/hierarchy/hooks/ensureSafeCollectionsChange.d.ts +8 -0
  192. package/dist/hierarchy/hooks/ensureSafeCollectionsChange.d.ts.map +1 -0
  193. package/dist/hierarchy/hooks/ensureSafeCollectionsChange.js +108 -0
  194. package/dist/hierarchy/hooks/ensureSafeCollectionsChange.js.map +1 -0
  195. package/dist/hierarchy/injectHierarchyButton.d.ts +14 -0
  196. package/dist/hierarchy/injectHierarchyButton.d.ts.map +1 -0
  197. package/dist/hierarchy/injectHierarchyButton.js +37 -0
  198. package/dist/hierarchy/injectHierarchyButton.js.map +1 -0
  199. package/dist/hierarchy/presets.d.ts +13 -0
  200. package/dist/hierarchy/presets.d.ts.map +1 -0
  201. package/dist/hierarchy/presets.js +52 -0
  202. package/dist/hierarchy/presets.js.map +1 -0
  203. package/dist/hierarchy/resolveHierarchyCollections.d.ts +23 -0
  204. package/dist/hierarchy/resolveHierarchyCollections.d.ts.map +1 -0
  205. package/dist/hierarchy/resolveHierarchyCollections.js +321 -0
  206. package/dist/hierarchy/resolveHierarchyCollections.js.map +1 -0
  207. package/dist/hierarchy/sanitizeHierarchyCollection.d.ts +14 -0
  208. package/dist/hierarchy/sanitizeHierarchyCollection.d.ts.map +1 -0
  209. package/dist/hierarchy/sanitizeHierarchyCollection.js +117 -0
  210. package/dist/hierarchy/sanitizeHierarchyCollection.js.map +1 -0
  211. package/dist/hierarchy/types.d.ts +155 -0
  212. package/dist/hierarchy/types.d.ts.map +1 -0
  213. package/dist/hierarchy/types.js +6 -0
  214. package/dist/hierarchy/types.js.map +1 -0
  215. package/dist/hierarchy/utils/buildLocalizedHierarchyPaths.d.ts +77 -0
  216. package/dist/hierarchy/utils/buildLocalizedHierarchyPaths.d.ts.map +1 -0
  217. package/dist/hierarchy/utils/buildLocalizedHierarchyPaths.js +77 -0
  218. package/dist/hierarchy/utils/buildLocalizedHierarchyPaths.js.map +1 -0
  219. package/dist/hierarchy/utils/computePaths.d.ts +31 -0
  220. package/dist/hierarchy/utils/computePaths.d.ts.map +1 -0
  221. package/dist/hierarchy/utils/computePaths.js +445 -0
  222. package/dist/hierarchy/utils/computePaths.js.map +1 -0
  223. package/dist/hierarchy/utils/findUseAsTitle.d.ts +14 -0
  224. package/dist/hierarchy/utils/findUseAsTitle.d.ts.map +1 -0
  225. package/dist/hierarchy/utils/findUseAsTitle.js +89 -0
  226. package/dist/hierarchy/utils/findUseAsTitle.js.map +1 -0
  227. package/dist/hierarchy/utils/getAncestors.d.ts +34 -0
  228. package/dist/hierarchy/utils/getAncestors.d.ts.map +1 -0
  229. package/dist/hierarchy/utils/getAncestors.js +94 -0
  230. package/dist/hierarchy/utils/getAncestors.js.map +1 -0
  231. package/dist/hierarchy/utils/getLocalizedValue.d.ts +30 -0
  232. package/dist/hierarchy/utils/getLocalizedValue.d.ts.map +1 -0
  233. package/dist/hierarchy/utils/getLocalizedValue.js +46 -0
  234. package/dist/hierarchy/utils/getLocalizedValue.js.map +1 -0
  235. package/dist/hierarchy/utils/getLocalizedValue.spec.js +250 -0
  236. package/dist/hierarchy/utils/getLocalizedValue.spec.js.map +1 -0
  237. package/dist/index.bundled.d.ts +709 -530
  238. package/dist/index.d.ts +28 -8
  239. package/dist/index.d.ts.map +1 -1
  240. package/dist/index.js +31 -8
  241. package/dist/index.js.map +1 -1
  242. package/dist/preferences/keys.d.ts +8 -4
  243. package/dist/preferences/keys.d.ts.map +1 -1
  244. package/dist/preferences/keys.js +7 -4
  245. package/dist/preferences/keys.js.map +1 -1
  246. package/dist/preferences/types.d.ts +1 -1
  247. package/dist/preferences/types.d.ts.map +1 -1
  248. package/dist/preferences/types.js.map +1 -1
  249. package/dist/query-presets/config.d.ts.map +1 -1
  250. package/dist/query-presets/config.js +5 -1
  251. package/dist/query-presets/config.js.map +1 -1
  252. package/dist/queues/config/types/index.d.ts +0 -21
  253. package/dist/queues/config/types/index.d.ts.map +1 -1
  254. package/dist/queues/config/types/index.js.map +1 -1
  255. package/dist/queues/config/types/taskTypes.d.ts +0 -20
  256. package/dist/queues/config/types/taskTypes.d.ts.map +1 -1
  257. package/dist/queues/config/types/taskTypes.js.map +1 -1
  258. package/dist/queues/errors/handleWorkflowError.d.ts.map +1 -1
  259. package/dist/queues/errors/handleWorkflowError.js +9 -1
  260. package/dist/queues/errors/handleWorkflowError.js.map +1 -1
  261. package/dist/queues/localAPI.d.ts.map +1 -1
  262. package/dist/queues/localAPI.js +26 -67
  263. package/dist/queues/localAPI.js.map +1 -1
  264. package/dist/queues/operations/handleSchedules/index.d.ts.map +1 -1
  265. package/dist/queues/operations/handleSchedules/index.js +1 -4
  266. package/dist/queues/operations/handleSchedules/index.js.map +1 -1
  267. package/dist/queues/operations/runJobs/index.d.ts.map +1 -1
  268. package/dist/queues/operations/runJobs/index.js +40 -37
  269. package/dist/queues/operations/runJobs/index.js.map +1 -1
  270. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.d.ts.map +1 -1
  271. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js +3 -22
  272. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js.map +1 -1
  273. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.d.ts.map +1 -1
  274. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js +0 -2
  275. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js.map +1 -1
  276. package/dist/queues/utilities/updateJob.d.ts +1 -3
  277. package/dist/queues/utilities/updateJob.d.ts.map +1 -1
  278. package/dist/queues/utilities/updateJob.js +2 -18
  279. package/dist/queues/utilities/updateJob.js.map +1 -1
  280. package/dist/types/index.d.ts +44 -0
  281. package/dist/types/index.d.ts.map +1 -1
  282. package/dist/types/index.js.map +1 -1
  283. package/dist/uploads/getBaseFields.d.ts.map +1 -1
  284. package/dist/uploads/getBaseFields.js +35 -69
  285. package/dist/uploads/getBaseFields.js.map +1 -1
  286. package/dist/uploads/getSafeFilename.d.ts +9 -4
  287. package/dist/uploads/getSafeFilename.d.ts.map +1 -1
  288. package/dist/uploads/getSafeFilename.js +5 -5
  289. package/dist/uploads/getSafeFilename.js.map +1 -1
  290. package/dist/utilities/appendDateTimezoneSelectFields.d.ts +13 -0
  291. package/dist/utilities/appendDateTimezoneSelectFields.d.ts.map +1 -0
  292. package/dist/utilities/appendDateTimezoneSelectFields.js +47 -0
  293. package/dist/utilities/appendDateTimezoneSelectFields.js.map +1 -0
  294. package/dist/utilities/appendUploadSelectFields.d.ts.map +1 -1
  295. package/dist/utilities/appendUploadSelectFields.js +3 -0
  296. package/dist/utilities/appendUploadSelectFields.js.map +1 -1
  297. package/dist/utilities/extractID.js +1 -1
  298. package/dist/utilities/extractID.js.map +1 -1
  299. package/dist/utilities/flattenAllFields.d.ts.map +1 -1
  300. package/dist/utilities/flattenAllFields.js +102 -93
  301. package/dist/utilities/flattenAllFields.js.map +1 -1
  302. package/dist/utilities/formatAdminURL.d.ts +13 -2
  303. package/dist/utilities/formatAdminURL.d.ts.map +1 -1
  304. package/dist/utilities/formatAdminURL.js.map +1 -1
  305. package/dist/utilities/handleEndpoints.d.ts.map +1 -1
  306. package/dist/utilities/handleEndpoints.js +0 -1
  307. package/dist/utilities/handleEndpoints.js.map +1 -1
  308. package/dist/utilities/resolveSelect.d.ts +16 -0
  309. package/dist/utilities/resolveSelect.d.ts.map +1 -0
  310. package/dist/utilities/resolveSelect.js +19 -0
  311. package/dist/utilities/resolveSelect.js.map +1 -0
  312. package/dist/utilities/sanitizeProfiler.d.ts +38 -0
  313. package/dist/utilities/sanitizeProfiler.d.ts.map +1 -0
  314. package/dist/utilities/sanitizeProfiler.js +101 -0
  315. package/dist/utilities/sanitizeProfiler.js.map +1 -0
  316. package/dist/utilities/sanitizeSelect.d.ts +1 -2
  317. package/dist/utilities/sanitizeSelect.d.ts.map +1 -1
  318. package/dist/utilities/sanitizeSelect.js +19 -25
  319. package/dist/utilities/sanitizeSelect.js.map +1 -1
  320. package/dist/versions/baseFields.d.ts.map +1 -1
  321. package/dist/versions/baseFields.js +3 -2
  322. package/dist/versions/baseFields.js.map +1 -1
  323. package/dist/versions/buildCollectionFields.d.ts.map +1 -1
  324. package/dist/versions/buildCollectionFields.js +0 -1
  325. package/dist/versions/buildCollectionFields.js.map +1 -1
  326. package/dist/versions/buildGlobalFields.d.ts.map +1 -1
  327. package/dist/versions/buildGlobalFields.js +0 -1
  328. package/dist/versions/buildGlobalFields.js.map +1 -1
  329. package/dist/versions/payloadPackageList.d.ts.map +1 -1
  330. package/dist/versions/payloadPackageList.js +0 -1
  331. package/dist/versions/payloadPackageList.js.map +1 -1
  332. package/package.json +4 -4
  333. package/dist/admin/views/folderList.d.ts +0 -56
  334. package/dist/admin/views/folderList.d.ts.map +0 -1
  335. package/dist/admin/views/folderList.js +0 -3
  336. package/dist/admin/views/folderList.js.map +0 -1
  337. package/dist/folders/addFolderCollection.d.ts +0 -10
  338. package/dist/folders/addFolderCollection.d.ts.map +0 -1
  339. package/dist/folders/addFolderCollection.js +0 -26
  340. package/dist/folders/addFolderCollection.js.map +0 -1
  341. package/dist/folders/addFolderFieldToCollection.d.ts +0 -8
  342. package/dist/folders/addFolderFieldToCollection.d.ts.map +0 -1
  343. package/dist/folders/addFolderFieldToCollection.js +0 -20
  344. package/dist/folders/addFolderFieldToCollection.js.map +0 -1
  345. package/dist/folders/buildFolderField.d.ts +0 -8
  346. package/dist/folders/buildFolderField.d.ts.map +0 -1
  347. package/dist/folders/buildFolderField.js +0 -87
  348. package/dist/folders/buildFolderField.js.map +0 -1
  349. package/dist/folders/constants.d.ts +0 -3
  350. package/dist/folders/constants.d.ts.map +0 -1
  351. package/dist/folders/constants.js +0 -4
  352. package/dist/folders/constants.js.map +0 -1
  353. package/dist/folders/createFolderCollection.d.ts +0 -11
  354. package/dist/folders/createFolderCollection.d.ts.map +0 -1
  355. package/dist/folders/createFolderCollection.js +0 -115
  356. package/dist/folders/createFolderCollection.js.map +0 -1
  357. package/dist/folders/hooks/deleteSubfoldersAfterDelete.d.ts +0 -8
  358. package/dist/folders/hooks/deleteSubfoldersAfterDelete.d.ts.map +0 -1
  359. package/dist/folders/hooks/deleteSubfoldersAfterDelete.js +0 -15
  360. package/dist/folders/hooks/deleteSubfoldersAfterDelete.js.map +0 -1
  361. package/dist/folders/hooks/dissasociateAfterDelete.d.ts +0 -8
  362. package/dist/folders/hooks/dissasociateAfterDelete.d.ts.map +0 -1
  363. package/dist/folders/hooks/dissasociateAfterDelete.js +0 -20
  364. package/dist/folders/hooks/dissasociateAfterDelete.js.map +0 -1
  365. package/dist/folders/hooks/ensureSafeCollectionsChange.d.ts +0 -5
  366. package/dist/folders/hooks/ensureSafeCollectionsChange.d.ts.map +0 -1
  367. package/dist/folders/hooks/ensureSafeCollectionsChange.js +0 -107
  368. package/dist/folders/hooks/ensureSafeCollectionsChange.js.map +0 -1
  369. package/dist/folders/hooks/reparentChildFolder.d.ts +0 -24
  370. package/dist/folders/hooks/reparentChildFolder.d.ts.map +0 -1
  371. package/dist/folders/hooks/reparentChildFolder.js +0 -72
  372. package/dist/folders/hooks/reparentChildFolder.js.map +0 -1
  373. package/dist/folders/types.d.ts +0 -118
  374. package/dist/folders/types.d.ts.map +0 -1
  375. package/dist/folders/types.js +0 -3
  376. package/dist/folders/types.js.map +0 -1
  377. package/dist/folders/utils/buildFolderWhereConstraints.d.ts +0 -13
  378. package/dist/folders/utils/buildFolderWhereConstraints.d.ts.map +0 -1
  379. package/dist/folders/utils/buildFolderWhereConstraints.js +0 -45
  380. package/dist/folders/utils/buildFolderWhereConstraints.js.map +0 -1
  381. package/dist/folders/utils/formatFolderOrDocumentItem.d.ts +0 -12
  382. package/dist/folders/utils/formatFolderOrDocumentItem.d.ts.map +0 -1
  383. package/dist/folders/utils/formatFolderOrDocumentItem.js +0 -30
  384. package/dist/folders/utils/formatFolderOrDocumentItem.js.map +0 -1
  385. package/dist/folders/utils/getFolderBreadcrumbs.d.ts +0 -14
  386. package/dist/folders/utils/getFolderBreadcrumbs.d.ts.map +0 -1
  387. package/dist/folders/utils/getFolderBreadcrumbs.js +0 -45
  388. package/dist/folders/utils/getFolderBreadcrumbs.js.map +0 -1
  389. package/dist/folders/utils/getFolderData.d.ts +0 -33
  390. package/dist/folders/utils/getFolderData.d.ts.map +0 -1
  391. package/dist/folders/utils/getFolderData.js +0 -88
  392. package/dist/folders/utils/getFolderData.js.map +0 -1
  393. package/dist/folders/utils/getFoldersAndDocumentsFromJoin.d.ts +0 -24
  394. package/dist/folders/utils/getFoldersAndDocumentsFromJoin.d.ts.map +0 -1
  395. package/dist/folders/utils/getFoldersAndDocumentsFromJoin.js +0 -66
  396. package/dist/folders/utils/getFoldersAndDocumentsFromJoin.js.map +0 -1
  397. package/dist/folders/utils/getOrphanedDocs.d.ts +0 -15
  398. package/dist/folders/utils/getOrphanedDocs.d.ts.map +0 -1
  399. package/dist/folders/utils/getOrphanedDocs.js +0 -40
  400. package/dist/folders/utils/getOrphanedDocs.js.map +0 -1
@@ -1,115 +0,0 @@
1
- import { defaultAccess } from '../auth/defaultAccess.js';
2
- import { buildFolderField } from './buildFolderField.js';
3
- import { deleteSubfoldersBeforeDelete } from './hooks/deleteSubfoldersAfterDelete.js';
4
- import { dissasociateAfterDelete } from './hooks/dissasociateAfterDelete.js';
5
- import { ensureSafeCollectionsChange } from './hooks/ensureSafeCollectionsChange.js';
6
- import { reparentChildFolder } from './hooks/reparentChildFolder.js';
7
- export const createFolderCollection = ({ slug, collectionSpecific, debug, folderEnabledCollections, folderFieldName })=>{
8
- const { collectionOptions, collectionSlugs } = folderEnabledCollections.reduce((acc, collection)=>{
9
- acc.collectionSlugs.push(collection.slug);
10
- acc.collectionOptions.push({
11
- label: collection.labels?.plural || collection.slug,
12
- value: collection.slug
13
- });
14
- return acc;
15
- }, {
16
- collectionOptions: [],
17
- collectionSlugs: []
18
- });
19
- return {
20
- slug,
21
- access: {
22
- create: defaultAccess,
23
- delete: defaultAccess,
24
- read: defaultAccess,
25
- readVersions: defaultAccess,
26
- update: defaultAccess
27
- },
28
- admin: {
29
- hidden: !debug,
30
- useAsTitle: 'name'
31
- },
32
- fields: [
33
- {
34
- name: 'name',
35
- type: 'text',
36
- index: true,
37
- required: true
38
- },
39
- buildFolderField({
40
- collectionSpecific,
41
- folderFieldName,
42
- folderSlug: slug,
43
- overrides: {
44
- admin: {
45
- hidden: !debug
46
- }
47
- }
48
- }),
49
- {
50
- name: 'documentsAndFolders',
51
- type: 'join',
52
- admin: {
53
- hidden: !debug
54
- },
55
- collection: [
56
- slug,
57
- ...collectionSlugs
58
- ],
59
- hasMany: true,
60
- on: folderFieldName
61
- },
62
- ...collectionSpecific ? [
63
- {
64
- name: 'folderType',
65
- type: 'select',
66
- admin: {
67
- components: {
68
- Field: {
69
- path: '@payloadcms/next/client#FolderTypeField'
70
- }
71
- },
72
- position: 'sidebar'
73
- },
74
- hasMany: true,
75
- options: collectionOptions
76
- }
77
- ] : []
78
- ],
79
- hooks: {
80
- afterChange: [
81
- reparentChildFolder({
82
- folderFieldName
83
- })
84
- ],
85
- afterDelete: [
86
- dissasociateAfterDelete({
87
- collectionSlugs,
88
- folderFieldName
89
- })
90
- ],
91
- beforeDelete: [
92
- deleteSubfoldersBeforeDelete({
93
- folderFieldName,
94
- folderSlug: slug
95
- })
96
- ],
97
- beforeValidate: [
98
- ...collectionSpecific ? [
99
- ensureSafeCollectionsChange({
100
- foldersSlug: slug
101
- })
102
- ] : []
103
- ]
104
- },
105
- labels: {
106
- plural: 'Folders',
107
- singular: 'Folder'
108
- },
109
- typescript: {
110
- interface: 'FolderInterface'
111
- }
112
- };
113
- };
114
-
115
- //# sourceMappingURL=createFolderCollection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/folders/createFolderCollection.ts"],"sourcesContent":["import type { CollectionConfig } from '../collections/config/types.js'\nimport type { Field, Option, SelectField } from '../fields/config/types.js'\n\nimport { defaultAccess } from '../auth/defaultAccess.js'\nimport { buildFolderField } from './buildFolderField.js'\nimport { deleteSubfoldersBeforeDelete } from './hooks/deleteSubfoldersAfterDelete.js'\nimport { dissasociateAfterDelete } from './hooks/dissasociateAfterDelete.js'\nimport { ensureSafeCollectionsChange } from './hooks/ensureSafeCollectionsChange.js'\nimport { reparentChildFolder } from './hooks/reparentChildFolder.js'\n\ntype CreateFolderCollectionArgs = {\n collectionSpecific: boolean\n debug?: boolean\n folderEnabledCollections: CollectionConfig[]\n folderFieldName: string\n slug: string\n}\nexport const createFolderCollection = ({\n slug,\n collectionSpecific,\n debug,\n folderEnabledCollections,\n folderFieldName,\n}: CreateFolderCollectionArgs): CollectionConfig => {\n const { collectionOptions, collectionSlugs } = folderEnabledCollections.reduce(\n (acc, collection: CollectionConfig) => {\n acc.collectionSlugs.push(collection.slug)\n acc.collectionOptions.push({\n label: collection.labels?.plural || collection.slug,\n value: collection.slug,\n })\n\n return acc\n },\n {\n collectionOptions: [] as Option[],\n collectionSlugs: [] as string[],\n },\n )\n\n return {\n slug,\n access: {\n create: defaultAccess,\n delete: defaultAccess,\n read: defaultAccess,\n readVersions: defaultAccess,\n update: defaultAccess,\n },\n admin: {\n hidden: !debug,\n useAsTitle: 'name',\n },\n fields: [\n {\n name: 'name',\n type: 'text',\n index: true,\n required: true,\n },\n buildFolderField({\n collectionSpecific,\n folderFieldName,\n folderSlug: slug,\n overrides: {\n admin: {\n hidden: !debug,\n },\n },\n }),\n {\n name: 'documentsAndFolders',\n type: 'join',\n admin: {\n hidden: !debug,\n },\n collection: [slug, ...collectionSlugs],\n hasMany: true,\n on: folderFieldName,\n },\n ...(collectionSpecific\n ? [\n {\n name: 'folderType',\n type: 'select',\n admin: {\n components: {\n Field: {\n path: '@payloadcms/next/client#FolderTypeField',\n },\n },\n position: 'sidebar',\n },\n hasMany: true,\n options: collectionOptions,\n } satisfies SelectField,\n ]\n : ([] as Field[])),\n ],\n hooks: {\n afterChange: [\n reparentChildFolder({\n folderFieldName,\n }),\n ],\n afterDelete: [\n dissasociateAfterDelete({\n collectionSlugs,\n folderFieldName,\n }),\n ],\n beforeDelete: [deleteSubfoldersBeforeDelete({ folderFieldName, folderSlug: slug })],\n beforeValidate: [\n ...(collectionSpecific ? [ensureSafeCollectionsChange({ foldersSlug: slug })] : []),\n ],\n },\n labels: {\n plural: 'Folders',\n singular: 'Folder',\n },\n typescript: {\n interface: 'FolderInterface',\n },\n }\n}\n"],"names":["defaultAccess","buildFolderField","deleteSubfoldersBeforeDelete","dissasociateAfterDelete","ensureSafeCollectionsChange","reparentChildFolder","createFolderCollection","slug","collectionSpecific","debug","folderEnabledCollections","folderFieldName","collectionOptions","collectionSlugs","reduce","acc","collection","push","label","labels","plural","value","access","create","delete","read","readVersions","update","admin","hidden","useAsTitle","fields","name","type","index","required","folderSlug","overrides","hasMany","on","components","Field","path","position","options","hooks","afterChange","afterDelete","beforeDelete","beforeValidate","foldersSlug","singular","typescript","interface"],"mappings":"AAGA,SAASA,aAAa,QAAQ,2BAA0B;AACxD,SAASC,gBAAgB,QAAQ,wBAAuB;AACxD,SAASC,4BAA4B,QAAQ,yCAAwC;AACrF,SAASC,uBAAuB,QAAQ,qCAAoC;AAC5E,SAASC,2BAA2B,QAAQ,yCAAwC;AACpF,SAASC,mBAAmB,QAAQ,iCAAgC;AASpE,OAAO,MAAMC,yBAAyB,CAAC,EACrCC,IAAI,EACJC,kBAAkB,EAClBC,KAAK,EACLC,wBAAwB,EACxBC,eAAe,EACY;IAC3B,MAAM,EAAEC,iBAAiB,EAAEC,eAAe,EAAE,GAAGH,yBAAyBI,MAAM,CAC5E,CAACC,KAAKC;QACJD,IAAIF,eAAe,CAACI,IAAI,CAACD,WAAWT,IAAI;QACxCQ,IAAIH,iBAAiB,CAACK,IAAI,CAAC;YACzBC,OAAOF,WAAWG,MAAM,EAAEC,UAAUJ,WAAWT,IAAI;YACnDc,OAAOL,WAAWT,IAAI;QACxB;QAEA,OAAOQ;IACT,GACA;QACEH,mBAAmB,EAAE;QACrBC,iBAAiB,EAAE;IACrB;IAGF,OAAO;QACLN;QACAe,QAAQ;YACNC,QAAQvB;YACRwB,QAAQxB;YACRyB,MAAMzB;YACN0B,cAAc1B;YACd2B,QAAQ3B;QACV;QACA4B,OAAO;YACLC,QAAQ,CAACpB;YACTqB,YAAY;QACd;QACAC,QAAQ;YACN;gBACEC,MAAM;gBACNC,MAAM;gBACNC,OAAO;gBACPC,UAAU;YACZ;YACAlC,iBAAiB;gBACfO;gBACAG;gBACAyB,YAAY7B;gBACZ8B,WAAW;oBACTT,OAAO;wBACLC,QAAQ,CAACpB;oBACX;gBACF;YACF;YACA;gBACEuB,MAAM;gBACNC,MAAM;gBACNL,OAAO;oBACLC,QAAQ,CAACpB;gBACX;gBACAO,YAAY;oBAACT;uBAASM;iBAAgB;gBACtCyB,SAAS;gBACTC,IAAI5B;YACN;eACIH,qBACA;gBACE;oBACEwB,MAAM;oBACNC,MAAM;oBACNL,OAAO;wBACLY,YAAY;4BACVC,OAAO;gCACLC,MAAM;4BACR;wBACF;wBACAC,UAAU;oBACZ;oBACAL,SAAS;oBACTM,SAAShC;gBACX;aACD,GACA,EAAE;SACR;QACDiC,OAAO;YACLC,aAAa;gBACXzC,oBAAoB;oBAClBM;gBACF;aACD;YACDoC,aAAa;gBACX5C,wBAAwB;oBACtBU;oBACAF;gBACF;aACD;YACDqC,cAAc;gBAAC9C,6BAA6B;oBAAES;oBAAiByB,YAAY7B;gBAAK;aAAG;YACnF0C,gBAAgB;mBACVzC,qBAAqB;oBAACJ,4BAA4B;wBAAE8C,aAAa3C;oBAAK;iBAAG,GAAG,EAAE;aACnF;QACH;QACAY,QAAQ;YACNC,QAAQ;YACR+B,UAAU;QACZ;QACAC,YAAY;YACVC,WAAW;QACb;IACF;AACF,EAAC"}
@@ -1,8 +0,0 @@
1
- import type { CollectionBeforeDeleteHook } from '../../index.js';
2
- type Args = {
3
- folderFieldName: string;
4
- folderSlug: string;
5
- };
6
- export declare const deleteSubfoldersBeforeDelete: ({ folderFieldName, folderSlug, }: Args) => CollectionBeforeDeleteHook;
7
- export {};
8
- //# sourceMappingURL=deleteSubfoldersAfterDelete.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deleteSubfoldersAfterDelete.d.ts","sourceRoot":"","sources":["../../../src/folders/hooks/deleteSubfoldersAfterDelete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAA;AAEhE,KAAK,IAAI,GAAG;IACV,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AACD,eAAO,MAAM,4BAA4B,qCAGtC,IAAI,KAAG,0BAYT,CAAA"}
@@ -1,15 +0,0 @@
1
- export const deleteSubfoldersBeforeDelete = ({ folderFieldName, folderSlug })=>{
2
- return async ({ id, req })=>{
3
- await req.payload.delete({
4
- collection: folderSlug,
5
- req,
6
- where: {
7
- [folderFieldName]: {
8
- equals: id
9
- }
10
- }
11
- });
12
- };
13
- };
14
-
15
- //# sourceMappingURL=deleteSubfoldersAfterDelete.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/folders/hooks/deleteSubfoldersAfterDelete.ts"],"sourcesContent":["import type { CollectionBeforeDeleteHook } from '../../index.js'\n\ntype Args = {\n folderFieldName: string\n folderSlug: string\n}\nexport const deleteSubfoldersBeforeDelete = ({\n folderFieldName,\n folderSlug,\n}: Args): CollectionBeforeDeleteHook => {\n return async ({ id, req }) => {\n await req.payload.delete({\n collection: folderSlug,\n req,\n where: {\n [folderFieldName]: {\n equals: id,\n },\n },\n })\n }\n}\n"],"names":["deleteSubfoldersBeforeDelete","folderFieldName","folderSlug","id","req","payload","delete","collection","where","equals"],"mappings":"AAMA,OAAO,MAAMA,+BAA+B,CAAC,EAC3CC,eAAe,EACfC,UAAU,EACL;IACL,OAAO,OAAO,EAAEC,EAAE,EAAEC,GAAG,EAAE;QACvB,MAAMA,IAAIC,OAAO,CAACC,MAAM,CAAC;YACvBC,YAAYL;YACZE;YACAI,OAAO;gBACL,CAACP,gBAAgB,EAAE;oBACjBQ,QAAQN;gBACV;YACF;QACF;IACF;AACF,EAAC"}
@@ -1,8 +0,0 @@
1
- import type { CollectionAfterDeleteHook } from '../../index.js';
2
- type Args = {
3
- collectionSlugs: string[];
4
- folderFieldName: string;
5
- };
6
- export declare const dissasociateAfterDelete: ({ collectionSlugs, folderFieldName, }: Args) => CollectionAfterDeleteHook;
7
- export {};
8
- //# sourceMappingURL=dissasociateAfterDelete.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dissasociateAfterDelete.d.ts","sourceRoot":"","sources":["../../../src/folders/hooks/dissasociateAfterDelete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAA;AAE/D,KAAK,IAAI,GAAG;IACV,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,eAAe,EAAE,MAAM,CAAA;CACxB,CAAA;AACD,eAAO,MAAM,uBAAuB,0CAGjC,IAAI,KAAG,yBAiBT,CAAA"}
@@ -1,20 +0,0 @@
1
- export const dissasociateAfterDelete = ({ collectionSlugs, folderFieldName })=>{
2
- return async ({ id, req })=>{
3
- for (const collectionSlug of collectionSlugs){
4
- await req.payload.update({
5
- collection: collectionSlug,
6
- data: {
7
- [folderFieldName]: null
8
- },
9
- req,
10
- where: {
11
- [folderFieldName]: {
12
- equals: id
13
- }
14
- }
15
- });
16
- }
17
- };
18
- };
19
-
20
- //# sourceMappingURL=dissasociateAfterDelete.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/folders/hooks/dissasociateAfterDelete.ts"],"sourcesContent":["import type { CollectionAfterDeleteHook } from '../../index.js'\n\ntype Args = {\n collectionSlugs: string[]\n folderFieldName: string\n}\nexport const dissasociateAfterDelete = ({\n collectionSlugs,\n folderFieldName,\n}: Args): CollectionAfterDeleteHook => {\n return async ({ id, req }) => {\n for (const collectionSlug of collectionSlugs) {\n await req.payload.update({\n collection: collectionSlug,\n data: {\n [folderFieldName]: null,\n },\n req,\n where: {\n [folderFieldName]: {\n equals: id,\n },\n },\n })\n }\n }\n}\n"],"names":["dissasociateAfterDelete","collectionSlugs","folderFieldName","id","req","collectionSlug","payload","update","collection","data","where","equals"],"mappings":"AAMA,OAAO,MAAMA,0BAA0B,CAAC,EACtCC,eAAe,EACfC,eAAe,EACV;IACL,OAAO,OAAO,EAAEC,EAAE,EAAEC,GAAG,EAAE;QACvB,KAAK,MAAMC,kBAAkBJ,gBAAiB;YAC5C,MAAMG,IAAIE,OAAO,CAACC,MAAM,CAAC;gBACvBC,YAAYH;gBACZI,MAAM;oBACJ,CAACP,gBAAgB,EAAE;gBACrB;gBACAE;gBACAM,OAAO;oBACL,CAACR,gBAAgB,EAAE;wBACjBS,QAAQR;oBACV;gBACF;YACF;QACF;IACF;AACF,EAAC"}
@@ -1,5 +0,0 @@
1
- import { type CollectionBeforeValidateHook, type CollectionSlug } from '../../index.js';
2
- export declare const ensureSafeCollectionsChange: ({ foldersSlug }: {
3
- foldersSlug: CollectionSlug;
4
- }) => CollectionBeforeValidateHook;
5
- //# sourceMappingURL=ensureSafeCollectionsChange.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ensureSafeCollectionsChange.d.ts","sourceRoot":"","sources":["../../../src/folders/hooks/ensureSafeCollectionsChange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,4BAA4B,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAIjG,eAAO,MAAM,2BAA2B,oBACpB;IAAE,WAAW,EAAE,cAAc,CAAA;CAAE,KAAG,4BA0InD,CAAA"}
@@ -1,107 +0,0 @@
1
- import { APIError } from '../../index.js';
2
- import { extractID } from '../../utilities/extractID.js';
3
- import { getTranslatedLabel } from '../../utilities/getTranslatedLabel.js';
4
- export const ensureSafeCollectionsChange = ({ foldersSlug })=>async ({ data, originalDoc, req })=>{
5
- const currentFolderID = extractID(originalDoc || {});
6
- const parentFolderID = extractID(data?.folder || originalDoc?.folder || {});
7
- if (Array.isArray(data?.folderType) && data.folderType.length > 0) {
8
- const folderType = data.folderType;
9
- const currentlyAssignedCollections = Array.isArray(originalDoc?.folderType) && originalDoc.folderType.length > 0 ? originalDoc.folderType : undefined;
10
- /**
11
- * Check if the assigned collections have changed.
12
- * example:
13
- * - originalAssignedCollections: ['posts', 'pages']
14
- * - folderType: ['posts']
15
- *
16
- * The user is narrowing the types of documents that can be associated with this folder.
17
- * If the user is only expanding the types of documents that can be associated with this folder,
18
- * we do not need to do anything.
19
- */ const newCollections = currentlyAssignedCollections ? currentlyAssignedCollections.filter((c)=>!folderType.includes(c)) : folderType;
20
- if (newCollections && newCollections.length > 0) {
21
- let hasDependentDocuments = false;
22
- if (typeof currentFolderID === 'string' || typeof currentFolderID === 'number') {
23
- const childDocumentsResult = await req.payload.findByID({
24
- id: currentFolderID,
25
- collection: foldersSlug,
26
- joins: {
27
- documentsAndFolders: {
28
- limit: 100_000_000,
29
- where: {
30
- or: [
31
- {
32
- relationTo: {
33
- in: newCollections
34
- }
35
- }
36
- ]
37
- }
38
- }
39
- },
40
- overrideAccess: true,
41
- req
42
- });
43
- hasDependentDocuments = childDocumentsResult.documentsAndFolders.docs.length > 0;
44
- }
45
- // matches folders that are directly related to the removed collections
46
- let hasDependentFolders = false;
47
- if (!hasDependentDocuments && (typeof currentFolderID === 'string' || typeof currentFolderID === 'number')) {
48
- const childFoldersResult = await req.payload.find({
49
- collection: foldersSlug,
50
- limit: 1,
51
- req,
52
- where: {
53
- and: [
54
- {
55
- folderType: {
56
- in: newCollections
57
- }
58
- },
59
- {
60
- folder: {
61
- equals: currentFolderID
62
- }
63
- }
64
- ]
65
- }
66
- });
67
- hasDependentFolders = childFoldersResult.totalDocs > 0;
68
- }
69
- if (hasDependentDocuments || hasDependentFolders) {
70
- const translatedLabels = newCollections.map((collectionSlug)=>{
71
- if (req.payload.collections[collectionSlug]?.config.labels.singular) {
72
- return getTranslatedLabel(req.payload.collections[collectionSlug]?.config.labels.plural, req.i18n);
73
- }
74
- return collectionSlug;
75
- });
76
- throw new APIError(`The folder "${data.name || originalDoc.name}" contains ${hasDependentDocuments ? 'documents' : 'folders'} that still belong to the following collections: ${translatedLabels.join(', ')}`, 400);
77
- }
78
- return data;
79
- }
80
- } else if ((data?.folderType === null || Array.isArray(data?.folderType) && data?.folderType.length === 0) && parentFolderID) {
81
- // attempting to set the folderType to catch-all, so we need to ensure that the parent allows this
82
- let parentFolder;
83
- if (typeof parentFolderID === 'string' || typeof parentFolderID === 'number') {
84
- try {
85
- parentFolder = await req.payload.findByID({
86
- id: parentFolderID,
87
- collection: foldersSlug,
88
- overrideAccess: true,
89
- req,
90
- select: {
91
- name: true,
92
- folderType: true
93
- },
94
- user: req.user
95
- });
96
- } catch (_) {
97
- // parent folder does not exist
98
- }
99
- }
100
- if (parentFolder && parentFolder?.folderType && Array.isArray(parentFolder.folderType) && parentFolder.folderType.length > 0) {
101
- throw new APIError(`The folder "${data?.name || originalDoc.name}" must have folder-type set since its parent folder ${parentFolder?.name ? `"${parentFolder?.name}" ` : ''}has a folder-type set.`, 400);
102
- }
103
- }
104
- return data;
105
- };
106
-
107
- //# sourceMappingURL=ensureSafeCollectionsChange.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/folders/hooks/ensureSafeCollectionsChange.ts"],"sourcesContent":["import { APIError, type CollectionBeforeValidateHook, type CollectionSlug } from '../../index.js'\nimport { extractID } from '../../utilities/extractID.js'\nimport { getTranslatedLabel } from '../../utilities/getTranslatedLabel.js'\n\nexport const ensureSafeCollectionsChange =\n ({ foldersSlug }: { foldersSlug: CollectionSlug }): CollectionBeforeValidateHook =>\n async ({ data, originalDoc, req }) => {\n const currentFolderID = extractID(originalDoc || {})\n const parentFolderID = extractID(data?.folder || originalDoc?.folder || {})\n if (Array.isArray(data?.folderType) && data.folderType.length > 0) {\n const folderType = data.folderType as string[]\n const currentlyAssignedCollections: string[] | undefined =\n Array.isArray(originalDoc?.folderType) && originalDoc.folderType.length > 0\n ? originalDoc.folderType\n : undefined\n /**\n * Check if the assigned collections have changed.\n * example:\n * - originalAssignedCollections: ['posts', 'pages']\n * - folderType: ['posts']\n *\n * The user is narrowing the types of documents that can be associated with this folder.\n * If the user is only expanding the types of documents that can be associated with this folder,\n * we do not need to do anything.\n */\n const newCollections = currentlyAssignedCollections\n ? // user is narrowing the current scope of the folder\n currentlyAssignedCollections.filter((c) => !folderType.includes(c))\n : // user is adding a scope to the folder\n folderType\n\n if (newCollections && newCollections.length > 0) {\n let hasDependentDocuments = false\n if (typeof currentFolderID === 'string' || typeof currentFolderID === 'number') {\n const childDocumentsResult = await req.payload.findByID({\n id: currentFolderID,\n collection: foldersSlug,\n joins: {\n documentsAndFolders: {\n limit: 100_000_000,\n where: {\n or: [\n {\n relationTo: {\n in: newCollections,\n },\n },\n ],\n },\n },\n },\n overrideAccess: true,\n req,\n })\n\n hasDependentDocuments = childDocumentsResult.documentsAndFolders.docs.length > 0\n }\n\n // matches folders that are directly related to the removed collections\n let hasDependentFolders = false\n if (\n !hasDependentDocuments &&\n (typeof currentFolderID === 'string' || typeof currentFolderID === 'number')\n ) {\n const childFoldersResult = await req.payload.find({\n collection: foldersSlug,\n limit: 1,\n req,\n where: {\n and: [\n {\n folderType: {\n in: newCollections,\n },\n },\n {\n folder: {\n equals: currentFolderID,\n },\n },\n ],\n },\n })\n hasDependentFolders = childFoldersResult.totalDocs > 0\n }\n\n if (hasDependentDocuments || hasDependentFolders) {\n const translatedLabels = newCollections.map((collectionSlug) => {\n if (req.payload.collections[collectionSlug]?.config.labels.singular) {\n return getTranslatedLabel(\n req.payload.collections[collectionSlug]?.config.labels.plural,\n req.i18n,\n )\n }\n return collectionSlug\n })\n\n throw new APIError(\n `The folder \"${data.name || originalDoc.name}\" contains ${hasDependentDocuments ? 'documents' : 'folders'} that still belong to the following collections: ${translatedLabels.join(', ')}`,\n 400,\n )\n }\n return data\n }\n } else if (\n (data?.folderType === null ||\n (Array.isArray(data?.folderType) && data?.folderType.length === 0)) &&\n parentFolderID\n ) {\n // attempting to set the folderType to catch-all, so we need to ensure that the parent allows this\n let parentFolder\n if (typeof parentFolderID === 'string' || typeof parentFolderID === 'number') {\n try {\n parentFolder = await req.payload.findByID({\n id: parentFolderID,\n collection: foldersSlug,\n overrideAccess: true,\n req,\n select: {\n name: true,\n folderType: true,\n },\n user: req.user,\n })\n } catch (_) {\n // parent folder does not exist\n }\n }\n\n if (\n parentFolder &&\n parentFolder?.folderType &&\n Array.isArray(parentFolder.folderType) &&\n parentFolder.folderType.length > 0\n ) {\n throw new APIError(\n `The folder \"${data?.name || originalDoc.name}\" must have folder-type set since its parent folder ${parentFolder?.name ? `\"${parentFolder?.name}\" ` : ''}has a folder-type set.`,\n 400,\n )\n }\n }\n\n return data\n }\n"],"names":["APIError","extractID","getTranslatedLabel","ensureSafeCollectionsChange","foldersSlug","data","originalDoc","req","currentFolderID","parentFolderID","folder","Array","isArray","folderType","length","currentlyAssignedCollections","undefined","newCollections","filter","c","includes","hasDependentDocuments","childDocumentsResult","payload","findByID","id","collection","joins","documentsAndFolders","limit","where","or","relationTo","in","overrideAccess","docs","hasDependentFolders","childFoldersResult","find","and","equals","totalDocs","translatedLabels","map","collectionSlug","collections","config","labels","singular","plural","i18n","name","join","parentFolder","select","user","_"],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import type { CollectionAfterChangeHook } from '../../index.js';
2
- /**
3
- * If a parent is moved into a child folder, we need to re-parent the child
4
- *
5
- * @example
6
- *
7
- * ```ts
8
- → F1
9
- → F2
10
- → F2A
11
- → F3
12
-
13
- Moving F1 → F2A becomes:
14
-
15
- → F2A
16
- → F1
17
- → F2
18
- → F3
19
- ```
20
- */
21
- export declare const reparentChildFolder: ({ folderFieldName, }: {
22
- folderFieldName: string;
23
- }) => CollectionAfterChangeHook;
24
- //# sourceMappingURL=reparentChildFolder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reparentChildFolder.d.ts","sourceRoot":"","sources":["../../../src/folders/hooks/reparentChildFolder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAW,MAAM,gBAAgB,CAAA;AAmDxE;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,mBAAmB,yBAE7B;IACD,eAAe,EAAE,MAAM,CAAA;CACxB,KAAG,yBAkCH,CAAA"}
@@ -1,72 +0,0 @@
1
- import { extractID } from '../../utilities/extractID.js';
2
- /**
3
- * Determines if a child folder belongs to a parent folder by
4
- * recursively checking upwards through the folder hierarchy.
5
- */ async function isChildOfFolder({ folderCollectionSlug, folderFieldName, folderID, parentIDToFind, payload }) {
6
- const parentFolder = await payload.findByID({
7
- id: folderID,
8
- collection: folderCollectionSlug
9
- });
10
- const parentFolderID = parentFolder[folderFieldName] ? extractID(parentFolder[folderFieldName]) : undefined;
11
- if (!parentFolderID) {
12
- // made it to the root
13
- return false;
14
- }
15
- if (parentFolderID === parentIDToFind) {
16
- // found match, would be cyclic
17
- return true;
18
- }
19
- return isChildOfFolder({
20
- folderCollectionSlug,
21
- folderFieldName,
22
- folderID: parentFolderID,
23
- parentIDToFind,
24
- payload
25
- });
26
- }
27
- /**
28
- * If a parent is moved into a child folder, we need to re-parent the child
29
- *
30
- * @example
31
- *
32
- * ```ts
33
- → F1
34
- → F2
35
- → F2A
36
- → F3
37
-
38
- Moving F1 → F2A becomes:
39
-
40
- → F2A
41
- → F1
42
- → F2
43
- → F3
44
- ```
45
- */ export const reparentChildFolder = ({ folderFieldName })=>{
46
- return async ({ doc, previousDoc, req })=>{
47
- if (previousDoc[folderFieldName] !== doc[folderFieldName] && doc[folderFieldName] && req.payload.config.folders) {
48
- const newParentFolderID = extractID(doc[folderFieldName]);
49
- const isMovingToChild = newParentFolderID ? await isChildOfFolder({
50
- folderCollectionSlug: req.payload.config.folders.slug,
51
- folderFieldName,
52
- folderID: newParentFolderID,
53
- parentIDToFind: doc.id,
54
- payload: req.payload
55
- }) : false;
56
- if (isMovingToChild) {
57
- // if the folder was moved into a child folder, the child folder needs
58
- // to be re-parented with the parent of the folder that was moved
59
- await req.payload.update({
60
- id: newParentFolderID,
61
- collection: req.payload.config.folders.slug,
62
- data: {
63
- [folderFieldName]: previousDoc[folderFieldName] ? extractID(previousDoc[folderFieldName]) : null
64
- },
65
- req
66
- });
67
- }
68
- }
69
- };
70
- };
71
-
72
- //# sourceMappingURL=reparentChildFolder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/folders/hooks/reparentChildFolder.ts"],"sourcesContent":["import type { CollectionAfterChangeHook, Payload } from '../../index.js'\n\nimport { extractID } from '../../utilities/extractID.js'\n\ntype Args = {\n folderCollectionSlug: string\n folderFieldName: string\n folderID: number | string\n parentIDToFind: number | string\n payload: Payload\n}\n\n/**\n * Determines if a child folder belongs to a parent folder by\n * recursively checking upwards through the folder hierarchy.\n */\nasync function isChildOfFolder({\n folderCollectionSlug,\n folderFieldName,\n folderID,\n parentIDToFind,\n payload,\n}: Args): Promise<boolean> {\n const parentFolder = await payload.findByID({\n id: folderID,\n collection: folderCollectionSlug,\n })\n\n const parentFolderID = parentFolder[folderFieldName]\n ? extractID(parentFolder[folderFieldName])\n : undefined\n\n if (!parentFolderID) {\n // made it to the root\n return false\n }\n\n if (parentFolderID === parentIDToFind) {\n // found match, would be cyclic\n return true\n }\n\n return isChildOfFolder({\n folderCollectionSlug,\n folderFieldName,\n folderID: parentFolderID,\n parentIDToFind,\n payload,\n })\n}\n\n/**\n * If a parent is moved into a child folder, we need to re-parent the child\n * \n * @example\n * \n * ```ts\n → F1\n → F2\n → F2A\n → F3\n\n Moving F1 → F2A becomes:\n\n → F2A\n → F1\n → F2\n → F3\n ```\n */\nexport const reparentChildFolder = ({\n folderFieldName,\n}: {\n folderFieldName: string\n}): CollectionAfterChangeHook => {\n return async ({ doc, previousDoc, req }) => {\n if (\n previousDoc[folderFieldName] !== doc[folderFieldName] &&\n doc[folderFieldName] &&\n req.payload.config.folders\n ) {\n const newParentFolderID = extractID(doc[folderFieldName])\n const isMovingToChild = newParentFolderID\n ? await isChildOfFolder({\n folderCollectionSlug: req.payload.config.folders.slug,\n folderFieldName,\n folderID: newParentFolderID,\n parentIDToFind: doc.id,\n payload: req.payload,\n })\n : false\n\n if (isMovingToChild) {\n // if the folder was moved into a child folder, the child folder needs\n // to be re-parented with the parent of the folder that was moved\n await req.payload.update({\n id: newParentFolderID,\n collection: req.payload.config.folders.slug,\n data: {\n [folderFieldName]: previousDoc[folderFieldName]\n ? extractID(previousDoc[folderFieldName])\n : null,\n },\n req,\n })\n }\n }\n }\n}\n"],"names":["extractID","isChildOfFolder","folderCollectionSlug","folderFieldName","folderID","parentIDToFind","payload","parentFolder","findByID","id","collection","parentFolderID","undefined","reparentChildFolder","doc","previousDoc","req","config","folders","newParentFolderID","isMovingToChild","slug","update","data"],"mappings":"AAEA,SAASA,SAAS,QAAQ,+BAA8B;AAUxD;;;CAGC,GACD,eAAeC,gBAAgB,EAC7BC,oBAAoB,EACpBC,eAAe,EACfC,QAAQ,EACRC,cAAc,EACdC,OAAO,EACF;IACL,MAAMC,eAAe,MAAMD,QAAQE,QAAQ,CAAC;QAC1CC,IAAIL;QACJM,YAAYR;IACd;IAEA,MAAMS,iBAAiBJ,YAAY,CAACJ,gBAAgB,GAChDH,UAAUO,YAAY,CAACJ,gBAAgB,IACvCS;IAEJ,IAAI,CAACD,gBAAgB;QACnB,sBAAsB;QACtB,OAAO;IACT;IAEA,IAAIA,mBAAmBN,gBAAgB;QACrC,+BAA+B;QAC/B,OAAO;IACT;IAEA,OAAOJ,gBAAgB;QACrBC;QACAC;QACAC,UAAUO;QACVN;QACAC;IACF;AACF;AAEA;;;;;;;;;;;;;;;;;;CAkBC,GACD,OAAO,MAAMO,sBAAsB,CAAC,EAClCV,eAAe,EAGhB;IACC,OAAO,OAAO,EAAEW,GAAG,EAAEC,WAAW,EAAEC,GAAG,EAAE;QACrC,IACED,WAAW,CAACZ,gBAAgB,KAAKW,GAAG,CAACX,gBAAgB,IACrDW,GAAG,CAACX,gBAAgB,IACpBa,IAAIV,OAAO,CAACW,MAAM,CAACC,OAAO,EAC1B;YACA,MAAMC,oBAAoBnB,UAAUc,GAAG,CAACX,gBAAgB;YACxD,MAAMiB,kBAAkBD,oBACpB,MAAMlB,gBAAgB;gBACpBC,sBAAsBc,IAAIV,OAAO,CAACW,MAAM,CAACC,OAAO,CAACG,IAAI;gBACrDlB;gBACAC,UAAUe;gBACVd,gBAAgBS,IAAIL,EAAE;gBACtBH,SAASU,IAAIV,OAAO;YACtB,KACA;YAEJ,IAAIc,iBAAiB;gBACnB,sEAAsE;gBACtE,iEAAiE;gBACjE,MAAMJ,IAAIV,OAAO,CAACgB,MAAM,CAAC;oBACvBb,IAAIU;oBACJT,YAAYM,IAAIV,OAAO,CAACW,MAAM,CAACC,OAAO,CAACG,IAAI;oBAC3CE,MAAM;wBACJ,CAACpB,gBAAgB,EAAEY,WAAW,CAACZ,gBAAgB,GAC3CH,UAAUe,WAAW,CAACZ,gBAAgB,IACtC;oBACN;oBACAa;gBACF;YACF;QACF;IACF;AACF,EAAC"}
@@ -1,118 +0,0 @@
1
- import type { CollectionConfig, TypeWithID } from '../collections/config/types.js';
2
- import type { CollectionSlug, SanitizedCollectionConfig } from '../index.js';
3
- import type { Document } from '../types/index.js';
4
- export type FolderInterface = {
5
- documentsAndFolders?: {
6
- docs: {
7
- relationTo: CollectionSlug;
8
- value: Document;
9
- }[];
10
- };
11
- folder?: FolderInterface | (number | string | undefined);
12
- folderType: CollectionSlug[];
13
- name: string;
14
- } & TypeWithID;
15
- export type FolderBreadcrumb = {
16
- folderType?: CollectionSlug[];
17
- id: null | number | string;
18
- name: string;
19
- };
20
- export type Subfolder = {
21
- fileCount: number;
22
- hasSubfolders: boolean;
23
- id: number | string;
24
- name: string;
25
- subfolderCount: number;
26
- };
27
- export type FolderEnabledColection = {
28
- admin: {
29
- custom: {
30
- folderCollectionSlug: CollectionSlug;
31
- };
32
- };
33
- slug: CollectionSlug;
34
- } & SanitizedCollectionConfig;
35
- /**
36
- * `${relationTo}-${id}` is used as a key for the item
37
- */
38
- export type FolderDocumentItemKey = `${string}-${number | string}`;
39
- /**
40
- * Needed for document card view for upload enabled collections
41
- */
42
- type DocumentMediaData = {
43
- filename?: string;
44
- mimeType?: string;
45
- url?: string;
46
- };
47
- /**
48
- * A generic structure for a folder or document item.
49
- */
50
- export type FolderOrDocument = {
51
- itemKey: FolderDocumentItemKey;
52
- relationTo: CollectionSlug;
53
- value: {
54
- _folderOrDocumentTitle: string;
55
- createdAt?: string;
56
- folderID?: number | string;
57
- folderType: CollectionSlug[];
58
- id: number | string;
59
- updatedAt?: string;
60
- } & DocumentMediaData;
61
- };
62
- export type GetFolderDataResult = {
63
- breadcrumbs: FolderBreadcrumb[] | null;
64
- documents: FolderOrDocument[];
65
- folderAssignedCollections: CollectionSlug[] | undefined;
66
- subfolders: FolderOrDocument[];
67
- };
68
- export type RootFoldersConfiguration = {
69
- /**
70
- * If true, the browse by folder view will be enabled
71
- *
72
- * @default true
73
- */
74
- browseByFolder?: boolean;
75
- /**
76
- * An array of functions to be ran when the folder collection is initialized
77
- * This allows plugins to modify the collection configuration
78
- */
79
- collectionOverrides?: (({ collection, }: {
80
- collection: Omit<CollectionConfig, 'trash'>;
81
- }) => Omit<CollectionConfig, 'trash'> | Promise<Omit<CollectionConfig, 'trash'>>)[];
82
- /**
83
- * If true, you can scope folders to specific collections.
84
- *
85
- * @default true
86
- */
87
- collectionSpecific?: boolean;
88
- /**
89
- * Ability to view hidden fields and collections related to folders
90
- *
91
- * @default false
92
- */
93
- debug?: boolean;
94
- /**
95
- * The Folder field name
96
- *
97
- * @default "folder"
98
- */
99
- fieldName?: string;
100
- /**
101
- * Slug for the folder collection
102
- *
103
- * @default "payload-folders"
104
- */
105
- slug?: string;
106
- };
107
- export type CollectionFoldersConfiguration = {
108
- /**
109
- * If true, the collection will be included in the browse by folder view
110
- *
111
- * @default true
112
- */
113
- browseByFolder?: boolean;
114
- };
115
- type BaseFolderSortKeys = 'createdAt' | 'name' | 'updatedAt';
116
- export type FolderSortKeys = `-${BaseFolderSortKeys}` | BaseFolderSortKeys;
117
- export {};
118
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/folders/types.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export { };
2
-
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/folders/types.ts"],"sourcesContent":["import type { CollectionConfig, TypeWithID } from '../collections/config/types.js'\nimport type { CollectionSlug, SanitizedCollectionConfig } from '../index.js'\nimport type { Document } from '../types/index.js'\n\nexport type FolderInterface = {\n documentsAndFolders?: {\n docs: {\n relationTo: CollectionSlug\n value: Document\n }[]\n }\n folder?: FolderInterface | (number | string | undefined)\n folderType: CollectionSlug[]\n name: string\n} & TypeWithID\n\nexport type FolderBreadcrumb = {\n folderType?: CollectionSlug[]\n id: null | number | string\n name: string\n}\n\nexport type Subfolder = {\n fileCount: number\n hasSubfolders: boolean\n id: number | string\n name: string\n subfolderCount: number\n}\n\nexport type FolderEnabledColection = {\n admin: {\n custom: {\n folderCollectionSlug: CollectionSlug\n }\n }\n slug: CollectionSlug\n} & SanitizedCollectionConfig\n\n/**\n * `${relationTo}-${id}` is used as a key for the item\n */\nexport type FolderDocumentItemKey = `${string}-${number | string}`\n\n/**\n * Needed for document card view for upload enabled collections\n */\ntype DocumentMediaData = {\n filename?: string\n mimeType?: string\n url?: string\n}\n/**\n * A generic structure for a folder or document item.\n */\nexport type FolderOrDocument = {\n itemKey: FolderDocumentItemKey\n relationTo: CollectionSlug\n value: {\n _folderOrDocumentTitle: string\n createdAt?: string\n folderID?: number | string\n folderType: CollectionSlug[]\n id: number | string\n updatedAt?: string\n } & DocumentMediaData\n}\n\nexport type GetFolderDataResult = {\n breadcrumbs: FolderBreadcrumb[] | null\n documents: FolderOrDocument[]\n folderAssignedCollections: CollectionSlug[] | undefined\n subfolders: FolderOrDocument[]\n}\n\nexport type RootFoldersConfiguration = {\n /**\n * If true, the browse by folder view will be enabled\n *\n * @default true\n */\n browseByFolder?: boolean\n /**\n * An array of functions to be ran when the folder collection is initialized\n * This allows plugins to modify the collection configuration\n */\n collectionOverrides?: (({\n collection,\n }: {\n collection: Omit<CollectionConfig, 'trash'>\n }) => Omit<CollectionConfig, 'trash'> | Promise<Omit<CollectionConfig, 'trash'>>)[]\n /**\n * If true, you can scope folders to specific collections.\n *\n * @default true\n */\n collectionSpecific?: boolean\n /**\n * Ability to view hidden fields and collections related to folders\n *\n * @default false\n */\n debug?: boolean\n /**\n * The Folder field name\n *\n * @default \"folder\"\n */\n fieldName?: string\n /**\n * Slug for the folder collection\n *\n * @default \"payload-folders\"\n */\n slug?: string\n}\n\nexport type CollectionFoldersConfiguration = {\n /**\n * If true, the collection will be included in the browse by folder view\n *\n * @default true\n */\n browseByFolder?: boolean\n}\n\ntype BaseFolderSortKeys = 'createdAt' | 'name' | 'updatedAt'\n\nexport type FolderSortKeys = `-${BaseFolderSortKeys}` | BaseFolderSortKeys\n"],"names":[],"mappings":"AAgIA,WAA0E"}
@@ -1,13 +0,0 @@
1
- import type { SanitizedCollectionConfig } from '../../collections/config/types.js';
2
- import type { PayloadRequest, Where } from '../../types/index.js';
3
- type Args = {
4
- collectionConfig: SanitizedCollectionConfig;
5
- folderID?: number | string;
6
- localeCode?: string;
7
- req: PayloadRequest;
8
- search?: string;
9
- sort?: string;
10
- };
11
- export declare function buildFolderWhereConstraints({ collectionConfig, folderID, localeCode, req, search, sort, }: Args): Promise<undefined | Where>;
12
- export {};
13
- //# sourceMappingURL=buildFolderWhereConstraints.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildFolderWhereConstraints.d.ts","sourceRoot":"","sources":["../../../src/folders/utils/buildFolderWhereConstraints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAKjE,KAAK,IAAI,GAAG;IACV,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AACD,wBAAsB,2BAA2B,CAAC,EAChD,gBAAgB,EAChB,QAAQ,EACR,UAAU,EACV,GAAG,EACH,MAAW,EACX,IAAI,GACL,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,CAoDnC"}