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
@@ -6,9 +6,8 @@ import { sanitizeCollection } from '../collections/config/sanitize.js';
6
6
  import { migrationsCollection } from '../database/migrations/migrationsCollection.js';
7
7
  import { DuplicateCollection, InvalidConfiguration } from '../errors/index.js';
8
8
  import { defaultTimezones } from '../fields/baseFields/timezone/defaultTimezones.js';
9
- import { addFolderCollection } from '../folders/addFolderCollection.js';
10
- import { addFolderFieldToCollection } from '../folders/addFolderFieldToCollection.js';
11
9
  import { sanitizeGlobal } from '../globals/config/sanitize.js';
10
+ import { resolveHierarchyCollections } from '../hierarchy/resolveHierarchyCollections.js';
12
11
  import { baseBlockFields, formatLabels, sanitizeFields } from '../index.js';
13
12
  import { getLockedDocumentsCollection, lockedDocumentsCollectionSlug } from '../locked-documents/config.js';
14
13
  import { getPreferencesCollection, preferencesCollectionSlug } from '../preferences/config.js';
@@ -17,6 +16,7 @@ import { getDefaultJobsCollection, jobsCollectionSlug } from '../queues/config/c
17
16
  import { getJobStatsGlobal } from '../queues/config/global.js';
18
17
  import { flattenAllFields, flattenBlock } from '../utilities/flattenAllFields.js';
19
18
  import { hasScheduledPublishEnabled } from '../utilities/getVersionsConfig.js';
19
+ import { endSpan, startSpan } from '../utilities/sanitizeProfiler.js';
20
20
  import { validateTimezones } from '../utilities/validateTimezones.js';
21
21
  import { getSchedulePublishTask } from '../versions/schedule/job.js';
22
22
  import { addDefaultsToConfig } from './defaults.js';
@@ -85,297 +85,283 @@ const sanitizeAdminConfig = (configToSanitize)=>{
85
85
  return sanitizedConfig;
86
86
  };
