payload 3.84.0 → 4.0.0-internal.38b7f1d

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 (440) hide show
  1. package/dist/admin/elements/Nav.d.ts +13 -0
  2. package/dist/admin/elements/Nav.d.ts.map +1 -1
  3. package/dist/admin/elements/Nav.js.map +1 -1
  4. package/dist/admin/functions/index.d.ts +1 -38
  5. package/dist/admin/functions/index.d.ts.map +1 -1
  6. package/dist/admin/functions/index.js.map +1 -1
  7. package/dist/admin/types.d.ts +5 -4
  8. package/dist/admin/types.d.ts.map +1 -1
  9. package/dist/admin/types.js.map +1 -1
  10. package/dist/admin/views/hierarchyList.d.ts +9 -0
  11. package/dist/admin/views/hierarchyList.d.ts.map +1 -0
  12. package/dist/admin/views/hierarchyList.js +3 -0
  13. package/dist/admin/views/hierarchyList.js.map +1 -0
  14. package/dist/admin/views/index.d.ts +1 -3
  15. package/dist/admin/views/index.d.ts.map +1 -1
  16. package/dist/admin/views/index.js.map +1 -1
  17. package/dist/admin/views/list.d.ts +43 -2
  18. package/dist/admin/views/list.d.ts.map +1 -1
  19. package/dist/admin/views/list.js.map +1 -1
  20. package/dist/bin/generateImportMap/iterateCollections.d.ts.map +1 -1
  21. package/dist/bin/generateImportMap/iterateCollections.js +1 -0
  22. package/dist/bin/generateImportMap/iterateCollections.js.map +1 -1
  23. package/dist/bin/generateImportMap/iterateConfig.d.ts.map +1 -1
  24. package/dist/bin/generateImportMap/iterateConfig.js +7 -0
  25. package/dist/bin/generateImportMap/iterateConfig.js.map +1 -1
  26. package/dist/bin/generateImportMap/iterateGlobals.d.ts.map +1 -1
  27. package/dist/bin/generateImportMap/iterateGlobals.js +20 -8
  28. package/dist/bin/generateImportMap/iterateGlobals.js.map +1 -1
  29. package/dist/bin/index.d.ts.map +1 -1
  30. package/dist/bin/index.js +1 -3
  31. package/dist/bin/index.js.map +1 -1
  32. package/dist/collections/config/client.d.ts +4 -2
  33. package/dist/collections/config/client.d.ts.map +1 -1
  34. package/dist/collections/config/client.js +13 -1
  35. package/dist/collections/config/client.js.map +1 -1
  36. package/dist/collections/config/defaults.js +1 -1
  37. package/dist/collections/config/defaults.js.map +1 -1
  38. package/dist/collections/config/sanitize.d.ts.map +1 -1
  39. package/dist/collections/config/sanitize.js +51 -10
  40. package/dist/collections/config/sanitize.js.map +1 -1
  41. package/dist/collections/config/types.d.ts +76 -91
  42. package/dist/collections/config/types.d.ts.map +1 -1
  43. package/dist/collections/config/types.js.map +1 -1
  44. package/dist/collections/operations/create.d.ts.map +1 -1
  45. package/dist/collections/operations/create.js +24 -19
  46. package/dist/collections/operations/create.js.map +1 -1
  47. package/dist/collections/operations/delete.d.ts.map +1 -1
  48. package/dist/collections/operations/delete.js +7 -2
  49. package/dist/collections/operations/delete.js.map +1 -1
  50. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  51. package/dist/collections/operations/deleteByID.js +7 -2
  52. package/dist/collections/operations/deleteByID.js.map +1 -1
  53. package/dist/collections/operations/find.d.ts.map +1 -1
  54. package/dist/collections/operations/find.js +7 -2
  55. package/dist/collections/operations/find.js.map +1 -1
  56. package/dist/collections/operations/findByID.d.ts.map +1 -1
  57. package/dist/collections/operations/findByID.js +10 -5
  58. package/dist/collections/operations/findByID.js.map +1 -1
  59. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  60. package/dist/collections/operations/findVersionByID.js +6 -4
  61. package/dist/collections/operations/findVersionByID.js.map +1 -1
  62. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  63. package/dist/collections/operations/findVersions.js +6 -4
  64. package/dist/collections/operations/findVersions.js.map +1 -1
  65. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  66. package/dist/collections/operations/restoreVersion.js +7 -2
  67. package/dist/collections/operations/restoreVersion.js.map +1 -1
  68. package/dist/collections/operations/update.d.ts.map +1 -1
  69. package/dist/collections/operations/update.js +7 -2
  70. package/dist/collections/operations/update.js.map +1 -1
  71. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  72. package/dist/collections/operations/updateByID.js +7 -2
  73. package/dist/collections/operations/updateByID.js.map +1 -1
  74. package/dist/collections/operations/utilities/update.d.ts.map +1 -1
  75. package/dist/collections/operations/utilities/update.js +5 -4
  76. package/dist/collections/operations/utilities/update.js.map +1 -1
  77. package/dist/config/client.d.ts.map +1 -1
  78. package/dist/config/client.js +0 -10
  79. package/dist/config/client.js.map +1 -1
  80. package/dist/config/defaults.d.ts.map +1 -1
  81. package/dist/config/defaults.js +0 -15
  82. package/dist/config/defaults.js.map +1 -1
  83. package/dist/config/orderable/index.d.ts.map +1 -1
  84. package/dist/config/orderable/index.js +0 -4
  85. package/dist/config/orderable/index.js.map +1 -1
  86. package/dist/config/sanitize.d.ts.map +1 -1
  87. package/dist/config/sanitize.js +3 -38
  88. package/dist/config/sanitize.js.map +1 -1
  89. package/dist/config/types.d.ts +120 -13
  90. package/dist/config/types.d.ts.map +1 -1
  91. package/dist/config/types.js.map +1 -1
  92. package/dist/database/migrations/config/batchTransform.d.ts +16 -0
  93. package/dist/database/migrations/config/batchTransform.d.ts.map +1 -0
  94. package/dist/database/migrations/config/batchTransform.js +17 -0
  95. package/dist/database/migrations/config/batchTransform.js.map +1 -0
  96. package/dist/database/migrations/config/batchTransform.spec.js +68 -0
  97. package/dist/database/migrations/config/batchTransform.spec.js.map +1 -0
  98. package/dist/database/migrations/config/bootstrapConfigState.d.ts +4 -0
  99. package/dist/database/migrations/config/bootstrapConfigState.d.ts.map +1 -0
  100. package/dist/database/migrations/config/bootstrapConfigState.js +10 -0
  101. package/dist/database/migrations/config/bootstrapConfigState.js.map +1 -0
  102. package/dist/database/migrations/config/configStateStore.d.ts +4 -0
  103. package/dist/database/migrations/config/configStateStore.d.ts.map +1 -0
  104. package/dist/database/migrations/config/configStateStore.js +29 -0
  105. package/dist/database/migrations/config/configStateStore.js.map +1 -0
  106. package/dist/database/migrations/config/diffConfig.d.ts +3 -0
  107. package/dist/database/migrations/config/diffConfig.d.ts.map +1 -0
  108. package/dist/database/migrations/config/diffConfig.js +123 -0
  109. package/dist/database/migrations/config/diffConfig.js.map +1 -0
  110. package/dist/database/migrations/config/diffConfig.spec.js +136 -0
  111. package/dist/database/migrations/config/diffConfig.spec.js.map +1 -0
  112. package/dist/database/migrations/config/generateDataMigrationCode.d.ts +11 -0
  113. package/dist/database/migrations/config/generateDataMigrationCode.d.ts.map +1 -0
  114. package/dist/database/migrations/config/generateDataMigrationCode.js +28 -0
  115. package/dist/database/migrations/config/generateDataMigrationCode.js.map +1 -0
  116. package/dist/database/migrations/config/generateDataMigrationCode.spec.js +52 -0
  117. package/dist/database/migrations/config/generateDataMigrationCode.spec.js.map +1 -0
  118. package/dist/database/migrations/config/index.d.ts +9 -0
  119. package/dist/database/migrations/config/index.d.ts.map +1 -0
  120. package/dist/database/migrations/config/index.js +9 -0
  121. package/dist/database/migrations/config/index.js.map +1 -0
  122. package/dist/database/migrations/config/prompts.d.ts +5 -0
  123. package/dist/database/migrations/config/prompts.d.ts.map +1 -0
  124. package/dist/database/migrations/config/prompts.js +49 -0
  125. package/dist/database/migrations/config/prompts.js.map +1 -0
  126. package/dist/database/migrations/config/serializeConfig.d.ts +4 -0
  127. package/dist/database/migrations/config/serializeConfig.d.ts.map +1 -0
  128. package/dist/database/migrations/config/serializeConfig.js +65 -0
  129. package/dist/database/migrations/config/serializeConfig.js.map +1 -0
  130. package/dist/database/migrations/config/serializeConfig.spec.js +146 -0
  131. package/dist/database/migrations/config/serializeConfig.spec.js.map +1 -0
  132. package/dist/database/migrations/config/types.d.ts +66 -0
  133. package/dist/database/migrations/config/types.d.ts.map +1 -0
  134. package/dist/database/migrations/config/types.js.map +1 -0
  135. package/dist/database/migrations/migrate.d.ts.map +1 -1
  136. package/dist/database/migrations/migrate.js +3 -0
  137. package/dist/database/migrations/migrate.js.map +1 -1
  138. package/dist/database/types.d.ts +29 -0
  139. package/dist/database/types.d.ts.map +1 -1
  140. package/dist/database/types.js.map +1 -1
  141. package/dist/exports/migrations.d.ts +1 -0
  142. package/dist/exports/migrations.d.ts.map +1 -1
  143. package/dist/exports/migrations.js +2 -1
  144. package/dist/exports/migrations.js.map +1 -1
  145. package/dist/exports/shared.d.ts +6 -3
  146. package/dist/exports/shared.d.ts.map +1 -1
  147. package/dist/exports/shared.js +4 -2
  148. package/dist/exports/shared.js.map +1 -1
  149. package/dist/fields/baseFields/slug/index.d.ts.map +1 -1
  150. package/dist/fields/baseFields/slug/index.js +6 -4
  151. package/dist/fields/baseFields/slug/index.js.map +1 -1
  152. package/dist/fields/config/client.d.ts.map +1 -1
  153. package/dist/fields/config/client.js +3 -2
  154. package/dist/fields/config/client.js.map +1 -1
  155. package/dist/fields/config/sanitize.d.ts.map +1 -1
  156. package/dist/fields/config/sanitize.js +12 -10
  157. package/dist/fields/config/sanitize.js.map +1 -1
  158. package/dist/fields/config/sanitizeJoinField.d.ts.map +1 -1
  159. package/dist/fields/config/sanitizeJoinField.js +3 -0
  160. package/dist/fields/config/sanitizeJoinField.js.map +1 -1
  161. package/dist/fields/config/types.d.ts +17 -73
  162. package/dist/fields/config/types.d.ts.map +1 -1
  163. package/dist/fields/config/types.js +11 -1
  164. package/dist/fields/config/types.js.map +1 -1
  165. package/dist/fields/isFieldDisabled.d.ts +12 -0
  166. package/dist/fields/isFieldDisabled.d.ts.map +1 -0
  167. package/dist/fields/isFieldDisabled.js +15 -0
  168. package/dist/fields/isFieldDisabled.js.map +1 -0
  169. package/dist/fields/isFieldDisabled.spec.js +134 -0
  170. package/dist/fields/isFieldDisabled.spec.js.map +1 -0
  171. package/dist/fields/validations.js +1 -1
  172. package/dist/fields/validations.js.map +1 -1
  173. package/dist/globals/config/client.d.ts +1 -1
  174. package/dist/globals/config/client.d.ts.map +1 -1
  175. package/dist/globals/config/client.js +2 -1
  176. package/dist/globals/config/client.js.map +1 -1
  177. package/dist/globals/config/sanitize.js +6 -2
  178. package/dist/globals/config/sanitize.js.map +1 -1
  179. package/dist/globals/config/types.d.ts +4 -57
  180. package/dist/globals/config/types.d.ts.map +1 -1
  181. package/dist/globals/config/types.js.map +1 -1
  182. package/dist/globals/operations/findOne.d.ts.map +1 -1
  183. package/dist/globals/operations/findOne.js +7 -2
  184. package/dist/globals/operations/findOne.js.map +1 -1
  185. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  186. package/dist/globals/operations/findVersionByID.js +6 -4
  187. package/dist/globals/operations/findVersionByID.js.map +1 -1
  188. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  189. package/dist/globals/operations/findVersions.js +6 -4
  190. package/dist/globals/operations/findVersions.js.map +1 -1
  191. package/dist/globals/operations/update.d.ts.map +1 -1
  192. package/dist/globals/operations/update.js +7 -2
  193. package/dist/globals/operations/update.js.map +1 -1
  194. package/dist/hierarchy/addHierarchyToCollection.d.ts +9 -0
  195. package/dist/hierarchy/addHierarchyToCollection.d.ts.map +1 -0
  196. package/dist/hierarchy/addHierarchyToCollection.js +76 -0
  197. package/dist/hierarchy/addHierarchyToCollection.js.map +1 -0
  198. package/dist/hierarchy/buildParentField.d.ts +11 -0
  199. package/dist/hierarchy/buildParentField.d.ts.map +1 -0
  200. package/dist/hierarchy/buildParentField.js +42 -0
  201. package/dist/hierarchy/buildParentField.js.map +1 -0
  202. package/dist/hierarchy/constants.d.ts +15 -0
  203. package/dist/hierarchy/constants.d.ts.map +1 -0
  204. package/dist/hierarchy/constants.js +11 -0
  205. package/dist/hierarchy/constants.js.map +1 -0
  206. package/dist/hierarchy/createFolderField.d.ts +39 -0
  207. package/dist/hierarchy/createFolderField.d.ts.map +1 -0
  208. package/dist/hierarchy/createFolderField.js +54 -0
  209. package/dist/hierarchy/createFolderField.js.map +1 -0
  210. package/dist/hierarchy/createTagField.d.ts +44 -0
  211. package/dist/hierarchy/createTagField.d.ts.map +1 -0
  212. package/dist/hierarchy/createTagField.js +48 -0
  213. package/dist/hierarchy/createTagField.js.map +1 -0
  214. package/dist/hierarchy/getInitialTreeData.d.ts +27 -0
  215. package/dist/hierarchy/getInitialTreeData.d.ts.map +1 -0
  216. package/dist/hierarchy/getInitialTreeData.js +125 -0
  217. package/dist/hierarchy/getInitialTreeData.js.map +1 -0
  218. package/dist/hierarchy/hooks/collectionAfterDelete.d.ts +14 -0
  219. package/dist/hierarchy/hooks/collectionAfterDelete.d.ts.map +1 -0
  220. package/dist/hierarchy/hooks/collectionAfterDelete.js +21 -0
  221. package/dist/hierarchy/hooks/collectionAfterDelete.js.map +1 -0
  222. package/dist/hierarchy/hooks/collectionAfterRead.d.ts +27 -0
  223. package/dist/hierarchy/hooks/collectionAfterRead.d.ts.map +1 -0
  224. package/dist/hierarchy/hooks/collectionAfterRead.js +72 -0
  225. package/dist/hierarchy/hooks/collectionAfterRead.js.map +1 -0
  226. package/dist/hierarchy/hooks/collectionBeforeChange.d.ts +19 -0
  227. package/dist/hierarchy/hooks/collectionBeforeChange.d.ts.map +1 -0
  228. package/dist/hierarchy/hooks/collectionBeforeChange.js +90 -0
  229. package/dist/hierarchy/hooks/collectionBeforeChange.js.map +1 -0
  230. package/dist/hierarchy/hooks/collectionBeforeDelete.d.ts +15 -0
  231. package/dist/hierarchy/hooks/collectionBeforeDelete.d.ts.map +1 -0
  232. package/dist/hierarchy/hooks/collectionBeforeDelete.js +20 -0
  233. package/dist/hierarchy/hooks/collectionBeforeDelete.js.map +1 -0
  234. package/dist/hierarchy/hooks/collectionBeforeOperation.d.ts +33 -0
  235. package/dist/hierarchy/hooks/collectionBeforeOperation.d.ts.map +1 -0
  236. package/dist/hierarchy/hooks/collectionBeforeOperation.js +66 -0
  237. package/dist/hierarchy/hooks/collectionBeforeOperation.js.map +1 -0
  238. package/dist/hierarchy/hooks/ensureSafeCollectionsChange.d.ts +8 -0
  239. package/dist/hierarchy/hooks/ensureSafeCollectionsChange.d.ts.map +1 -0
  240. package/dist/hierarchy/hooks/ensureSafeCollectionsChange.js +108 -0
  241. package/dist/hierarchy/hooks/ensureSafeCollectionsChange.js.map +1 -0
  242. package/dist/hierarchy/injectHierarchyButton.d.ts +14 -0
  243. package/dist/hierarchy/injectHierarchyButton.d.ts.map +1 -0
  244. package/dist/hierarchy/injectHierarchyButton.js +37 -0
  245. package/dist/hierarchy/injectHierarchyButton.js.map +1 -0
  246. package/dist/hierarchy/presets.d.ts +13 -0
  247. package/dist/hierarchy/presets.d.ts.map +1 -0
  248. package/dist/hierarchy/presets.js +52 -0
  249. package/dist/hierarchy/presets.js.map +1 -0
  250. package/dist/hierarchy/resolveHierarchyCollections.d.ts +23 -0
  251. package/dist/hierarchy/resolveHierarchyCollections.d.ts.map +1 -0
  252. package/dist/hierarchy/resolveHierarchyCollections.js +321 -0
  253. package/dist/hierarchy/resolveHierarchyCollections.js.map +1 -0
  254. package/dist/hierarchy/sanitizeHierarchyCollection.d.ts +14 -0
  255. package/dist/hierarchy/sanitizeHierarchyCollection.d.ts.map +1 -0
  256. package/dist/hierarchy/sanitizeHierarchyCollection.js +117 -0
  257. package/dist/hierarchy/sanitizeHierarchyCollection.js.map +1 -0
  258. package/dist/hierarchy/types.d.ts +155 -0
  259. package/dist/hierarchy/types.d.ts.map +1 -0
  260. package/dist/hierarchy/types.js +6 -0
  261. package/dist/hierarchy/types.js.map +1 -0
  262. package/dist/hierarchy/utils/buildLocalizedHierarchyPaths.d.ts +77 -0
  263. package/dist/hierarchy/utils/buildLocalizedHierarchyPaths.d.ts.map +1 -0
  264. package/dist/hierarchy/utils/buildLocalizedHierarchyPaths.js +77 -0
  265. package/dist/hierarchy/utils/buildLocalizedHierarchyPaths.js.map +1 -0
  266. package/dist/hierarchy/utils/computePaths.d.ts +31 -0
  267. package/dist/hierarchy/utils/computePaths.d.ts.map +1 -0
  268. package/dist/hierarchy/utils/computePaths.js +445 -0
  269. package/dist/hierarchy/utils/computePaths.js.map +1 -0
  270. package/dist/hierarchy/utils/findUseAsTitle.d.ts +14 -0
  271. package/dist/hierarchy/utils/findUseAsTitle.d.ts.map +1 -0
  272. package/dist/hierarchy/utils/findUseAsTitle.js +89 -0
  273. package/dist/hierarchy/utils/findUseAsTitle.js.map +1 -0
  274. package/dist/hierarchy/utils/getAncestors.d.ts +34 -0
  275. package/dist/hierarchy/utils/getAncestors.d.ts.map +1 -0
  276. package/dist/hierarchy/utils/getAncestors.js +94 -0
  277. package/dist/hierarchy/utils/getAncestors.js.map +1 -0
  278. package/dist/hierarchy/utils/getLocalizedValue.d.ts +30 -0
  279. package/dist/hierarchy/utils/getLocalizedValue.d.ts.map +1 -0
  280. package/dist/hierarchy/utils/getLocalizedValue.js +46 -0
  281. package/dist/hierarchy/utils/getLocalizedValue.js.map +1 -0
  282. package/dist/hierarchy/utils/getLocalizedValue.spec.js +250 -0
  283. package/dist/hierarchy/utils/getLocalizedValue.spec.js.map +1 -0
  284. package/dist/index.bundled.d.ts +856 -558
  285. package/dist/index.d.ts +29 -8
  286. package/dist/index.d.ts.map +1 -1
  287. package/dist/index.js +13 -8
  288. package/dist/index.js.map +1 -1
  289. package/dist/preferences/keys.d.ts +8 -4
  290. package/dist/preferences/keys.d.ts.map +1 -1
  291. package/dist/preferences/keys.js +7 -4
  292. package/dist/preferences/keys.js.map +1 -1
  293. package/dist/preferences/types.d.ts +1 -1
  294. package/dist/preferences/types.d.ts.map +1 -1
  295. package/dist/preferences/types.js.map +1 -1
  296. package/dist/query-presets/config.d.ts.map +1 -1
  297. package/dist/query-presets/config.js +5 -1
  298. package/dist/query-presets/config.js.map +1 -1
  299. package/dist/queues/config/types/index.d.ts +0 -21
  300. package/dist/queues/config/types/index.d.ts.map +1 -1
  301. package/dist/queues/config/types/index.js.map +1 -1
  302. package/dist/queues/config/types/taskTypes.d.ts +0 -20
  303. package/dist/queues/config/types/taskTypes.d.ts.map +1 -1
  304. package/dist/queues/config/types/taskTypes.js.map +1 -1
  305. package/dist/queues/errors/handleWorkflowError.d.ts.map +1 -1
  306. package/dist/queues/errors/handleWorkflowError.js +9 -1
  307. package/dist/queues/errors/handleWorkflowError.js.map +1 -1
  308. package/dist/queues/localAPI.d.ts.map +1 -1
  309. package/dist/queues/localAPI.js +26 -67
  310. package/dist/queues/localAPI.js.map +1 -1
  311. package/dist/queues/operations/handleSchedules/index.d.ts.map +1 -1
  312. package/dist/queues/operations/handleSchedules/index.js +1 -4
  313. package/dist/queues/operations/handleSchedules/index.js.map +1 -1
  314. package/dist/queues/operations/runJobs/index.d.ts.map +1 -1
  315. package/dist/queues/operations/runJobs/index.js +40 -37
  316. package/dist/queues/operations/runJobs/index.js.map +1 -1
  317. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.d.ts.map +1 -1
  318. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js +3 -22
  319. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js.map +1 -1
  320. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.d.ts.map +1 -1
  321. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js +0 -2
  322. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js.map +1 -1
  323. package/dist/queues/utilities/updateJob.d.ts +1 -3
  324. package/dist/queues/utilities/updateJob.d.ts.map +1 -1
  325. package/dist/queues/utilities/updateJob.js +2 -18
  326. package/dist/queues/utilities/updateJob.js.map +1 -1
  327. package/dist/types/index.d.ts +44 -0
  328. package/dist/types/index.d.ts.map +1 -1
  329. package/dist/types/index.js.map +1 -1
  330. package/dist/uploads/getBaseFields.d.ts.map +1 -1
  331. package/dist/uploads/getBaseFields.js +35 -69
  332. package/dist/uploads/getBaseFields.js.map +1 -1
  333. package/dist/uploads/getSafeFilename.d.ts +9 -4
  334. package/dist/uploads/getSafeFilename.d.ts.map +1 -1
  335. package/dist/uploads/getSafeFilename.js +5 -5
  336. package/dist/uploads/getSafeFilename.js.map +1 -1
  337. package/dist/utilities/appendDateTimezoneSelectFields.d.ts +13 -0
  338. package/dist/utilities/appendDateTimezoneSelectFields.d.ts.map +1 -0
  339. package/dist/utilities/appendDateTimezoneSelectFields.js +47 -0
  340. package/dist/utilities/appendDateTimezoneSelectFields.js.map +1 -0
  341. package/dist/utilities/appendUploadSelectFields.d.ts.map +1 -1
  342. package/dist/utilities/appendUploadSelectFields.js +3 -0
  343. package/dist/utilities/appendUploadSelectFields.js.map +1 -1
  344. package/dist/utilities/extractID.js +1 -1
  345. package/dist/utilities/extractID.js.map +1 -1
  346. package/dist/utilities/formatAdminURL.d.ts +13 -2
  347. package/dist/utilities/formatAdminURL.d.ts.map +1 -1
  348. package/dist/utilities/formatAdminURL.js.map +1 -1
  349. package/dist/utilities/handleEndpoints.d.ts.map +1 -1
  350. package/dist/utilities/handleEndpoints.js +0 -1
  351. package/dist/utilities/handleEndpoints.js.map +1 -1
  352. package/dist/utilities/resolveSelect.d.ts +16 -0
  353. package/dist/utilities/resolveSelect.d.ts.map +1 -0
  354. package/dist/utilities/resolveSelect.js +19 -0
  355. package/dist/utilities/resolveSelect.js.map +1 -0
  356. package/dist/utilities/sanitizeSelect.d.ts +1 -2
  357. package/dist/utilities/sanitizeSelect.d.ts.map +1 -1
  358. package/dist/utilities/sanitizeSelect.js +19 -25
  359. package/dist/utilities/sanitizeSelect.js.map +1 -1
  360. package/dist/versions/baseFields.d.ts.map +1 -1
  361. package/dist/versions/baseFields.js +3 -2
  362. package/dist/versions/baseFields.js.map +1 -1
  363. package/dist/versions/buildCollectionFields.d.ts.map +1 -1
  364. package/dist/versions/buildCollectionFields.js +0 -1
  365. package/dist/versions/buildCollectionFields.js.map +1 -1
  366. package/dist/versions/buildGlobalFields.d.ts.map +1 -1
  367. package/dist/versions/buildGlobalFields.js +0 -1
  368. package/dist/versions/buildGlobalFields.js.map +1 -1
  369. package/dist/versions/payloadPackageList.d.ts.map +1 -1
  370. package/dist/versions/payloadPackageList.js +0 -1
  371. package/dist/versions/payloadPackageList.js.map +1 -1
  372. package/package.json +4 -4
  373. package/dist/admin/views/folderList.d.ts +0 -56
  374. package/dist/admin/views/folderList.d.ts.map +0 -1
  375. package/dist/admin/views/folderList.js +0 -3
  376. package/dist/admin/views/folderList.js.map +0 -1
  377. package/dist/folders/addFolderCollection.d.ts +0 -10
  378. package/dist/folders/addFolderCollection.d.ts.map +0 -1
  379. package/dist/folders/addFolderCollection.js +0 -26
  380. package/dist/folders/addFolderCollection.js.map +0 -1
  381. package/dist/folders/addFolderFieldToCollection.d.ts +0 -8
  382. package/dist/folders/addFolderFieldToCollection.d.ts.map +0 -1
  383. package/dist/folders/addFolderFieldToCollection.js +0 -20
  384. package/dist/folders/addFolderFieldToCollection.js.map +0 -1
  385. package/dist/folders/buildFolderField.d.ts +0 -8
  386. package/dist/folders/buildFolderField.d.ts.map +0 -1
  387. package/dist/folders/buildFolderField.js +0 -87
  388. package/dist/folders/buildFolderField.js.map +0 -1
  389. package/dist/folders/constants.d.ts +0 -3
  390. package/dist/folders/constants.d.ts.map +0 -1
  391. package/dist/folders/constants.js +0 -4
  392. package/dist/folders/constants.js.map +0 -1
  393. package/dist/folders/createFolderCollection.d.ts +0 -11
  394. package/dist/folders/createFolderCollection.d.ts.map +0 -1
  395. package/dist/folders/createFolderCollection.js +0 -115
  396. package/dist/folders/createFolderCollection.js.map +0 -1
  397. package/dist/folders/hooks/deleteSubfoldersAfterDelete.d.ts +0 -8
  398. package/dist/folders/hooks/deleteSubfoldersAfterDelete.d.ts.map +0 -1
  399. package/dist/folders/hooks/deleteSubfoldersAfterDelete.js +0 -15
  400. package/dist/folders/hooks/deleteSubfoldersAfterDelete.js.map +0 -1
  401. package/dist/folders/hooks/dissasociateAfterDelete.d.ts +0 -8
  402. package/dist/folders/hooks/dissasociateAfterDelete.d.ts.map +0 -1
  403. package/dist/folders/hooks/dissasociateAfterDelete.js +0 -20
  404. package/dist/folders/hooks/dissasociateAfterDelete.js.map +0 -1
  405. package/dist/folders/hooks/ensureSafeCollectionsChange.d.ts +0 -5
  406. package/dist/folders/hooks/ensureSafeCollectionsChange.d.ts.map +0 -1
  407. package/dist/folders/hooks/ensureSafeCollectionsChange.js +0 -107
  408. package/dist/folders/hooks/ensureSafeCollectionsChange.js.map +0 -1
  409. package/dist/folders/hooks/reparentChildFolder.d.ts +0 -24
  410. package/dist/folders/hooks/reparentChildFolder.d.ts.map +0 -1
  411. package/dist/folders/hooks/reparentChildFolder.js +0 -72
  412. package/dist/folders/hooks/reparentChildFolder.js.map +0 -1
  413. package/dist/folders/types.d.ts +0 -118
  414. package/dist/folders/types.d.ts.map +0 -1
  415. package/dist/folders/types.js.map +0 -1
  416. package/dist/folders/utils/buildFolderWhereConstraints.d.ts +0 -13
  417. package/dist/folders/utils/buildFolderWhereConstraints.d.ts.map +0 -1
  418. package/dist/folders/utils/buildFolderWhereConstraints.js +0 -45
  419. package/dist/folders/utils/buildFolderWhereConstraints.js.map +0 -1
  420. package/dist/folders/utils/formatFolderOrDocumentItem.d.ts +0 -12
  421. package/dist/folders/utils/formatFolderOrDocumentItem.d.ts.map +0 -1
  422. package/dist/folders/utils/formatFolderOrDocumentItem.js +0 -30
  423. package/dist/folders/utils/formatFolderOrDocumentItem.js.map +0 -1
  424. package/dist/folders/utils/getFolderBreadcrumbs.d.ts +0 -14
  425. package/dist/folders/utils/getFolderBreadcrumbs.d.ts.map +0 -1
  426. package/dist/folders/utils/getFolderBreadcrumbs.js +0 -45
  427. package/dist/folders/utils/getFolderBreadcrumbs.js.map +0 -1
  428. package/dist/folders/utils/getFolderData.d.ts +0 -33
  429. package/dist/folders/utils/getFolderData.d.ts.map +0 -1
  430. package/dist/folders/utils/getFolderData.js +0 -88
  431. package/dist/folders/utils/getFolderData.js.map +0 -1
  432. package/dist/folders/utils/getFoldersAndDocumentsFromJoin.d.ts +0 -24
  433. package/dist/folders/utils/getFoldersAndDocumentsFromJoin.d.ts.map +0 -1
  434. package/dist/folders/utils/getFoldersAndDocumentsFromJoin.js +0 -66
  435. package/dist/folders/utils/getFoldersAndDocumentsFromJoin.js.map +0 -1
  436. package/dist/folders/utils/getOrphanedDocs.d.ts +0 -15
  437. package/dist/folders/utils/getOrphanedDocs.d.ts.map +0 -1
  438. package/dist/folders/utils/getOrphanedDocs.js +0 -40
  439. package/dist/folders/utils/getOrphanedDocs.js.map +0 -1
  440. /package/dist/{folders → database/migrations/config}/types.js +0 -0
