payload 4.0.0-internal.5f0cd13 → 4.0.0-internal.656159a

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 (813) hide show
  1. package/LICENSE.md +1 -1
  2. package/bin.js +11 -0
  3. package/dist/__testing__/predefinedMigration.d.ts +4 -3
  4. package/dist/__testing__/predefinedMigration.d.ts.map +1 -1
  5. package/dist/admin/RichText.d.ts +2 -2
  6. package/dist/admin/RichText.d.ts.map +1 -1
  7. package/dist/admin/RichText.js.map +1 -1
  8. package/dist/admin/adapters/devReload.d.ts +9 -0
  9. package/dist/admin/adapters/devReload.d.ts.map +1 -0
  10. package/dist/admin/adapters/devReload.js +6 -0
  11. package/dist/admin/adapters/devReload.js.map +1 -0
  12. package/dist/admin/adapters/index.d.ts +3 -0
  13. package/dist/admin/adapters/index.d.ts.map +1 -1
  14. package/dist/admin/adapters/index.js.map +1 -1
  15. package/dist/admin/adapters/render.d.ts +16 -0
  16. package/dist/admin/adapters/render.d.ts.map +1 -0
  17. package/dist/admin/adapters/render.js +7 -0
  18. package/dist/admin/adapters/render.js.map +1 -0
  19. package/dist/admin/adapters/router.d.ts +8 -0
  20. package/dist/admin/adapters/router.d.ts.map +1 -1
  21. package/dist/admin/adapters/router.js.map +1 -1
  22. package/dist/admin/adapters/views.d.ts +36 -0
  23. package/dist/admin/adapters/views.d.ts.map +1 -0
  24. package/dist/admin/adapters/views.js +7 -0
  25. package/dist/admin/adapters/views.js.map +1 -0
  26. package/dist/admin/fields/Row.d.ts +2 -2
  27. package/dist/admin/fields/Row.d.ts.map +1 -1
  28. package/dist/admin/fields/Row.js.map +1 -1
  29. package/dist/admin/forms/Description.d.ts +2 -2
  30. package/dist/admin/forms/Description.d.ts.map +1 -1
  31. package/dist/admin/forms/Description.js.map +1 -1
  32. package/dist/admin/forms/Field.d.ts +10 -5
  33. package/dist/admin/forms/Field.d.ts.map +1 -1
  34. package/dist/admin/forms/Field.js.map +1 -1
  35. package/dist/admin/functions/index.d.ts +10 -1
  36. package/dist/admin/functions/index.d.ts.map +1 -1
  37. package/dist/admin/functions/index.js.map +1 -1
  38. package/dist/admin/types.d.ts +3 -2
  39. package/dist/admin/types.d.ts.map +1 -1
  40. package/dist/admin/types.js.map +1 -1
  41. package/dist/admin/views/dashboard.d.ts +7 -0
  42. package/dist/admin/views/dashboard.d.ts.map +1 -1
  43. package/dist/admin/views/dashboard.js.map +1 -1
  44. package/dist/admin/views/document.d.ts +5 -3
  45. package/dist/admin/views/document.d.ts.map +1 -1
  46. package/dist/admin/views/document.js.map +1 -1
  47. package/dist/admin/views/list.d.ts +5 -0
  48. package/dist/admin/views/list.d.ts.map +1 -1
  49. package/dist/admin/views/list.js.map +1 -1
  50. package/dist/auth/baseFields/apiKey.d.ts +10 -2
  51. package/dist/auth/baseFields/apiKey.d.ts.map +1 -1
  52. package/dist/auth/baseFields/apiKey.js +35 -24
  53. package/dist/auth/baseFields/apiKey.js.map +1 -1
  54. package/dist/auth/cookies.d.ts +2 -2
  55. package/dist/auth/cookies.d.ts.map +1 -1
  56. package/dist/auth/defaultAccess.d.ts +1 -1
  57. package/dist/auth/defaultAccess.d.ts.map +1 -1
  58. package/dist/auth/defaultAccess.js +1 -1
  59. package/dist/auth/defaultAccess.js.map +1 -1
  60. package/dist/auth/defaultUser.d.ts.map +1 -1
  61. package/dist/auth/defaultUser.js +2 -1
  62. package/dist/auth/defaultUser.js.map +1 -1
  63. package/dist/auth/ensureUsernameOrEmail.d.ts.map +1 -1
  64. package/dist/auth/executeAccess.d.ts.map +1 -1
  65. package/dist/auth/executeAuthStrategies.d.ts.map +1 -1
  66. package/dist/auth/extractAccessFromPermission.d.ts.map +1 -1
  67. package/dist/auth/extractJWT.d.ts +1 -1
  68. package/dist/auth/extractJWT.d.ts.map +1 -1
  69. package/dist/auth/getAuthFields.d.ts.map +1 -1
  70. package/dist/auth/getAuthFields.js +2 -2
  71. package/dist/auth/getAuthFields.js.map +1 -1
  72. package/dist/auth/getFieldsToSign.d.ts +1 -1
  73. package/dist/auth/getFieldsToSign.d.ts.map +1 -1
  74. package/dist/auth/getLoginOptions.d.ts +1 -1
  75. package/dist/auth/getLoginOptions.d.ts.map +1 -1
  76. package/dist/auth/isUserLocked.d.ts.map +1 -1
  77. package/dist/auth/jwt.d.ts.map +1 -1
  78. package/dist/auth/operations/access.d.ts.map +1 -1
  79. package/dist/auth/operations/auth.d.ts +2 -2
  80. package/dist/auth/operations/auth.d.ts.map +1 -1
  81. package/dist/auth/operations/auth.js.map +1 -1
  82. package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
  83. package/dist/auth/operations/init.d.ts.map +1 -1
  84. package/dist/auth/operations/local/auth.d.ts.map +1 -1
  85. package/dist/auth/operations/login.d.ts +2 -1
  86. package/dist/auth/operations/login.d.ts.map +1 -1
  87. package/dist/auth/operations/login.js.map +1 -1
  88. package/dist/auth/operations/logout.d.ts.map +1 -1
  89. package/dist/auth/operations/me.d.ts +2 -2
  90. package/dist/auth/operations/me.d.ts.map +1 -1
  91. package/dist/auth/operations/me.js.map +1 -1
  92. package/dist/auth/operations/refresh.d.ts.map +1 -1
  93. package/dist/auth/operations/refresh.js +9 -3
  94. package/dist/auth/operations/refresh.js.map +1 -1
  95. package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
  96. package/dist/auth/operations/resetPassword.d.ts.map +1 -1
  97. package/dist/auth/operations/resetPassword.js.map +1 -1
  98. package/dist/auth/operations/unlock.d.ts.map +1 -1
  99. package/dist/auth/operations/verifyEmail.d.ts.map +1 -1
  100. package/dist/auth/sendVerificationEmail.d.ts +2 -2
  101. package/dist/auth/sendVerificationEmail.d.ts.map +1 -1
  102. package/dist/auth/sendVerificationEmail.js +1 -1
  103. package/dist/auth/sendVerificationEmail.js.map +1 -1
  104. package/dist/auth/sessions.d.ts +4 -5
  105. package/dist/auth/sessions.d.ts.map +1 -1
  106. package/dist/auth/sessions.js +5 -3
  107. package/dist/auth/sessions.js.map +1 -1
  108. package/dist/auth/strategies/apiKey.d.ts.map +1 -1
  109. package/dist/auth/strategies/apiKey.js.map +1 -1
  110. package/dist/auth/strategies/local/authenticate.d.ts.map +1 -1
  111. package/dist/auth/strategies/local/generatePasswordSaltHash.d.ts.map +1 -1
  112. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts +2 -2
  113. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts.map +1 -1
  114. package/dist/auth/strategies/local/incrementLoginAttempts.js +1 -1
  115. package/dist/auth/strategies/local/incrementLoginAttempts.js.map +1 -1
  116. package/dist/auth/strategies/local/register.d.ts.map +1 -1
  117. package/dist/auth/strategies/local/resetLoginAttempts.d.ts.map +1 -1
  118. package/dist/auth/types.d.ts +25 -21
  119. package/dist/auth/types.d.ts.map +1 -1
  120. package/dist/auth/types.js.map +1 -1
  121. package/dist/bin/build.d.ts +49 -0
  122. package/dist/bin/build.d.ts.map +1 -0
  123. package/dist/bin/build.js +226 -0
  124. package/dist/bin/build.js.map +1 -0
  125. package/dist/bin/build.spec.js +594 -0
  126. package/dist/bin/build.spec.js.map +1 -0
  127. package/dist/bin/frameworkConventions.d.ts +8 -0
  128. package/dist/bin/frameworkConventions.d.ts.map +1 -0
  129. package/dist/bin/frameworkConventions.js +8 -0
  130. package/dist/bin/frameworkConventions.js.map +1 -0
  131. package/dist/bin/generateImportMap/index.d.ts.map +1 -1
  132. package/dist/bin/generateImportMap/index.js +8 -5
  133. package/dist/bin/generateImportMap/index.js.map +1 -1
  134. package/dist/bin/generateImportMap/iterateCollections.d.ts.map +1 -1
  135. package/dist/bin/generateImportMap/iterateCollections.js +11 -0
  136. package/dist/bin/generateImportMap/iterateCollections.js.map +1 -1
  137. package/dist/bin/generateImportMap/iterateConfig.d.ts.map +1 -1
  138. package/dist/bin/generateImportMap/iterateConfig.js +12 -0
  139. package/dist/bin/generateImportMap/iterateConfig.js.map +1 -1
  140. package/dist/bin/generateImportMap/utilities/getFromImportMap.d.ts.map +1 -1
  141. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.d.ts +5 -1
  142. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.d.ts.map +1 -1
  143. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.js +33 -18
  144. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.js.map +1 -1
  145. package/dist/bin/generateTypes.d.ts +3 -2
  146. package/dist/bin/generateTypes.d.ts.map +1 -1
  147. package/dist/bin/generateTypes.js +4 -0
  148. package/dist/bin/generateTypes.js.map +1 -1
  149. package/dist/bin/index.d.ts.map +1 -1
  150. package/dist/bin/index.js +9 -0
  151. package/dist/bin/index.js.map +1 -1
  152. package/dist/bin/loadEnv.d.ts +3 -1
  153. package/dist/bin/loadEnv.d.ts.map +1 -1
  154. package/dist/bin/loadEnv.js +40 -10
  155. package/dist/bin/loadEnv.js.map +1 -1
  156. package/dist/bin/migrate.d.ts.map +1 -1
  157. package/dist/collections/config/client.d.ts +3 -3
  158. package/dist/collections/config/client.d.ts.map +1 -1
  159. package/dist/collections/config/client.js +1 -0
  160. package/dist/collections/config/client.js.map +1 -1
  161. package/dist/collections/config/defaults.d.ts +0 -4
  162. package/dist/collections/config/defaults.d.ts.map +1 -1
  163. package/dist/collections/config/defaults.js +2 -17
  164. package/dist/collections/config/defaults.js.map +1 -1
  165. package/dist/collections/config/defaults.spec.js +47 -0
  166. package/dist/collections/config/defaults.spec.js.map +1 -0
  167. package/dist/collections/config/sanitize.d.ts.map +1 -1
  168. package/dist/collections/config/sanitize.js +1 -11
  169. package/dist/collections/config/sanitize.js.map +1 -1
  170. package/dist/collections/config/sanitizeCompoundIndexes.d.ts.map +1 -1
  171. package/dist/collections/config/types.d.ts +13 -9
  172. package/dist/collections/config/types.d.ts.map +1 -1
  173. package/dist/collections/config/types.js.map +1 -1
  174. package/dist/collections/config/useAsTitle.d.ts.map +1 -1
  175. package/dist/collections/dataloader.d.ts +1 -1
  176. package/dist/collections/dataloader.d.ts.map +1 -1
  177. package/dist/collections/endpoints/create.d.ts.map +1 -1
  178. package/dist/collections/endpoints/create.js +0 -2
  179. package/dist/collections/endpoints/create.js.map +1 -1
  180. package/dist/collections/endpoints/updateByID.d.ts.map +1 -1
  181. package/dist/collections/endpoints/updateByID.js +1 -2
  182. package/dist/collections/endpoints/updateByID.js.map +1 -1
  183. package/dist/collections/operations/count.d.ts.map +1 -1
  184. package/dist/collections/operations/count.js +1 -0
  185. package/dist/collections/operations/count.js.map +1 -1
  186. package/dist/collections/operations/countVersions.d.ts.map +1 -1
  187. package/dist/collections/operations/create.d.ts +0 -1
  188. package/dist/collections/operations/create.d.ts.map +1 -1
  189. package/dist/collections/operations/create.js +15 -6
  190. package/dist/collections/operations/create.js.map +1 -1
  191. package/dist/collections/operations/delete.d.ts.map +1 -1
  192. package/dist/collections/operations/delete.js +3 -0
  193. package/dist/collections/operations/delete.js.map +1 -1
  194. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  195. package/dist/collections/operations/duplicate.d.ts.map +1 -1
  196. package/dist/collections/operations/find.d.ts.map +1 -1
  197. package/dist/collections/operations/findByID.d.ts.map +1 -1
  198. package/dist/collections/operations/findDistinct.d.ts.map +1 -1
  199. package/dist/collections/operations/findDistinct.js +1 -0
  200. package/dist/collections/operations/findDistinct.js.map +1 -1
  201. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  202. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  203. package/dist/collections/operations/local/count.d.ts +3 -3
  204. package/dist/collections/operations/local/count.d.ts.map +1 -1
  205. package/dist/collections/operations/local/count.js.map +1 -1
  206. package/dist/collections/operations/local/countVersions.d.ts +3 -3
  207. package/dist/collections/operations/local/countVersions.d.ts.map +1 -1
  208. package/dist/collections/operations/local/countVersions.js.map +1 -1
  209. package/dist/collections/operations/local/create.d.ts +3 -3
  210. package/dist/collections/operations/local/create.d.ts.map +1 -1
  211. package/dist/collections/operations/local/create.js.map +1 -1
  212. package/dist/collections/operations/local/delete.d.ts +3 -3
  213. package/dist/collections/operations/local/delete.d.ts.map +1 -1
  214. package/dist/collections/operations/local/delete.js.map +1 -1
  215. package/dist/collections/operations/local/duplicate.d.ts +3 -3
  216. package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
  217. package/dist/collections/operations/local/duplicate.js.map +1 -1
  218. package/dist/collections/operations/local/find.d.ts +3 -3
  219. package/dist/collections/operations/local/find.d.ts.map +1 -1
  220. package/dist/collections/operations/local/find.js.map +1 -1
  221. package/dist/collections/operations/local/findByID.d.ts +3 -3
  222. package/dist/collections/operations/local/findByID.d.ts.map +1 -1
  223. package/dist/collections/operations/local/findByID.js.map +1 -1
  224. package/dist/collections/operations/local/findDistinct.d.ts +2 -2
  225. package/dist/collections/operations/local/findDistinct.d.ts.map +1 -1
  226. package/dist/collections/operations/local/findDistinct.js.map +1 -1
  227. package/dist/collections/operations/local/findVersionByID.d.ts +3 -3
  228. package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
  229. package/dist/collections/operations/local/findVersionByID.js.map +1 -1
  230. package/dist/collections/operations/local/findVersions.d.ts +3 -3
  231. package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
  232. package/dist/collections/operations/local/findVersions.js.map +1 -1
  233. package/dist/collections/operations/local/restoreVersion.d.ts +3 -3
  234. package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
  235. package/dist/collections/operations/local/restoreVersion.js.map +1 -1
  236. package/dist/collections/operations/local/update.d.ts +7 -11
  237. package/dist/collections/operations/local/update.d.ts.map +1 -1
  238. package/dist/collections/operations/local/update.js +1 -2
  239. package/dist/collections/operations/local/update.js.map +1 -1
  240. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  241. package/dist/collections/operations/update.d.ts +0 -1
  242. package/dist/collections/operations/update.d.ts.map +1 -1
  243. package/dist/collections/operations/update.js +8 -4
  244. package/dist/collections/operations/update.js.map +1 -1
  245. package/dist/collections/operations/updateByID.d.ts +0 -1
  246. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  247. package/dist/collections/operations/updateByID.js +1 -5
  248. package/dist/collections/operations/updateByID.js.map +1 -1
  249. package/dist/collections/operations/utilities/buildAfterOperation.d.ts +1 -1
  250. package/dist/collections/operations/utilities/buildAfterOperation.d.ts.map +1 -1
  251. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.d.ts +9 -0
  252. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.d.ts.map +1 -0
  253. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.js +170 -0
  254. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.js.map +1 -0
  255. package/dist/collections/operations/utilities/sanitizeSortQuery.d.ts.map +1 -1
  256. package/dist/collections/operations/utilities/types.d.ts +20 -29
  257. package/dist/collections/operations/utilities/types.d.ts.map +1 -1
  258. package/dist/collections/operations/utilities/types.js.map +1 -1
  259. package/dist/collections/operations/utilities/update.d.ts +1 -2
  260. package/dist/collections/operations/utilities/update.d.ts.map +1 -1
  261. package/dist/collections/operations/utilities/update.js +64 -65
  262. package/dist/collections/operations/utilities/update.js.map +1 -1
  263. package/dist/config/client.d.ts +2 -2
  264. package/dist/config/client.d.ts.map +1 -1
  265. package/dist/config/client.js.map +1 -1
  266. package/dist/config/defaults.d.ts +0 -4
  267. package/dist/config/defaults.d.ts.map +1 -1
  268. package/dist/config/defaults.js +0 -78
  269. package/dist/config/defaults.js.map +1 -1
  270. package/dist/config/definePlugin.d.ts +10 -10
  271. package/dist/config/definePlugin.d.ts.map +1 -1
  272. package/dist/config/definePlugin.js +7 -11
  273. package/dist/config/definePlugin.js.map +1 -1
  274. package/dist/config/orderable/fractional-indexing.d.ts +23 -23
  275. package/dist/config/orderable/fractional-indexing.d.ts.map +1 -1
  276. package/dist/config/orderable/index.d.ts.map +1 -1
  277. package/dist/config/orderable/index.js +23 -0
  278. package/dist/config/orderable/index.js.map +1 -1
  279. package/dist/config/sanitize.d.ts.map +1 -1
  280. package/dist/config/sanitize.js +137 -13
  281. package/dist/config/sanitize.js.map +1 -1
  282. package/dist/config/types.d.ts +58 -19
  283. package/dist/config/types.d.ts.map +1 -1
  284. package/dist/config/types.js +2 -0
  285. package/dist/config/types.js.map +1 -1
  286. package/dist/database/combineQueries.d.ts.map +1 -1
  287. package/dist/database/getLocalizedPaths.d.ts.map +1 -1
  288. package/dist/database/getLocalizedPaths.js +1 -1
  289. package/dist/database/getLocalizedPaths.js.map +1 -1
  290. package/dist/database/migrations/findMigrationDir.d.ts.map +1 -1
  291. package/dist/database/migrations/getPredefinedMigration.d.ts.map +1 -1
  292. package/dist/database/migrations/migrationsCollection.d.ts.map +1 -1
  293. package/dist/database/migrations/migrationsCollection.js +2 -1
  294. package/dist/database/migrations/migrationsCollection.js.map +1 -1
  295. package/dist/database/migrations/readMigrationFiles.d.ts.map +1 -1
  296. package/dist/database/migrations/writeMigrationIndex.d.ts.map +1 -1
  297. package/dist/database/sanitizeJoinQuery.d.ts.map +1 -1
  298. package/dist/database/sanitizeWhereQuery.d.ts.map +1 -1
  299. package/dist/database/types.d.ts +1 -5
  300. package/dist/database/types.d.ts.map +1 -1
  301. package/dist/database/types.js.map +1 -1
  302. package/dist/duplicateDocument/index.d.ts.map +1 -1
  303. package/dist/email/getStringifiedToAddress.d.ts.map +1 -1
  304. package/dist/errors/APIError.d.ts.map +1 -1
  305. package/dist/errors/AuthenticationError.d.ts.map +1 -1
  306. package/dist/errors/DuplicateCollection.d.ts.map +1 -1
  307. package/dist/errors/DuplicateFieldName.d.ts.map +1 -1
  308. package/dist/errors/DuplicateGlobal.d.ts.map +1 -1
  309. package/dist/errors/ErrorDeletingFile.d.ts.map +1 -1
  310. package/dist/errors/FileRetrievalError.d.ts.map +1 -1
  311. package/dist/errors/FileUploadError.d.ts.map +1 -1
  312. package/dist/errors/Forbidden.d.ts.map +1 -1
  313. package/dist/errors/InvalidConfiguration.d.ts.map +1 -1
  314. package/dist/errors/InvalidFieldJoin.d.ts.map +1 -1
  315. package/dist/errors/InvalidFieldName.d.ts.map +1 -1
  316. package/dist/errors/InvalidFieldRelationship.d.ts.map +1 -1
  317. package/dist/errors/InvalidSchema.d.ts.map +1 -1
  318. package/dist/errors/Locked.d.ts.map +1 -1
  319. package/dist/errors/LockedAuth.d.ts.map +1 -1
  320. package/dist/errors/MissingCollectionLabel.d.ts.map +1 -1
  321. package/dist/errors/MissingEditorProp.d.ts.map +1 -1
  322. package/dist/errors/MissingFieldInputOptions.d.ts.map +1 -1
  323. package/dist/errors/MissingFieldType.d.ts.map +1 -1
  324. package/dist/errors/MissingFile.d.ts.map +1 -1
  325. package/dist/errors/NotFound.d.ts.map +1 -1
  326. package/dist/errors/QueryError.d.ts.map +1 -1
  327. package/dist/errors/ReservedFieldName.d.ts.map +1 -1
  328. package/dist/errors/TimestampsRequired.d.ts.map +1 -1
  329. package/dist/errors/UnauthorizedError.d.ts.map +1 -1
  330. package/dist/errors/UnverifiedEmail.d.ts.map +1 -1
  331. package/dist/errors/ValidationError.d.ts +1 -0
  332. package/dist/errors/ValidationError.d.ts.map +1 -1
  333. package/dist/errors/ValidationError.js.map +1 -1
  334. package/dist/exports/internal.d.ts +2 -0
  335. package/dist/exports/internal.d.ts.map +1 -1
  336. package/dist/exports/internal.js +2 -0
  337. package/dist/exports/internal.js.map +1 -1
  338. package/dist/exports/migrations.d.ts +5 -13
  339. package/dist/exports/migrations.d.ts.map +1 -1
  340. package/dist/exports/migrations.js +5 -13
  341. package/dist/exports/migrations.js.map +1 -1
  342. package/dist/exports/shared.d.ts +23 -2
  343. package/dist/exports/shared.d.ts.map +1 -1
  344. package/dist/exports/shared.js +22 -1
  345. package/dist/exports/shared.js.map +1 -1
  346. package/dist/fields/baseFields/slug/countVersions.d.ts.map +1 -1
  347. package/dist/fields/baseFields/slug/countVersions.js +6 -8
  348. package/dist/fields/baseFields/slug/countVersions.js.map +1 -1
  349. package/dist/fields/baseFields/slug/generateSlug.d.ts +14 -7
  350. package/dist/fields/baseFields/slug/generateSlug.d.ts.map +1 -1
  351. package/dist/fields/baseFields/slug/generateSlug.js +53 -73
  352. package/dist/fields/baseFields/slug/generateSlug.js.map +1 -1
  353. package/dist/fields/baseFields/slug/types.d.ts +14 -0
  354. package/dist/fields/baseFields/slug/types.d.ts.map +1 -0
  355. package/dist/fields/baseFields/slug/types.js +6 -0
  356. package/dist/fields/baseFields/slug/types.js.map +1 -0
  357. package/dist/fields/config/client.d.ts +6 -6
  358. package/dist/fields/config/client.d.ts.map +1 -1
  359. package/dist/fields/config/client.js +13 -13
  360. package/dist/fields/config/client.js.map +1 -1
  361. package/dist/fields/config/sanitize.d.ts.map +1 -1
  362. package/dist/fields/config/sanitize.js +40 -4
  363. package/dist/fields/config/sanitize.js.map +1 -1
  364. package/dist/fields/config/sanitizeJoinField.d.ts.map +1 -1
  365. package/dist/fields/config/types.d.ts +53 -31
  366. package/dist/fields/config/types.d.ts.map +1 -1
  367. package/dist/fields/config/types.js.map +1 -1
  368. package/dist/fields/getDefaultValue.d.ts.map +1 -1
  369. package/dist/fields/hooks/afterChange/index.d.ts.map +1 -1
  370. package/dist/fields/hooks/afterChange/promise.d.ts.map +1 -1
  371. package/dist/fields/hooks/afterChange/promise.js +1 -1
  372. package/dist/fields/hooks/afterChange/promise.js.map +1 -1
  373. package/dist/fields/hooks/afterChange/traverseFields.d.ts.map +1 -1
  374. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
  375. package/dist/fields/hooks/afterRead/promise.js +13 -3
  376. package/dist/fields/hooks/afterRead/promise.js.map +1 -1
  377. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts.map +1 -1
  378. package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
  379. package/dist/fields/hooks/afterRead/virtualFieldPopulationPromise.d.ts.map +1 -1
  380. package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.d.ts.map +1 -1
  381. package/dist/fields/hooks/beforeChange/getExistingRowDoc.d.ts.map +1 -1
  382. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  383. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  384. package/dist/fields/hooks/beforeChange/promise.js +3 -3
  385. package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
  386. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  387. package/dist/fields/hooks/beforeDuplicate/index.d.ts.map +1 -1
  388. package/dist/fields/hooks/beforeDuplicate/promise.d.ts.map +1 -1
  389. package/dist/fields/hooks/beforeDuplicate/promise.js +2 -2
  390. package/dist/fields/hooks/beforeDuplicate/promise.js.map +1 -1
  391. package/dist/fields/hooks/beforeDuplicate/traverseFields.d.ts.map +1 -1
  392. package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
  393. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  394. package/dist/fields/hooks/beforeValidate/promise.js +16 -5
  395. package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
  396. package/dist/fields/hooks/beforeValidate/stripNullRows.d.ts +10 -0
  397. package/dist/fields/hooks/beforeValidate/stripNullRows.d.ts.map +1 -0
  398. package/dist/fields/hooks/beforeValidate/stripNullRows.js +18 -0
  399. package/dist/fields/hooks/beforeValidate/stripNullRows.js.map +1 -0
  400. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
  401. package/dist/fields/isFieldDisabled.d.ts.map +1 -1
  402. package/dist/fields/mergeBaseFields.d.ts.map +1 -1
  403. package/dist/fields/setDefaultBeforeDuplicate.d.ts.map +1 -1
  404. package/dist/fields/setDefaultBeforeDuplicate.js +1 -0
  405. package/dist/fields/setDefaultBeforeDuplicate.js.map +1 -1
  406. package/dist/fields/sortableFieldTypes.d.ts.map +1 -1
  407. package/dist/fields/sortableFieldTypes.js +1 -0
  408. package/dist/fields/sortableFieldTypes.js.map +1 -1
  409. package/dist/fields/validations.d.ts +4 -1
  410. package/dist/fields/validations.d.ts.map +1 -1
  411. package/dist/fields/validations.js +12 -4
  412. package/dist/fields/validations.js.map +1 -1
  413. package/dist/globals/config/client.d.ts +4 -4
  414. package/dist/globals/config/client.d.ts.map +1 -1
  415. package/dist/globals/config/sanitize.d.ts.map +1 -1
  416. package/dist/globals/config/sanitize.js +2 -6
  417. package/dist/globals/config/sanitize.js.map +1 -1
  418. package/dist/globals/config/sanitize.spec.js +43 -0
  419. package/dist/globals/config/sanitize.spec.js.map +1 -0
  420. package/dist/globals/endpoints/update.d.ts.map +1 -1
  421. package/dist/globals/endpoints/update.js +0 -2
  422. package/dist/globals/endpoints/update.js.map +1 -1
  423. package/dist/globals/operations/countGlobalVersions.d.ts.map +1 -1
  424. package/dist/globals/operations/docAccess.d.ts.map +1 -1
  425. package/dist/globals/operations/findOne.d.ts.map +1 -1
  426. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  427. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  428. package/dist/globals/operations/local/countVersions.d.ts +3 -3
  429. package/dist/globals/operations/local/countVersions.d.ts.map +1 -1
  430. package/dist/globals/operations/local/countVersions.js.map +1 -1
  431. package/dist/globals/operations/local/findOne.d.ts +3 -3
  432. package/dist/globals/operations/local/findOne.d.ts.map +1 -1
  433. package/dist/globals/operations/local/findOne.js.map +1 -1
  434. package/dist/globals/operations/local/findVersionByID.d.ts +3 -3
  435. package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
  436. package/dist/globals/operations/local/findVersionByID.js.map +1 -1
  437. package/dist/globals/operations/local/findVersions.d.ts +3 -3
  438. package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
  439. package/dist/globals/operations/local/findVersions.js.map +1 -1
  440. package/dist/globals/operations/local/restoreVersion.d.ts +3 -3
  441. package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
  442. package/dist/globals/operations/local/restoreVersion.js.map +1 -1
  443. package/dist/globals/operations/local/update.d.ts +7 -9
  444. package/dist/globals/operations/local/update.d.ts.map +1 -1
  445. package/dist/globals/operations/local/update.js +1 -2
  446. package/dist/globals/operations/local/update.js.map +1 -1
  447. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  448. package/dist/globals/operations/update.d.ts +0 -1
  449. package/dist/globals/operations/update.d.ts.map +1 -1
  450. package/dist/globals/operations/update.js +52 -58
  451. package/dist/globals/operations/update.js.map +1 -1
  452. package/dist/hierarchy/addHierarchyToCollection.d.ts.map +1 -1
  453. package/dist/hierarchy/buildParentField.d.ts.map +1 -1
  454. package/dist/hierarchy/constants.d.ts.map +1 -1
  455. package/dist/hierarchy/getInitialTreeData.d.ts.map +1 -1
  456. package/dist/hierarchy/hooks/collectionAfterDelete.d.ts.map +1 -1
  457. package/dist/hierarchy/hooks/collectionAfterRead.d.ts.map +1 -1
  458. package/dist/hierarchy/hooks/collectionBeforeChange.d.ts.map +1 -1
  459. package/dist/hierarchy/hooks/collectionBeforeDelete.d.ts.map +1 -1
  460. package/dist/hierarchy/hooks/collectionBeforeOperation.d.ts.map +1 -1
  461. package/dist/hierarchy/hooks/ensureSafeCollectionsChange.d.ts.map +1 -1
  462. package/dist/hierarchy/injectHierarchyButton.d.ts.map +1 -1
  463. package/dist/hierarchy/resolveHierarchyCollections.d.ts.map +1 -1
  464. package/dist/hierarchy/sanitizeHierarchyCollection.d.ts.map +1 -1
  465. package/dist/index.bundled.d.ts +608 -378
  466. package/dist/index.d.ts +79 -34
  467. package/dist/index.d.ts.map +1 -1
  468. package/dist/index.js +54 -37
  469. package/dist/index.js.map +1 -1
  470. package/dist/kv/adapters/DatabaseKVAdapter.d.ts.map +1 -1
  471. package/dist/kv/adapters/DatabaseKVAdapter.js +1 -0
  472. package/dist/kv/adapters/DatabaseKVAdapter.js.map +1 -1
  473. package/dist/kv/adapters/InMemoryKVAdapter.d.ts.map +1 -1
  474. package/dist/locked-documents/config.d.ts.map +1 -1
  475. package/dist/locked-documents/config.js +2 -1
  476. package/dist/locked-documents/config.js.map +1 -1
  477. package/dist/preferences/config.d.ts.map +1 -1
  478. package/dist/preferences/config.js +2 -1
  479. package/dist/preferences/config.js.map +1 -1
  480. package/dist/preferences/deleteUserPreferences.d.ts.map +1 -1
  481. package/dist/preferences/keys.d.ts +8 -4
  482. package/dist/preferences/keys.d.ts.map +1 -1
  483. package/dist/preferences/keys.js +4 -1
  484. package/dist/preferences/keys.js.map +1 -1
  485. package/dist/preferences/types.d.ts +15 -0
  486. package/dist/preferences/types.d.ts.map +1 -1
  487. package/dist/preferences/types.js +3 -1
  488. package/dist/preferences/types.js.map +1 -1
  489. package/dist/query-presets/access.d.ts.map +1 -1
  490. package/dist/query-presets/config.d.ts.map +1 -1
  491. package/dist/query-presets/config.js +75 -35
  492. package/dist/query-presets/config.js.map +1 -1
  493. package/dist/query-presets/constraints.d.ts.map +1 -1
  494. package/dist/query-presets/constraints.js +2 -1
  495. package/dist/query-presets/constraints.js.map +1 -1
  496. package/dist/query-presets/types.d.ts +1 -1
  497. package/dist/query-presets/types.d.ts.map +1 -1
  498. package/dist/queues/config/collection.d.ts.map +1 -1
  499. package/dist/queues/config/collection.js +2 -1
  500. package/dist/queues/config/collection.js.map +1 -1
  501. package/dist/queues/config/generateJobsJSONSchemas.js +2 -2
  502. package/dist/queues/config/generateJobsJSONSchemas.js.map +1 -1
  503. package/dist/queues/config/global.d.ts.map +1 -1
  504. package/dist/queues/config/global.js +2 -1
  505. package/dist/queues/config/global.js.map +1 -1
  506. package/dist/queues/endpoints/run.d.ts.map +1 -1
  507. package/dist/queues/errors/index.d.ts.map +1 -1
  508. package/dist/queues/localAPI.d.ts +8 -8
  509. package/dist/queues/localAPI.d.ts.map +1 -1
  510. package/dist/queues/operations/handleSchedules/getQueuesWithSchedules.d.ts.map +1 -1
  511. package/dist/queues/operations/runJobs/index.d.ts.map +1 -1
  512. package/dist/queues/operations/runJobs/runJSONJob/index.d.ts.map +1 -1
  513. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.d.ts.map +1 -1
  514. package/dist/queues/operations/runJobs/runJob/importHandlerPath.d.ts +1 -1
  515. package/dist/queues/operations/runJobs/runJob/importHandlerPath.d.ts.map +1 -1
  516. package/dist/queues/operations/runJobs/runJob/index.d.ts.map +1 -1
  517. package/dist/queues/utilities/getCurrentDate.d.ts.map +1 -1
  518. package/dist/queues/utilities/getJobTaskStatus.d.ts.map +1 -1
  519. package/dist/translations/getLocalI18n.d.ts.map +1 -1
  520. package/dist/types/constants.d.ts +2 -2
  521. package/dist/types/constants.d.ts.map +1 -1
  522. package/dist/types/index.d.ts +8 -3
  523. package/dist/types/index.d.ts.map +1 -1
  524. package/dist/types/index.js.map +1 -1
  525. package/dist/uploads/checkFileAccess.d.ts.map +1 -1
  526. package/dist/uploads/checkFileRestrictions.d.ts.map +1 -1
  527. package/dist/uploads/cropImage.d.ts.map +1 -1
  528. package/dist/uploads/docWithFilenameExists.d.ts.map +1 -1
  529. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.d.ts.map +1 -1
  530. package/dist/uploads/fetchAPI-multipart/processMultipart.d.ts.map +1 -1
  531. package/dist/uploads/fetchAPI-multipart/processMultipart.js +4 -0
  532. package/dist/uploads/fetchAPI-multipart/processMultipart.js.map +1 -1
  533. package/dist/uploads/fetchAPI-multipart/processNested.d.ts.map +1 -1
  534. package/dist/uploads/fetchAPI-multipart/utilities.d.ts.map +1 -1
  535. package/dist/uploads/fileExists.d.ts.map +1 -1
  536. package/dist/uploads/generateFileData.d.ts +2 -1
  537. package/dist/uploads/generateFileData.d.ts.map +1 -1
  538. package/dist/uploads/generateFileData.js +5 -2
  539. package/dist/uploads/generateFileData.js.map +1 -1
  540. package/dist/uploads/getBaseFields.d.ts.map +1 -1
  541. package/dist/uploads/getExternalFile.d.ts.map +1 -1
  542. package/dist/uploads/getFileByPath.d.ts +1 -1
  543. package/dist/uploads/getFileByPath.d.ts.map +1 -1
  544. package/dist/uploads/getFileTypeFallback.d.ts.map +1 -1
  545. package/dist/uploads/getSafeFilename.d.ts.map +1 -1
  546. package/dist/uploads/image-resizing/createImageSize.d.ts.map +1 -1
  547. package/dist/uploads/image-resizing/generateImageSizeFilename.d.ts.map +1 -1
  548. package/dist/uploads/image-resizing/getImageResizeAction.d.ts +1 -1
  549. package/dist/uploads/image-resizing/getImageResizeAction.d.ts.map +1 -1
  550. package/dist/uploads/image-resizing/parseFilename.d.ts.map +1 -1
  551. package/dist/uploads/image-resizing/sanitizeResizeConfig.d.ts.map +1 -1
  552. package/dist/uploads/matchMimeType.d.ts +8 -0
  553. package/dist/uploads/matchMimeType.d.ts.map +1 -0
  554. package/dist/uploads/matchMimeType.js +19 -0
  555. package/dist/uploads/matchMimeType.js.map +1 -0
  556. package/dist/uploads/matchMimeType.spec.js +66 -0
  557. package/dist/uploads/matchMimeType.spec.js.map +1 -0
  558. package/dist/uploads/mimeTypeValidator.d.ts.map +1 -1
  559. package/dist/uploads/safeFetch.d.ts.map +1 -1
  560. package/dist/uploads/safeFetch.js +11 -5
  561. package/dist/uploads/safeFetch.js.map +1 -1
  562. package/dist/uploads/saveBufferToFile.d.ts.map +1 -1
  563. package/dist/uploads/tempFile.d.ts.map +1 -1
  564. package/dist/uploads/types.d.ts +21 -0
  565. package/dist/uploads/types.d.ts.map +1 -1
  566. package/dist/uploads/types.js.map +1 -1
  567. package/dist/uploads/uploadFiles.d.ts.map +1 -1
  568. package/dist/utilities/addDataAndFileToRequest.d.ts.map +1 -1
  569. package/dist/utilities/addDataAndFileToRequest.js +6 -0
  570. package/dist/utilities/addDataAndFileToRequest.js.map +1 -1
  571. package/dist/utilities/addLocalesToRequest.d.ts.map +1 -1
  572. package/dist/utilities/addSelectGenericsToGeneretedTypes.d.ts.map +1 -1
  573. package/dist/utilities/appendDateTimezoneSelectFields.d.ts.map +1 -1
  574. package/dist/utilities/appendDateTimezoneSelectFields.js +2 -2
  575. package/dist/utilities/appendDateTimezoneSelectFields.js.map +1 -1
  576. package/dist/utilities/appendNonTrashedFilter.d.ts.map +1 -1
  577. package/dist/utilities/appendUploadSelectFields.d.ts.map +1 -1
  578. package/dist/utilities/canAccessAdmin.d.ts.map +1 -1
  579. package/dist/utilities/checkDocumentLockStatus.d.ts.map +1 -1
  580. package/dist/utilities/configToJSONSchema.d.ts +36 -2
  581. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  582. package/dist/utilities/configToJSONSchema.js +204 -84
  583. package/dist/utilities/configToJSONSchema.js.map +1 -1
  584. package/dist/utilities/configToJSONSchema.spec.js +571 -29
  585. package/dist/utilities/configToJSONSchema.spec.js.map +1 -1
  586. package/dist/utilities/createLocalReq.d.ts +2 -2
  587. package/dist/utilities/createLocalReq.d.ts.map +1 -1
  588. package/dist/utilities/createLocalReq.js.map +1 -1
  589. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  590. package/dist/utilities/createPayloadRequest.js +1 -0
  591. package/dist/utilities/createPayloadRequest.js.map +1 -1
  592. package/dist/utilities/deepCopyObject.d.ts.map +1 -1
  593. package/dist/utilities/deepCopyObject.js +8 -0
  594. package/dist/utilities/deepCopyObject.js.map +1 -1
  595. package/dist/utilities/dependencies/dependencyChecker.js +1 -1
  596. package/dist/utilities/dependencies/dependencyChecker.js.map +1 -1
  597. package/dist/utilities/dependencies/getDependencies.d.ts.map +1 -1
  598. package/dist/utilities/dependencies/getDependencies.js +5 -5
  599. package/dist/utilities/dependencies/getDependencies.js.map +1 -1
  600. package/dist/utilities/dependencies/resolveFrom.d.ts.map +1 -1
  601. package/dist/utilities/dynamicImport.js +1 -1
  602. package/dist/utilities/dynamicImport.js.map +1 -1
  603. package/dist/utilities/escapeRegExp.d.ts.map +1 -1
  604. package/dist/utilities/extractID.d.ts.map +1 -1
  605. package/dist/utilities/filterDataToSelectedLocales.d.ts.map +1 -1
  606. package/dist/utilities/filterDataToSelectedLocales.js +5 -12
  607. package/dist/utilities/filterDataToSelectedLocales.js.map +1 -1
  608. package/dist/utilities/filterDataToSelectedLocales.spec.js +1 -2
  609. package/dist/utilities/filterDataToSelectedLocales.spec.js.map +1 -1
  610. package/dist/utilities/flattenAllFields.d.ts.map +1 -1
  611. package/dist/utilities/flattenAllFields.js +7 -22
  612. package/dist/utilities/flattenAllFields.js.map +1 -1
  613. package/dist/utilities/formatAdminURL.d.ts.map +1 -1
  614. package/dist/utilities/formatErrors.d.ts.map +1 -1
  615. package/dist/utilities/formatErrors.js +3 -1
  616. package/dist/utilities/formatErrors.js.map +1 -1
  617. package/dist/utilities/formatLabels.d.ts.map +1 -1
  618. package/dist/utilities/getBestFitFromSizes.d.ts.map +1 -1
  619. package/dist/utilities/getBlockSelect.d.ts.map +1 -1
  620. package/dist/utilities/getDataByPath.d.ts.map +1 -1
  621. package/dist/utilities/getEntityPermissions/getEntityPermissions.d.ts.map +1 -1
  622. package/dist/utilities/getEntityPermissions/getEntityPermissions.js +2 -0
  623. package/dist/utilities/getEntityPermissions/getEntityPermissions.js.map +1 -1
  624. package/dist/utilities/getEntityPermissions/populateFieldPermissions.d.ts +7 -1
  625. package/dist/utilities/getEntityPermissions/populateFieldPermissions.d.ts.map +1 -1
  626. package/dist/utilities/getEntityPermissions/populateFieldPermissions.js +24 -7
  627. package/dist/utilities/getEntityPermissions/populateFieldPermissions.js.map +1 -1
  628. package/dist/utilities/getFieldByPath.d.ts.map +1 -1
  629. package/dist/utilities/getFieldByPath.js +1 -1
  630. package/dist/utilities/getFieldByPath.js.map +1 -1
  631. package/dist/utilities/getFieldPermissions.d.ts.map +1 -1
  632. package/dist/utilities/getObjectDotNotation.d.ts.map +1 -1
  633. package/dist/utilities/getRequestEntity.d.ts.map +1 -1
  634. package/dist/utilities/getRequestLanguage.d.ts +2 -2
  635. package/dist/utilities/getRequestLanguage.d.ts.map +1 -1
  636. package/dist/utilities/getRequestLanguage.js.map +1 -1
  637. package/dist/utilities/getRequestOrigin.d.ts +2 -2
  638. package/dist/utilities/getRequestOrigin.d.ts.map +1 -1
  639. package/dist/utilities/getSafeRedirect.d.ts.map +1 -1
  640. package/dist/utilities/getSelectMode.d.ts.map +1 -1
  641. package/dist/utilities/getSiblingData.d.ts.map +1 -1
  642. package/dist/utilities/getTranslatedLabel.d.ts.map +1 -1
  643. package/dist/utilities/getVersionsConfig.d.ts +1 -1
  644. package/dist/utilities/getVersionsConfig.d.ts.map +1 -1
  645. package/dist/utilities/getVersionsConfig.js.map +1 -1
  646. package/dist/utilities/handleEndpoints.d.ts.map +1 -1
  647. package/dist/utilities/handleEndpoints.js +7 -3
  648. package/dist/utilities/handleEndpoints.js.map +1 -1
  649. package/dist/utilities/headersWithCors.d.ts.map +1 -1
  650. package/dist/utilities/isEntityHidden.d.ts +2 -2
  651. package/dist/utilities/isEntityHidden.d.ts.map +1 -1
  652. package/dist/utilities/isURLAllowed.d.ts.map +1 -1
  653. package/dist/utilities/isURLAllowed.js +9 -3
  654. package/dist/utilities/isURLAllowed.js.map +1 -1
  655. package/dist/utilities/isURLAllowed.spec.js +78 -0
  656. package/dist/utilities/isURLAllowed.spec.js.map +1 -0
  657. package/dist/utilities/isValidID.d.ts +1 -1
  658. package/dist/utilities/isValidID.d.ts.map +1 -1
  659. package/dist/utilities/logError.d.ts.map +1 -1
  660. package/dist/utilities/logger.d.ts +1 -1
  661. package/dist/utilities/logger.d.ts.map +1 -1
  662. package/dist/utilities/mergeHeaders.d.ts.map +1 -1
  663. package/dist/utilities/mergeListSearchAndWhere.d.ts.map +1 -1
  664. package/dist/utilities/mergeLocalizedData.d.ts +14 -4
  665. package/dist/utilities/mergeLocalizedData.d.ts.map +1 -1
  666. package/dist/utilities/mergeLocalizedData.js +54 -46
  667. package/dist/utilities/mergeLocalizedData.js.map +1 -1
  668. package/dist/utilities/mergeLocalizedData.spec.js +23 -23
  669. package/dist/utilities/mergeLocalizedData.spec.js.map +1 -1
  670. package/dist/utilities/miniChalk.d.ts.map +1 -1
  671. package/dist/utilities/optionsAreEqual.d.ts.map +1 -1
  672. package/dist/utilities/parseBooleanString.d.ts.map +1 -1
  673. package/dist/utilities/parseCookies.d.ts +1 -1
  674. package/dist/utilities/parseCookies.d.ts.map +1 -1
  675. package/dist/utilities/parseParams/index.d.ts +2 -5
  676. package/dist/utilities/parseParams/index.d.ts.map +1 -1
  677. package/dist/utilities/parseParams/index.js.map +1 -1
  678. package/dist/utilities/parseParams/index.spec.js +0 -9
  679. package/dist/utilities/parseParams/index.spec.js.map +1 -1
  680. package/dist/utilities/profiling.d.ts.map +1 -1
  681. package/dist/utilities/reduceFieldsToValues.d.ts.map +1 -1
  682. package/dist/utilities/resolveSelect.d.ts.map +1 -1
  683. package/dist/utilities/routeError.d.ts.map +1 -1
  684. package/dist/utilities/sanitizeFallbackLocale.d.ts.map +1 -1
  685. package/dist/utilities/sanitizeInternalFields.d.ts.map +1 -1
  686. package/dist/utilities/sanitizeJoinParams.d.ts.map +1 -1
  687. package/dist/utilities/sanitizePopulateParam.d.ts.map +1 -1
  688. package/dist/utilities/sanitizeSelect.d.ts.map +1 -1
  689. package/dist/utilities/sanitizeSelectParam.d.ts.map +1 -1
  690. package/dist/utilities/sanitizeSortParams.d.ts.map +1 -1
  691. package/dist/utilities/setsAreEqual.d.ts.map +1 -1
  692. package/dist/utilities/slugify.d.ts.map +1 -1
  693. package/dist/utilities/stripUnselectedFields.d.ts.map +1 -1
  694. package/dist/utilities/telemetry/conf/index.d.ts.map +1 -1
  695. package/dist/utilities/telemetry/events/adminInit.d.ts.map +1 -1
  696. package/dist/utilities/telemetry/events/adminInit.js +2 -3
  697. package/dist/utilities/telemetry/events/adminInit.js.map +1 -1
  698. package/dist/utilities/telemetry/events/serverInit.d.ts.map +1 -1
  699. package/dist/utilities/telemetry/events/serverInit.js +2 -3
  700. package/dist/utilities/telemetry/events/serverInit.js.map +1 -1
  701. package/dist/utilities/telemetry/index.d.ts +15 -4
  702. package/dist/utilities/telemetry/index.d.ts.map +1 -1
  703. package/dist/utilities/telemetry/index.js +6 -1
  704. package/dist/utilities/telemetry/index.js.map +1 -1
  705. package/dist/utilities/telemetry/index.spec.js +43 -0
  706. package/dist/utilities/telemetry/index.spec.js.map +1 -0
  707. package/dist/utilities/telemetry/oneWayHash.d.ts.map +1 -1
  708. package/dist/utilities/timestamp.d.ts.map +1 -1
  709. package/dist/utilities/toKebabCase.d.ts.map +1 -1
  710. package/dist/utilities/transformColumnPreferences.d.ts.map +1 -1
  711. package/dist/utilities/transformColumnPreferences.js +4 -2
  712. package/dist/utilities/transformColumnPreferences.js.map +1 -1
  713. package/dist/utilities/transformWhereQuery.d.ts.map +1 -1
  714. package/dist/utilities/traverseFields.d.ts.map +1 -1
  715. package/dist/utilities/traverseFields.js +2 -4
  716. package/dist/utilities/traverseFields.js.map +1 -1
  717. package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
  718. package/dist/utilities/traverseForLocalizedFields.js +3 -0
  719. package/dist/utilities/traverseForLocalizedFields.js.map +1 -1
  720. package/dist/utilities/unflatten.d.ts.map +1 -1
  721. package/dist/utilities/validateMimeType.d.ts.map +1 -1
  722. package/dist/utilities/validateTimezones.d.ts.map +1 -1
  723. package/dist/utilities/validateWhereQuery.d.ts.map +1 -1
  724. package/dist/utilities/wordBoundariesRegex.d.ts.map +1 -1
  725. package/dist/utilities/wrapInternalEndpoints.d.ts.map +1 -1
  726. package/dist/versions/baseFields.d.ts +1 -2
  727. package/dist/versions/baseFields.d.ts.map +1 -1
  728. package/dist/versions/baseFields.js +0 -13
  729. package/dist/versions/baseFields.js.map +1 -1
  730. package/dist/versions/buildCollectionFields.d.ts.map +1 -1
  731. package/dist/versions/buildCollectionFields.js +0 -2
  732. package/dist/versions/buildCollectionFields.js.map +1 -1
  733. package/dist/versions/buildGlobalFields.d.ts.map +1 -1
  734. package/dist/versions/buildGlobalFields.js +0 -2
  735. package/dist/versions/buildGlobalFields.js.map +1 -1
  736. package/dist/versions/buildSingleLocalePublishData.d.ts +32 -0
  737. package/dist/versions/buildSingleLocalePublishData.d.ts.map +1 -0
  738. package/dist/versions/buildSingleLocalePublishData.js +37 -0
  739. package/dist/versions/buildSingleLocalePublishData.js.map +1 -0
  740. package/dist/versions/buildVersionCompoundIndexes.d.ts.map +1 -1
  741. package/dist/versions/defaults.d.ts.map +1 -1
  742. package/dist/versions/deleteCollectionVersions.d.ts.map +1 -1
  743. package/dist/versions/deleteScheduledPublishJobs.d.ts.map +1 -1
  744. package/dist/versions/drafts/appendVersionToQueryKey.d.ts.map +1 -1
  745. package/dist/versions/drafts/getQueryDraftsSelect.d.ts.map +1 -1
  746. package/dist/versions/drafts/getQueryDraftsSort.d.ts.map +1 -1
  747. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
  748. package/dist/versions/enforceMaxVersions.d.ts.map +1 -1
  749. package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
  750. package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
  751. package/dist/versions/migrations/localizeStatus/shared.d.ts.map +1 -1
  752. package/dist/versions/payloadPackageList.d.ts.map +1 -1
  753. package/dist/versions/payloadPackageList.js +0 -1
  754. package/dist/versions/payloadPackageList.js.map +1 -1
  755. package/dist/versions/saveVersion.d.ts +0 -2
  756. package/dist/versions/saveVersion.d.ts.map +1 -1
  757. package/dist/versions/saveVersion.js +12 -17
  758. package/dist/versions/saveVersion.js.map +1 -1
  759. package/dist/versions/schedule/job.d.ts.map +1 -1
  760. package/dist/versions/schedule/job.js +6 -10
  761. package/dist/versions/schedule/job.js.map +1 -1
  762. package/dist/versions/types.d.ts +2 -15
  763. package/dist/versions/types.d.ts.map +1 -1
  764. package/dist/versions/types.js.map +1 -1
  765. package/package.json +9 -6
  766. package/dist/database/migrations/templates/localizeStatus.d.ts +0 -10
  767. package/dist/database/migrations/templates/localizeStatus.d.ts.map +0 -1
  768. package/dist/database/migrations/templates/localizeStatus.js +0 -54
  769. package/dist/database/migrations/templates/localizeStatus.js.map +0 -1
  770. package/dist/fields/baseFields/slug/index.d.ts +0 -89
  771. package/dist/fields/baseFields/slug/index.d.ts.map +0 -1
  772. package/dist/fields/baseFields/slug/index.js +0 -81
  773. package/dist/fields/baseFields/slug/index.js.map +0 -1
  774. package/dist/versions/migrations/localizeStatus/index.d.ts +0 -12
  775. package/dist/versions/migrations/localizeStatus/index.d.ts.map +0 -1
  776. package/dist/versions/migrations/localizeStatus/index.js +0 -33
  777. package/dist/versions/migrations/localizeStatus/index.js.map +0 -1
  778. package/dist/versions/migrations/localizeStatus/mongo/down.d.ts +0 -9
  779. package/dist/versions/migrations/localizeStatus/mongo/down.d.ts.map +0 -1
  780. package/dist/versions/migrations/localizeStatus/mongo/down.js +0 -112
  781. package/dist/versions/migrations/localizeStatus/mongo/down.js.map +0 -1
  782. package/dist/versions/migrations/localizeStatus/mongo/index.d.ts +0 -8
  783. package/dist/versions/migrations/localizeStatus/mongo/index.d.ts.map +0 -1
  784. package/dist/versions/migrations/localizeStatus/mongo/index.js +0 -8
  785. package/dist/versions/migrations/localizeStatus/mongo/index.js.map +0 -1
  786. package/dist/versions/migrations/localizeStatus/mongo/up.d.ts +0 -9
  787. package/dist/versions/migrations/localizeStatus/mongo/up.d.ts.map +0 -1
  788. package/dist/versions/migrations/localizeStatus/mongo/up.js +0 -220
  789. package/dist/versions/migrations/localizeStatus/mongo/up.js.map +0 -1
  790. package/dist/versions/migrations/localizeStatus/sql/down.d.ts +0 -11
  791. package/dist/versions/migrations/localizeStatus/sql/down.d.ts.map +0 -1
  792. package/dist/versions/migrations/localizeStatus/sql/down.js +0 -213
  793. package/dist/versions/migrations/localizeStatus/sql/down.js.map +0 -1
  794. package/dist/versions/migrations/localizeStatus/sql/index.d.ts +0 -8
  795. package/dist/versions/migrations/localizeStatus/sql/index.d.ts.map +0 -1
  796. package/dist/versions/migrations/localizeStatus/sql/index.js +0 -8
  797. package/dist/versions/migrations/localizeStatus/sql/index.js.map +0 -1
  798. package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.d.ts +0 -13
  799. package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.d.ts.map +0 -1
  800. package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.js +0 -51
  801. package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.js.map +0 -1
  802. package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.d.ts +0 -13
  803. package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.d.ts.map +0 -1
  804. package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.js +0 -54
  805. package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.js.map +0 -1
  806. package/dist/versions/migrations/localizeStatus/sql/up.d.ts +0 -11
  807. package/dist/versions/migrations/localizeStatus/sql/up.d.ts.map +0 -1
  808. package/dist/versions/migrations/localizeStatus/sql/up.js +0 -277
  809. package/dist/versions/migrations/localizeStatus/sql/up.js.map +0 -1
  810. package/dist/versions/saveSnapshot.d.ts +0 -18
  811. package/dist/versions/saveSnapshot.d.ts.map +0 -1
  812. package/dist/versions/saveSnapshot.js +0 -38
  813. package/dist/versions/saveSnapshot.js.map +0 -1