87
87
  export const sanitizeConfig = async (incomingConfig)=>{
88
- const configWithDefaults = addDefaultsToConfig(incomingConfig);
89
- const config = sanitizeAdminConfig(configWithDefaults);
90
- if (!config.endpoints) {
91
- config.endpoints = [];
92
- }
93
- for (const endpoint of authRootEndpoints){
94
- config.endpoints.push(endpoint);
95
- }
96
- if (config.localization && config.localization.locales?.length > 0) {
97
- // clone localization config so to not break everything
98
- const firstLocale = config.localization.locales[0];
99
- if (typeof firstLocale === 'string') {
100
- config.localization.localeCodes = [
101
- ...config.localization.locales
102
- ];
103
- // is string[], so convert to Locale[]
104
- config.localization.locales = config.localization.locales.map((locale)=>({
105
- code: locale,
106
- label: locale,
107
- rtl: false,
108
- toString: ()=>locale
109
- }));
110
- } else {
111
- // is Locale[], so convert to string[] for localeCodes
112
- config.localization.localeCodes = config.localization.locales.map((locale)=>locale.code);
113
- config.localization.locales = config.localization.locales.map((locale)=>({
114
- ...locale,
115
- toString: ()=>locale.code
116
- }));
88
+ const __profSpan = startSpan('sanitizeConfig');
89
+ try {
90
+ const configWithDefaults = addDefaultsToConfig(incomingConfig);
91
+ const config = sanitizeAdminConfig(configWithDefaults);
92
+ if (!config.endpoints) {
93
+ config.endpoints = [];
117
94
  }
118
- // Default fallback to true if not provided
119
- config.localization.fallback = config.localization?.fallback ?? true;
120
- }
121
- const i18nConfig = {
122
- fallbackLanguage: 'en',
123
- supportedLanguages: {
124
- en
125
- },
126
- translations: {}
127
- };
128
- if (incomingConfig?.i18n) {
129
- i18nConfig.supportedLanguages = incomingConfig.i18n?.supportedLanguages || i18nConfig.supportedLanguages;
130
- const supportedLangKeys = Object.keys(i18nConfig.supportedLanguages);
131
- const fallbackLang = incomingConfig.i18n?.fallbackLanguage || i18nConfig.fallbackLanguage;
132
- i18nConfig.fallbackLanguage = supportedLangKeys.includes(fallbackLang) ? fallbackLang : supportedLangKeys[0];
133
- i18nConfig.translations = incomingConfig.i18n?.translations || i18nConfig.translations;
134
- }
135
- config.i18n = i18nConfig;
136
- const richTextSanitizationPromises = [];
137
- const schedulePublishCollections = [];
138
- const queryPresetsCollections = [];
139
- const schedulePublishGlobals = [];
140
- const collectionSlugs = new Set();
141
- const validRelationships = [
142
- ...config.collections?.map((c)=>c.slug) ?? [],
143
- jobsCollectionSlug,
144
- lockedDocumentsCollectionSlug,
145
- preferencesCollectionSlug
146
- ];
147
- if (config.folders !== false) {
148
- validRelationships.push(config.folders.slug);
149
- }
150
- const dashboardWidgets = config.admin?.dashboard?.widgets ?? [];
151
- for (const widget of dashboardWidgets){
152
- if (widget.fields?.length) {
153
- widget.fields = await sanitizeFields({
154
- config: config,
155
- existingFieldNames: new Set(),
156
- fields: widget.fields,
157
- parentIsLocalized: false,
158
- richTextSanitizationPromises,
159
- validRelationships
160
- });
95
+ for (const endpoint of authRootEndpoints){
96
+ config.endpoints.push(endpoint);
161
97
  }
162
- }
163
- /**
98
+ if (config.localization && config.localization.locales?.length > 0) {
99
+ // clone localization config so to not break everything
100
+ const firstLocale = config.localization.locales[0];
101
+ if (typeof firstLocale === 'string') {
102
+ config.localization.localeCodes = [
103
+ ...config.localization.locales
104
+ ];
105
+ // is string[], so convert to Locale[]
106
+ config.localization.locales = config.localization.locales.map((locale)=>({
107
+ code: locale,
108
+ label: locale,
109
+ rtl: false,
110
+ toString: ()=>locale
111
+ }));
112
+ } else {
113
+ // is Locale[], so convert to string[] for localeCodes
114
+ config.localization.localeCodes = config.localization.locales.map((locale)=>locale.code);
115
+ config.localization.locales = config.localization.locales.map((locale)=>({
116
+ ...locale,
117
+ toString: ()=>locale.code
118
+ }));
119
+ }
120
+ // Default fallback to true if not provided
121
+ config.localization.fallback = config.localization?.fallback ?? true;
122
+ }
123
+ const i18nConfig = {
124
+ fallbackLanguage: 'en',
125
+ supportedLanguages: {
126
+ en
127
+ },
128
+ translations: {}
129
+ };
130
+ if (incomingConfig?.i18n) {
131
+ i18nConfig.supportedLanguages = incomingConfig.i18n?.supportedLanguages || i18nConfig.supportedLanguages;
132
+ const supportedLangKeys = Object.keys(i18nConfig.supportedLanguages);
133
+ const fallbackLang = incomingConfig.i18n?.fallbackLanguage || i18nConfig.fallbackLanguage;
134
+ i18nConfig.fallbackLanguage = supportedLangKeys.includes(fallbackLang) ? fallbackLang : supportedLangKeys[0];
135
+ i18nConfig.translations = incomingConfig.i18n?.translations || i18nConfig.translations;
136
+ }
137
+ config.i18n = i18nConfig;
138
+ const richTextSanitizationPromises = [];
139
+ const schedulePublishCollections = [];
140
+ const queryPresetsCollections = [];
141
+ const schedulePublishGlobals = [];
142
+ const collectionSlugs = new Set();
143
+ const validRelationships = [
144
+ ...config.collections?.map((c)=>c.slug) ?? [],
145
+ jobsCollectionSlug,
146
+ lockedDocumentsCollectionSlug,
147
+ preferencesCollectionSlug
148
+ ];
149
+ const dashboardWidgets = config.admin?.dashboard?.widgets ?? [];
150
+ for (const widget of dashboardWidgets){
151
+ if (widget.fields?.length) {
152
+ widget.fields = await sanitizeFields({
153
+ config: config,
154
+ existingFieldNames: new Set(),
155
+ fields: widget.fields,
156
+ parentIsLocalized: false,
157
+ richTextSanitizationPromises,
158
+ validRelationships
159
+ });
160
+ }
161
+ }
162
+ /**
164
163
  * Blocks sanitization needs to happen before collections, as collection/global join field sanitization needs config.blocks
165
164
  * to be populated with the sanitized blocks
166
165
  */ config.blocks = [];
167
- if (incomingConfig.blocks?.length) {
168
- for (const block of incomingConfig.blocks){
169
- const sanitizedBlock = block;
170
- if (sanitizedBlock._sanitized === true) {
171
- continue;
166
+ if (incomingConfig.blocks?.length) {
167
+ for (const block of incomingConfig.blocks){
168
+ const sanitizedBlock = block;
169
+ if (sanitizedBlock._sanitized === true) {
170
+ continue;
171
+ }
172
+ sanitizedBlock._sanitized = true;
173
+ sanitizedBlock.fields = sanitizedBlock.fields.concat(baseBlockFields);
174
+ sanitizedBlock.labels = !sanitizedBlock.labels ? formatLabels(sanitizedBlock.slug) : sanitizedBlock.labels;
175
+ sanitizedBlock.fields = await sanitizeFields({
176
+ config: config,
177
+ existingFieldNames: new Set(),
178
+ fields: sanitizedBlock.fields,
179
+ parentIsLocalized: false,
180
+ richTextSanitizationPromises,
181
+ validRelationships
182
+ });
183
+ const flattenedSanitizedBlock = flattenBlock({
184
+ block
185
+ });
186
+ config.blocks.push(flattenedSanitizedBlock);
172
187
  }
173
- sanitizedBlock._sanitized = true;
174
- sanitizedBlock.fields = sanitizedBlock.fields.concat(baseBlockFields);
175
- sanitizedBlock.labels = !sanitizedBlock.labels ? formatLabels(sanitizedBlock.slug) : sanitizedBlock.labels;
176
- sanitizedBlock.fields = await sanitizeFields({
177
- config: config,
178
- existingFieldNames: new Set(),
179
- fields: sanitizedBlock.fields,
180
- parentIsLocalized: false,
181
- richTextSanitizationPromises,
182
- validRelationships
183
- });
184
- const flattenedSanitizedBlock = flattenBlock({
185
- block
186
- });
187
- config.blocks.push(flattenedSanitizedBlock);
188
188
  }
189
- }
190
- const folderEnabledCollections = [];
191
- // Track orderable join fields during sanitization
192
- const orderableJoins = [];
193
- for(let i = 0; i < config.collections.length; i++){
194
- if (collectionSlugs.has(config.collections[i].slug)) {
195
- throw new DuplicateCollection('slug', config.collections[i].slug);
189
+ // Track orderable join fields during sanitization
190
+ const orderableJoins = [];
191
+ for(let i = 0; i < config.collections.length; i++){
192
+ if (collectionSlugs.has(config.collections[i].slug)) {
193
+ throw new DuplicateCollection('slug', config.collections[i].slug);
194
+ }
195
+ collectionSlugs.add(config.collections[i].slug);
196
+ const draftsConfig = config.collections[i]?.versions?.drafts;
197
+ if (typeof draftsConfig === 'object' && draftsConfig.schedulePublish) {
198
+ schedulePublishCollections.push(config.collections[i].slug);
199
+ }
200
+ if (config.collections[i].enableQueryPresets) {
201
+ queryPresetsCollections.push(config.collections[i].slug);
202
+ if (!validRelationships.includes(queryPresetsCollectionSlug)) {
203
+ validRelationships.push(queryPresetsCollectionSlug);
204
+ }
205
+ }
206
+ config.collections[i] = await sanitizeCollection(config, config.collections[i], richTextSanitizationPromises, validRelationships, orderableJoins);
196
207
  }
197
- collectionSlugs.add(config.collections[i].slug);
198
- const draftsConfig = config.collections[i]?.versions?.drafts;
199
- if (typeof draftsConfig === 'object' && draftsConfig.schedulePublish) {
200
- schedulePublishCollections.push(config.collections[i].slug);
208
+ // Process orderable features after all collections are sanitized
209
+ const fieldsToAdd = new Map();
210
+ const joinFieldPathsByCollection = new Map();
211
+ // Handle collection.orderable
212
+ for (const collection of config.collections){
213
+ if (collection.orderable) {
214
+ const currentFields = fieldsToAdd.get(collection) || [];
215
+ fieldsToAdd.set(collection, [
216
+ ...currentFields,
217
+ '_order'
218
+ ]);
219
+ collection.defaultSort = collection.defaultSort ?? '_order';
220
+ }
201
221
  }
202
- if (config.collections[i].enableQueryPresets) {
203
- queryPresetsCollections.push(config.collections[i].slug);
204
- if (!validRelationships.includes(queryPresetsCollectionSlug)) {
205
- validRelationships.push(queryPresetsCollectionSlug);
222
+ // Handle orderable join fields (tracked during sanitization)
223
+ for (const joinInfo of orderableJoins){
224
+ const targetCollection = config.collections.find((c)=>c.slug === joinInfo.targetCollectionSlug);
225
+ if (targetCollection) {
226
+ const currentFields = fieldsToAdd.get(targetCollection) || [];
227
+ fieldsToAdd.set(targetCollection, [
228
+ ...currentFields,
229
+ joinInfo.orderFieldName
230
+ ]);
231
+ const currentJoinFieldPaths = joinFieldPathsByCollection.get(targetCollection.slug) || new Map();
232
+ currentJoinFieldPaths.set(joinInfo.orderFieldName, joinInfo.joinFieldOn);
233
+ joinFieldPathsByCollection.set(targetCollection.slug, currentJoinFieldPaths);
206
234
  }
207
235
  }
208
- if (config.folders !== false && config.collections[i].folders) {
209
- addFolderFieldToCollection({
210
- collection: config.collections[i],
211
- collectionSpecific: config.folders.collectionSpecific,
212
- folderFieldName: config.folders.fieldName,
213
- folderSlug: config.folders.slug
236
+ // Add fields, hooks, and update flattenedFields
237
+ for (const [collection, orderableFields] of fieldsToAdd){
238
+ await addOrderableFieldsAndHook(collection, config, orderableFields, joinFieldPathsByCollection);
239
+ // Regenerate flattenedFields since we added new fields
240
+ collection.flattenedFields = flattenAllFields({
241
+ fields: collection.fields
214
242
  });
215
243
  }
216
- config.collections[i] = await sanitizeCollection(config, config.collections[i], richTextSanitizationPromises, validRelationships, orderableJoins);
217
- if (config.folders !== false && config.collections[i].folders) {
218
- folderEnabledCollections.push(config.collections[i]);
244
+ // Add endpoint if any orderable features exist
245
+ if (fieldsToAdd.size > 0) {
246
+ addOrderableEndpoint(config, joinFieldPathsByCollection);
219
247
  }
220
- }
221
- // Process orderable features after all collections are sanitized
222
- const fieldsToAdd = new Map();
223
- const joinFieldPathsByCollection = new Map();
224
- // Handle collection.orderable
225
- for (const collection of config.collections){
226
- if (collection.orderable) {
227
- const currentFields = fieldsToAdd.get(collection) || [];
228
- fieldsToAdd.set(collection, [
229
- ...currentFields,
230
- '_order'
231
- ]);
232
- collection.defaultSort = collection.defaultSort ?? '_order';
248
+ if (config.globals.length > 0) {
249
+ for(let i = 0; i < config.globals.length; i++){
250
+ if (hasScheduledPublishEnabled(config.globals[i])) {
251
+ schedulePublishGlobals.push(config.globals[i].slug);
252
+ }
253
+ config.globals[i] = await sanitizeGlobal(config, config.globals[i], richTextSanitizationPromises, validRelationships);
254
+ }
233
255
  }
234
- }
235
- // Handle orderable join fields (tracked during sanitization)
236
- for (const joinInfo of orderableJoins){
237
- const targetCollection = config.collections.find((c)=>c.slug === joinInfo.targetCollectionSlug);
238
- if (targetCollection) {
239
- const currentFields = fieldsToAdd.get(targetCollection) || [];
240
- fieldsToAdd.set(targetCollection, [
241
- ...currentFields,
242
- joinInfo.orderFieldName
243
- ]);
244
- const currentJoinFieldPaths = joinFieldPathsByCollection.get(targetCollection.slug) || new Map();
245
- currentJoinFieldPaths.set(joinInfo.orderFieldName, joinInfo.joinFieldOn);
246
- joinFieldPathsByCollection.set(targetCollection.slug, currentJoinFieldPaths);
256
+ // Resolve hierarchy relationships across collections (also adds sidebar tabs)
257
+ const __hierSpan = startSpan('resolveHierarchyCollections');
258
+ try {
259
+ resolveHierarchyCollections(config);
260
+ } finally{
261
+ endSpan(__hierSpan);
247
262
  }
248
- }
249
- // Add fields, hooks, and update flattenedFields
250
- for (const [collection, orderableFields] of fieldsToAdd){
251
- await addOrderableFieldsAndHook(collection, config, orderableFields, joinFieldPathsByCollection);
252
- // Regenerate flattenedFields since we added new fields
253
- collection.flattenedFields = flattenAllFields({
254
- fields: collection.fields
255
- });
256
- }
257
- // Add endpoint if any orderable features exist
258
- if (fieldsToAdd.size > 0) {
259
- addOrderableEndpoint(config, joinFieldPathsByCollection);
260
- }
261
- if (config.globals.length > 0) {
262
- for(let i = 0; i < config.globals.length; i++){
263
- if (hasScheduledPublishEnabled(config.globals[i])) {
264
- schedulePublishGlobals.push(config.globals[i].slug);
265
- }
266
- config.globals[i] = await sanitizeGlobal(config, config.globals[i], richTextSanitizationPromises, validRelationships);
263
+ if (schedulePublishCollections.length || schedulePublishGlobals.length) {
264
+ ;
265
+ ((config.jobs ??= {}).tasks ??= []).push(getSchedulePublishTask({
266
+ adminUserSlug: config.admin.user,
267
+ collections: schedulePublishCollections,
268
+ globals: schedulePublishGlobals
269
+ }));
267
270
  }
268
- }
269
- if (schedulePublishCollections.length || schedulePublishGlobals.length) {
270
271
  ;
271
- ((config.jobs ??= {}).tasks ??= []).push(getSchedulePublishTask({
272
- adminUserSlug: config.admin.user,
273
- collections: schedulePublishCollections,
274
- globals: schedulePublishGlobals
275
- }));
276
- }
277
- ;
278
- (config.jobs ??= {}).enabled = Boolean(Array.isArray(configWithDefaults.jobs?.tasks) && configWithDefaults.jobs?.tasks?.length || Array.isArray(configWithDefaults.jobs?.workflows) && configWithDefaults.jobs?.workflows?.length);
279
- // Need to add default jobs collection before locked documents collections
280
- if (config.jobs.enabled) {
281
- // Check for schedule property in both tasks and workflows
282
- const hasScheduleProperty = config?.jobs?.tasks?.length && config.jobs.tasks.some((task)=>task.schedule) || config?.jobs?.workflows?.length && config.jobs.workflows.some((workflow)=>workflow.schedule);
283
- if (hasScheduleProperty) {
284
- config.jobs.scheduling = true;
285
- (config.globals ??= []).push(await sanitizeGlobal(config, getJobStatsGlobal(config), richTextSanitizationPromises, validRelationships));
286
- config.jobs.stats = true;
272
+ (config.jobs ??= {}).enabled = Boolean(Array.isArray(configWithDefaults.jobs?.tasks) && configWithDefaults.jobs?.tasks?.length || Array.isArray(configWithDefaults.jobs?.workflows) && configWithDefaults.jobs?.workflows?.length);
273
+ // Need to add default jobs collection before locked documents collections
274
+ if (config.jobs.enabled) {
275
+ // Check for schedule property in both tasks and workflows
276
+ const hasScheduleProperty = config?.jobs?.tasks?.length && config.jobs.tasks.some((task)=>task.schedule) || config?.jobs?.workflows?.length && config.jobs.workflows.some((workflow)=>workflow.schedule);
277
+ if (hasScheduleProperty) {
278
+ config.jobs.scheduling = true;
279
+ (config.globals ??= []).push(await sanitizeGlobal(config, getJobStatsGlobal(config), richTextSanitizationPromises, validRelationships));
280
+ config.jobs.stats = true;
281
+ }
282
+ let defaultJobsCollection = getDefaultJobsCollection(config.jobs);
283
+ if (typeof config.jobs.jobsCollectionOverrides === 'function') {
284
+ defaultJobsCollection = config.jobs.jobsCollectionOverrides({
285
+ defaultJobsCollection
286
+ });
287
+ }
288
+ const sanitizedJobsCollection = await sanitizeCollection(config, defaultJobsCollection, richTextSanitizationPromises, validRelationships);
289
+ (config.collections ??= []).push(sanitizedJobsCollection);
287
290
  }
288
- let defaultJobsCollection = getDefaultJobsCollection(config.jobs);
289
- if (typeof config.jobs.jobsCollectionOverrides === 'function') {
290
- defaultJobsCollection = config.jobs.jobsCollectionOverrides({
291
- defaultJobsCollection
292
- });
293
- const hooks = defaultJobsCollection?.hooks;
294
- // @todo - delete this check in 4.0
295
- if (hooks && config?.jobs?.runHooks !== true) {
296
- for (const [hookKey, hook] of Object.entries(hooks)){
297
- const defaultAmount = hookKey === 'afterRead' || hookKey === 'beforeChange' ? 1 : 0;
298
- if (hook.length > defaultAmount) {
299
- // eslint-disable-next-line no-console
300
- console.warn(`The jobsCollectionOverrides function is returning a collection with an additional ${hookKey} hook defined. These hooks will not run unless the jobs.runHooks option is set to true. Setting this option to true will negatively impact performance.`);
301
- break;
302
- }
291
+ const lockedDocumentsCollection = getLockedDocumentsCollection(config);
292
+ if (lockedDocumentsCollection) {
293
+ configWithDefaults.collections.push(await sanitizeCollection(config, lockedDocumentsCollection, richTextSanitizationPromises, validRelationships));
294
+ }
295
+ configWithDefaults.collections.push(await sanitizeCollection(config, getPreferencesCollection(config), richTextSanitizationPromises, validRelationships));
296
+ const migrations = await sanitizeCollection(config, migrationsCollection, richTextSanitizationPromises, validRelationships);
297
+ // @ts-expect-error indexSortableFields is only valid for @payloadcms/db-mongodb
298
+ if (config?.db?.indexSortableFields) {
299
+ migrations.indexes = [
300
+ {
301
+ fields: [
302
+ 'batch',
303
+ 'name'
304
+ ],
305
+ unique: false
303
306
  }
304
- }
307
+ ];
305
308
  }
306
- const sanitizedJobsCollection = await sanitizeCollection(config, defaultJobsCollection, richTextSanitizationPromises, validRelationships);
307
- (config.collections ??= []).push(sanitizedJobsCollection);
308
- }
309
- if (config.folders !== false && folderEnabledCollections.length) {
310
- await addFolderCollection({
311
- collectionSpecific: config.folders.collectionSpecific,
312
- config: config,
313
- folderEnabledCollections,
314
- richTextSanitizationPromises,
315
- validRelationships
316
- });
317
- }
318
- const lockedDocumentsCollection = getLockedDocumentsCollection(config);
319
- if (lockedDocumentsCollection) {
320
- configWithDefaults.collections.push(await sanitizeCollection(config, lockedDocumentsCollection, richTextSanitizationPromises, validRelationships));
321
- }
322
- configWithDefaults.collections.push(await sanitizeCollection(config, getPreferencesCollection(config), richTextSanitizationPromises, validRelationships));
323
- const migrations = await sanitizeCollection(config, migrationsCollection, richTextSanitizationPromises, validRelationships);
324
- // @ts-expect-error indexSortableFields is only valid for @payloadcms/db-mongodb
325
- if (config?.db?.indexSortableFields) {
326
- migrations.indexes = [
327
- {
328
- fields: [
329
- 'batch',
330
- 'name'
331
- ],
332
- unique: false
309
+ configWithDefaults.collections.push(migrations);
310
+ if (queryPresetsCollections.length > 0) {
311
+ configWithDefaults.collections.push(await sanitizeCollection(config, getQueryPresetsConfig(config), richTextSanitizationPromises, validRelationships));
312
+ }
313
+ if (config.serverURL !== '') {
314
+ config.csrf.push(config.serverURL);
315
+ }
316
+ const uploadAdapters = new Set();
317
+ // interact with all collections
318
+ for (const collection of config.collections){
319
+ // deduped upload adapters
320
+ if (collection.upload?.adapter) {
321
+ uploadAdapters.add(collection.upload.adapter);
333
322
  }
334
- ];
335
- }
336
- configWithDefaults.collections.push(migrations);
337
- if (queryPresetsCollections.length > 0) {
338
- configWithDefaults.collections.push(await sanitizeCollection(config, getQueryPresetsConfig(config), richTextSanitizationPromises, validRelationships));
339
- }
340
- if (config.serverURL !== '') {
341
- config.csrf.push(config.serverURL);
342
- }
343
- const uploadAdapters = new Set();
344
- // interact with all collections
345
- for (const collection of config.collections){
346
- // deduped upload adapters
347
- if (collection.upload?.adapter) {
348
- uploadAdapters.add(collection.upload.adapter);
349
323
  }
350
- }
351
- if (!config.upload) {
352
- config.upload = {
353
- adapters: []
354
- };
355
- }
356
- config.upload.adapters = Array.from(new Set(config.collections.map((c)=>c.upload?.adapter).filter(Boolean)));
357
- // Pass through the email config as is so adapters don't break
358
- if (incomingConfig.email) {
359
- config.email = incomingConfig.email;
360
- }
361
- /*
324
+ if (!config.upload) {
325
+ config.upload = {
326
+ adapters: []
327
+ };
328
+ }
329
+ config.upload.adapters = Array.from(new Set(config.collections.map((c)=>c.upload?.adapter).filter(Boolean)));
330
+ // Pass through the email config as is so adapters don't break
331
+ if (incomingConfig.email) {
332
+ config.email = incomingConfig.email;
333
+ }
334
+ /*
362
335
  Execute richText sanitization
363
336
  */ if (typeof incomingConfig.editor === 'function') {
364
- config.editor = await incomingConfig.editor({
365
- config: config,
366
- isRoot: true,
367
- parentIsLocalized: false
368
- });
369
- if (config.editor.i18n && Object.keys(config.editor.i18n).length >= 0) {
370
- config.i18n.translations = deepMergeSimple(config.i18n.translations, config.editor.i18n);
337
+ const __editorSpan = startSpan('rootEditorFunction');
338
+ try {
339
+ config.editor = await incomingConfig.editor({
340
+ config: config,
341
+ isRoot: true,
342
+ parentIsLocalized: false
343
+ });
344
+ if (config.editor.i18n && Object.keys(config.editor.i18n).length >= 0) {
345
+ config.i18n.translations = deepMergeSimple(config.i18n.translations, config.editor.i18n);
346
+ }
347
+ } finally{
348
+ endSpan(__editorSpan);
349
+ }
371
350
  }
351
+ const promises = [];
352
+ for (const sanitizeFunction of richTextSanitizationPromises){
353
+ promises.push(sanitizeFunction(config));
354
+ }
355
+ const __richtextSpan = startSpan('richTextDeferredBatch', String(promises.length));
356
+ try {
357
+ await Promise.all(promises);
358
+ } finally{
359
+ endSpan(__richtextSpan);
360
+ }
361
+ return config;
362
+ } finally{
363
+ endSpan(__profSpan);
372
364
  }
373
- const promises = [];
374
- for (const sanitizeFunction of richTextSanitizationPromises){
375
- promises.push(sanitizeFunction(config));
376
- }
377
- await Promise.all(promises);
378
- return config;
379
365
  };
380
366
 
381
367
  //# sourceMappingURL=sanitize.js.map