@@ -1,26 +0,0 @@
1
- import { sanitizeCollection } from '../collections/config/sanitize.js';
2
- import { createFolderCollection } from './createFolderCollection.js';
3
- export async function addFolderCollection({ collectionSpecific, config, folderEnabledCollections, richTextSanitizationPromises = [], validRelationships = [] }) {
4
- if (config.folders === false) {
5
- return;
6
- }
7
- let folderCollectionConfig = createFolderCollection({
8
- slug: config.folders.slug,
9
- collectionSpecific,
10
- debug: config.folders.debug,
11
- folderEnabledCollections,
12
- folderFieldName: config.folders.fieldName
13
- });
14
- const collectionIndex = config.collections.push(folderCollectionConfig);
15
- if (Array.isArray(config.folders?.collectionOverrides) && config?.folders.collectionOverrides.length) {
16
- for (const override of config.folders.collectionOverrides){
17
- folderCollectionConfig = await override({
18
- collection: folderCollectionConfig
19
- });
20
- }
21
- }
22
- const sanitizedCollectionWithOverrides = await sanitizeCollection(config, folderCollectionConfig, richTextSanitizationPromises, validRelationships);
23
- config.collections[collectionIndex - 1] = sanitizedCollectionWithOverrides;
24
- }
25
-
26
- //# sourceMappingURL=addFolderCollection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/folders/addFolderCollection.ts"],"sourcesContent":["import type { Config, SanitizedConfig } from '../config/types.js'\nimport type { CollectionConfig } from '../index.js'\n\nimport { sanitizeCollection } from '../collections/config/sanitize.js'\nimport { createFolderCollection } from './createFolderCollection.js'\n\nexport async function addFolderCollection({\n collectionSpecific,\n config,\n folderEnabledCollections,\n richTextSanitizationPromises = [],\n validRelationships = [],\n}: {\n collectionSpecific: boolean\n config: NonNullable<Config>\n folderEnabledCollections: CollectionConfig[]\n richTextSanitizationPromises?: Array<(config: SanitizedConfig) => Promise<void>>\n validRelationships?: string[]\n}): Promise<void> {\n if (config.folders === false) {\n return\n }\n\n let folderCollectionConfig = createFolderCollection({\n slug: config.folders!.slug as string,\n collectionSpecific,\n debug: config.folders!.debug,\n folderEnabledCollections,\n folderFieldName: config.folders!.fieldName as string,\n })\n\n const collectionIndex = config.collections!.push(folderCollectionConfig)\n\n if (\n Array.isArray(config.folders?.collectionOverrides) &&\n config?.folders.collectionOverrides.length\n ) {\n for (const override of config.folders.collectionOverrides) {\n folderCollectionConfig = await override({ collection: folderCollectionConfig })\n }\n }\n\n const sanitizedCollectionWithOverrides = await sanitizeCollection(\n config as unknown as Config,\n folderCollectionConfig,\n richTextSanitizationPromises,\n validRelationships,\n )\n\n config.collections![collectionIndex - 1] = sanitizedCollectionWithOverrides\n}\n"],"names":["sanitizeCollection","createFolderCollection","addFolderCollection","collectionSpecific","config","folderEnabledCollections","richTextSanitizationPromises","validRelationships","folders","folderCollectionConfig","slug","debug","folderFieldName","fieldName","collectionIndex","collections","push","Array","isArray","collectionOverrides","length","override","collection","sanitizedCollectionWithOverrides"],"mappings":"AAGA,SAASA,kBAAkB,QAAQ,oCAAmC;AACtE,SAASC,sBAAsB,QAAQ,8BAA6B;AAEpE,OAAO,eAAeC,oBAAoB,EACxCC,kBAAkB,EAClBC,MAAM,EACNC,wBAAwB,EACxBC,+BAA+B,EAAE,EACjCC,qBAAqB,EAAE,EAOxB;IACC,IAAIH,OAAOI,OAAO,KAAK,OAAO;QAC5B;IACF;IAEA,IAAIC,yBAAyBR,uBAAuB;QAClDS,MAAMN,OAAOI,OAAO,CAAEE,IAAI;QAC1BP;QACAQ,OAAOP,OAAOI,OAAO,CAAEG,KAAK;QAC5BN;QACAO,iBAAiBR,OAAOI,OAAO,CAAEK,SAAS;IAC5C;IAEA,MAAMC,kBAAkBV,OAAOW,WAAW,CAAEC,IAAI,CAACP;IAEjD,IACEQ,MAAMC,OAAO,CAACd,OAAOI,OAAO,EAAEW,wBAC9Bf,QAAQI,QAAQW,oBAAoBC,QACpC;QACA,KAAK,MAAMC,YAAYjB,OAAOI,OAAO,CAACW,mBAAmB,CAAE;YACzDV,yBAAyB,MAAMY,SAAS;gBAAEC,YAAYb;YAAuB;QAC/E;IACF;IAEA,MAAMc,mCAAmC,MAAMvB,mBAC7CI,QACAK,wBACAH,8BACAC;IAGFH,OAAOW,WAAW,AAAC,CAACD,kBAAkB,EAAE,GAAGS;AAC7C"}
@@ -1,8 +0,0 @@
1
- import type { SanitizedCollectionConfig } from '../index.js';
2
- export declare const addFolderFieldToCollection: ({ collection, collectionSpecific, folderFieldName, folderSlug, }: {
3
- collection: SanitizedCollectionConfig;
4
- collectionSpecific: boolean;
5
- folderFieldName: string;
6
- folderSlug: string;
7
- }) => void;
8
- //# sourceMappingURL=addFolderFieldToCollection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"addFolderFieldToCollection.d.ts","sourceRoot":"","sources":["../../src/folders/addFolderFieldToCollection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAI5D,eAAO,MAAM,0BAA0B,qEAKpC;IACD,UAAU,EAAE,yBAAyB,CAAA;IACrC,kBAAkB,EAAE,OAAO,CAAA;IAC3B,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;CACnB,KAAG,IAkBH,CAAA"}
@@ -1,20 +0,0 @@
1
- import { buildFolderField } from './buildFolderField.js';
2
- export const addFolderFieldToCollection = ({ collection, collectionSpecific, folderFieldName, folderSlug })=>{
3
- collection.fields.push(buildFolderField({
4
- collectionSpecific,
5
- folderFieldName,
6
- folderSlug,
7
- overrides: {
8
- admin: {
9
- allowCreate: false,
10
- allowEdit: false,
11
- components: {
12
- Cell: '@payloadcms/next/rsc#FolderTableCell',
13
- Field: '@payloadcms/next/rsc#FolderField'
14
- }
15
- }
16
- }
17
- }));
18
- };
19
-
20
- //# sourceMappingURL=addFolderFieldToCollection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/folders/addFolderFieldToCollection.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../index.js'\n\nimport { buildFolderField } from './buildFolderField.js'\n\nexport const addFolderFieldToCollection = ({\n collection,\n collectionSpecific,\n folderFieldName,\n folderSlug,\n}: {\n collection: SanitizedCollectionConfig\n collectionSpecific: boolean\n folderFieldName: string\n folderSlug: string\n}): void => {\n collection.fields.push(\n buildFolderField({\n collectionSpecific,\n folderFieldName,\n folderSlug,\n overrides: {\n admin: {\n allowCreate: false,\n allowEdit: false,\n components: {\n Cell: '@payloadcms/next/rsc#FolderTableCell',\n Field: '@payloadcms/next/rsc#FolderField',\n },\n },\n },\n }),\n )\n}\n"],"names":["buildFolderField","addFolderFieldToCollection","collection","collectionSpecific","folderFieldName","folderSlug","fields","push","overrides","admin","allowCreate","allowEdit","components","Cell","Field"],"mappings":"AAEA,SAASA,gBAAgB,QAAQ,wBAAuB;AAExD,OAAO,MAAMC,6BAA6B,CAAC,EACzCC,UAAU,EACVC,kBAAkB,EAClBC,eAAe,EACfC,UAAU,EAMX;IACCH,WAAWI,MAAM,CAACC,IAAI,CACpBP,iBAAiB;QACfG;QACAC;QACAC;QACAG,WAAW;YACTC,OAAO;gBACLC,aAAa;gBACbC,WAAW;gBACXC,YAAY;oBACVC,MAAM;oBACNC,OAAO;gBACT;YACF;QACF;IACF;AAEJ,EAAC"}
@@ -1,8 +0,0 @@
1
- import type { SingleRelationshipField } from '../fields/config/types.js';
2
- export declare const buildFolderField: ({ collectionSpecific, folderFieldName, folderSlug, overrides, }: {
3
- collectionSpecific: boolean;
4
- folderFieldName: string;
5
- folderSlug: string;
6
- overrides?: Partial<SingleRelationshipField>;
7
- }) => SingleRelationshipField;
8
- //# sourceMappingURL=buildFolderField.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildFolderField.d.ts","sourceRoot":"","sources":["../../src/folders/buildFolderField.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAKxE,eAAO,MAAM,gBAAgB,oEAK1B;IACD,kBAAkB,EAAE,OAAO,CAAA;IAC3B,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAA;CAC7C,KAAG,uBA4FH,CAAA"}
@@ -1,87 +0,0 @@
1
- import { extractID } from '../utilities/extractID.js';
2
- export const buildFolderField = ({ collectionSpecific, folderFieldName, folderSlug, overrides = {} })=>{
3
- const field = {
4
- name: folderFieldName,
5
- type: 'relationship',
6
- admin: {},
7
- hasMany: false,
8
- index: true,
9
- label: 'Folder',
10
- relationTo: folderSlug,
11
- validate: async (value, { collectionSlug, data, overrideAccess, previousValue, req })=>{
12
- if (!collectionSpecific) {
13
- // if collection scoping is not enabled, no validation required since folders can contain any type of document
14
- return true;
15
- }
16
- if (!value) {
17
- // no folder, no validation required
18
- return true;
19
- }
20
- const newID = extractID(value);
21
- if (previousValue && extractID(previousValue) === newID) {
22
- // value did not change, no validation required
23
- return true;
24
- } else {
25
- // need to validat the folder value allows this collection type
26
- let parentFolder = null;
27
- if (typeof value === 'string' || typeof value === 'number') {
28
- // need to populate the value with the document
29
- parentFolder = await req.payload.findByID({
30
- id: newID,
31
- collection: folderSlug,
32
- depth: 0,
33
- overrideAccess,
34
- req,
35
- select: {
36
- folderType: true
37
- },
38
- user: req.user
39
- });
40
- }
41
- if (parentFolder && collectionSlug) {
42
- const parentFolderTypes = parentFolder.folderType || [];
43
- // if the parent folder has no folder types, it accepts all collections
44
- if (parentFolderTypes.length === 0) {
45
- return true;
46
- }
47
- // validation for a folder document
48
- if (collectionSlug === folderSlug) {
49
- // ensure the parent accepts ALL folder types
50
- const folderTypes = 'folderType' in data ? data.folderType : [];
51
- const invalidSlugs = folderTypes.filter((validCollectionSlug)=>{
52
- return !parentFolderTypes.includes(validCollectionSlug);
53
- });
54
- if (invalidSlugs.length === 0) {
55
- return true;
56
- } else {
57
- return `Folder with ID ${newID} does not allow documents of type ${invalidSlugs.join(', ')}`;
58
- }
59
- }
60
- // validation for a non-folder document
61
- if (parentFolderTypes.includes(collectionSlug)) {
62
- return true;
63
- } else {
64
- return `Folder with ID ${newID} does not allow documents of type ${collectionSlug}`;
65
- }
66
- } else {
67
- return `Folder with ID ${newID} not found in collection ${folderSlug}`;
68
- }
69
- }
70
- }
71
- };
72
- if (overrides?.admin) {
73
- field.admin = {
74
- ...field.admin,
75
- ...overrides.admin || {}
76
- };
77
- if (overrides.admin.components) {
78
- field.admin.components = {
79
- ...field.admin.components,
80
- ...overrides.admin.components || {}
81
- };
82
- }
83
- }
84
- return field;
85
- };
86
-
87
- //# sourceMappingURL=buildFolderField.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/folders/buildFolderField.ts"],"sourcesContent":["import type { SingleRelationshipField } from '../fields/config/types.js'\nimport type { Document } from '../types/index.js'\n\nimport { extractID } from '../utilities/extractID.js'\n\nexport const buildFolderField = ({\n collectionSpecific,\n folderFieldName,\n folderSlug,\n overrides = {},\n}: {\n collectionSpecific: boolean\n folderFieldName: string\n folderSlug: string\n overrides?: Partial<SingleRelationshipField>\n}): SingleRelationshipField => {\n const field: SingleRelationshipField = {\n name: folderFieldName,\n type: 'relationship',\n admin: {},\n hasMany: false,\n index: true,\n label: 'Folder',\n relationTo: folderSlug,\n validate: async (value, { collectionSlug, data, overrideAccess, previousValue, req }) => {\n if (!collectionSpecific) {\n // if collection scoping is not enabled, no validation required since folders can contain any type of document\n return true\n }\n\n if (!value) {\n // no folder, no validation required\n return true\n }\n\n const newID = extractID<Document>(value)\n if (previousValue && extractID<Document>(previousValue) === newID) {\n // value did not change, no validation required\n return true\n } else {\n // need to validat the folder value allows this collection type\n let parentFolder: Document = null\n if (typeof value === 'string' || typeof value === 'number') {\n // need to populate the value with the document\n parentFolder = await req.payload.findByID({\n id: newID,\n collection: folderSlug,\n depth: 0, // no need to populate nested folders\n overrideAccess,\n req,\n select: {\n folderType: true, // only need to check folderType\n },\n user: req.user,\n })\n }\n\n if (parentFolder && collectionSlug) {\n const parentFolderTypes: string[] = (parentFolder.folderType as string[]) || []\n\n // if the parent folder has no folder types, it accepts all collections\n if (parentFolderTypes.length === 0) {\n return true\n }\n\n // validation for a folder document\n if (collectionSlug === folderSlug) {\n // ensure the parent accepts ALL folder types\n const folderTypes: string[] = 'folderType' in data ? (data.folderType as string[]) : []\n const invalidSlugs = folderTypes.filter((validCollectionSlug: string) => {\n return !parentFolderTypes.includes(validCollectionSlug)\n })\n if (invalidSlugs.length === 0) {\n return true\n } else {\n return `Folder with ID ${newID} does not allow documents of type ${invalidSlugs.join(', ')}`\n }\n }\n\n // validation for a non-folder document\n if (parentFolderTypes.includes(collectionSlug)) {\n return true\n } else {\n return `Folder with ID ${newID} does not allow documents of type ${collectionSlug}`\n }\n } else {\n return `Folder with ID ${newID} not found in collection ${folderSlug}`\n }\n }\n },\n }\n\n if (overrides?.admin) {\n field.admin = {\n ...field.admin,\n ...(overrides.admin || {}),\n }\n\n if (overrides.admin.components) {\n field.admin.components = {\n ...field.admin.components,\n ...(overrides.admin.components || {}),\n }\n }\n }\n\n return field\n}\n"],"names":["extractID","buildFolderField","collectionSpecific","folderFieldName","folderSlug","overrides","field","name","type","admin","hasMany","index","label","relationTo","validate","value","collectionSlug","data","overrideAccess","previousValue","req","newID","parentFolder","payload","findByID","id","collection","depth","select","folderType","user","parentFolderTypes","length","folderTypes","invalidSlugs","filter","validCollectionSlug","includes","join","components"],"mappings":"AAGA,SAASA,SAAS,QAAQ,4BAA2B;AAErD,OAAO,MAAMC,mBAAmB,CAAC,EAC/BC,kBAAkB,EAClBC,eAAe,EACfC,UAAU,EACVC,YAAY,CAAC,CAAC,EAMf;IACC,MAAMC,QAAiC;QACrCC,MAAMJ;QACNK,MAAM;QACNC,OAAO,CAAC;QACRC,SAAS;QACTC,OAAO;QACPC,OAAO;QACPC,YAAYT;QACZU,UAAU,OAAOC,OAAO,EAAEC,cAAc,EAAEC,IAAI,EAAEC,cAAc,EAAEC,aAAa,EAAEC,GAAG,EAAE;YAClF,IAAI,CAAClB,oBAAoB;gBACvB,8GAA8G;gBAC9G,OAAO;YACT;YAEA,IAAI,CAACa,OAAO;gBACV,oCAAoC;gBACpC,OAAO;YACT;YAEA,MAAMM,QAAQrB,UAAoBe;YAClC,IAAII,iBAAiBnB,UAAoBmB,mBAAmBE,OAAO;gBACjE,+CAA+C;gBAC/C,OAAO;YACT,OAAO;gBACL,+DAA+D;gBAC/D,IAAIC,eAAyB;gBAC7B,IAAI,OAAOP,UAAU,YAAY,OAAOA,UAAU,UAAU;oBAC1D,+CAA+C;oBAC/CO,eAAe,MAAMF,IAAIG,OAAO,CAACC,QAAQ,CAAC;wBACxCC,IAAIJ;wBACJK,YAAYtB;wBACZuB,OAAO;wBACPT;wBACAE;wBACAQ,QAAQ;4BACNC,YAAY;wBACd;wBACAC,MAAMV,IAAIU,IAAI;oBAChB;gBACF;gBAEA,IAAIR,gBAAgBN,gBAAgB;oBAClC,MAAMe,oBAA8B,AAACT,aAAaO,UAAU,IAAiB,EAAE;oBAE/E,uEAAuE;oBACvE,IAAIE,kBAAkBC,MAAM,KAAK,GAAG;wBAClC,OAAO;oBACT;oBAEA,mCAAmC;oBACnC,IAAIhB,mBAAmBZ,YAAY;wBACjC,6CAA6C;wBAC7C,MAAM6B,cAAwB,gBAAgBhB,OAAQA,KAAKY,UAAU,GAAgB,EAAE;wBACvF,MAAMK,eAAeD,YAAYE,MAAM,CAAC,CAACC;4BACvC,OAAO,CAACL,kBAAkBM,QAAQ,CAACD;wBACrC;wBACA,IAAIF,aAAaF,MAAM,KAAK,GAAG;4BAC7B,OAAO;wBACT,OAAO;4BACL,OAAO,CAAC,eAAe,EAAEX,MAAM,kCAAkC,EAAEa,aAAaI,IAAI,CAAC,OAAO;wBAC9F;oBACF;oBAEA,uCAAuC;oBACvC,IAAIP,kBAAkBM,QAAQ,CAACrB,iBAAiB;wBAC9C,OAAO;oBACT,OAAO;wBACL,OAAO,CAAC,eAAe,EAAEK,MAAM,kCAAkC,EAAEL,gBAAgB;oBACrF;gBACF,OAAO;oBACL,OAAO,CAAC,eAAe,EAAEK,MAAM,yBAAyB,EAAEjB,YAAY;gBACxE;YACF;QACF;IACF;IAEA,IAAIC,WAAWI,OAAO;QACpBH,MAAMG,KAAK,GAAG;YACZ,GAAGH,MAAMG,KAAK;YACd,GAAIJ,UAAUI,KAAK,IAAI,CAAC,CAAC;QAC3B;QAEA,IAAIJ,UAAUI,KAAK,CAAC8B,UAAU,EAAE;YAC9BjC,MAAMG,KAAK,CAAC8B,UAAU,GAAG;gBACvB,GAAGjC,MAAMG,KAAK,CAAC8B,UAAU;gBACzB,GAAIlC,UAAUI,KAAK,CAAC8B,UAAU,IAAI,CAAC,CAAC;YACtC;QACF;IACF;IAEA,OAAOjC;AACT,EAAC"}
@@ -1,3 +0,0 @@
1
- export declare const foldersSlug = "payload-folders";
2
- export declare const parentFolderFieldName = "folder";
3
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/folders/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,oBAAoB,CAAA;AAC5C,eAAO,MAAM,qBAAqB,WAAW,CAAA"}
@@ -1,4 +0,0 @@
1
- export const foldersSlug = 'payload-folders';
2
- export const parentFolderFieldName = 'folder';
3
-
4
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/folders/constants.ts"],"sourcesContent":["export const foldersSlug = 'payload-folders'\nexport const parentFolderFieldName = 'folder'\n"],"names":["foldersSlug","parentFolderFieldName"],"mappings":"AAAA,OAAO,MAAMA,cAAc,kBAAiB;AAC5C,OAAO,MAAMC,wBAAwB,SAAQ"}
@@ -1,11 +0,0 @@
1
- import type { CollectionConfig } from '../collections/config/types.js';
2
- type CreateFolderCollectionArgs = {
3
- collectionSpecific: boolean;
4
- debug?: boolean;
5
- folderEnabledCollections: CollectionConfig[];
6
- folderFieldName: string;
7
- slug: string;
8
- };
9
- export declare const createFolderCollection: ({ slug, collectionSpecific, debug, folderEnabledCollections, folderFieldName, }: CreateFolderCollectionArgs) => CollectionConfig;
10
- export {};
11
- //# sourceMappingURL=createFolderCollection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createFolderCollection.d.ts","sourceRoot":"","sources":["../../src/folders/createFolderCollection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAUtE,KAAK,0BAA0B,GAAG;IAChC,kBAAkB,EAAE,OAAO,CAAA;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,wBAAwB,EAAE,gBAAgB,EAAE,CAAA;IAC5C,eAAe,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AACD,eAAO,MAAM,sBAAsB,oFAMhC,0BAA0B,KAAG,gBAqG/B,CAAA"}
@@ -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":"AAAA,SAASA,QAAQ,QAAgE,iBAAgB;AACjG,SAASC,SAAS,QAAQ,+BAA8B;AACxD,SAASC,kBAAkB,QAAQ,wCAAuC;AAE1E,OAAO,MAAMC,8BACX,CAAC,EAAEC,WAAW,EAAmC,GACjD,OAAO,EAAEC,IAAI,EAAEC,WAAW,EAAEC,GAAG,EAAE;QAC/B,MAAMC,kBAAkBP,UAAUK,eAAe,CAAC;QAClD,MAAMG,iBAAiBR,UAAUI,MAAMK,UAAUJ,aAAaI,UAAU,CAAC;QACzE,IAAIC,MAAMC,OAAO,CAACP,MAAMQ,eAAeR,KAAKQ,UAAU,CAACC,MAAM,GAAG,GAAG;YACjE,MAAMD,aAAaR,KAAKQ,UAAU;YAClC,MAAME,+BACJJ,MAAMC,OAAO,CAACN,aAAaO,eAAeP,YAAYO,UAAU,CAACC,MAAM,GAAG,IACtER,YAAYO,UAAU,GACtBG;YACN;;;;;;;;;OASC,GACD,MAAMC,iBAAiBF,+BAEnBA,6BAA6BG,MAAM,CAAC,CAACC,IAAM,CAACN,WAAWO,QAAQ,CAACD,MAEhEN;YAEJ,IAAII,kBAAkBA,eAAeH,MAAM,GAAG,GAAG;gBAC/C,IAAIO,wBAAwB;gBAC5B,IAAI,OAAOb,oBAAoB,YAAY,OAAOA,oBAAoB,UAAU;oBAC9E,MAAMc,uBAAuB,MAAMf,IAAIgB,OAAO,CAACC,QAAQ,CAAC;wBACtDC,IAAIjB;wBACJkB,YAAYtB;wBACZuB,OAAO;4BACLC,qBAAqB;gCACnBC,OAAO;gCACPC,OAAO;oCACLC,IAAI;wCACF;4CACEC,YAAY;gDACVC,IAAIhB;4CACN;wCACF;qCACD;gCACH;4BACF;wBACF;wBACAiB,gBAAgB;wBAChB3B;oBACF;oBAEAc,wBAAwBC,qBAAqBM,mBAAmB,CAACO,IAAI,CAACrB,MAAM,GAAG;gBACjF;gBAEA,uEAAuE;gBACvE,IAAIsB,sBAAsB;gBAC1B,IACE,CAACf,yBACA,CAAA,OAAOb,oBAAoB,YAAY,OAAOA,oBAAoB,QAAO,GAC1E;oBACA,MAAM6B,qBAAqB,MAAM9B,IAAIgB,OAAO,CAACe,IAAI,CAAC;wBAChDZ,YAAYtB;wBACZyB,OAAO;wBACPtB;wBACAuB,OAAO;4BACLS,KAAK;gCACH;oCACE1B,YAAY;wCACVoB,IAAIhB;oCACN;gCACF;gCACA;oCACEP,QAAQ;wCACN8B,QAAQhC;oCACV;gCACF;6BACD;wBACH;oBACF;oBACA4B,sBAAsBC,mBAAmBI,SAAS,GAAG;gBACvD;gBAEA,IAAIpB,yBAAyBe,qBAAqB;oBAChD,MAAMM,mBAAmBzB,eAAe0B,GAAG,CAAC,CAACC;wBAC3C,IAAIrC,IAAIgB,OAAO,CAACsB,WAAW,CAACD,eAAe,EAAEE,OAAOC,OAAOC,UAAU;4BACnE,OAAO9C,mBACLK,IAAIgB,OAAO,CAACsB,WAAW,CAACD,eAAe,EAAEE,OAAOC,OAAOE,QACvD1C,IAAI2C,IAAI;wBAEZ;wBACA,OAAON;oBACT;oBAEA,MAAM,IAAI5C,SACR,CAAC,YAAY,EAAEK,KAAK8C,IAAI,IAAI7C,YAAY6C,IAAI,CAAC,WAAW,EAAE9B,wBAAwB,cAAc,UAAU,iDAAiD,EAAEqB,iBAAiBU,IAAI,CAAC,OAAO,EAC1L;gBAEJ;gBACA,OAAO/C;YACT;QACF,OAAO,IACL,AAACA,CAAAA,MAAMQ,eAAe,QACnBF,MAAMC,OAAO,CAACP,MAAMQ,eAAeR,MAAMQ,WAAWC,WAAW,CAAC,KACnEL,gBACA;YACA,kGAAkG;YAClG,IAAI4C;YACJ,IAAI,OAAO5C,mBAAmB,YAAY,OAAOA,mBAAmB,UAAU;gBAC5E,IAAI;oBACF4C,eAAe,MAAM9C,IAAIgB,OAAO,CAACC,QAAQ,CAAC;wBACxCC,IAAIhB;wBACJiB,YAAYtB;wBACZ8B,gBAAgB;wBAChB3B;wBACA+C,QAAQ;4BACNH,MAAM;4BACNtC,YAAY;wBACd;wBACA0C,MAAMhD,IAAIgD,IAAI;oBAChB;gBACF,EAAE,OAAOC,GAAG;gBACV,+BAA+B;gBACjC;YACF;YAEA,IACEH,gBACAA,cAAcxC,cACdF,MAAMC,OAAO,CAACyC,aAAaxC,UAAU,KACrCwC,aAAaxC,UAAU,CAACC,MAAM,GAAG,GACjC;gBACA,MAAM,IAAId,SACR,CAAC,YAAY,EAAEK,MAAM8C,QAAQ7C,YAAY6C,IAAI,CAAC,oDAAoD,EAAEE,cAAcF,OAAO,CAAC,CAAC,EAAEE,cAAcF,KAAK,EAAE,CAAC,GAAG,GAAG,sBAAsB,CAAC,EAChL;YAEJ;QACF;QAEA,OAAO9C;IACT,EAAC"}
@@ -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"}