@@ -1,22 +1,52 @@
1
- import nextEnvImport from '@next/env';
1
+ import dotenv from 'dotenv';
2
+ import dotenvExpand from 'dotenv-expand';
3
+ import { existsSync } from 'fs';
4
+ import nodePath from 'path';
2
5
  import { findUpSync } from '../utilities/findUp.js';
3
- const { loadEnvConfig } = nextEnvImport;
4
6
  /**
5
- * Try to find user's env files and load it. Uses the same algorithm next.js uses to parse env files, meaning this also supports .env.local, .env.development, .env.production, etc.
7
+ * Loads env files in priority order (same as Next.js convention):
8
+ * .env.${NODE_ENV}.local, .env.local (not for test), .env.${NODE_ENV}, .env
9
+ */ function loadEnvFiles(dir, isDev) {
10
+ const nodeEnv = process.env.NODE_ENV || (isDev ? 'development' : 'production');
11
+ const envFiles = [
12
+ `.env.${nodeEnv}.local`,
13
+ ...nodeEnv !== 'test' ? [
14
+ '.env.local'
15
+ ] : [],
16
+ `.env.${nodeEnv}`,
17
+ '.env'
18
+ ];
19
+ let loaded = false;
20
+ for (const envFile of envFiles){
21
+ const filePath = nodePath.resolve(dir, envFile);
22
+ if (existsSync(filePath)) {
23
+ const result = dotenv.config({
24
+ path: filePath
25
+ });
26
+ if (result.parsed) {
27
+ dotenvExpand.expand(result);
28
+ loaded = true;
29
+ }
30
+ }
31
+ }
32
+ return loaded;
33
+ }
34
+ /**
35
+ * Try to find user's env files and load them.
36
+ * Supports .env, .env.local, .env.development, .env.production, etc.
37
+ * (same file priority as Next.js)
6
38
  */ export function loadEnv(path) {
39
+ const isDev = process.env.NODE_ENV !== 'production';
7
40
  if (path?.length) {
8
- loadEnvConfig(path, true);
41
+ loadEnvFiles(path, isDev);
9
42
  return;
10
43
  }
11
- const dev = process.env.NODE_ENV !== 'production';
12
- const { loadedEnvFiles } = loadEnvConfig(process.cwd(), dev);
13
- if (!loadedEnvFiles?.length) {
14
- // use findUp to find the env file. So, run loadEnvConfig for every directory upwards
44
+ const loaded = loadEnvFiles(process.cwd(), isDev);
45
+ if (!loaded) {
15
46
  findUpSync({
16
47
  // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve
17
48
  condition: (dir)=>{
18
- const { loadedEnvFiles } = loadEnvConfig(dir, true);
19
- if (loadedEnvFiles?.length) {
49
+ if (loadEnvFiles(dir, isDev)) {
20
50
  return true;
21
51
  }
22
52
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/bin/loadEnv.ts"],"sourcesContent":["import nextEnvImport from '@next/env'\n\nimport { findUpSync } from '../utilities/findUp.js'\nconst { loadEnvConfig } = nextEnvImport\n\n/**\n * Try to find user's env files and load it. Uses the same algorithm next.js uses to parse env files, meaning this also supports .env.local, .env.development, .env.production, etc.\n */\nexport function loadEnv(path?: string) {\n if (path?.length) {\n loadEnvConfig(path, true)\n return\n }\n\n const dev = process.env.NODE_ENV !== 'production'\n const { loadedEnvFiles } = loadEnvConfig(process.cwd(), dev)\n\n if (!loadedEnvFiles?.length) {\n // use findUp to find the env file. So, run loadEnvConfig for every directory upwards\n findUpSync({\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n condition: (dir) => {\n const { loadedEnvFiles } = loadEnvConfig(dir, true)\n if (loadedEnvFiles?.length) {\n return true\n }\n },\n dir: process.cwd(),\n })\n }\n}\n"],"names":["nextEnvImport","findUpSync","loadEnvConfig","loadEnv","path","length","dev","process","env","NODE_ENV","loadedEnvFiles","cwd","condition","dir"],"mappings":"AAAA,OAAOA,mBAAmB,YAAW;AAErC,SAASC,UAAU,QAAQ,yBAAwB;AACnD,MAAM,EAAEC,aAAa,EAAE,GAAGF;AAE1B;;CAEC,GACD,OAAO,SAASG,QAAQC,IAAa;IACnC,IAAIA,MAAMC,QAAQ;QAChBH,cAAcE,MAAM;QACpB;IACF;IAEA,MAAME,MAAMC,QAAQC,GAAG,CAACC,QAAQ,KAAK;IACrC,MAAM,EAAEC,cAAc,EAAE,GAAGR,cAAcK,QAAQI,GAAG,IAAIL;IAExD,IAAI,CAACI,gBAAgBL,QAAQ;QAC3B,qFAAqF;QACrFJ,WAAW;YACT,oFAAoF;YACpFW,WAAW,CAACC;gBACV,MAAM,EAAEH,cAAc,EAAE,GAAGR,cAAcW,KAAK;gBAC9C,IAAIH,gBAAgBL,QAAQ;oBAC1B,OAAO;gBACT;YACF;YACAQ,KAAKN,QAAQI,GAAG;QAClB;IACF;AACF"}
1
+ {"version":3,"sources":["../../src/bin/loadEnv.ts"],"sourcesContent":["import dotenv from 'dotenv'\nimport dotenvExpand from 'dotenv-expand'\nimport { existsSync } from 'fs'\nimport nodePath from 'path'\n\nimport { findUpSync } from '../utilities/findUp.js'\n\n/**\n * Loads env files in priority order (same as Next.js convention):\n * .env.${NODE_ENV}.local, .env.local (not for test), .env.${NODE_ENV}, .env\n */\nfunction loadEnvFiles(dir: string, isDev: boolean): boolean {\n const nodeEnv = process.env.NODE_ENV || (isDev ? 'development' : 'production')\n const envFiles = [\n `.env.${nodeEnv}.local`,\n ...(nodeEnv !== 'test' ? ['.env.local'] : []),\n `.env.${nodeEnv}`,\n '.env',\n ]\n\n let loaded = false\n\n for (const envFile of envFiles) {\n const filePath = nodePath.resolve(dir, envFile)\n if (existsSync(filePath)) {\n const result = dotenv.config({ path: filePath })\n if (result.parsed) {\n dotenvExpand.expand(result)\n loaded = true\n }\n }\n }\n\n return loaded\n}\n\n/**\n * Try to find user's env files and load them.\n * Supports .env, .env.local, .env.development, .env.production, etc.\n * (same file priority as Next.js)\n */\nexport function loadEnv(path?: string) {\n const isDev = process.env.NODE_ENV !== 'production'\n\n if (path?.length) {\n loadEnvFiles(path, isDev)\n return\n }\n\n const loaded = loadEnvFiles(process.cwd(), isDev)\n\n if (!loaded) {\n findUpSync({\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n condition: (dir) => {\n if (loadEnvFiles(dir, isDev)) {\n return true\n }\n },\n dir: process.cwd(),\n })\n }\n}\n"],"names":["dotenv","dotenvExpand","existsSync","nodePath","findUpSync","loadEnvFiles","dir","isDev","nodeEnv","process","env","NODE_ENV","envFiles","loaded","envFile","filePath","resolve","result","config","path","parsed","expand","loadEnv","length","cwd","condition"],"mappings":"AAAA,OAAOA,YAAY,SAAQ;AAC3B,OAAOC,kBAAkB,gBAAe;AACxC,SAASC,UAAU,QAAQ,KAAI;AAC/B,OAAOC,cAAc,OAAM;AAE3B,SAASC,UAAU,QAAQ,yBAAwB;AAEnD;;;CAGC,GACD,SAASC,aAAaC,GAAW,EAAEC,KAAc;IAC/C,MAAMC,UAAUC,QAAQC,GAAG,CAACC,QAAQ,IAAKJ,CAAAA,QAAQ,gBAAgB,YAAW;IAC5E,MAAMK,WAAW;QACf,CAAC,KAAK,EAAEJ,QAAQ,MAAM,CAAC;WACnBA,YAAY,SAAS;YAAC;SAAa,GAAG,EAAE;QAC5C,CAAC,KAAK,EAAEA,SAAS;QACjB;KACD;IAED,IAAIK,SAAS;IAEb,KAAK,MAAMC,WAAWF,SAAU;QAC9B,MAAMG,WAAWZ,SAASa,OAAO,CAACV,KAAKQ;QACvC,IAAIZ,WAAWa,WAAW;YACxB,MAAME,SAASjB,OAAOkB,MAAM,CAAC;gBAAEC,MAAMJ;YAAS;YAC9C,IAAIE,OAAOG,MAAM,EAAE;gBACjBnB,aAAaoB,MAAM,CAACJ;gBACpBJ,SAAS;YACX;QACF;IACF;IAEA,OAAOA;AACT;AAEA;;;;CAIC,GACD,OAAO,SAASS,QAAQH,IAAa;IACnC,MAAMZ,QAAQE,QAAQC,GAAG,CAACC,QAAQ,KAAK;IAEvC,IAAIQ,MAAMI,QAAQ;QAChBlB,aAAac,MAAMZ;QACnB;IACF;IAEA,MAAMM,SAASR,aAAaI,QAAQe,GAAG,IAAIjB;IAE3C,IAAI,CAACM,QAAQ;QACXT,WAAW;YACT,oFAAoF;YACpFqB,WAAW,CAACnB;gBACV,IAAID,aAAaC,KAAKC,QAAQ;oBAC5B,OAAO;gBACT;YACF;YACAD,KAAKG,QAAQe,GAAG;QAClB;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/bin/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAE1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAczD,eAAO,MAAM,iBAAiB,UAQ7B,CAAA;AAID,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,eAAe,CAAA;IACvB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,OAAO,GAAU,sCAAsC,IAAI,KAAG,OAAO,CAAC,IAAI,CAkGtF,CAAA"}
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/bin/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAE1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAczD,eAAO,MAAM,iBAAiB,UAQ7B,CAAA;AAID,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,eAAe,CAAA;IACvB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,OAAO,yCAAgD,IAAI,KAAG,OAAO,CAAC,IAAI,CAkGtF,CAAA"}
@@ -8,7 +8,7 @@ import type { Payload } from '../../types/index.js';
8
8
  import type { SanitizedCollectionConfig } from './types.js';
9
9
  export type ServerOnlyCollectionProperties = keyof Pick<SanitizedCollectionConfig, 'access' | 'custom' | 'endpoints' | 'flattenedFields' | 'hooks' | 'indexes' | 'joins' | 'polymorphicJoins' | 'sanitizedIndexes' | 'select'>;
10
10
  export type ServerOnlyCollectionAdminProperties = keyof Pick<SanitizedCollectionConfig['admin'], 'baseFilter' | 'baseListFilter' | 'components' | 'formatDocURL' | 'hidden'>;
11
- export type ServerOnlyUploadProperties = keyof Pick<SanitizedCollectionConfig['upload'], 'adminThumbnail' | 'externalFileHeaderFilter' | 'handlers' | 'modifyResponseHeaders' | 'withMetadata'>;
11
+ export type ServerOnlyUploadProperties = keyof Pick<SanitizedCollectionConfig['upload'], 'admin' | 'adminThumbnail' | 'externalFileHeaderFilter' | 'handlers' | 'modifyResponseHeaders' | 'withMetadata'>;
12
12
  export type ClientCollectionConfig = {
13
13
  admin: {
14
14
  description?: StaticDescription;
@@ -27,13 +27,13 @@ export type ClientCollectionConfig = {
27
27
  } & Omit<SanitizedCollectionConfig, 'admin' | 'auth' | 'fields' | 'hierarchy' | 'labels' | ServerOnlyCollectionProperties>;
28
28
  export declare const createClientCollectionConfig: ({ collection, defaultIDType, i18n, importMap, }: {
29
29
  collection: SanitizedCollectionConfig;
30
- defaultIDType: Payload["config"]["db"]["defaultIDType"];
30
+ defaultIDType: Payload['config']['db']['defaultIDType'];
31
31
  i18n: I18nClient;
32
32
  importMap: ImportMap;
33
33
  }) => ClientCollectionConfig;
34
34
  export declare const createClientCollectionConfigs: ({ collections, defaultIDType, i18n, importMap, }: {
35
35
  collections: SanitizedCollectionConfig[];
36
- defaultIDType: Payload["config"]["db"]["defaultIDType"];
36
+ defaultIDType: Payload['config']['db']['defaultIDType'];
37
37
  i18n: I18nClient;
38
38
  importMap: ImportMap;
39
39
  }) => ClientCollectionConfig[];
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/collections/config/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,0BAA0B,CAAA;AAErE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAA;AACrE,OAAO,KAAK,EACV,iBAAiB,EACjB,+BAA+B,EAC/B,WAAW,EACZ,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAEnD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAI3D,MAAM,MAAM,8BAA8B,GAAG,MAAM,IAAI,CACrD,yBAAyB,EACvB,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,iBAAiB,GACjB,OAAO,GACP,SAAS,GACT,OAAO,GACP,kBAAkB,GAClB,kBAAkB,GAClB,QAAQ,CACX,CAAA;AAED,MAAM,MAAM,mCAAmC,GAAG,MAAM,IAAI,CAC1D,yBAAyB,CAAC,OAAO,CAAC,EAClC,YAAY,GAAG,gBAAgB,GAAG,YAAY,GAAG,cAAc,GAAG,QAAQ,CAC3E,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG,MAAM,IAAI,CACjD,yBAAyB,CAAC,QAAQ,CAAC,EACjC,gBAAgB,GAChB,0BAA0B,GAC1B,UAAU,GACV,uBAAuB,GACvB,cAAc,CACjB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE;QACL,WAAW,CAAC,EAAE,iBAAiB,CAAA;QAC/B,WAAW,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,+BAA+B,CAAC,CAAA;QACtE,OAAO,CAAC,EAAE,OAAO,CAAA;KAClB,GAAG,IAAI,CACN,yBAAyB,CAAC,OAAO,CAAC,EAChC,YAAY,GACZ,aAAa,GACb,cAAc,GACd,OAAO,GACP,aAAa,GACb,SAAS,GACT,mCAAmC,CACtC,CAAA;IACD,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,IAAI,CAAA;KAAE,GAAG,IAAI,CAC7B,yBAAyB,CAAC,MAAM,CAAC,EACjC,gBAAgB,GAAG,YAAY,GAAG,QAAQ,CAC3C,CAAA;IACD,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,SAAS,CAAC,EAAE,qBAAqB,GAAG,KAAK,CAAA;IACzC,MAAM,EAAE;QACN,MAAM,EAAE,WAAW,CAAA;QACnB,QAAQ,EAAE,WAAW,CAAA;KACtB,CAAA;CACF,GAAG,IAAI,CACN,yBAAyB,EACzB,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,8BAA8B,CACtF,CAAA;AAoCD,eAAO,MAAM,4BAA4B,GAAI,iDAK1C;IACD,UAAU,EAAE,yBAAyB,CAAA;IACrC,aAAa,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAA;IACvD,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;CACrB,KAAG,sBA0LH,CAAA;AAED,eAAO,MAAM,6BAA6B,GAAI,kDAK3C;IACD,WAAW,EAAE,yBAAyB,EAAE,CAAA;IACxC,aAAa,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAA;IACvD,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;CACrB,KAAG,sBAAsB,EAezB,CAAA"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/collections/config/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,0BAA0B,CAAA;AAErE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAA;AACrE,OAAO,KAAK,EACV,iBAAiB,EACjB,+BAA+B,EAC/B,WAAW,EACZ,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAEnD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAI3D,MAAM,MAAM,8BAA8B,GAAG,MAAM,IAAI,CACrD,yBAAyB,EACvB,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,iBAAiB,GACjB,OAAO,GACP,SAAS,GACT,OAAO,GACP,kBAAkB,GAClB,kBAAkB,GAClB,QAAQ,CACX,CAAA;AAED,MAAM,MAAM,mCAAmC,GAAG,MAAM,IAAI,CAC1D,yBAAyB,CAAC,OAAO,CAAC,EAClC,YAAY,GAAG,gBAAgB,GAAG,YAAY,GAAG,cAAc,GAAG,QAAQ,CAC3E,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG,MAAM,IAAI,CACjD,yBAAyB,CAAC,QAAQ,CAAC,EACjC,OAAO,GACP,gBAAgB,GAChB,0BAA0B,GAC1B,UAAU,GACV,uBAAuB,GACvB,cAAc,CACjB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE;QACL,WAAW,CAAC,EAAE,iBAAiB,CAAA;QAC/B,WAAW,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,+BAA+B,CAAC,CAAA;QACtE,OAAO,CAAC,EAAE,OAAO,CAAA;KAClB,GAAG,IAAI,CACN,yBAAyB,CAAC,OAAO,CAAC,EAChC,YAAY,GACZ,aAAa,GACb,cAAc,GACd,OAAO,GACP,aAAa,GACb,SAAS,GACT,mCAAmC,CACtC,CAAA;IACD,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,IAAI,CAAA;KAAE,GAAG,IAAI,CAC7B,yBAAyB,CAAC,MAAM,CAAC,EACjC,gBAAgB,GAAG,YAAY,GAAG,QAAQ,CAC3C,CAAA;IACD,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,SAAS,CAAC,EAAE,qBAAqB,GAAG,KAAK,CAAA;IACzC,MAAM,EAAE;QACN,MAAM,EAAE,WAAW,CAAA;QACnB,QAAQ,EAAE,WAAW,CAAA;KACtB,CAAA;CACF,GAAG,IAAI,CACN,yBAAyB,EACzB,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,8BAA8B,CACtF,CAAA;AAqCD,eAAO,MAAM,4BAA4B,oDAKtC;IACD,UAAU,EAAE,yBAAyB,CAAA;IACrC,aAAa,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAA;IACvD,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;CACrB,KAAG,sBA0LH,CAAA;AAED,eAAO,MAAM,6BAA6B,qDAKvC;IACD,WAAW,EAAE,yBAAyB,EAAE,CAAA;IACxC,aAAa,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAA;IACvD,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;CACrB,KAAG,sBAAsB,EAezB,CAAA"}
@@ -12,6 +12,7 @@ const serverOnlyCollectionProperties = [
12
12
  'select'
13
13
  ];
14
14
  const serverOnlyUploadProperties = [
15
+ 'admin',
15
16
  'adminThumbnail',
16
17
  'externalFileHeaderFilter',
17
18
  'handlers',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/collections/config/client.ts"],"sourcesContent":["import type { I18nClient, TFunction } from '@payloadcms/translations'\n\nimport type { StaticDescription } from '../../admin/types.js'\nimport type { ImportMap } from '../../bin/generateImportMap/index.js'\nimport type {\n LivePreviewConfig,\n ServerOnlyLivePreviewProperties,\n StaticLabel,\n} from '../../config/types.js'\nimport type { ClientField } from '../../fields/config/client.js'\nimport type { ClientHierarchyConfig } from '../../hierarchy/types.js'\nimport type { Payload } from '../../types/index.js'\nimport type { SanitizedUploadConfig } from '../../uploads/types.js'\nimport type { SanitizedCollectionConfig } from './types.js'\n\nimport { createClientFields } from '../../fields/config/client.js'\n\nexport type ServerOnlyCollectionProperties = keyof Pick<\n SanitizedCollectionConfig,\n | 'access'\n | 'custom'\n | 'endpoints'\n | 'flattenedFields'\n | 'hooks'\n | 'indexes'\n | 'joins'\n | 'polymorphicJoins'\n | 'sanitizedIndexes'\n | 'select'\n>\n\nexport type ServerOnlyCollectionAdminProperties = keyof Pick<\n SanitizedCollectionConfig['admin'],\n 'baseFilter' | 'baseListFilter' | 'components' | 'formatDocURL' | 'hidden'\n>\n\nexport type ServerOnlyUploadProperties = keyof Pick<\n SanitizedCollectionConfig['upload'],\n | 'adminThumbnail'\n | 'externalFileHeaderFilter'\n | 'handlers'\n | 'modifyResponseHeaders'\n | 'withMetadata'\n>\n\nexport type ClientCollectionConfig = {\n admin: {\n description?: StaticDescription\n livePreview?: Omit<LivePreviewConfig, ServerOnlyLivePreviewProperties>\n preview?: boolean\n } & Omit<\n SanitizedCollectionConfig['admin'],\n | 'components'\n | 'description'\n | 'formatDocURL'\n | 'joins'\n | 'livePreview'\n | 'preview'\n | ServerOnlyCollectionAdminProperties\n >\n auth?: { verify?: true } & Omit<\n SanitizedCollectionConfig['auth'],\n 'forgotPassword' | 'strategies' | 'verify'\n >\n fields: ClientField[]\n hierarchy?: ClientHierarchyConfig | false\n labels: {\n plural: StaticLabel\n singular: StaticLabel\n }\n} & Omit<\n SanitizedCollectionConfig,\n 'admin' | 'auth' | 'fields' | 'hierarchy' | 'labels' | ServerOnlyCollectionProperties\n>\n\nconst serverOnlyCollectionProperties: Partial<ServerOnlyCollectionProperties>[] = [\n 'hooks',\n 'access',\n 'endpoints',\n 'custom',\n 'joins',\n 'polymorphicJoins',\n 'flattenedFields',\n 'indexes',\n 'sanitizedIndexes',\n 'select',\n // `upload`\n // `admin`\n // are all handled separately\n]\n\nconst serverOnlyUploadProperties: Partial<ServerOnlyUploadProperties>[] = [\n 'adminThumbnail',\n 'externalFileHeaderFilter',\n 'handlers',\n 'modifyResponseHeaders',\n 'withMetadata',\n]\n\nconst serverOnlyCollectionAdminProperties: Partial<ServerOnlyCollectionAdminProperties>[] = [\n 'hidden',\n 'baseFilter',\n 'baseListFilter',\n 'components',\n 'formatDocURL',\n // 'preview' is handled separately\n // `livePreview` is handled separately\n]\n\nexport const createClientCollectionConfig = ({\n collection,\n defaultIDType,\n i18n,\n importMap,\n}: {\n collection: SanitizedCollectionConfig\n defaultIDType: Payload['config']['db']['defaultIDType']\n i18n: I18nClient\n importMap: ImportMap\n}): ClientCollectionConfig => {\n const clientCollection = {} as Partial<ClientCollectionConfig>\n\n for (const key in collection) {\n if (serverOnlyCollectionProperties.includes(key as any)) {\n continue\n }\n switch (key) {\n case 'admin':\n if (!collection.admin) {\n break\n }\n\n clientCollection.admin = {} as ClientCollectionConfig['admin']\n\n for (const adminKey in collection.admin) {\n if (serverOnlyCollectionAdminProperties.includes(adminKey as any)) {\n continue\n }\n\n switch (adminKey) {\n case 'description':\n if (\n typeof collection.admin.description === 'string' ||\n typeof collection.admin.description === 'object'\n ) {\n if (collection.admin.description) {\n clientCollection.admin.description = collection.admin.description\n }\n } else if (typeof collection.admin.description === 'function') {\n const description = collection.admin.description({ t: i18n.t as TFunction })\n\n if (description) {\n clientCollection.admin.description = description\n }\n }\n break\n\n case 'livePreview':\n clientCollection.admin.livePreview = {}\n\n if (collection.admin.livePreview?.breakpoints) {\n clientCollection.admin.livePreview.breakpoints =\n collection.admin.livePreview.breakpoints\n }\n\n break\n\n case 'preview':\n if (collection.admin.preview) {\n clientCollection.admin.preview = true\n }\n\n break\n\n default:\n ;(clientCollection as any).admin[adminKey] =\n collection.admin[adminKey as keyof SanitizedCollectionConfig['admin']]\n }\n }\n\n break\n\n case 'auth':\n if (!collection.auth) {\n break\n }\n\n clientCollection.auth = {} as { verify?: true } & SanitizedCollectionConfig['auth']\n\n if (collection.auth.cookies) {\n clientCollection.auth.cookies = collection.auth.cookies\n }\n\n if (collection.auth.depth !== undefined) {\n // Check for undefined as it can be a number (0)\n clientCollection.auth.depth = collection.auth.depth\n }\n\n if (collection.auth.disableLocalStrategy) {\n clientCollection.auth.disableLocalStrategy = collection.auth.disableLocalStrategy\n }\n\n if (collection.auth.lockTime !== undefined) {\n // Check for undefined as it can be a number (0)\n clientCollection.auth.lockTime = collection.auth.lockTime\n }\n\n if (collection.auth.loginWithUsername) {\n clientCollection.auth.loginWithUsername = collection.auth.loginWithUsername\n }\n\n if (collection.auth.maxLoginAttempts !== undefined) {\n // Check for undefined as it can be a number (0)\n clientCollection.auth.maxLoginAttempts = collection.auth.maxLoginAttempts\n }\n\n if (collection.auth.removeTokenFromResponses) {\n clientCollection.auth.removeTokenFromResponses = collection.auth.removeTokenFromResponses\n }\n\n if (collection.auth.useAPIKey) {\n clientCollection.auth.useAPIKey = collection.auth.useAPIKey\n }\n\n if (collection.auth.tokenExpiration) {\n clientCollection.auth.tokenExpiration = collection.auth.tokenExpiration\n }\n\n if (collection.auth.verify) {\n clientCollection.auth.verify = true\n }\n\n break\n\n case 'fields':\n clientCollection.fields = createClientFields({\n defaultIDType,\n fields: collection.fields,\n i18n,\n importMap,\n })\n\n break\n\n case 'hierarchy': {\n if (!collection.hierarchy || typeof collection.hierarchy !== 'object') {\n clientCollection.hierarchy = false\n break\n }\n\n // Strip slugify function as it can't cross server-client boundary\n const { slugify: _slugify, ...clientHierarchy } = collection.hierarchy\n clientCollection.hierarchy = clientHierarchy as ClientHierarchyConfig\n\n break\n }\n\n case 'labels':\n clientCollection.labels = {\n plural:\n typeof collection.labels.plural === 'function'\n ? collection.labels.plural({ i18n, t: i18n.t as TFunction })\n : collection.labels.plural,\n singular:\n typeof collection.labels.singular === 'function'\n ? collection.labels.singular({ i18n, t: i18n.t as TFunction })\n : collection.labels.singular,\n }\n\n break\n\n case 'upload':\n if (!collection.upload) {\n break\n }\n\n clientCollection.upload = {} as SanitizedUploadConfig\n\n for (const uploadKey in collection.upload) {\n if (serverOnlyUploadProperties.includes(uploadKey as any)) {\n continue\n }\n\n if (uploadKey === 'imageSizes') {\n clientCollection.upload.imageSizes = collection.upload.imageSizes?.map((size) => {\n const sanitizedSize = { ...size }\n if ('generateImageName' in sanitizedSize) {\n delete sanitizedSize.generateImageName\n }\n return sanitizedSize\n })\n } else {\n ;(clientCollection.upload as any)[uploadKey] =\n collection.upload[uploadKey as keyof SanitizedUploadConfig]\n }\n }\n\n break\n\n default:\n ;(clientCollection as any)[key] = collection[key as keyof SanitizedCollectionConfig]\n }\n }\n\n return clientCollection as ClientCollectionConfig\n}\n\nexport const createClientCollectionConfigs = ({\n collections,\n defaultIDType,\n i18n,\n importMap,\n}: {\n collections: SanitizedCollectionConfig[]\n defaultIDType: Payload['config']['db']['defaultIDType']\n i18n: I18nClient\n importMap: ImportMap\n}): ClientCollectionConfig[] => {\n const clientCollections = new Array(collections.length)\n\n for (let i = 0; i < collections.length; i++) {\n const collection = collections[i]!\n\n clientCollections[i] = createClientCollectionConfig({\n collection,\n defaultIDType,\n i18n,\n importMap,\n })\n }\n\n return clientCollections\n}\n"],"names":["createClientFields","serverOnlyCollectionProperties","serverOnlyUploadProperties","serverOnlyCollectionAdminProperties","createClientCollectionConfig","collection","defaultIDType","i18n","importMap","clientCollection","key","includes","admin","adminKey","description","t","livePreview","breakpoints","preview","auth","cookies","depth","undefined","disableLocalStrategy","lockTime","loginWithUsername","maxLoginAttempts","removeTokenFromResponses","useAPIKey","tokenExpiration","verify","fields","hierarchy","slugify","_slugify","clientHierarchy","labels","plural","singular","upload","uploadKey","imageSizes","map","size","sanitizedSize","generateImageName","createClientCollectionConfigs","collections","clientCollections","Array","length","i"],"mappings":"AAeA,SAASA,kBAAkB,QAAQ,gCAA+B;AA4DlE,MAAMC,iCAA4E;IAChF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CAID;AAED,MAAMC,6BAAoE;IACxE;IACA;IACA;IACA;IACA;CACD;AAED,MAAMC,sCAAsF;IAC1F;IACA;IACA;IACA;IACA;CAGD;AAED,OAAO,MAAMC,+BAA+B,CAAC,EAC3CC,UAAU,EACVC,aAAa,EACbC,IAAI,EACJC,SAAS,EAMV;IACC,MAAMC,mBAAmB,CAAC;IAE1B,IAAK,MAAMC,OAAOL,WAAY;QAC5B,IAAIJ,+BAA+BU,QAAQ,CAACD,MAAa;YACvD;QACF;QACA,OAAQA;YACN,KAAK;gBACH,IAAI,CAACL,WAAWO,KAAK,EAAE;oBACrB;gBACF;gBAEAH,iBAAiBG,KAAK,GAAG,CAAC;gBAE1B,IAAK,MAAMC,YAAYR,WAAWO,KAAK,CAAE;oBACvC,IAAIT,oCAAoCQ,QAAQ,CAACE,WAAkB;wBACjE;oBACF;oBAEA,OAAQA;wBACN,KAAK;4BACH,IACE,OAAOR,WAAWO,KAAK,CAACE,WAAW,KAAK,YACxC,OAAOT,WAAWO,KAAK,CAACE,WAAW,KAAK,UACxC;gCACA,IAAIT,WAAWO,KAAK,CAACE,WAAW,EAAE;oCAChCL,iBAAiBG,KAAK,CAACE,WAAW,GAAGT,WAAWO,KAAK,CAACE,WAAW;gCACnE;4BACF,OAAO,IAAI,OAAOT,WAAWO,KAAK,CAACE,WAAW,KAAK,YAAY;gCAC7D,MAAMA,cAAcT,WAAWO,KAAK,CAACE,WAAW,CAAC;oCAAEC,GAAGR,KAAKQ,CAAC;gCAAc;gCAE1E,IAAID,aAAa;oCACfL,iBAAiBG,KAAK,CAACE,WAAW,GAAGA;gCACvC;4BACF;4BACA;wBAEF,KAAK;4BACHL,iBAAiBG,KAAK,CAACI,WAAW,GAAG,CAAC;4BAEtC,IAAIX,WAAWO,KAAK,CAACI,WAAW,EAAEC,aAAa;gCAC7CR,iBAAiBG,KAAK,CAACI,WAAW,CAACC,WAAW,GAC5CZ,WAAWO,KAAK,CAACI,WAAW,CAACC,WAAW;4BAC5C;4BAEA;wBAEF,KAAK;4BACH,IAAIZ,WAAWO,KAAK,CAACM,OAAO,EAAE;gCAC5BT,iBAAiBG,KAAK,CAACM,OAAO,GAAG;4BACnC;4BAEA;wBAEF;;4BACIT,iBAAyBG,KAAK,CAACC,SAAS,GACxCR,WAAWO,KAAK,CAACC,SAAqD;oBAC5E;gBACF;gBAEA;YAEF,KAAK;gBACH,IAAI,CAACR,WAAWc,IAAI,EAAE;oBACpB;gBACF;gBAEAV,iBAAiBU,IAAI,GAAG,CAAC;gBAEzB,IAAId,WAAWc,IAAI,CAACC,OAAO,EAAE;oBAC3BX,iBAAiBU,IAAI,CAACC,OAAO,GAAGf,WAAWc,IAAI,CAACC,OAAO;gBACzD;gBAEA,IAAIf,WAAWc,IAAI,CAACE,KAAK,KAAKC,WAAW;oBACvC,gDAAgD;oBAChDb,iBAAiBU,IAAI,CAACE,KAAK,GAAGhB,WAAWc,IAAI,CAACE,KAAK;gBACrD;gBAEA,IAAIhB,WAAWc,IAAI,CAACI,oBAAoB,EAAE;oBACxCd,iBAAiBU,IAAI,CAACI,oBAAoB,GAAGlB,WAAWc,IAAI,CAACI,oBAAoB;gBACnF;gBAEA,IAAIlB,WAAWc,IAAI,CAACK,QAAQ,KAAKF,WAAW;oBAC1C,gDAAgD;oBAChDb,iBAAiBU,IAAI,CAACK,QAAQ,GAAGnB,WAAWc,IAAI,CAACK,QAAQ;gBAC3D;gBAEA,IAAInB,WAAWc,IAAI,CAACM,iBAAiB,EAAE;oBACrChB,iBAAiBU,IAAI,CAACM,iBAAiB,GAAGpB,WAAWc,IAAI,CAACM,iBAAiB;gBAC7E;gBAEA,IAAIpB,WAAWc,IAAI,CAACO,gBAAgB,KAAKJ,WAAW;oBAClD,gDAAgD;oBAChDb,iBAAiBU,IAAI,CAACO,gBAAgB,GAAGrB,WAAWc,IAAI,CAACO,gBAAgB;gBAC3E;gBAEA,IAAIrB,WAAWc,IAAI,CAACQ,wBAAwB,EAAE;oBAC5ClB,iBAAiBU,IAAI,CAACQ,wBAAwB,GAAGtB,WAAWc,IAAI,CAACQ,wBAAwB;gBAC3F;gBAEA,IAAItB,WAAWc,IAAI,CAACS,SAAS,EAAE;oBAC7BnB,iBAAiBU,IAAI,CAACS,SAAS,GAAGvB,WAAWc,IAAI,CAACS,SAAS;gBAC7D;gBAEA,IAAIvB,WAAWc,IAAI,CAACU,eAAe,EAAE;oBACnCpB,iBAAiBU,IAAI,CAACU,eAAe,GAAGxB,WAAWc,IAAI,CAACU,eAAe;gBACzE;gBAEA,IAAIxB,WAAWc,IAAI,CAACW,MAAM,EAAE;oBAC1BrB,iBAAiBU,IAAI,CAACW,MAAM,GAAG;gBACjC;gBAEA;YAEF,KAAK;gBACHrB,iBAAiBsB,MAAM,GAAG/B,mBAAmB;oBAC3CM;oBACAyB,QAAQ1B,WAAW0B,MAAM;oBACzBxB;oBACAC;gBACF;gBAEA;YAEF,KAAK;gBAAa;oBAChB,IAAI,CAACH,WAAW2B,SAAS,IAAI,OAAO3B,WAAW2B,SAAS,KAAK,UAAU;wBACrEvB,iBAAiBuB,SAAS,GAAG;wBAC7B;oBACF;oBAEA,kEAAkE;oBAClE,MAAM,EAAEC,SAASC,QAAQ,EAAE,GAAGC,iBAAiB,GAAG9B,WAAW2B,SAAS;oBACtEvB,iBAAiBuB,SAAS,GAAGG;oBAE7B;gBACF;YAEA,KAAK;gBACH1B,iBAAiB2B,MAAM,GAAG;oBACxBC,QACE,OAAOhC,WAAW+B,MAAM,CAACC,MAAM,KAAK,aAChChC,WAAW+B,MAAM,CAACC,MAAM,CAAC;wBAAE9B;wBAAMQ,GAAGR,KAAKQ,CAAC;oBAAc,KACxDV,WAAW+B,MAAM,CAACC,MAAM;oBAC9BC,UACE,OAAOjC,WAAW+B,MAAM,CAACE,QAAQ,KAAK,aAClCjC,WAAW+B,MAAM,CAACE,QAAQ,CAAC;wBAAE/B;wBAAMQ,GAAGR,KAAKQ,CAAC;oBAAc,KAC1DV,WAAW+B,MAAM,CAACE,QAAQ;gBAClC;gBAEA;YAEF,KAAK;gBACH,IAAI,CAACjC,WAAWkC,MAAM,EAAE;oBACtB;gBACF;gBAEA9B,iBAAiB8B,MAAM,GAAG,CAAC;gBAE3B,IAAK,MAAMC,aAAanC,WAAWkC,MAAM,CAAE;oBACzC,IAAIrC,2BAA2BS,QAAQ,CAAC6B,YAAmB;wBACzD;oBACF;oBAEA,IAAIA,cAAc,cAAc;wBAC9B/B,iBAAiB8B,MAAM,CAACE,UAAU,GAAGpC,WAAWkC,MAAM,CAACE,UAAU,EAAEC,IAAI,CAACC;4BACtE,MAAMC,gBAAgB;gCAAE,GAAGD,IAAI;4BAAC;4BAChC,IAAI,uBAAuBC,eAAe;gCACxC,OAAOA,cAAcC,iBAAiB;4BACxC;4BACA,OAAOD;wBACT;oBACF,OAAO;;wBACHnC,iBAAiB8B,MAAM,AAAQ,CAACC,UAAU,GAC1CnC,WAAWkC,MAAM,CAACC,UAAyC;oBAC/D;gBACF;gBAEA;YAEF;;gBACI/B,gBAAwB,CAACC,IAAI,GAAGL,UAAU,CAACK,IAAuC;QACxF;IACF;IAEA,OAAOD;AACT,EAAC;AAED,OAAO,MAAMqC,gCAAgC,CAAC,EAC5CC,WAAW,EACXzC,aAAa,EACbC,IAAI,EACJC,SAAS,EAMV;IACC,MAAMwC,oBAAoB,IAAIC,MAAMF,YAAYG,MAAM;IAEtD,IAAK,IAAIC,IAAI,GAAGA,IAAIJ,YAAYG,MAAM,EAAEC,IAAK;QAC3C,MAAM9C,aAAa0C,WAAW,CAACI,EAAE;QAEjCH,iBAAiB,CAACG,EAAE,GAAG/C,6BAA6B;YAClDC;YACAC;YACAC;YACAC;QACF;IACF;IAEA,OAAOwC;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/collections/config/client.ts"],"sourcesContent":["import type { I18nClient, TFunction } from '@payloadcms/translations'\n\nimport type { StaticDescription } from '../../admin/types.js'\nimport type { ImportMap } from '../../bin/generateImportMap/index.js'\nimport type {\n LivePreviewConfig,\n ServerOnlyLivePreviewProperties,\n StaticLabel,\n} from '../../config/types.js'\nimport type { ClientField } from '../../fields/config/client.js'\nimport type { ClientHierarchyConfig } from '../../hierarchy/types.js'\nimport type { Payload } from '../../types/index.js'\nimport type { SanitizedUploadConfig } from '../../uploads/types.js'\nimport type { SanitizedCollectionConfig } from './types.js'\n\nimport { createClientFields } from '../../fields/config/client.js'\n\nexport type ServerOnlyCollectionProperties = keyof Pick<\n SanitizedCollectionConfig,\n | 'access'\n | 'custom'\n | 'endpoints'\n | 'flattenedFields'\n | 'hooks'\n | 'indexes'\n | 'joins'\n | 'polymorphicJoins'\n | 'sanitizedIndexes'\n | 'select'\n>\n\nexport type ServerOnlyCollectionAdminProperties = keyof Pick<\n SanitizedCollectionConfig['admin'],\n 'baseFilter' | 'baseListFilter' | 'components' | 'formatDocURL' | 'hidden'\n>\n\nexport type ServerOnlyUploadProperties = keyof Pick<\n SanitizedCollectionConfig['upload'],\n | 'admin'\n | 'adminThumbnail'\n | 'externalFileHeaderFilter'\n | 'handlers'\n | 'modifyResponseHeaders'\n | 'withMetadata'\n>\n\nexport type ClientCollectionConfig = {\n admin: {\n description?: StaticDescription\n livePreview?: Omit<LivePreviewConfig, ServerOnlyLivePreviewProperties>\n preview?: boolean\n } & Omit<\n SanitizedCollectionConfig['admin'],\n | 'components'\n | 'description'\n | 'formatDocURL'\n | 'joins'\n | 'livePreview'\n | 'preview'\n | ServerOnlyCollectionAdminProperties\n >\n auth?: { verify?: true } & Omit<\n SanitizedCollectionConfig['auth'],\n 'forgotPassword' | 'strategies' | 'verify'\n >\n fields: ClientField[]\n hierarchy?: ClientHierarchyConfig | false\n labels: {\n plural: StaticLabel\n singular: StaticLabel\n }\n} & Omit<\n SanitizedCollectionConfig,\n 'admin' | 'auth' | 'fields' | 'hierarchy' | 'labels' | ServerOnlyCollectionProperties\n>\n\nconst serverOnlyCollectionProperties: Partial<ServerOnlyCollectionProperties>[] = [\n 'hooks',\n 'access',\n 'endpoints',\n 'custom',\n 'joins',\n 'polymorphicJoins',\n 'flattenedFields',\n 'indexes',\n 'sanitizedIndexes',\n 'select',\n // `upload`\n // `admin`\n // are all handled separately\n]\n\nconst serverOnlyUploadProperties: Partial<ServerOnlyUploadProperties>[] = [\n 'admin',\n 'adminThumbnail',\n 'externalFileHeaderFilter',\n 'handlers',\n 'modifyResponseHeaders',\n 'withMetadata',\n]\n\nconst serverOnlyCollectionAdminProperties: Partial<ServerOnlyCollectionAdminProperties>[] = [\n 'hidden',\n 'baseFilter',\n 'baseListFilter',\n 'components',\n 'formatDocURL',\n // 'preview' is handled separately\n // `livePreview` is handled separately\n]\n\nexport const createClientCollectionConfig = ({\n collection,\n defaultIDType,\n i18n,\n importMap,\n}: {\n collection: SanitizedCollectionConfig\n defaultIDType: Payload['config']['db']['defaultIDType']\n i18n: I18nClient\n importMap: ImportMap\n}): ClientCollectionConfig => {\n const clientCollection = {} as Partial<ClientCollectionConfig>\n\n for (const key in collection) {\n if (serverOnlyCollectionProperties.includes(key as any)) {\n continue\n }\n switch (key) {\n case 'admin':\n if (!collection.admin) {\n break\n }\n\n clientCollection.admin = {} as ClientCollectionConfig['admin']\n\n for (const adminKey in collection.admin) {\n if (serverOnlyCollectionAdminProperties.includes(adminKey as any)) {\n continue\n }\n\n switch (adminKey) {\n case 'description':\n if (\n typeof collection.admin.description === 'string' ||\n typeof collection.admin.description === 'object'\n ) {\n if (collection.admin.description) {\n clientCollection.admin.description = collection.admin.description\n }\n } else if (typeof collection.admin.description === 'function') {\n const description = collection.admin.description({ t: i18n.t as TFunction })\n\n if (description) {\n clientCollection.admin.description = description\n }\n }\n break\n\n case 'livePreview':\n clientCollection.admin.livePreview = {}\n\n if (collection.admin.livePreview?.breakpoints) {\n clientCollection.admin.livePreview.breakpoints =\n collection.admin.livePreview.breakpoints\n }\n\n break\n\n case 'preview':\n if (collection.admin.preview) {\n clientCollection.admin.preview = true\n }\n\n break\n\n default:\n ;(clientCollection as any).admin[adminKey] =\n collection.admin[adminKey as keyof SanitizedCollectionConfig['admin']]\n }\n }\n\n break\n\n case 'auth':\n if (!collection.auth) {\n break\n }\n\n clientCollection.auth = {} as { verify?: true } & SanitizedCollectionConfig['auth']\n\n if (collection.auth.cookies) {\n clientCollection.auth.cookies = collection.auth.cookies\n }\n\n if (collection.auth.depth !== undefined) {\n // Check for undefined as it can be a number (0)\n clientCollection.auth.depth = collection.auth.depth\n }\n\n if (collection.auth.disableLocalStrategy) {\n clientCollection.auth.disableLocalStrategy = collection.auth.disableLocalStrategy\n }\n\n if (collection.auth.lockTime !== undefined) {\n // Check for undefined as it can be a number (0)\n clientCollection.auth.lockTime = collection.auth.lockTime\n }\n\n if (collection.auth.loginWithUsername) {\n clientCollection.auth.loginWithUsername = collection.auth.loginWithUsername\n }\n\n if (collection.auth.maxLoginAttempts !== undefined) {\n // Check for undefined as it can be a number (0)\n clientCollection.auth.maxLoginAttempts = collection.auth.maxLoginAttempts\n }\n\n if (collection.auth.removeTokenFromResponses) {\n clientCollection.auth.removeTokenFromResponses = collection.auth.removeTokenFromResponses\n }\n\n if (collection.auth.useAPIKey) {\n clientCollection.auth.useAPIKey = collection.auth.useAPIKey\n }\n\n if (collection.auth.tokenExpiration) {\n clientCollection.auth.tokenExpiration = collection.auth.tokenExpiration\n }\n\n if (collection.auth.verify) {\n clientCollection.auth.verify = true\n }\n\n break\n\n case 'fields':\n clientCollection.fields = createClientFields({\n defaultIDType,\n fields: collection.fields,\n i18n,\n importMap,\n })\n\n break\n\n case 'hierarchy': {\n if (!collection.hierarchy || typeof collection.hierarchy !== 'object') {\n clientCollection.hierarchy = false\n break\n }\n\n // Strip slugify function as it can't cross server-client boundary\n const { slugify: _slugify, ...clientHierarchy } = collection.hierarchy\n clientCollection.hierarchy = clientHierarchy as ClientHierarchyConfig\n\n break\n }\n\n case 'labels':\n clientCollection.labels = {\n plural:\n typeof collection.labels.plural === 'function'\n ? collection.labels.plural({ i18n, t: i18n.t as TFunction })\n : collection.labels.plural,\n singular:\n typeof collection.labels.singular === 'function'\n ? collection.labels.singular({ i18n, t: i18n.t as TFunction })\n : collection.labels.singular,\n }\n\n break\n\n case 'upload':\n if (!collection.upload) {\n break\n }\n\n clientCollection.upload = {} as SanitizedUploadConfig\n\n for (const uploadKey in collection.upload) {\n if (serverOnlyUploadProperties.includes(uploadKey as any)) {\n continue\n }\n\n if (uploadKey === 'imageSizes') {\n clientCollection.upload.imageSizes = collection.upload.imageSizes?.map((size) => {\n const sanitizedSize = { ...size }\n if ('generateImageName' in sanitizedSize) {\n delete sanitizedSize.generateImageName\n }\n return sanitizedSize\n })\n } else {\n ;(clientCollection.upload as any)[uploadKey] =\n collection.upload[uploadKey as keyof SanitizedUploadConfig]\n }\n }\n\n break\n\n default:\n ;(clientCollection as any)[key] = collection[key as keyof SanitizedCollectionConfig]\n }\n }\n\n return clientCollection as ClientCollectionConfig\n}\n\nexport const createClientCollectionConfigs = ({\n collections,\n defaultIDType,\n i18n,\n importMap,\n}: {\n collections: SanitizedCollectionConfig[]\n defaultIDType: Payload['config']['db']['defaultIDType']\n i18n: I18nClient\n importMap: ImportMap\n}): ClientCollectionConfig[] => {\n const clientCollections = new Array(collections.length)\n\n for (let i = 0; i < collections.length; i++) {\n const collection = collections[i]!\n\n clientCollections[i] = createClientCollectionConfig({\n collection,\n defaultIDType,\n i18n,\n importMap,\n })\n }\n\n return clientCollections\n}\n"],"names":["createClientFields","serverOnlyCollectionProperties","serverOnlyUploadProperties","serverOnlyCollectionAdminProperties","createClientCollectionConfig","collection","defaultIDType","i18n","importMap","clientCollection","key","includes","admin","adminKey","description","t","livePreview","breakpoints","preview","auth","cookies","depth","undefined","disableLocalStrategy","lockTime","loginWithUsername","maxLoginAttempts","removeTokenFromResponses","useAPIKey","tokenExpiration","verify","fields","hierarchy","slugify","_slugify","clientHierarchy","labels","plural","singular","upload","uploadKey","imageSizes","map","size","sanitizedSize","generateImageName","createClientCollectionConfigs","collections","clientCollections","Array","length","i"],"mappings":"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"}
@@ -5,10 +5,6 @@ import type { CollectionConfig } from './types.js';
5
5
  */
6
6
  export declare const defaults: Partial<CollectionConfig>;
7
7
  export declare const addDefaultsToCollectionConfig: (collection: CollectionConfig) => CollectionConfig;
8
- /**
9
- * @deprecated - remove in 4.0. This is error-prone, as mutating this object will affect any objects that use the defaults as a base.
10
- */
11
- export declare const authDefaults: IncomingAuthType;
12
8
  export declare const addDefaultsToAuthConfig: (auth: IncomingAuthType) => IncomingAuthType;
13
9
  /**
14
10
  * @deprecated - remove in 4.0. This is error-prone, as mutating this object will affect any objects that use the defaults as a base.
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/collections/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AACrF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAIlD;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,OAAO,CAAC,gBAAgB,CA8C9C,CAAA;AAED,eAAO,MAAM,6BAA6B,GAAI,YAAY,gBAAgB,KAAG,gBA0D5E,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,gBAY1B,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,MAAM,gBAAgB,KAAG,gBAqBhE,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,wBAIvC,CAAA;AAED,eAAO,MAAM,oCAAoC,GAC/C,mBAAmB,wBAAwB,KAC1C,wBAM6B,CAAA"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/collections/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AACrF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAIlD;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,OAAO,CAAC,gBAAgB,CA8C9C,CAAA;AAED,eAAO,MAAM,6BAA6B,eAAgB,gBAAgB,KAAG,gBA0D5E,CAAA;AAED,eAAO,MAAM,uBAAuB,SAAU,gBAAgB,KAAG,gBAqBhE,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,wBAIvC,CAAA;AAED,eAAO,MAAM,oCAAoC,sBAC5B,wBAAwB,KAC1C,wBAM6B,CAAA"}
@@ -52,7 +52,7 @@ import { defaultAccess } from '../../auth/defaultAccess.js';
52
52
  indexes: [],
53
53
  timestamps: true,
54
54
  upload: false,
55
- versions: false
55
+ versions: true
56
56
  };
57
57
  export const addDefaultsToCollectionConfig = (collection)=>{
58
58
  collection.access = {
@@ -109,25 +109,10 @@ export const addDefaultsToCollectionConfig = (collection)=>{
109
109
  };
110
110
  collection.timestamps = collection.timestamps ?? true;
111
111
  collection.upload = collection.upload ?? false;
112
- collection.versions = collection.versions ?? false;
112
+ collection.versions = collection.versions ?? true;
113
113
  collection.indexes = collection.indexes ?? [];
114
114
  return collection;
115
115
  };
116
- /**
117
- * @deprecated - remove in 4.0. This is error-prone, as mutating this object will affect any objects that use the defaults as a base.
118
- */ export const authDefaults = {
119
- cookies: {
120
- sameSite: 'Lax',
121
- secure: false
122
- },
123
- forgotPassword: {},
124
- lockTime: 600000,
125
- loginWithUsername: false,
126
- maxLoginAttempts: 5,
127
- tokenExpiration: 7200,
128
- useSessions: true,
129
- verify: false
130
- };
131
116
  export const addDefaultsToAuthConfig = (auth)=>{
132
117
  auth.cookies = {
133
118
  sameSite: 'Lax',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/collections/config/defaults.ts"],"sourcesContent":["import type { IncomingAuthType, LoginWithUsernameOptions } from '../../auth/types.js'\nimport type { CollectionConfig } from './types.js'\n\nimport { defaultAccess } from '../../auth/defaultAccess.js'\n\n/**\n * @deprecated - remove in 4.0. This is error-prone, as mutating this object will affect any objects that use the defaults as a base.\n */\nexport const defaults: Partial<CollectionConfig> = {\n access: {\n create: defaultAccess,\n delete: defaultAccess,\n read: defaultAccess,\n unlock: defaultAccess,\n update: defaultAccess,\n },\n admin: {\n components: {},\n custom: {},\n enableRichTextLink: true,\n enableRichTextRelationship: true,\n pagination: {\n defaultLimit: 10,\n limits: [5, 10, 25, 50, 100],\n },\n useAsTitle: 'id',\n },\n auth: false,\n custom: {},\n endpoints: [],\n fields: [],\n hooks: {\n afterChange: [],\n afterDelete: [],\n afterForgotPassword: [],\n afterLogin: [],\n afterLogout: [],\n afterMe: [],\n afterOperation: [],\n afterRead: [],\n afterRefresh: [],\n beforeChange: [],\n beforeDelete: [],\n beforeLogin: [],\n beforeOperation: [],\n beforeRead: [],\n beforeValidate: [],\n me: [],\n refresh: [],\n },\n indexes: [],\n timestamps: true,\n upload: false,\n versions: false,\n}\n\nexport const addDefaultsToCollectionConfig = (collection: CollectionConfig): CollectionConfig => {\n collection.access = {\n create: defaultAccess,\n delete: defaultAccess,\n read: defaultAccess,\n unlock: defaultAccess,\n update: defaultAccess,\n ...(collection.access || {}),\n }\n\n collection.admin = {\n components: {},\n custom: {},\n enableRichTextLink: true,\n enableRichTextRelationship: true,\n useAsTitle: 'id',\n ...(collection.admin || {}),\n pagination: {\n defaultLimit: 10,\n limits: [5, 10, 25, 50, 100],\n ...(collection.admin?.pagination || {}),\n },\n }\n\n collection.auth = collection.auth ?? false\n collection.custom = collection.custom ?? {}\n collection.endpoints = collection.endpoints ?? []\n collection.fields = collection.fields ?? []\n collection.hierarchy = collection.hierarchy ?? false\n\n collection.hooks = {\n afterChange: [],\n afterDelete: [],\n afterForgotPassword: [],\n afterLogin: [],\n afterLogout: [],\n afterMe: [],\n afterOperation: [],\n afterRead: [],\n afterRefresh: [],\n beforeChange: [],\n beforeDelete: [],\n beforeLogin: [],\n beforeOperation: [],\n beforeRead: [],\n beforeValidate: [],\n me: [],\n refresh: [],\n ...(collection.hooks || {}),\n }\n\n collection.timestamps = collection.timestamps ?? true\n collection.upload = collection.upload ?? false\n collection.versions = collection.versions ?? false\n\n collection.indexes = collection.indexes ?? []\n\n return collection\n}\n\n/**\n * @deprecated - remove in 4.0. This is error-prone, as mutating this object will affect any objects that use the defaults as a base.\n */\nexport const authDefaults: IncomingAuthType = {\n cookies: {\n sameSite: 'Lax',\n secure: false,\n },\n forgotPassword: {},\n lockTime: 600000, // 10 minutes\n loginWithUsername: false,\n maxLoginAttempts: 5,\n tokenExpiration: 7200,\n useSessions: true,\n verify: false,\n}\n\nexport const addDefaultsToAuthConfig = (auth: IncomingAuthType): IncomingAuthType => {\n auth.cookies = {\n sameSite: 'Lax',\n secure: false,\n ...(auth.cookies || {}),\n }\n\n auth.forgotPassword = auth.forgotPassword ?? {}\n auth.lockTime = auth.lockTime ?? 600000 // 10 minutes\n auth.loginWithUsername = auth.loginWithUsername ?? false\n auth.maxLoginAttempts = auth.maxLoginAttempts ?? 5\n auth.tokenExpiration = auth.tokenExpiration ?? 7200\n auth.useSessions = auth.useSessions ?? true\n auth.verify = auth.verify ?? false\n auth.strategies = auth.strategies ?? []\n\n if (!auth.disableLocalStrategy && auth.verify === true) {\n auth.verify = {}\n }\n\n return auth\n}\n\n/**\n * @deprecated - remove in 4.0. This is error-prone, as mutating this object will affect any objects that use the defaults as a base.\n */\nexport const loginWithUsernameDefaults: LoginWithUsernameOptions = {\n allowEmailLogin: false,\n requireEmail: false,\n requireUsername: true,\n}\n\nexport const addDefaultsToLoginWithUsernameConfig = (\n loginWithUsername: LoginWithUsernameOptions,\n): LoginWithUsernameOptions =>\n ({\n allowEmailLogin: false,\n requireEmail: false,\n requireUsername: true,\n ...(loginWithUsername || {}),\n }) as LoginWithUsernameOptions\n"],"names":["defaultAccess","defaults","access","create","delete","read","unlock","update","admin","components","custom","enableRichTextLink","enableRichTextRelationship","pagination","defaultLimit","limits","useAsTitle","auth","endpoints","fields","hooks","afterChange","afterDelete","afterForgotPassword","afterLogin","afterLogout","afterMe","afterOperation","afterRead","afterRefresh","beforeChange","beforeDelete","beforeLogin","beforeOperation","beforeRead","beforeValidate","me","refresh","indexes","timestamps","upload","versions","addDefaultsToCollectionConfig","collection","hierarchy","authDefaults","cookies","sameSite","secure","forgotPassword","lockTime","loginWithUsername","maxLoginAttempts","tokenExpiration","useSessions","verify","addDefaultsToAuthConfig","strategies","disableLocalStrategy","loginWithUsernameDefaults","allowEmailLogin","requireEmail","requireUsername","addDefaultsToLoginWithUsernameConfig"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/collections/config/defaults.ts"],"sourcesContent":["import type { IncomingAuthType, LoginWithUsernameOptions } from '../../auth/types.js'\nimport type { CollectionConfig } from './types.js'\n\nimport { defaultAccess } from '../../auth/defaultAccess.js'\n\n/**\n * @deprecated - remove in 4.0. This is error-prone, as mutating this object will affect any objects that use the defaults as a base.\n */\nexport const defaults: Partial<CollectionConfig> = {\n access: {\n create: defaultAccess,\n delete: defaultAccess,\n read: defaultAccess,\n unlock: defaultAccess,\n update: defaultAccess,\n },\n admin: {\n components: {},\n custom: {},\n enableRichTextLink: true,\n enableRichTextRelationship: true,\n pagination: {\n defaultLimit: 10,\n limits: [5, 10, 25, 50, 100],\n },\n useAsTitle: 'id',\n },\n auth: false,\n custom: {},\n endpoints: [],\n fields: [],\n hooks: {\n afterChange: [],\n afterDelete: [],\n afterForgotPassword: [],\n afterLogin: [],\n afterLogout: [],\n afterMe: [],\n afterOperation: [],\n afterRead: [],\n afterRefresh: [],\n beforeChange: [],\n beforeDelete: [],\n beforeLogin: [],\n beforeOperation: [],\n beforeRead: [],\n beforeValidate: [],\n me: [],\n refresh: [],\n },\n indexes: [],\n timestamps: true,\n upload: false,\n versions: true,\n}\n\nexport const addDefaultsToCollectionConfig = (collection: CollectionConfig): CollectionConfig => {\n collection.access = {\n create: defaultAccess,\n delete: defaultAccess,\n read: defaultAccess,\n unlock: defaultAccess,\n update: defaultAccess,\n ...(collection.access || {}),\n }\n\n collection.admin = {\n components: {},\n custom: {},\n enableRichTextLink: true,\n enableRichTextRelationship: true,\n useAsTitle: 'id',\n ...(collection.admin || {}),\n pagination: {\n defaultLimit: 10,\n limits: [5, 10, 25, 50, 100],\n ...(collection.admin?.pagination || {}),\n },\n }\n\n collection.auth = collection.auth ?? false\n collection.custom = collection.custom ?? {}\n collection.endpoints = collection.endpoints ?? []\n collection.fields = collection.fields ?? []\n collection.hierarchy = collection.hierarchy ?? false\n\n collection.hooks = {\n afterChange: [],\n afterDelete: [],\n afterForgotPassword: [],\n afterLogin: [],\n afterLogout: [],\n afterMe: [],\n afterOperation: [],\n afterRead: [],\n afterRefresh: [],\n beforeChange: [],\n beforeDelete: [],\n beforeLogin: [],\n beforeOperation: [],\n beforeRead: [],\n beforeValidate: [],\n me: [],\n refresh: [],\n ...(collection.hooks || {}),\n }\n\n collection.timestamps = collection.timestamps ?? true\n collection.upload = collection.upload ?? false\n collection.versions = collection.versions ?? true\n\n collection.indexes = collection.indexes ?? []\n\n return collection\n}\n\nexport const addDefaultsToAuthConfig = (auth: IncomingAuthType): IncomingAuthType => {\n auth.cookies = {\n sameSite: 'Lax',\n secure: false,\n ...(auth.cookies || {}),\n }\n\n auth.forgotPassword = auth.forgotPassword ?? {}\n auth.lockTime = auth.lockTime ?? 600000 // 10 minutes\n auth.loginWithUsername = auth.loginWithUsername ?? false\n auth.maxLoginAttempts = auth.maxLoginAttempts ?? 5\n auth.tokenExpiration = auth.tokenExpiration ?? 7200\n auth.useSessions = auth.useSessions ?? true\n auth.verify = auth.verify ?? false\n auth.strategies = auth.strategies ?? []\n\n if (!auth.disableLocalStrategy && auth.verify === true) {\n auth.verify = {}\n }\n\n return auth\n}\n\n/**\n * @deprecated - remove in 4.0. This is error-prone, as mutating this object will affect any objects that use the defaults as a base.\n */\nexport const loginWithUsernameDefaults: LoginWithUsernameOptions = {\n allowEmailLogin: false,\n requireEmail: false,\n requireUsername: true,\n}\n\nexport const addDefaultsToLoginWithUsernameConfig = (\n loginWithUsername: LoginWithUsernameOptions,\n): LoginWithUsernameOptions =>\n ({\n allowEmailLogin: false,\n requireEmail: false,\n requireUsername: true,\n ...(loginWithUsername || {}),\n }) as LoginWithUsernameOptions\n"],"names":["defaultAccess","defaults","access","create","delete","read","unlock","update","admin","components","custom","enableRichTextLink","enableRichTextRelationship","pagination","defaultLimit","limits","useAsTitle","auth","endpoints","fields","hooks","afterChange","afterDelete","afterForgotPassword","afterLogin","afterLogout","afterMe","afterOperation","afterRead","afterRefresh","beforeChange","beforeDelete","beforeLogin","beforeOperation","beforeRead","beforeValidate","me","refresh","indexes","timestamps","upload","versions","addDefaultsToCollectionConfig","collection","hierarchy","addDefaultsToAuthConfig","cookies","sameSite","secure","forgotPassword","lockTime","loginWithUsername","maxLoginAttempts","tokenExpiration","useSessions","verify","strategies","disableLocalStrategy","loginWithUsernameDefaults","allowEmailLogin","requireEmail","requireUsername","addDefaultsToLoginWithUsernameConfig"],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { addDefaultsToCollectionConfig } from './defaults.js';
3
+ describe('addDefaultsToCollectionConfig', ()=>{
4
+ it('should default versions to true when not specified', ()=>{
5
+ const collection = {
6
+ slug: 'posts',
7
+ fields: []
8
+ };
9
+ const result = addDefaultsToCollectionConfig(collection);
10
+ expect(result.versions).toBe(true);
11
+ });
12
+ it('should preserve explicit versions: false', ()=>{
13
+ const collection = {
14
+ slug: 'users',
15
+ fields: [],
16
+ versions: false
17
+ };
18
+ const result = addDefaultsToCollectionConfig(collection);
19
+ expect(result.versions).toBe(false);
20
+ });
21
+ it('should preserve explicit versions object config', ()=>{
22
+ const collection = {
23
+ slug: 'posts',
24
+ fields: [],
25
+ versions: {
26
+ drafts: true,
27
+ maxPerDoc: 50
28
+ }
29
+ };
30
+ const result = addDefaultsToCollectionConfig(collection);
31
+ expect(result.versions).toEqual({
32
+ drafts: true,
33
+ maxPerDoc: 50
34
+ });
35
+ });
36
+ it('should preserve explicit versions: true', ()=>{
37
+ const collection = {
38
+ slug: 'posts',
39
+ fields: [],
40
+ versions: true
41
+ };
42
+ const result = addDefaultsToCollectionConfig(collection);
43
+ expect(result.versions).toBe(true);
44
+ });
45
+ });
46
+
47
+ //# sourceMappingURL=defaults.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/collections/config/defaults.spec.ts"],"sourcesContent":["import type { CollectionConfig } from './types.js'\n\nimport { describe, expect, it } from 'vitest'\n\nimport { addDefaultsToCollectionConfig } from './defaults.js'\n\ndescribe('addDefaultsToCollectionConfig', () => {\n it('should default versions to true when not specified', () => {\n const collection: CollectionConfig = {\n slug: 'posts',\n fields: [],\n }\n\n const result = addDefaultsToCollectionConfig(collection)\n\n expect(result.versions).toBe(true)\n })\n\n it('should preserve explicit versions: false', () => {\n const collection: CollectionConfig = {\n slug: 'users',\n fields: [],\n versions: false,\n }\n\n const result = addDefaultsToCollectionConfig(collection)\n\n expect(result.versions).toBe(false)\n })\n\n it('should preserve explicit versions object config', () => {\n const collection: CollectionConfig = {\n slug: 'posts',\n fields: [],\n versions: { drafts: true, maxPerDoc: 50 },\n }\n\n const result = addDefaultsToCollectionConfig(collection)\n\n expect(result.versions).toEqual({ drafts: true, maxPerDoc: 50 })\n })\n\n it('should preserve explicit versions: true', () => {\n const collection: CollectionConfig = {\n slug: 'posts',\n fields: [],\n versions: true,\n }\n\n const result = addDefaultsToCollectionConfig(collection)\n\n expect(result.versions).toBe(true)\n })\n})\n"],"names":["describe","expect","it","addDefaultsToCollectionConfig","collection","slug","fields","result","versions","toBe","drafts","maxPerDoc","toEqual"],"mappings":"AAEA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,SAAQ;AAE7C,SAASC,6BAA6B,QAAQ,gBAAe;AAE7DH,SAAS,iCAAiC;IACxCE,GAAG,sDAAsD;QACvD,MAAME,aAA+B;YACnCC,MAAM;YACNC,QAAQ,EAAE;QACZ;QAEA,MAAMC,SAASJ,8BAA8BC;QAE7CH,OAAOM,OAAOC,QAAQ,EAAEC,IAAI,CAAC;IAC/B;IAEAP,GAAG,4CAA4C;QAC7C,MAAME,aAA+B;YACnCC,MAAM;YACNC,QAAQ,EAAE;YACVE,UAAU;QACZ;QAEA,MAAMD,SAASJ,8BAA8BC;QAE7CH,OAAOM,OAAOC,QAAQ,EAAEC,IAAI,CAAC;IAC/B;IAEAP,GAAG,mDAAmD;QACpD,MAAME,aAA+B;YACnCC,MAAM;YACNC,QAAQ,EAAE;YACVE,UAAU;gBAAEE,QAAQ;gBAAMC,WAAW;YAAG;QAC1C;QAEA,MAAMJ,SAASJ,8BAA8BC;QAE7CH,OAAOM,OAAOC,QAAQ,EAAEI,OAAO,CAAC;YAAEF,QAAQ;YAAMC,WAAW;QAAG;IAChE;IAEAT,GAAG,2CAA2C;QAC5C,MAAME,aAA+B;YACnCC,MAAM;YACNC,QAAQ,EAAE;YACVE,UAAU;QACZ;QAEA,MAAMD,SAASJ,8BAA8BC;QAE7CH,OAAOM,OAAOC,QAAQ,EAAEC,IAAI,CAAC;IAC/B;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../src/collections/config/sanitize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAA;AACjF,OAAO,KAAK,EACV,gBAAgB,EAChB,yBAAyB,EAG1B,MAAM,YAAY,CAAA;AA2BnB;;;GAGG;AACH,eAAO,MAAM,wBAAwB,GAAI,YAAY,gBAAgB,KAAG,IAuBvE,CAAA;AAED,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,MAAM,EACd,YAAY,gBAAgB;AAC5B;;;GAGG;AACH,+BAA+B,KAAK,CAAC,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,EAChF,sBAAsB,MAAM,EAAE;AAC9B;;GAEG;AACH,iBAAiB,iBAAiB,EAAE,KACnC,OAAO,CAAC,yBAAyB,CA0TnC,CAAA"}
1
+ {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../src/collections/config/sanitize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAA;AAEjF,OAAO,KAAK,EACV,gBAAgB,EAChB,yBAAyB,EAG1B,MAAM,YAAY,CAAA;AA0BnB;;;GAGG;AACH,eAAO,MAAM,wBAAwB,eAAgB,gBAAgB,KAAG,IAuBvE,CAAA;AAED,eAAO,MAAM,kBAAkB,WACrB,MAAM,cACF,gBAAgB;AAC5B;;;GAGG;+BAC4B,KAAK,CAAC,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,wBAC1D,MAAM,EAAE;AAC9B;;GAEG;iBACc,iBAAiB,EAAE,KACnC,OAAO,CAAC,yBAAyB,CA+SnC,CAAA"}
@@ -10,7 +10,6 @@ import { uploadCollectionEndpoints } from '../../uploads/endpoints/index.js';
10
10
  import { getBaseUploadFields } from '../../uploads/getBaseFields.js';
11
11
  import { flattenAllFields } from '../../utilities/flattenAllFields.js';
12
12
  import { formatLabels } from '../../utilities/formatLabels.js';
13
- import { miniChalk } from '../../utilities/miniChalk.js';
14
13
  import { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js';
15
14
  import { baseVersionFields } from '../../versions/baseFields.js';
16
15
  import { versionDefaults } from '../../versions/defaults.js';
@@ -214,16 +213,7 @@ export const sanitizeCollection = async (config, collection, /**
214
213
  };
215
214
  }
216
215
  const hasLocalizedFields = traverseForLocalizedFields(sanitized.fields);
217
- if (config.localization) {
218
- if (hasLocalizedFields && sanitized.versions.drafts.localizeStatus === undefined) {
219
- sanitized.versions.drafts.localizeStatus = false;
220
- }
221
- }
222
- // TODO v4: remove this sanitization check, should not need to enable the experimental flag
223
- if (sanitized.versions.drafts.localizeStatus && !config.experimental?.localizeStatus) {
224
- sanitized.versions.drafts.localizeStatus = false;
225
- console.log(miniChalk.yellowBold(`Warning: "localizeStatus" for drafts is an experimental feature. To enable, set "experimental.localizeStatus" to true in your Payload config.`));
226
- }
216
+ sanitized.versions.drafts.localizeStatus = !!(config.localization && hasLocalizedFields);
227
217
  if (sanitized.versions.drafts.autosave === true) {
228
218
  sanitized.versions.drafts.autosave = {
229
219
  interval: versionDefaults.autosaveInterval
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/collections/config/sanitize.ts"],"sourcesContent":["import type { Config, SanitizedConfig } from '../../config/types.js'\nimport type { OrderableJoinInfo } from '../../fields/config/sanitizeJoinField.js'\nimport type {\n CollectionConfig,\n SanitizedCollectionConfig,\n SanitizedJoin,\n SanitizedJoins,\n} from './types.js'\n\nimport { authCollectionEndpoints } from '../../auth/endpoints/index.js'\nimport { getBaseAuthFields } from '../../auth/getAuthFields.js'\nimport { TimestampsRequired } from '../../errors/TimestampsRequired.js'\nimport { sanitizeFields } from '../../fields/config/sanitize.js'\nimport { fieldAffectsData } from '../../fields/config/types.js'\nimport { mergeBaseFields } from '../../fields/mergeBaseFields.js'\nimport { buildFoldersHierarchy, buildTagsHierarchy } from '../../hierarchy/presets.js'\nimport { sanitizeHierarchyCollection } from '../../hierarchy/sanitizeHierarchyCollection.js'\nimport { uploadCollectionEndpoints } from '../../uploads/endpoints/index.js'\nimport { getBaseUploadFields } from '../../uploads/getBaseFields.js'\nimport { flattenAllFields } from '../../utilities/flattenAllFields.js'\nimport { formatLabels } from '../../utilities/formatLabels.js'\nimport { miniChalk } from '../../utilities/miniChalk.js'\nimport { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js'\nimport { baseVersionFields } from '../../versions/baseFields.js'\nimport { versionDefaults } from '../../versions/defaults.js'\nimport { defaultCollectionEndpoints } from '../endpoints/index.js'\nimport {\n addDefaultsToAuthConfig,\n addDefaultsToCollectionConfig,\n addDefaultsToLoginWithUsernameConfig,\n} from './defaults.js'\nimport { sanitizeCompoundIndexes } from './sanitizeCompoundIndexes.js'\nimport { validateUseAsTitle } from './useAsTitle.js'\n\n/**\n * Warns at startup when custom collection views are misconfigured with a missing `path`.\n * Views without `path` will never be matched by the router and are silently ignored.\n */\nexport const warnOnInvalidCustomViews = (collection: CollectionConfig): void => {\n const views = collection.admin?.components?.views\n if (!views || typeof views !== 'object') {\n return\n }\n\n for (const [key, view] of Object.entries(views)) {\n if (key === 'edit' || key === 'list') {\n continue\n }\n\n if (view && typeof view === 'object' && 'Component' in view && !('path' in view)) {\n console.warn(\n `[Payload] Custom collection view \"${key}\" in collection \"${collection.slug}\" is missing a \"path\" property. The view will never be rendered.`,\n )\n }\n\n if (view && typeof view === 'object' && 'path' in view && !('Component' in view)) {\n console.warn(\n `[Payload] Custom collection view \"${key}\" in collection \"${collection.slug}\" has a \"path\" but is missing a \"Component\". The view will never be rendered.`,\n )\n }\n }\n}\n\nexport const sanitizeCollection = async (\n config: Config,\n collection: CollectionConfig,\n /**\n * If this property is set, RichText fields won't be sanitized immediately. Instead, they will be added to this array as promises\n * so that you can sanitize them together, after the config has been sanitized.\n */\n richTextSanitizationPromises?: Array<(config: SanitizedConfig) => Promise<void>>,\n _validRelationships?: string[],\n /**\n * Tracker for orderable join fields - populated during sanitization\n */\n orderableJoins?: OrderableJoinInfo[],\n): Promise<SanitizedCollectionConfig> => {\n if (collection._sanitized) {\n return collection as SanitizedCollectionConfig\n }\n\n collection._sanitized = true\n\n warnOnInvalidCustomViews(collection)\n\n // /////////////////////////////////\n // Make copy of collection config\n // /////////////////////////////////\n\n const sanitized: CollectionConfig = addDefaultsToCollectionConfig(collection)\n\n // /////////////////////////////////\n // Convert folders/tags to hierarchy\n // /////////////////////////////////\n\n const presetCount = [sanitized.folders, sanitized.tags, sanitized.hierarchy].filter(\n Boolean,\n ).length\n if (presetCount > 1) {\n throw new Error(\n `Collection \"${sanitized.slug}\": Only one of 'folders', 'tags', or 'hierarchy' can be specified`,\n )\n }\n\n if (sanitized.folders) {\n sanitized.labels = {\n plural: 'Folders',\n singular: 'Folder',\n ...sanitized.labels,\n }\n sanitized.hierarchy = buildFoldersHierarchy(sanitized.folders, sanitized.slug)\n // Set admin.group: false when sidebar tab enabled (folders accessed via tab)\n const sidebarTabEnabled =\n typeof sanitized.hierarchy === 'object' &&\n sanitized.hierarchy.admin?.injectSidebarTab !== false\n if (sidebarTabEnabled && sanitized.admin!.group === undefined) {\n sanitized.admin!.group = false\n }\n delete sanitized.folders\n }\n\n if (sanitized.tags) {\n sanitized.labels = {\n plural: 'Tags',\n singular: 'Tag',\n ...sanitized.labels,\n }\n sanitized.hierarchy = buildTagsHierarchy(sanitized.tags, sanitized.slug)\n // Tags also hidden from nav by default\n if (sanitized.admin!.group === undefined) {\n sanitized.admin!.group = false\n }\n delete sanitized.tags\n }\n\n // /////////////////////////////////\n // Sanitize fields\n // /////////////////////////////////\n\n const validRelationships = _validRelationships ?? config.collections!.map((c) => c.slug) ?? []\n\n const joins: SanitizedJoins = {}\n\n const polymorphicJoins: SanitizedJoin[] = []\n\n sanitized.fields = await sanitizeFields({\n collectionConfig: sanitized,\n config,\n fields: sanitized.fields,\n joinPath: '',\n joins,\n orderableJoins,\n parentIsLocalized: false,\n polymorphicJoins,\n richTextSanitizationPromises,\n validRelationships,\n })\n\n if (sanitized.endpoints !== false) {\n if (!sanitized.endpoints) {\n sanitized.endpoints = []\n }\n\n if (sanitized.auth) {\n for (const endpoint of authCollectionEndpoints) {\n sanitized.endpoints.push(endpoint)\n }\n }\n\n if (sanitized.upload) {\n for (const endpoint of uploadCollectionEndpoints) {\n sanitized.endpoints.push(endpoint)\n }\n }\n\n for (const endpoint of defaultCollectionEndpoints) {\n sanitized.endpoints.push(endpoint)\n }\n }\n\n if (sanitized.timestamps !== false) {\n // add default timestamps fields only as needed\n let hasUpdatedAt: boolean | null = null\n let hasCreatedAt: boolean | null = null\n let hasDeletedAt: boolean | null = null\n\n sanitized.fields.some((field) => {\n if (fieldAffectsData(field)) {\n if (field.name === 'updatedAt') {\n hasUpdatedAt = true\n }\n\n if (field.name === 'createdAt') {\n hasCreatedAt = true\n }\n\n if (field.name === 'deletedAt') {\n hasDeletedAt = true\n }\n }\n\n return hasCreatedAt && hasUpdatedAt && (!sanitized.trash || hasDeletedAt)\n })\n\n if (!hasUpdatedAt) {\n sanitized.fields.push({\n name: 'updatedAt',\n type: 'date',\n admin: {\n disabled: { bulkEdit: true },\n hidden: true,\n },\n index: true,\n label: ({ t }) => t('general:updatedAt'),\n })\n }\n\n if (!hasCreatedAt) {\n sanitized.fields.push({\n name: 'createdAt',\n admin: {\n disabled: { bulkEdit: true },\n hidden: true,\n },\n // The default sort for list view is createdAt. Thus, enabling indexing by default, is a major performance improvement, especially for large or a large amount of collections.\n type: 'date',\n index: true,\n label: ({ t }) => t('general:createdAt'),\n })\n }\n\n if (sanitized.trash && !hasDeletedAt) {\n sanitized.fields.push({\n name: 'deletedAt',\n type: 'date',\n admin: {\n disabled: { bulkEdit: true },\n hidden: true,\n },\n index: true,\n label: ({ t }) => t('general:deletedAt'),\n })\n }\n }\n\n const defaultLabels = formatLabels(sanitized.slug)\n\n sanitized.labels = {\n plural: sanitized.labels?.plural || defaultLabels.plural,\n singular: sanitized.labels?.singular || defaultLabels.singular,\n }\n\n if (sanitized.versions) {\n if (sanitized.timestamps === false) {\n throw new TimestampsRequired(collection)\n }\n\n if (sanitized.versions === true) {\n sanitized.versions = {\n drafts: false,\n maxPerDoc: 100,\n }\n }\n\n sanitized.versions.maxPerDoc =\n typeof sanitized.versions.maxPerDoc === 'number' ? sanitized.versions.maxPerDoc : 100\n\n if (sanitized.versions.drafts) {\n if (sanitized.versions.drafts === true) {\n sanitized.versions.drafts = {\n autosave: false,\n validate: false,\n }\n }\n\n const hasLocalizedFields = traverseForLocalizedFields(sanitized.fields)\n\n if (config.localization) {\n if (hasLocalizedFields && sanitized.versions.drafts.localizeStatus === undefined) {\n sanitized.versions.drafts.localizeStatus = false\n }\n }\n\n // TODO v4: remove this sanitization check, should not need to enable the experimental flag\n if (sanitized.versions.drafts.localizeStatus && !config.experimental?.localizeStatus) {\n sanitized.versions.drafts.localizeStatus = false\n console.log(\n miniChalk.yellowBold(\n `Warning: \"localizeStatus\" for drafts is an experimental feature. To enable, set \"experimental.localizeStatus\" to true in your Payload config.`,\n ),\n )\n }\n\n if (sanitized.versions.drafts.autosave === true) {\n sanitized.versions.drafts.autosave = {\n interval: versionDefaults.autosaveInterval,\n }\n }\n\n if (sanitized.versions.drafts.validate === undefined) {\n sanitized.versions.drafts.validate = false\n }\n\n sanitized.fields = mergeBaseFields(\n sanitized.fields,\n baseVersionFields({\n localized: sanitized.versions.drafts.localizeStatus ?? false,\n }),\n )\n }\n } else {\n delete sanitized.versions\n }\n\n // Sanitize hierarchy configuration (phase 1 - per collection)\n sanitizeHierarchyCollection(sanitized, config)\n\n if (sanitized.upload) {\n if (sanitized.upload === true) {\n sanitized.upload = {}\n }\n\n sanitized.upload.cacheTags = sanitized.upload?.cacheTags ?? true\n sanitized.upload.bulkUpload = sanitized.upload?.bulkUpload ?? true\n sanitized.upload.staticDir = sanitized.upload.staticDir || sanitized.slug\n sanitized.admin!.useAsTitle =\n sanitized.admin?.useAsTitle && sanitized.admin.useAsTitle !== 'id'\n ? sanitized.admin.useAsTitle\n : 'filename'\n\n const uploadFields = getBaseUploadFields({\n collection: sanitized,\n config,\n })\n\n sanitized.fields = mergeBaseFields(sanitized.fields, uploadFields)\n }\n\n if (sanitized.auth) {\n sanitized.auth = addDefaultsToAuthConfig(\n typeof sanitized.auth === 'boolean' ? {} : sanitized.auth,\n )\n\n // disable duplicate for auth enabled collections by default\n sanitized.disableDuplicate = sanitized.disableDuplicate ?? true\n\n if (sanitized.auth.loginWithUsername) {\n if (sanitized.auth.loginWithUsername === true) {\n sanitized.auth.loginWithUsername = addDefaultsToLoginWithUsernameConfig({})\n } else {\n const loginWithUsernameWithDefaults = addDefaultsToLoginWithUsernameConfig(\n sanitized.auth.loginWithUsername,\n )\n\n // if allowEmailLogin is false, requireUsername must be true\n if (loginWithUsernameWithDefaults.allowEmailLogin === false) {\n loginWithUsernameWithDefaults.requireUsername = true\n }\n sanitized.auth.loginWithUsername = loginWithUsernameWithDefaults\n }\n } else {\n sanitized.auth.loginWithUsername = false\n }\n\n if (!collection?.admin?.useAsTitle) {\n sanitized.admin!.useAsTitle = sanitized.auth.loginWithUsername ? 'username' : 'email'\n }\n\n sanitized.fields = mergeBaseFields(sanitized.fields, getBaseAuthFields(sanitized.auth))\n }\n\n if (collection?.admin?.pagination?.limits?.length) {\n sanitized.admin!.pagination!.limits = collection.admin.pagination.limits\n }\n\n validateUseAsTitle(sanitized)\n\n const sanitizedConfig = sanitized as SanitizedCollectionConfig\n\n sanitizedConfig.joins = joins\n sanitizedConfig.polymorphicJoins = polymorphicJoins\n\n sanitizedConfig.flattenedFields = flattenAllFields({ fields: sanitizedConfig.fields })\n\n sanitizedConfig.sanitizedIndexes = sanitizeCompoundIndexes({\n fields: sanitizedConfig.flattenedFields,\n indexes: sanitizedConfig.indexes,\n })\n\n return sanitizedConfig\n}\n"],"names":["authCollectionEndpoints","getBaseAuthFields","TimestampsRequired","sanitizeFields","fieldAffectsData","mergeBaseFields","buildFoldersHierarchy","buildTagsHierarchy","sanitizeHierarchyCollection","uploadCollectionEndpoints","getBaseUploadFields","flattenAllFields","formatLabels","miniChalk","traverseForLocalizedFields","baseVersionFields","versionDefaults","defaultCollectionEndpoints","addDefaultsToAuthConfig","addDefaultsToCollectionConfig","addDefaultsToLoginWithUsernameConfig","sanitizeCompoundIndexes","validateUseAsTitle","warnOnInvalidCustomViews","collection","views","admin","components","key","view","Object","entries","console","warn","slug","sanitizeCollection","config","richTextSanitizationPromises","_validRelationships","orderableJoins","_sanitized","sanitized","presetCount","folders","tags","hierarchy","filter","Boolean","length","Error","labels","plural","singular","sidebarTabEnabled","injectSidebarTab","group","undefined","validRelationships","collections","map","c","joins","polymorphicJoins","fields","collectionConfig","joinPath","parentIsLocalized","endpoints","auth","endpoint","push","upload","timestamps","hasUpdatedAt","hasCreatedAt","hasDeletedAt","some","field","name","trash","type","disabled","bulkEdit","hidden","index","label","t","defaultLabels","versions","drafts","maxPerDoc","autosave","validate","hasLocalizedFields","localization","localizeStatus","experimental","log","yellowBold","interval","autosaveInterval","localized","cacheTags","bulkUpload","staticDir","useAsTitle","uploadFields","disableDuplicate","loginWithUsername","loginWithUsernameWithDefaults","allowEmailLogin","requireUsername","pagination","limits","sanitizedConfig","flattenedFields","sanitizedIndexes","indexes"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/collections/config/sanitize.ts"],"sourcesContent":["import type { Config, SanitizedConfig } from '../../config/types.js'\nimport type { OrderableJoinInfo } from '../../fields/config/sanitizeJoinField.js'\nimport type { SanitizedDrafts } from '../../versions/types.js'\nimport type {\n CollectionConfig,\n SanitizedCollectionConfig,\n SanitizedJoin,\n SanitizedJoins,\n} from './types.js'\n\nimport { authCollectionEndpoints } from '../../auth/endpoints/index.js'\nimport { getBaseAuthFields } from '../../auth/getAuthFields.js'\nimport { TimestampsRequired } from '../../errors/TimestampsRequired.js'\nimport { sanitizeFields } from '../../fields/config/sanitize.js'\nimport { fieldAffectsData } from '../../fields/config/types.js'\nimport { mergeBaseFields } from '../../fields/mergeBaseFields.js'\nimport { buildFoldersHierarchy, buildTagsHierarchy } from '../../hierarchy/presets.js'\nimport { sanitizeHierarchyCollection } from '../../hierarchy/sanitizeHierarchyCollection.js'\nimport { uploadCollectionEndpoints } from '../../uploads/endpoints/index.js'\nimport { getBaseUploadFields } from '../../uploads/getBaseFields.js'\nimport { flattenAllFields } from '../../utilities/flattenAllFields.js'\nimport { formatLabels } from '../../utilities/formatLabels.js'\nimport { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js'\nimport { baseVersionFields } from '../../versions/baseFields.js'\nimport { versionDefaults } from '../../versions/defaults.js'\nimport { defaultCollectionEndpoints } from '../endpoints/index.js'\nimport {\n addDefaultsToAuthConfig,\n addDefaultsToCollectionConfig,\n addDefaultsToLoginWithUsernameConfig,\n} from './defaults.js'\nimport { sanitizeCompoundIndexes } from './sanitizeCompoundIndexes.js'\nimport { validateUseAsTitle } from './useAsTitle.js'\n\n/**\n * Warns at startup when custom collection views are misconfigured with a missing `path`.\n * Views without `path` will never be matched by the router and are silently ignored.\n */\nexport const warnOnInvalidCustomViews = (collection: CollectionConfig): void => {\n const views = collection.admin?.components?.views\n if (!views || typeof views !== 'object') {\n return\n }\n\n for (const [key, view] of Object.entries(views)) {\n if (key === 'edit' || key === 'list') {\n continue\n }\n\n if (view && typeof view === 'object' && 'Component' in view && !('path' in view)) {\n console.warn(\n `[Payload] Custom collection view \"${key}\" in collection \"${collection.slug}\" is missing a \"path\" property. The view will never be rendered.`,\n )\n }\n\n if (view && typeof view === 'object' && 'path' in view && !('Component' in view)) {\n console.warn(\n `[Payload] Custom collection view \"${key}\" in collection \"${collection.slug}\" has a \"path\" but is missing a \"Component\". The view will never be rendered.`,\n )\n }\n }\n}\n\nexport const sanitizeCollection = async (\n config: Config,\n collection: CollectionConfig,\n /**\n * If this property is set, RichText fields won't be sanitized immediately. Instead, they will be added to this array as promises\n * so that you can sanitize them together, after the config has been sanitized.\n */\n richTextSanitizationPromises?: Array<(config: SanitizedConfig) => Promise<void>>,\n _validRelationships?: string[],\n /**\n * Tracker for orderable join fields - populated during sanitization\n */\n orderableJoins?: OrderableJoinInfo[],\n): Promise<SanitizedCollectionConfig> => {\n if (collection._sanitized) {\n return collection as SanitizedCollectionConfig\n }\n\n collection._sanitized = true\n\n warnOnInvalidCustomViews(collection)\n\n // /////////////////////////////////\n // Make copy of collection config\n // /////////////////////////////////\n\n const sanitized: CollectionConfig = addDefaultsToCollectionConfig(collection)\n\n // /////////////////////////////////\n // Convert folders/tags to hierarchy\n // /////////////////////////////////\n\n const presetCount = [sanitized.folders, sanitized.tags, sanitized.hierarchy].filter(\n Boolean,\n ).length\n if (presetCount > 1) {\n throw new Error(\n `Collection \"${sanitized.slug}\": Only one of 'folders', 'tags', or 'hierarchy' can be specified`,\n )\n }\n\n if (sanitized.folders) {\n sanitized.labels = {\n plural: 'Folders',\n singular: 'Folder',\n ...sanitized.labels,\n }\n sanitized.hierarchy = buildFoldersHierarchy(sanitized.folders, sanitized.slug)\n // Set admin.group: false when sidebar tab enabled (folders accessed via tab)\n const sidebarTabEnabled =\n typeof sanitized.hierarchy === 'object' &&\n sanitized.hierarchy.admin?.injectSidebarTab !== false\n if (sidebarTabEnabled && sanitized.admin!.group === undefined) {\n sanitized.admin!.group = false\n }\n delete sanitized.folders\n }\n\n if (sanitized.tags) {\n sanitized.labels = {\n plural: 'Tags',\n singular: 'Tag',\n ...sanitized.labels,\n }\n sanitized.hierarchy = buildTagsHierarchy(sanitized.tags, sanitized.slug)\n // Tags also hidden from nav by default\n if (sanitized.admin!.group === undefined) {\n sanitized.admin!.group = false\n }\n delete sanitized.tags\n }\n\n // /////////////////////////////////\n // Sanitize fields\n // /////////////////////////////////\n\n const validRelationships = _validRelationships ?? config.collections!.map((c) => c.slug) ?? []\n\n const joins: SanitizedJoins = {}\n\n const polymorphicJoins: SanitizedJoin[] = []\n\n sanitized.fields = await sanitizeFields({\n collectionConfig: sanitized,\n config,\n fields: sanitized.fields,\n joinPath: '',\n joins,\n orderableJoins,\n parentIsLocalized: false,\n polymorphicJoins,\n richTextSanitizationPromises,\n validRelationships,\n })\n\n if (sanitized.endpoints !== false) {\n if (!sanitized.endpoints) {\n sanitized.endpoints = []\n }\n\n if (sanitized.auth) {\n for (const endpoint of authCollectionEndpoints) {\n sanitized.endpoints.push(endpoint)\n }\n }\n\n if (sanitized.upload) {\n for (const endpoint of uploadCollectionEndpoints) {\n sanitized.endpoints.push(endpoint)\n }\n }\n\n for (const endpoint of defaultCollectionEndpoints) {\n sanitized.endpoints.push(endpoint)\n }\n }\n\n if (sanitized.timestamps !== false) {\n // add default timestamps fields only as needed\n let hasUpdatedAt: boolean | null = null\n let hasCreatedAt: boolean | null = null\n let hasDeletedAt: boolean | null = null\n\n sanitized.fields.some((field) => {\n if (fieldAffectsData(field)) {\n if (field.name === 'updatedAt') {\n hasUpdatedAt = true\n }\n\n if (field.name === 'createdAt') {\n hasCreatedAt = true\n }\n\n if (field.name === 'deletedAt') {\n hasDeletedAt = true\n }\n }\n\n return hasCreatedAt && hasUpdatedAt && (!sanitized.trash || hasDeletedAt)\n })\n\n if (!hasUpdatedAt) {\n sanitized.fields.push({\n name: 'updatedAt',\n type: 'date',\n admin: {\n disabled: { bulkEdit: true },\n hidden: true,\n },\n index: true,\n label: ({ t }) => t('general:updatedAt'),\n })\n }\n\n if (!hasCreatedAt) {\n sanitized.fields.push({\n name: 'createdAt',\n admin: {\n disabled: { bulkEdit: true },\n hidden: true,\n },\n // The default sort for list view is createdAt. Thus, enabling indexing by default, is a major performance improvement, especially for large or a large amount of collections.\n type: 'date',\n index: true,\n label: ({ t }) => t('general:createdAt'),\n })\n }\n\n if (sanitized.trash && !hasDeletedAt) {\n sanitized.fields.push({\n name: 'deletedAt',\n type: 'date',\n admin: {\n disabled: { bulkEdit: true },\n hidden: true,\n },\n index: true,\n label: ({ t }) => t('general:deletedAt'),\n })\n }\n }\n\n const defaultLabels = formatLabels(sanitized.slug)\n\n sanitized.labels = {\n plural: sanitized.labels?.plural || defaultLabels.plural,\n singular: sanitized.labels?.singular || defaultLabels.singular,\n }\n\n if (sanitized.versions) {\n if (sanitized.timestamps === false) {\n throw new TimestampsRequired(collection)\n }\n\n if (sanitized.versions === true) {\n sanitized.versions = {\n drafts: false,\n maxPerDoc: 100,\n }\n }\n\n sanitized.versions.maxPerDoc =\n typeof sanitized.versions.maxPerDoc === 'number' ? sanitized.versions.maxPerDoc : 100\n\n if (sanitized.versions.drafts) {\n if (sanitized.versions.drafts === true) {\n sanitized.versions.drafts = {\n autosave: false,\n validate: false,\n }\n }\n\n const hasLocalizedFields = traverseForLocalizedFields(sanitized.fields)\n\n // Auto-enable per-locale status when localization is configured and the collection has localized fields.\n ;(sanitized.versions.drafts as SanitizedDrafts).localizeStatus = !!(\n config.localization && hasLocalizedFields\n )\n\n if (sanitized.versions.drafts.autosave === true) {\n sanitized.versions.drafts.autosave = {\n interval: versionDefaults.autosaveInterval,\n }\n }\n\n if (sanitized.versions.drafts.validate === undefined) {\n sanitized.versions.drafts.validate = false\n }\n\n sanitized.fields = mergeBaseFields(\n sanitized.fields,\n baseVersionFields({\n localized: (sanitized.versions.drafts as SanitizedDrafts).localizeStatus ?? false,\n }),\n )\n }\n } else {\n delete sanitized.versions\n }\n\n // Sanitize hierarchy configuration (phase 1 - per collection)\n sanitizeHierarchyCollection(sanitized, config)\n\n if (sanitized.upload) {\n if (sanitized.upload === true) {\n sanitized.upload = {}\n }\n\n sanitized.upload.cacheTags = sanitized.upload?.cacheTags ?? true\n sanitized.upload.bulkUpload = sanitized.upload?.bulkUpload ?? true\n sanitized.upload.staticDir = sanitized.upload.staticDir || sanitized.slug\n sanitized.admin!.useAsTitle =\n sanitized.admin?.useAsTitle && sanitized.admin.useAsTitle !== 'id'\n ? sanitized.admin.useAsTitle\n : 'filename'\n\n const uploadFields = getBaseUploadFields({\n collection: sanitized,\n config,\n })\n\n sanitized.fields = mergeBaseFields(sanitized.fields, uploadFields)\n }\n\n if (sanitized.auth) {\n sanitized.auth = addDefaultsToAuthConfig(\n typeof sanitized.auth === 'boolean' ? {} : sanitized.auth,\n )\n\n // disable duplicate for auth enabled collections by default\n sanitized.disableDuplicate = sanitized.disableDuplicate ?? true\n\n if (sanitized.auth.loginWithUsername) {\n if (sanitized.auth.loginWithUsername === true) {\n sanitized.auth.loginWithUsername = addDefaultsToLoginWithUsernameConfig({})\n } else {\n const loginWithUsernameWithDefaults = addDefaultsToLoginWithUsernameConfig(\n sanitized.auth.loginWithUsername,\n )\n\n // if allowEmailLogin is false, requireUsername must be true\n if (loginWithUsernameWithDefaults.allowEmailLogin === false) {\n loginWithUsernameWithDefaults.requireUsername = true\n }\n sanitized.auth.loginWithUsername = loginWithUsernameWithDefaults\n }\n } else {\n sanitized.auth.loginWithUsername = false\n }\n\n if (!collection?.admin?.useAsTitle) {\n sanitized.admin!.useAsTitle = sanitized.auth.loginWithUsername ? 'username' : 'email'\n }\n\n sanitized.fields = mergeBaseFields(sanitized.fields, getBaseAuthFields(sanitized.auth))\n }\n\n if (collection?.admin?.pagination?.limits?.length) {\n sanitized.admin!.pagination!.limits = collection.admin.pagination.limits\n }\n\n validateUseAsTitle(sanitized)\n\n const sanitizedConfig = sanitized as SanitizedCollectionConfig\n\n sanitizedConfig.joins = joins\n sanitizedConfig.polymorphicJoins = polymorphicJoins\n\n sanitizedConfig.flattenedFields = flattenAllFields({ fields: sanitizedConfig.fields })\n\n sanitizedConfig.sanitizedIndexes = sanitizeCompoundIndexes({\n fields: sanitizedConfig.flattenedFields,\n indexes: sanitizedConfig.indexes,\n })\n\n return sanitizedConfig\n}\n"],"names":["authCollectionEndpoints","getBaseAuthFields","TimestampsRequired","sanitizeFields","fieldAffectsData","mergeBaseFields","buildFoldersHierarchy","buildTagsHierarchy","sanitizeHierarchyCollection","uploadCollectionEndpoints","getBaseUploadFields","flattenAllFields","formatLabels","traverseForLocalizedFields","baseVersionFields","versionDefaults","defaultCollectionEndpoints","addDefaultsToAuthConfig","addDefaultsToCollectionConfig","addDefaultsToLoginWithUsernameConfig","sanitizeCompoundIndexes","validateUseAsTitle","warnOnInvalidCustomViews","collection","views","admin","components","key","view","Object","entries","console","warn","slug","sanitizeCollection","config","richTextSanitizationPromises","_validRelationships","orderableJoins","_sanitized","sanitized","presetCount","folders","tags","hierarchy","filter","Boolean","length","Error","labels","plural","singular","sidebarTabEnabled","injectSidebarTab","group","undefined","validRelationships","collections","map","c","joins","polymorphicJoins","fields","collectionConfig","joinPath","parentIsLocalized","endpoints","auth","endpoint","push","upload","timestamps","hasUpdatedAt","hasCreatedAt","hasDeletedAt","some","field","name","trash","type","disabled","bulkEdit","hidden","index","label","t","defaultLabels","versions","drafts","maxPerDoc","autosave","validate","hasLocalizedFields","localizeStatus","localization","interval","autosaveInterval","localized","cacheTags","bulkUpload","staticDir","useAsTitle","uploadFields","disableDuplicate","loginWithUsername","loginWithUsernameWithDefaults","allowEmailLogin","requireUsername","pagination","limits","sanitizedConfig","flattenedFields","sanitizedIndexes","indexes"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sanitizeCompoundIndexes.d.ts","sourceRoot":"","sources":["../../../src/collections/config/sanitizeCompoundIndexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAKvE,eAAO,MAAM,uBAAuB,GAAI,sBAGrC;IACD,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,OAAO,EAAE,aAAa,EAAE,CAAA;CACzB,KAAG,sBAAsB,EA2BzB,CAAA"}
1
+ {"version":3,"file":"sanitizeCompoundIndexes.d.ts","sourceRoot":"","sources":["../../../src/collections/config/sanitizeCompoundIndexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAKvE,eAAO,MAAM,uBAAuB,yBAGjC;IACD,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,OAAO,EAAE,aAAa,EAAE,CAAA;CACzB,KAAG,sBAAsB,EA2BzB,CAAA"}
@@ -3,7 +3,7 @@ import type { DeepRequired, IsAny, MarkOptional } from 'ts-essentials';
3
3
  import type { CustomUpload, ViewTypes } from '../../admin/types.js';
4
4
  import type { Arguments as MeArguments } from '../../auth/operations/me.js';
5
5
  import type { Arguments as RefreshArguments, Result as RefreshResult } from '../../auth/operations/refresh.js';
6
- import type { Auth, ClientUser, IncomingAuthType } from '../../auth/types.js';
6
+ import type { Auth, IncomingAuthType } from '../../auth/types.js';
7
7
  import type { Access, AfterErrorHookArgs, AfterErrorResult, CustomComponent, Endpoint, EntityDescription, GeneratePreviewURL, LabelFunction, LivePreviewConfig, MetaConfig, PayloadComponent, SharedAdminComponents, SharedEditViewComponents, SharedEntityViews, StaticLabel } from '../../config/types.js';
8
8
  import type { DBIdentifierName } from '../../database/types.js';
9
9
  import type { Field, FlattenedField, JoinField, RelationshipField, UploadField } from '../../fields/config/types.js';
@@ -14,6 +14,12 @@ import type { SanitizedUploadConfig, UploadConfig } from '../../uploads/types.js
14
14
  import type { IncomingCollectionVersions, SanitizedCollectionVersions } from '../../versions/types.js';
15
15
  import type { AfterOperationArg, BeforeOperationArg, OperationMap } from '../operations/utilities/types.js';
16
16
  export type DataFromCollectionSlug<TSlug extends CollectionSlug> = TypedCollection[TSlug];
17
+ /**
18
+ * The ID type of a given collection (e.g. `string` or `number`), taken from its generated type.
19
+ * Use this instead of the project-wide {@link DefaultDocumentIDType} when the collection slug is
20
+ * known, since each collection can have its own ID type.
21
+ */
22
+ export type IDTypeForCollectionSlug<TSlug extends CollectionSlug> = DataFromCollectionSlug<TSlug>['id'];
17
23
  export type SelectFromCollectionSlug<TSlug extends CollectionSlug> = TypedCollectionSelect[TSlug];
18
24
  /**
19
25
  * Collection slugs that do not have drafts enabled.
@@ -312,6 +318,7 @@ export type CollectionAdminOptions = {
312
318
  list?: {
313
319
  actions?: CustomComponent[];
314
320
  Component?: PayloadComponent;
321
+ NoResults?: CustomComponent;
315
322
  };
316
323
  } & SharedEntityViews;
317
324
  } & Omit<SharedAdminComponents, 'edit' | 'views'>;
@@ -360,18 +367,11 @@ export type CollectionAdminOptions = {
360
367
  * - Set to `false` to exclude the entity from the sidebar / dashboard without disabling its routes.
361
368
  */
362
369
  group?: false | Record<string, string> | string;
363
- /**
364
- * @description Enable grouping by a field in the list view.
365
- * Uses `payload.findDistinct` under the hood to populate the group-by options.
366
- *
367
- * @experimental This option is currently in beta and may change in future releases. Use at your own risk.
368
- */
369
- groupBy?: boolean;
370
370
  /**
371
371
  * Exclude the collection from the admin nav and routes
372
372
  */
373
373
  hidden?: ((args: {
374
- user: ClientUser;
374
+ user: PayloadRequest['user'];
375
375
  }) => boolean) | boolean;
376
376
  /**
377
377
  * Additional fields to be searched via the full text search
@@ -443,6 +443,10 @@ export type CollectionConfig<TSlug extends CollectionSlug = any> = {
443
443
  * Default field to sort by in collection list view
444
444
  */
445
445
  defaultSort?: Sort;
446
+ /**
447
+ * Disable the bulk delete operation for the collection in the admin panel and the API
448
+ */
449
+ disableBulkDelete?: boolean;
446
450
  /**
447
451
  * Disable the bulk edit operation for the collection in the admin panel and the API
448
452
  */