payload 4.0.0-internal.5f0cd13 → 4.0.0-internal.63f8536

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 (541) hide show
  1. package/LICENSE.md +1 -1
  2. package/bin.js +11 -0
  3. package/dist/admin/RichText.d.ts +2 -2
  4. package/dist/admin/RichText.d.ts.map +1 -1
  5. package/dist/admin/RichText.js.map +1 -1
  6. package/dist/admin/adapters/devReload.d.ts +9 -0
  7. package/dist/admin/adapters/devReload.d.ts.map +1 -0
  8. package/dist/admin/adapters/devReload.js +6 -0
  9. package/dist/admin/adapters/devReload.js.map +1 -0
  10. package/dist/admin/adapters/index.d.ts +3 -0
  11. package/dist/admin/adapters/index.d.ts.map +1 -1
  12. package/dist/admin/adapters/index.js.map +1 -1
  13. package/dist/admin/adapters/render.d.ts +16 -0
  14. package/dist/admin/adapters/render.d.ts.map +1 -0
  15. package/dist/admin/adapters/render.js +7 -0
  16. package/dist/admin/adapters/render.js.map +1 -0
  17. package/dist/admin/adapters/views.d.ts +36 -0
  18. package/dist/admin/adapters/views.d.ts.map +1 -0
  19. package/dist/admin/adapters/views.js +7 -0
  20. package/dist/admin/adapters/views.js.map +1 -0
  21. package/dist/admin/fields/Row.d.ts +2 -2
  22. package/dist/admin/fields/Row.d.ts.map +1 -1
  23. package/dist/admin/fields/Row.js.map +1 -1
  24. package/dist/admin/forms/Description.d.ts +2 -2
  25. package/dist/admin/forms/Description.d.ts.map +1 -1
  26. package/dist/admin/forms/Description.js.map +1 -1
  27. package/dist/admin/forms/Field.d.ts +10 -5
  28. package/dist/admin/forms/Field.d.ts.map +1 -1
  29. package/dist/admin/forms/Field.js.map +1 -1
  30. package/dist/admin/functions/index.d.ts +10 -1
  31. package/dist/admin/functions/index.d.ts.map +1 -1
  32. package/dist/admin/functions/index.js.map +1 -1
  33. package/dist/admin/types.d.ts +3 -2
  34. package/dist/admin/types.d.ts.map +1 -1
  35. package/dist/admin/types.js.map +1 -1
  36. package/dist/admin/views/dashboard.d.ts +7 -0
  37. package/dist/admin/views/dashboard.d.ts.map +1 -1
  38. package/dist/admin/views/dashboard.js.map +1 -1
  39. package/dist/admin/views/document.d.ts +5 -3
  40. package/dist/admin/views/document.d.ts.map +1 -1
  41. package/dist/admin/views/document.js.map +1 -1
  42. package/dist/admin/views/list.d.ts +5 -0
  43. package/dist/admin/views/list.d.ts.map +1 -1
  44. package/dist/admin/views/list.js.map +1 -1
  45. package/dist/auth/baseFields/apiKey.d.ts +10 -2
  46. package/dist/auth/baseFields/apiKey.d.ts.map +1 -1
  47. package/dist/auth/baseFields/apiKey.js +35 -24
  48. package/dist/auth/baseFields/apiKey.js.map +1 -1
  49. package/dist/auth/defaultAccess.d.ts +1 -1
  50. package/dist/auth/defaultAccess.d.ts.map +1 -1
  51. package/dist/auth/defaultAccess.js +1 -1
  52. package/dist/auth/defaultAccess.js.map +1 -1
  53. package/dist/auth/defaultUser.d.ts.map +1 -1
  54. package/dist/auth/defaultUser.js +2 -1
  55. package/dist/auth/defaultUser.js.map +1 -1
  56. package/dist/auth/getAuthFields.js +2 -2
  57. package/dist/auth/getAuthFields.js.map +1 -1
  58. package/dist/auth/operations/auth.d.ts +2 -2
  59. package/dist/auth/operations/auth.d.ts.map +1 -1
  60. package/dist/auth/operations/auth.js.map +1 -1
  61. package/dist/auth/operations/login.d.ts +2 -1
  62. package/dist/auth/operations/login.d.ts.map +1 -1
  63. package/dist/auth/operations/login.js.map +1 -1
  64. package/dist/auth/operations/me.js.map +1 -1
  65. package/dist/auth/operations/refresh.d.ts.map +1 -1
  66. package/dist/auth/operations/refresh.js +9 -3
  67. package/dist/auth/operations/refresh.js.map +1 -1
  68. package/dist/auth/operations/resetPassword.d.ts.map +1 -1
  69. package/dist/auth/operations/resetPassword.js.map +1 -1
  70. package/dist/auth/sendVerificationEmail.d.ts +2 -2
  71. package/dist/auth/sendVerificationEmail.d.ts.map +1 -1
  72. package/dist/auth/sendVerificationEmail.js +1 -1
  73. package/dist/auth/sendVerificationEmail.js.map +1 -1
  74. package/dist/auth/sessions.d.ts +4 -5
  75. package/dist/auth/sessions.d.ts.map +1 -1
  76. package/dist/auth/sessions.js +5 -3
  77. package/dist/auth/sessions.js.map +1 -1
  78. package/dist/auth/strategies/apiKey.js.map +1 -1
  79. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts +2 -2
  80. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts.map +1 -1
  81. package/dist/auth/strategies/local/incrementLoginAttempts.js +1 -1
  82. package/dist/auth/strategies/local/incrementLoginAttempts.js.map +1 -1
  83. package/dist/auth/types.d.ts +28 -21
  84. package/dist/auth/types.d.ts.map +1 -1
  85. package/dist/auth/types.js.map +1 -1
  86. package/dist/bin/build.d.ts +25 -0
  87. package/dist/bin/build.d.ts.map +1 -0
  88. package/dist/bin/build.js +80 -0
  89. package/dist/bin/build.js.map +1 -0
  90. package/dist/bin/build.spec.js +170 -0
  91. package/dist/bin/build.spec.js.map +1 -0
  92. package/dist/bin/generateImportMap/index.d.ts.map +1 -1
  93. package/dist/bin/generateImportMap/index.js +8 -5
  94. package/dist/bin/generateImportMap/index.js.map +1 -1
  95. package/dist/bin/generateImportMap/iterateCollections.d.ts.map +1 -1
  96. package/dist/bin/generateImportMap/iterateCollections.js +11 -0
  97. package/dist/bin/generateImportMap/iterateCollections.js.map +1 -1
  98. package/dist/bin/generateImportMap/iterateConfig.d.ts.map +1 -1
  99. package/dist/bin/generateImportMap/iterateConfig.js +12 -0
  100. package/dist/bin/generateImportMap/iterateConfig.js.map +1 -1
  101. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.d.ts +5 -1
  102. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.d.ts.map +1 -1
  103. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.js +32 -18
  104. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.js.map +1 -1
  105. package/dist/bin/generateTypes.d.ts +3 -2
  106. package/dist/bin/generateTypes.d.ts.map +1 -1
  107. package/dist/bin/generateTypes.js +4 -0
  108. package/dist/bin/generateTypes.js.map +1 -1
  109. package/dist/bin/index.d.ts.map +1 -1
  110. package/dist/bin/index.js +9 -0
  111. package/dist/bin/index.js.map +1 -1
  112. package/dist/bin/loadEnv.d.ts +3 -1
  113. package/dist/bin/loadEnv.d.ts.map +1 -1
  114. package/dist/bin/loadEnv.js +40 -10
  115. package/dist/bin/loadEnv.js.map +1 -1
  116. package/dist/collections/config/client.d.ts +1 -1
  117. package/dist/collections/config/client.d.ts.map +1 -1
  118. package/dist/collections/config/client.js +1 -0
  119. package/dist/collections/config/client.js.map +1 -1
  120. package/dist/collections/config/defaults.d.ts +0 -4
  121. package/dist/collections/config/defaults.d.ts.map +1 -1
  122. package/dist/collections/config/defaults.js +2 -17
  123. package/dist/collections/config/defaults.js.map +1 -1
  124. package/dist/collections/config/defaults.spec.js +47 -0
  125. package/dist/collections/config/defaults.spec.js.map +1 -0
  126. package/dist/collections/config/sanitize.d.ts.map +1 -1
  127. package/dist/collections/config/sanitize.js +1 -11
  128. package/dist/collections/config/sanitize.js.map +1 -1
  129. package/dist/collections/config/types.d.ts +11 -7
  130. package/dist/collections/config/types.d.ts.map +1 -1
  131. package/dist/collections/config/types.js.map +1 -1
  132. package/dist/collections/endpoints/create.d.ts.map +1 -1
  133. package/dist/collections/endpoints/create.js +0 -2
  134. package/dist/collections/endpoints/create.js.map +1 -1
  135. package/dist/collections/endpoints/updateByID.d.ts.map +1 -1
  136. package/dist/collections/endpoints/updateByID.js +1 -2
  137. package/dist/collections/endpoints/updateByID.js.map +1 -1
  138. package/dist/collections/operations/count.d.ts.map +1 -1
  139. package/dist/collections/operations/count.js +1 -0
  140. package/dist/collections/operations/count.js.map +1 -1
  141. package/dist/collections/operations/create.d.ts +0 -1
  142. package/dist/collections/operations/create.d.ts.map +1 -1
  143. package/dist/collections/operations/create.js +15 -6
  144. package/dist/collections/operations/create.js.map +1 -1
  145. package/dist/collections/operations/delete.d.ts.map +1 -1
  146. package/dist/collections/operations/delete.js +3 -0
  147. package/dist/collections/operations/delete.js.map +1 -1
  148. package/dist/collections/operations/findDistinct.d.ts.map +1 -1
  149. package/dist/collections/operations/findDistinct.js +1 -0
  150. package/dist/collections/operations/findDistinct.js.map +1 -1
  151. package/dist/collections/operations/local/count.d.ts +3 -3
  152. package/dist/collections/operations/local/count.d.ts.map +1 -1
  153. package/dist/collections/operations/local/count.js.map +1 -1
  154. package/dist/collections/operations/local/countVersions.d.ts +3 -3
  155. package/dist/collections/operations/local/countVersions.d.ts.map +1 -1
  156. package/dist/collections/operations/local/countVersions.js.map +1 -1
  157. package/dist/collections/operations/local/create.d.ts +3 -3
  158. package/dist/collections/operations/local/create.d.ts.map +1 -1
  159. package/dist/collections/operations/local/create.js.map +1 -1
  160. package/dist/collections/operations/local/delete.d.ts +3 -3
  161. package/dist/collections/operations/local/delete.d.ts.map +1 -1
  162. package/dist/collections/operations/local/delete.js.map +1 -1
  163. package/dist/collections/operations/local/duplicate.d.ts +3 -3
  164. package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
  165. package/dist/collections/operations/local/duplicate.js.map +1 -1
  166. package/dist/collections/operations/local/find.d.ts +3 -3
  167. package/dist/collections/operations/local/find.d.ts.map +1 -1
  168. package/dist/collections/operations/local/find.js.map +1 -1
  169. package/dist/collections/operations/local/findByID.d.ts +3 -3
  170. package/dist/collections/operations/local/findByID.d.ts.map +1 -1
  171. package/dist/collections/operations/local/findByID.js.map +1 -1
  172. package/dist/collections/operations/local/findDistinct.d.ts +2 -2
  173. package/dist/collections/operations/local/findDistinct.d.ts.map +1 -1
  174. package/dist/collections/operations/local/findDistinct.js.map +1 -1
  175. package/dist/collections/operations/local/findVersionByID.d.ts +3 -3
  176. package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
  177. package/dist/collections/operations/local/findVersionByID.js.map +1 -1
  178. package/dist/collections/operations/local/findVersions.d.ts +3 -3
  179. package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
  180. package/dist/collections/operations/local/findVersions.js.map +1 -1
  181. package/dist/collections/operations/local/restoreVersion.d.ts +3 -3
  182. package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
  183. package/dist/collections/operations/local/restoreVersion.js.map +1 -1
  184. package/dist/collections/operations/local/update.d.ts +7 -11
  185. package/dist/collections/operations/local/update.d.ts.map +1 -1
  186. package/dist/collections/operations/local/update.js +1 -2
  187. package/dist/collections/operations/local/update.js.map +1 -1
  188. package/dist/collections/operations/update.d.ts +0 -1
  189. package/dist/collections/operations/update.d.ts.map +1 -1
  190. package/dist/collections/operations/update.js +8 -4
  191. package/dist/collections/operations/update.js.map +1 -1
  192. package/dist/collections/operations/updateByID.d.ts +0 -1
  193. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  194. package/dist/collections/operations/updateByID.js +1 -5
  195. package/dist/collections/operations/updateByID.js.map +1 -1
  196. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.d.ts +9 -0
  197. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.d.ts.map +1 -0
  198. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.js +170 -0
  199. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.js.map +1 -0
  200. package/dist/collections/operations/utilities/types.d.ts +0 -9
  201. package/dist/collections/operations/utilities/types.d.ts.map +1 -1
  202. package/dist/collections/operations/utilities/types.js.map +1 -1
  203. package/dist/collections/operations/utilities/update.d.ts +1 -2
  204. package/dist/collections/operations/utilities/update.d.ts.map +1 -1
  205. package/dist/collections/operations/utilities/update.js +64 -65
  206. package/dist/collections/operations/utilities/update.js.map +1 -1
  207. package/dist/config/client.d.ts +2 -2
  208. package/dist/config/client.d.ts.map +1 -1
  209. package/dist/config/client.js.map +1 -1
  210. package/dist/config/defaults.d.ts +0 -4
  211. package/dist/config/defaults.d.ts.map +1 -1
  212. package/dist/config/defaults.js +0 -78
  213. package/dist/config/defaults.js.map +1 -1
  214. package/dist/config/definePlugin.d.ts +10 -10
  215. package/dist/config/definePlugin.d.ts.map +1 -1
  216. package/dist/config/definePlugin.js +7 -11
  217. package/dist/config/definePlugin.js.map +1 -1
  218. package/dist/config/orderable/index.d.ts.map +1 -1
  219. package/dist/config/orderable/index.js +23 -0
  220. package/dist/config/orderable/index.js.map +1 -1
  221. package/dist/config/sanitize.d.ts.map +1 -1
  222. package/dist/config/sanitize.js +137 -13
  223. package/dist/config/sanitize.js.map +1 -1
  224. package/dist/config/types.d.ts +57 -19
  225. package/dist/config/types.d.ts.map +1 -1
  226. package/dist/config/types.js +2 -0
  227. package/dist/config/types.js.map +1 -1
  228. package/dist/database/getLocalizedPaths.d.ts.map +1 -1
  229. package/dist/database/getLocalizedPaths.js +1 -1
  230. package/dist/database/getLocalizedPaths.js.map +1 -1
  231. package/dist/database/migrations/migrationsCollection.d.ts.map +1 -1
  232. package/dist/database/migrations/migrationsCollection.js +2 -1
  233. package/dist/database/migrations/migrationsCollection.js.map +1 -1
  234. package/dist/errors/ValidationError.d.ts +1 -0
  235. package/dist/errors/ValidationError.d.ts.map +1 -1
  236. package/dist/errors/ValidationError.js.map +1 -1
  237. package/dist/exports/internal.d.ts +1 -0
  238. package/dist/exports/internal.d.ts.map +1 -1
  239. package/dist/exports/internal.js +1 -0
  240. package/dist/exports/internal.js.map +1 -1
  241. package/dist/exports/migrations.d.ts +5 -13
  242. package/dist/exports/migrations.d.ts.map +1 -1
  243. package/dist/exports/migrations.js +5 -13
  244. package/dist/exports/migrations.js.map +1 -1
  245. package/dist/exports/shared.d.ts +23 -2
  246. package/dist/exports/shared.d.ts.map +1 -1
  247. package/dist/exports/shared.js +22 -1
  248. package/dist/exports/shared.js.map +1 -1
  249. package/dist/fields/baseFields/slug/countVersions.d.ts.map +1 -1
  250. package/dist/fields/baseFields/slug/countVersions.js +6 -8
  251. package/dist/fields/baseFields/slug/countVersions.js.map +1 -1
  252. package/dist/fields/baseFields/slug/generateSlug.d.ts +14 -7
  253. package/dist/fields/baseFields/slug/generateSlug.d.ts.map +1 -1
  254. package/dist/fields/baseFields/slug/generateSlug.js +53 -73
  255. package/dist/fields/baseFields/slug/generateSlug.js.map +1 -1
  256. package/dist/fields/baseFields/slug/types.d.ts +14 -0
  257. package/dist/fields/baseFields/slug/types.d.ts.map +1 -0
  258. package/dist/fields/baseFields/slug/types.js +6 -0
  259. package/dist/fields/baseFields/slug/types.js.map +1 -0
  260. package/dist/fields/config/client.d.ts +3 -3
  261. package/dist/fields/config/client.d.ts.map +1 -1
  262. package/dist/fields/config/client.js +13 -13
  263. package/dist/fields/config/client.js.map +1 -1
  264. package/dist/fields/config/sanitize.d.ts.map +1 -1
  265. package/dist/fields/config/sanitize.js +40 -4
  266. package/dist/fields/config/sanitize.js.map +1 -1
  267. package/dist/fields/config/types.d.ts +49 -28
  268. package/dist/fields/config/types.d.ts.map +1 -1
  269. package/dist/fields/config/types.js.map +1 -1
  270. package/dist/fields/hooks/afterChange/promise.js +1 -1
  271. package/dist/fields/hooks/afterChange/promise.js.map +1 -1
  272. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
  273. package/dist/fields/hooks/afterRead/promise.js +13 -3
  274. package/dist/fields/hooks/afterRead/promise.js.map +1 -1
  275. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  276. package/dist/fields/hooks/beforeChange/promise.js +3 -3
  277. package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
  278. package/dist/fields/hooks/beforeDuplicate/promise.js +2 -2
  279. package/dist/fields/hooks/beforeDuplicate/promise.js.map +1 -1
  280. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  281. package/dist/fields/hooks/beforeValidate/promise.js +11 -2
  282. package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
  283. package/dist/fields/setDefaultBeforeDuplicate.js +1 -0
  284. package/dist/fields/setDefaultBeforeDuplicate.js.map +1 -1
  285. package/dist/fields/sortableFieldTypes.d.ts.map +1 -1
  286. package/dist/fields/sortableFieldTypes.js +1 -0
  287. package/dist/fields/sortableFieldTypes.js.map +1 -1
  288. package/dist/fields/validations.d.ts +4 -1
  289. package/dist/fields/validations.d.ts.map +1 -1
  290. package/dist/fields/validations.js +12 -4
  291. package/dist/fields/validations.js.map +1 -1
  292. package/dist/globals/config/sanitize.d.ts.map +1 -1
  293. package/dist/globals/config/sanitize.js +2 -6
  294. package/dist/globals/config/sanitize.js.map +1 -1
  295. package/dist/globals/config/sanitize.spec.js +43 -0
  296. package/dist/globals/config/sanitize.spec.js.map +1 -0
  297. package/dist/globals/endpoints/update.d.ts.map +1 -1
  298. package/dist/globals/endpoints/update.js +0 -2
  299. package/dist/globals/endpoints/update.js.map +1 -1
  300. package/dist/globals/operations/local/countVersions.d.ts +3 -3
  301. package/dist/globals/operations/local/countVersions.d.ts.map +1 -1
  302. package/dist/globals/operations/local/countVersions.js.map +1 -1
  303. package/dist/globals/operations/local/findOne.d.ts +3 -3
  304. package/dist/globals/operations/local/findOne.d.ts.map +1 -1
  305. package/dist/globals/operations/local/findOne.js.map +1 -1
  306. package/dist/globals/operations/local/findVersionByID.d.ts +3 -3
  307. package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
  308. package/dist/globals/operations/local/findVersionByID.js.map +1 -1
  309. package/dist/globals/operations/local/findVersions.d.ts +3 -3
  310. package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
  311. package/dist/globals/operations/local/findVersions.js.map +1 -1
  312. package/dist/globals/operations/local/restoreVersion.d.ts +3 -3
  313. package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
  314. package/dist/globals/operations/local/restoreVersion.js.map +1 -1
  315. package/dist/globals/operations/local/update.d.ts +7 -9
  316. package/dist/globals/operations/local/update.d.ts.map +1 -1
  317. package/dist/globals/operations/local/update.js +1 -2
  318. package/dist/globals/operations/local/update.js.map +1 -1
  319. package/dist/globals/operations/update.d.ts +0 -1
  320. package/dist/globals/operations/update.d.ts.map +1 -1
  321. package/dist/globals/operations/update.js +52 -58
  322. package/dist/globals/operations/update.js.map +1 -1
  323. package/dist/index.bundled.d.ts +595 -368
  324. package/dist/index.d.ts +71 -26
  325. package/dist/index.d.ts.map +1 -1
  326. package/dist/index.js +54 -37
  327. package/dist/index.js.map +1 -1
  328. package/dist/kv/adapters/DatabaseKVAdapter.d.ts.map +1 -1
  329. package/dist/kv/adapters/DatabaseKVAdapter.js +1 -0
  330. package/dist/kv/adapters/DatabaseKVAdapter.js.map +1 -1
  331. package/dist/locked-documents/config.d.ts.map +1 -1
  332. package/dist/locked-documents/config.js +2 -1
  333. package/dist/locked-documents/config.js.map +1 -1
  334. package/dist/preferences/config.d.ts.map +1 -1
  335. package/dist/preferences/config.js +2 -1
  336. package/dist/preferences/config.js.map +1 -1
  337. package/dist/preferences/keys.d.ts +4 -0
  338. package/dist/preferences/keys.d.ts.map +1 -1
  339. package/dist/preferences/keys.js +4 -1
  340. package/dist/preferences/keys.js.map +1 -1
  341. package/dist/preferences/types.d.ts +15 -0
  342. package/dist/preferences/types.d.ts.map +1 -1
  343. package/dist/preferences/types.js +3 -1
  344. package/dist/preferences/types.js.map +1 -1
  345. package/dist/query-presets/config.d.ts.map +1 -1
  346. package/dist/query-presets/config.js +75 -35
  347. package/dist/query-presets/config.js.map +1 -1
  348. package/dist/query-presets/constraints.d.ts.map +1 -1
  349. package/dist/query-presets/constraints.js +2 -1
  350. package/dist/query-presets/constraints.js.map +1 -1
  351. package/dist/queues/config/collection.d.ts.map +1 -1
  352. package/dist/queues/config/collection.js +2 -1
  353. package/dist/queues/config/collection.js.map +1 -1
  354. package/dist/queues/config/generateJobsJSONSchemas.js +2 -2
  355. package/dist/queues/config/generateJobsJSONSchemas.js.map +1 -1
  356. package/dist/queues/config/global.d.ts.map +1 -1
  357. package/dist/queues/config/global.js +2 -1
  358. package/dist/queues/config/global.js.map +1 -1
  359. package/dist/types/index.d.ts +8 -3
  360. package/dist/types/index.d.ts.map +1 -1
  361. package/dist/types/index.js.map +1 -1
  362. package/dist/uploads/generateFileData.d.ts +2 -1
  363. package/dist/uploads/generateFileData.d.ts.map +1 -1
  364. package/dist/uploads/generateFileData.js +5 -2
  365. package/dist/uploads/generateFileData.js.map +1 -1
  366. package/dist/uploads/matchMimeType.d.ts +8 -0
  367. package/dist/uploads/matchMimeType.d.ts.map +1 -0
  368. package/dist/uploads/matchMimeType.js +19 -0
  369. package/dist/uploads/matchMimeType.js.map +1 -0
  370. package/dist/uploads/matchMimeType.spec.js +66 -0
  371. package/dist/uploads/matchMimeType.spec.js.map +1 -0
  372. package/dist/uploads/safeFetch.d.ts.map +1 -1
  373. package/dist/uploads/safeFetch.js +11 -5
  374. package/dist/uploads/safeFetch.js.map +1 -1
  375. package/dist/uploads/types.d.ts +21 -0
  376. package/dist/uploads/types.d.ts.map +1 -1
  377. package/dist/uploads/types.js.map +1 -1
  378. package/dist/utilities/addDataAndFileToRequest.d.ts.map +1 -1
  379. package/dist/utilities/addDataAndFileToRequest.js +6 -0
  380. package/dist/utilities/addDataAndFileToRequest.js.map +1 -1
  381. package/dist/utilities/appendDateTimezoneSelectFields.js +2 -2
  382. package/dist/utilities/appendDateTimezoneSelectFields.js.map +1 -1
  383. package/dist/utilities/configToJSONSchema.d.ts +36 -2
  384. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  385. package/dist/utilities/configToJSONSchema.js +204 -84
  386. package/dist/utilities/configToJSONSchema.js.map +1 -1
  387. package/dist/utilities/configToJSONSchema.spec.js +534 -29
  388. package/dist/utilities/configToJSONSchema.spec.js.map +1 -1
  389. package/dist/utilities/createLocalReq.d.ts +2 -2
  390. package/dist/utilities/createLocalReq.d.ts.map +1 -1
  391. package/dist/utilities/createLocalReq.js.map +1 -1
  392. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  393. package/dist/utilities/createPayloadRequest.js +1 -0
  394. package/dist/utilities/createPayloadRequest.js.map +1 -1
  395. package/dist/utilities/deepCopyObject.d.ts.map +1 -1
  396. package/dist/utilities/deepCopyObject.js +8 -0
  397. package/dist/utilities/deepCopyObject.js.map +1 -1
  398. package/dist/utilities/dependencies/dependencyChecker.js +1 -1
  399. package/dist/utilities/dependencies/dependencyChecker.js.map +1 -1
  400. package/dist/utilities/dependencies/getDependencies.d.ts.map +1 -1
  401. package/dist/utilities/dependencies/getDependencies.js +5 -5
  402. package/dist/utilities/dependencies/getDependencies.js.map +1 -1
  403. package/dist/utilities/dynamicImport.js +1 -1
  404. package/dist/utilities/dynamicImport.js.map +1 -1
  405. package/dist/utilities/filterDataToSelectedLocales.d.ts.map +1 -1
  406. package/dist/utilities/filterDataToSelectedLocales.js +5 -12
  407. package/dist/utilities/filterDataToSelectedLocales.js.map +1 -1
  408. package/dist/utilities/filterDataToSelectedLocales.spec.js +1 -2
  409. package/dist/utilities/filterDataToSelectedLocales.spec.js.map +1 -1
  410. package/dist/utilities/flattenAllFields.d.ts.map +1 -1
  411. package/dist/utilities/flattenAllFields.js +7 -22
  412. package/dist/utilities/flattenAllFields.js.map +1 -1
  413. package/dist/utilities/formatErrors.d.ts.map +1 -1
  414. package/dist/utilities/formatErrors.js +3 -1
  415. package/dist/utilities/formatErrors.js.map +1 -1
  416. package/dist/utilities/getEntityPermissions/getEntityPermissions.d.ts.map +1 -1
  417. package/dist/utilities/getEntityPermissions/getEntityPermissions.js +2 -0
  418. package/dist/utilities/getEntityPermissions/getEntityPermissions.js.map +1 -1
  419. package/dist/utilities/getEntityPermissions/populateFieldPermissions.d.ts +7 -1
  420. package/dist/utilities/getEntityPermissions/populateFieldPermissions.d.ts.map +1 -1
  421. package/dist/utilities/getEntityPermissions/populateFieldPermissions.js +24 -7
  422. package/dist/utilities/getEntityPermissions/populateFieldPermissions.js.map +1 -1
  423. package/dist/utilities/getFieldByPath.d.ts.map +1 -1
  424. package/dist/utilities/getFieldByPath.js +1 -1
  425. package/dist/utilities/getFieldByPath.js.map +1 -1
  426. package/dist/utilities/getRequestLanguage.d.ts +2 -2
  427. package/dist/utilities/getRequestLanguage.d.ts.map +1 -1
  428. package/dist/utilities/getRequestLanguage.js.map +1 -1
  429. package/dist/utilities/getVersionsConfig.js.map +1 -1
  430. package/dist/utilities/handleEndpoints.d.ts.map +1 -1
  431. package/dist/utilities/handleEndpoints.js +7 -3
  432. package/dist/utilities/handleEndpoints.js.map +1 -1
  433. package/dist/utilities/isURLAllowed.d.ts.map +1 -1
  434. package/dist/utilities/isURLAllowed.js +9 -3
  435. package/dist/utilities/isURLAllowed.js.map +1 -1
  436. package/dist/utilities/isURLAllowed.spec.js +78 -0
  437. package/dist/utilities/isURLAllowed.spec.js.map +1 -0
  438. package/dist/utilities/mergeLocalizedData.d.ts +14 -4
  439. package/dist/utilities/mergeLocalizedData.d.ts.map +1 -1
  440. package/dist/utilities/mergeLocalizedData.js +54 -46
  441. package/dist/utilities/mergeLocalizedData.js.map +1 -1
  442. package/dist/utilities/mergeLocalizedData.spec.js +23 -23
  443. package/dist/utilities/mergeLocalizedData.spec.js.map +1 -1
  444. package/dist/utilities/parseParams/index.d.ts +2 -5
  445. package/dist/utilities/parseParams/index.d.ts.map +1 -1
  446. package/dist/utilities/parseParams/index.js.map +1 -1
  447. package/dist/utilities/parseParams/index.spec.js +0 -9
  448. package/dist/utilities/parseParams/index.spec.js.map +1 -1
  449. package/dist/utilities/telemetry/events/adminInit.d.ts.map +1 -1
  450. package/dist/utilities/telemetry/events/adminInit.js +2 -3
  451. package/dist/utilities/telemetry/events/adminInit.js.map +1 -1
  452. package/dist/utilities/telemetry/events/serverInit.d.ts.map +1 -1
  453. package/dist/utilities/telemetry/events/serverInit.js +2 -3
  454. package/dist/utilities/telemetry/events/serverInit.js.map +1 -1
  455. package/dist/utilities/telemetry/index.d.ts +14 -3
  456. package/dist/utilities/telemetry/index.d.ts.map +1 -1
  457. package/dist/utilities/telemetry/index.js +6 -1
  458. package/dist/utilities/telemetry/index.js.map +1 -1
  459. package/dist/utilities/telemetry/index.spec.js +43 -0
  460. package/dist/utilities/telemetry/index.spec.js.map +1 -0
  461. package/dist/utilities/transformColumnPreferences.js +4 -2
  462. package/dist/utilities/transformColumnPreferences.js.map +1 -1
  463. package/dist/utilities/traverseFields.d.ts.map +1 -1
  464. package/dist/utilities/traverseFields.js +2 -4
  465. package/dist/utilities/traverseFields.js.map +1 -1
  466. package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
  467. package/dist/utilities/traverseForLocalizedFields.js +3 -0
  468. package/dist/utilities/traverseForLocalizedFields.js.map +1 -1
  469. package/dist/versions/baseFields.d.ts +1 -2
  470. package/dist/versions/baseFields.d.ts.map +1 -1
  471. package/dist/versions/baseFields.js +0 -13
  472. package/dist/versions/baseFields.js.map +1 -1
  473. package/dist/versions/buildCollectionFields.d.ts.map +1 -1
  474. package/dist/versions/buildCollectionFields.js +0 -2
  475. package/dist/versions/buildCollectionFields.js.map +1 -1
  476. package/dist/versions/buildGlobalFields.d.ts.map +1 -1
  477. package/dist/versions/buildGlobalFields.js +0 -2
  478. package/dist/versions/buildGlobalFields.js.map +1 -1
  479. package/dist/versions/buildSingleLocalePublishData.d.ts +32 -0
  480. package/dist/versions/buildSingleLocalePublishData.d.ts.map +1 -0
  481. package/dist/versions/buildSingleLocalePublishData.js +37 -0
  482. package/dist/versions/buildSingleLocalePublishData.js.map +1 -0
  483. package/dist/versions/saveVersion.d.ts +0 -2
  484. package/dist/versions/saveVersion.d.ts.map +1 -1
  485. package/dist/versions/saveVersion.js +12 -17
  486. package/dist/versions/saveVersion.js.map +1 -1
  487. package/dist/versions/schedule/job.d.ts.map +1 -1
  488. package/dist/versions/schedule/job.js +6 -10
  489. package/dist/versions/schedule/job.js.map +1 -1
  490. package/dist/versions/types.d.ts +2 -15
  491. package/dist/versions/types.d.ts.map +1 -1
  492. package/dist/versions/types.js.map +1 -1
  493. package/package.json +9 -6
  494. package/dist/database/migrations/templates/localizeStatus.d.ts +0 -10
  495. package/dist/database/migrations/templates/localizeStatus.d.ts.map +0 -1
  496. package/dist/database/migrations/templates/localizeStatus.js +0 -54
  497. package/dist/database/migrations/templates/localizeStatus.js.map +0 -1
  498. package/dist/fields/baseFields/slug/index.d.ts +0 -89
  499. package/dist/fields/baseFields/slug/index.d.ts.map +0 -1
  500. package/dist/fields/baseFields/slug/index.js +0 -81
  501. package/dist/fields/baseFields/slug/index.js.map +0 -1
  502. package/dist/versions/migrations/localizeStatus/index.d.ts +0 -12
  503. package/dist/versions/migrations/localizeStatus/index.d.ts.map +0 -1
  504. package/dist/versions/migrations/localizeStatus/index.js +0 -33
  505. package/dist/versions/migrations/localizeStatus/index.js.map +0 -1
  506. package/dist/versions/migrations/localizeStatus/mongo/down.d.ts +0 -9
  507. package/dist/versions/migrations/localizeStatus/mongo/down.d.ts.map +0 -1
  508. package/dist/versions/migrations/localizeStatus/mongo/down.js +0 -112
  509. package/dist/versions/migrations/localizeStatus/mongo/down.js.map +0 -1
  510. package/dist/versions/migrations/localizeStatus/mongo/index.d.ts +0 -8
  511. package/dist/versions/migrations/localizeStatus/mongo/index.d.ts.map +0 -1
  512. package/dist/versions/migrations/localizeStatus/mongo/index.js +0 -8
  513. package/dist/versions/migrations/localizeStatus/mongo/index.js.map +0 -1
  514. package/dist/versions/migrations/localizeStatus/mongo/up.d.ts +0 -9
  515. package/dist/versions/migrations/localizeStatus/mongo/up.d.ts.map +0 -1
  516. package/dist/versions/migrations/localizeStatus/mongo/up.js +0 -220
  517. package/dist/versions/migrations/localizeStatus/mongo/up.js.map +0 -1
  518. package/dist/versions/migrations/localizeStatus/sql/down.d.ts +0 -11
  519. package/dist/versions/migrations/localizeStatus/sql/down.d.ts.map +0 -1
  520. package/dist/versions/migrations/localizeStatus/sql/down.js +0 -213
  521. package/dist/versions/migrations/localizeStatus/sql/down.js.map +0 -1
  522. package/dist/versions/migrations/localizeStatus/sql/index.d.ts +0 -8
  523. package/dist/versions/migrations/localizeStatus/sql/index.d.ts.map +0 -1
  524. package/dist/versions/migrations/localizeStatus/sql/index.js +0 -8
  525. package/dist/versions/migrations/localizeStatus/sql/index.js.map +0 -1
  526. package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.d.ts +0 -13
  527. package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.d.ts.map +0 -1
  528. package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.js +0 -51
  529. package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.js.map +0 -1
  530. package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.d.ts +0 -13
  531. package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.d.ts.map +0 -1
  532. package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.js +0 -54
  533. package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.js.map +0 -1
  534. package/dist/versions/migrations/localizeStatus/sql/up.d.ts +0 -11
  535. package/dist/versions/migrations/localizeStatus/sql/up.d.ts.map +0 -1
  536. package/dist/versions/migrations/localizeStatus/sql/up.js +0 -277
  537. package/dist/versions/migrations/localizeStatus/sql/up.js.map +0 -1
  538. package/dist/versions/saveSnapshot.d.ts +0 -18
  539. package/dist/versions/saveSnapshot.d.ts.map +0 -1
  540. package/dist/versions/saveSnapshot.js +0 -38
  541. package/dist/versions/saveSnapshot.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/collections/operations/utilities/types.ts"],"sourcesContent":["import type { forgotPasswordOperation } from '../../../auth/operations/forgotPassword.js'\nimport type { loginOperation } from '../../../auth/operations/login.js'\nimport type { refreshOperation } from '../../../auth/operations/refresh.js'\nimport type { resetPasswordOperation } from '../../../auth/operations/resetPassword.js'\nimport type { unlockOperation } from '../../../auth/operations/unlock.js'\nimport type { CollectionSlug, RequestContext, restoreVersionOperation } from '../../../index.js'\nimport type { PayloadRequest } from '../../../types/index.js'\nimport type { SanitizedCollectionConfig, SelectFromCollectionSlug } from '../../config/types.js'\nimport type { countOperation } from '../count.js'\nimport type { countVersionsOperation } from '../countVersions.js'\nimport type { createOperation } from '../create.js'\nimport type { deleteOperation } from '../delete.js'\nimport type { deleteByIDOperation } from '../deleteByID.js'\nimport type { findOperation } from '../find.js'\nimport type { findByIDOperation } from '../findByID.js'\nimport type { findDistinctOperation } from '../findDistinct.js'\nimport type { findVersionByIDOperation } from '../findVersionByID.js'\nimport type { findVersionsOperation } from '../findVersions.js'\nimport type { updateOperation } from '../update.js'\nimport type { updateByIDOperation } from '../updateByID.js'\n\nexport type OperationMap<TOperationGeneric extends CollectionSlug> = {\n count: typeof countOperation<TOperationGeneric>\n countVersions: typeof countVersionsOperation<TOperationGeneric>\n create: typeof createOperation<TOperationGeneric, SelectFromCollectionSlug<TOperationGeneric>>\n delete: typeof deleteOperation<TOperationGeneric, SelectFromCollectionSlug<TOperationGeneric>>\n deleteByID: typeof deleteByIDOperation<\n TOperationGeneric,\n SelectFromCollectionSlug<TOperationGeneric>\n >\n find: typeof findOperation<TOperationGeneric, SelectFromCollectionSlug<TOperationGeneric>>\n findByID: typeof findByIDOperation<\n TOperationGeneric,\n boolean,\n SelectFromCollectionSlug<TOperationGeneric>\n >\n findDistinct: typeof findDistinctOperation\n findVersionByID: typeof findVersionByIDOperation\n findVersions: typeof findVersionsOperation\n forgotPassword: typeof forgotPasswordOperation\n login: typeof loginOperation<TOperationGeneric>\n refresh: typeof refreshOperation\n resetPassword: typeof resetPasswordOperation<TOperationGeneric>\n restoreVersion: typeof restoreVersionOperation\n unlock: typeof unlockOperation<TOperationGeneric>\n update: typeof updateOperation<TOperationGeneric, SelectFromCollectionSlug<TOperationGeneric>>\n updateByID: typeof updateByIDOperation<\n TOperationGeneric,\n SelectFromCollectionSlug<TOperationGeneric>\n >\n}\n\nexport type AfterOperationArg<TOperationGeneric extends CollectionSlug> = {\n /** The collection which this hook is being run on */\n collection: SanitizedCollectionConfig\n /**\n * Whether access control is being overridden for this operation\n */\n overrideAccess?: boolean\n req: PayloadRequest\n} & (\n | {\n args: Parameters<OperationMap<TOperationGeneric>['count']>[0]\n operation: 'count'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['count']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['countVersions']>[0]\n operation: 'countVersions'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['countVersions']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['create']>[0]\n operation: 'create'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['create']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['delete']>[0]\n operation: 'delete'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['delete']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['deleteByID']>[0]\n operation: 'deleteByID'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['deleteByID']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['find']>[0]\n /**\n * @deprecated Use 'find' or 'findByID' operation instead\n *\n * TODO: v4 - remove this union option\n */\n operation: 'read'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['find']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['find']>[0]\n operation: 'find'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['find']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['findByID']>[0]\n operation: 'findByID'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['findByID']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['findDistinct']>[0]\n operation: 'findDistinct'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['findDistinct']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['findVersionByID']>[0]\n operation: 'findVersionByID'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['findVersionByID']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['findVersions']>[0]\n operation: 'findVersions'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['findVersions']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['forgotPassword']>[0]\n operation: 'forgotPassword'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['forgotPassword']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['login']>[0]\n operation: 'login'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['login']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['refresh']>[0]\n operation: 'refresh'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['refresh']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['resetPassword']>[0]\n operation: 'resetPassword'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['resetPassword']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['restoreVersion']>[0]\n operation: 'restoreVersion'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['restoreVersion']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['unlock']>[0]\n operation: 'unlock'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['unlock']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['update']>[0]\n operation: 'update'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['update']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['updateByID']>[0]\n operation: 'updateByID'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['updateByID']>>\n }\n)\n\nexport type OperationResult<\n TOperationGeneric extends CollectionSlug,\n O extends keyof OperationMap<TOperationGeneric>,\n> = Awaited<ReturnType<OperationMap<TOperationGeneric>[O]>>\n\nexport type OperationArgs<\n TOperationGeneric extends CollectionSlug,\n O extends keyof OperationMap<TOperationGeneric>,\n> = Parameters<OperationMap<TOperationGeneric>[O]>[0]\n\n// Map internal operation names to HookOperationType\nexport const operationToHookOperation = {\n count: 'count',\n countVersions: 'countVersions',\n create: 'create',\n delete: 'delete',\n deleteByID: 'delete',\n find: 'read',\n findByID: 'read',\n findDistinct: 'readDistinct',\n findVersionByID: 'read',\n findVersions: 'read',\n forgotPassword: 'forgotPassword',\n login: 'login',\n read: 'read',\n readDistinct: 'readDistinct',\n refresh: 'refresh',\n resetPassword: 'resetPassword',\n restoreVersion: 'restoreVersion',\n unlock: 'unlock',\n update: 'update',\n updateByID: 'update',\n} as const\n\nexport type BeforeOperationArg<TOperationGeneric extends CollectionSlug> = {\n /** The collection which this hook is being run on */\n collection: SanitizedCollectionConfig\n context: RequestContext\n /**\n * Whether access control is being overridden for this operation\n */\n overrideAccess?: boolean\n req: PayloadRequest\n} & (\n | {\n args:\n | Parameters<OperationMap<TOperationGeneric>['find']>[0]\n | Parameters<OperationMap<TOperationGeneric>['findByID']>[0]\n /**\n * @deprecated Use 'find' or 'findByID' operation instead\n *\n * TODO: v4 - remove this union option\n */\n operation: 'read'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['count']>[0]\n operation: 'count'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['countVersions']>[0]\n operation: 'countVersions'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['create']>[0]\n operation: 'create'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['delete']>[0]\n operation: 'delete'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['deleteByID']>[0]\n operation: 'deleteByID'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['find']>[0]\n operation: 'find'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['findByID']>[0]\n operation: 'findByID'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['findDistinct']>[0]\n /**\n * @deprecated Use 'findDistinct' operation instead\n *\n * TODO: v4 - remove this union option\n */\n operation: 'readDistinct'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['findDistinct']>[0]\n operation: 'findDistinct'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['findVersionByID']>[0]\n operation: 'findVersionByID'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['findVersions']>[0]\n operation: 'findVersions'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['forgotPassword']>[0]\n operation: 'forgotPassword'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['login']>[0]\n operation: 'login'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['refresh']>[0]\n operation: 'refresh'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['resetPassword']>[0]\n operation: 'resetPassword'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['restoreVersion']>[0]\n operation: 'restoreVersion'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['unlock']>[0]\n operation: 'unlock'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['update']>[0]\n operation: 'update'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['updateByID']>[0]\n operation: 'updateByID'\n }\n)\n"],"names":["operationToHookOperation","count","countVersions","create","delete","deleteByID","find","findByID","findDistinct","findVersionByID","findVersions","forgotPassword","login","read","readDistinct","refresh","resetPassword","restoreVersion","unlock","update","updateByID"],"mappings":"AA6KA,oDAAoD;AACpD,OAAO,MAAMA,2BAA2B;IACtCC,OAAO;IACPC,eAAe;IACfC,QAAQ;IACRC,QAAQ;IACRC,YAAY;IACZC,MAAM;IACNC,UAAU;IACVC,cAAc;IACdC,iBAAiB;IACjBC,cAAc;IACdC,gBAAgB;IAChBC,OAAO;IACPC,MAAM;IACNC,cAAc;IACdC,SAAS;IACTC,eAAe;IACfC,gBAAgB;IAChBC,QAAQ;IACRC,QAAQ;IACRC,YAAY;AACd,EAAU"}
1
+ {"version":3,"sources":["../../../../src/collections/operations/utilities/types.ts"],"sourcesContent":["import type { forgotPasswordOperation } from '../../../auth/operations/forgotPassword.js'\nimport type { loginOperation } from '../../../auth/operations/login.js'\nimport type { refreshOperation } from '../../../auth/operations/refresh.js'\nimport type { resetPasswordOperation } from '../../../auth/operations/resetPassword.js'\nimport type { unlockOperation } from '../../../auth/operations/unlock.js'\nimport type { CollectionSlug, RequestContext, restoreVersionOperation } from '../../../index.js'\nimport type { PayloadRequest } from '../../../types/index.js'\nimport type { SanitizedCollectionConfig, SelectFromCollectionSlug } from '../../config/types.js'\nimport type { countOperation } from '../count.js'\nimport type { countVersionsOperation } from '../countVersions.js'\nimport type { createOperation } from '../create.js'\nimport type { deleteOperation } from '../delete.js'\nimport type { deleteByIDOperation } from '../deleteByID.js'\nimport type { findOperation } from '../find.js'\nimport type { findByIDOperation } from '../findByID.js'\nimport type { findDistinctOperation } from '../findDistinct.js'\nimport type { findVersionByIDOperation } from '../findVersionByID.js'\nimport type { findVersionsOperation } from '../findVersions.js'\nimport type { updateOperation } from '../update.js'\nimport type { updateByIDOperation } from '../updateByID.js'\n\nexport type OperationMap<TOperationGeneric extends CollectionSlug> = {\n count: typeof countOperation<TOperationGeneric>\n countVersions: typeof countVersionsOperation<TOperationGeneric>\n create: typeof createOperation<TOperationGeneric, SelectFromCollectionSlug<TOperationGeneric>>\n delete: typeof deleteOperation<TOperationGeneric, SelectFromCollectionSlug<TOperationGeneric>>\n deleteByID: typeof deleteByIDOperation<\n TOperationGeneric,\n SelectFromCollectionSlug<TOperationGeneric>\n >\n find: typeof findOperation<TOperationGeneric, SelectFromCollectionSlug<TOperationGeneric>>\n findByID: typeof findByIDOperation<\n TOperationGeneric,\n boolean,\n SelectFromCollectionSlug<TOperationGeneric>\n >\n findDistinct: typeof findDistinctOperation\n findVersionByID: typeof findVersionByIDOperation\n findVersions: typeof findVersionsOperation\n forgotPassword: typeof forgotPasswordOperation\n login: typeof loginOperation<TOperationGeneric>\n refresh: typeof refreshOperation\n resetPassword: typeof resetPasswordOperation<TOperationGeneric>\n restoreVersion: typeof restoreVersionOperation\n unlock: typeof unlockOperation<TOperationGeneric>\n update: typeof updateOperation<TOperationGeneric, SelectFromCollectionSlug<TOperationGeneric>>\n updateByID: typeof updateByIDOperation<\n TOperationGeneric,\n SelectFromCollectionSlug<TOperationGeneric>\n >\n}\n\nexport type AfterOperationArg<TOperationGeneric extends CollectionSlug> = {\n /** The collection which this hook is being run on */\n collection: SanitizedCollectionConfig\n /**\n * Whether access control is being overridden for this operation\n */\n overrideAccess?: boolean\n req: PayloadRequest\n} & (\n | {\n args: Parameters<OperationMap<TOperationGeneric>['count']>[0]\n operation: 'count'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['count']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['countVersions']>[0]\n operation: 'countVersions'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['countVersions']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['create']>[0]\n operation: 'create'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['create']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['delete']>[0]\n operation: 'delete'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['delete']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['deleteByID']>[0]\n operation: 'deleteByID'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['deleteByID']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['find']>[0]\n operation: 'find'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['find']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['findByID']>[0]\n operation: 'findByID'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['findByID']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['findDistinct']>[0]\n operation: 'findDistinct'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['findDistinct']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['findVersionByID']>[0]\n operation: 'findVersionByID'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['findVersionByID']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['findVersions']>[0]\n operation: 'findVersions'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['findVersions']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['forgotPassword']>[0]\n operation: 'forgotPassword'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['forgotPassword']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['login']>[0]\n operation: 'login'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['login']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['refresh']>[0]\n operation: 'refresh'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['refresh']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['resetPassword']>[0]\n operation: 'resetPassword'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['resetPassword']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['restoreVersion']>[0]\n operation: 'restoreVersion'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['restoreVersion']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['unlock']>[0]\n operation: 'unlock'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['unlock']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['update']>[0]\n operation: 'update'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['update']>>\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['updateByID']>[0]\n operation: 'updateByID'\n result: Awaited<ReturnType<OperationMap<TOperationGeneric>['updateByID']>>\n }\n)\n\nexport type OperationResult<\n TOperationGeneric extends CollectionSlug,\n O extends keyof OperationMap<TOperationGeneric>,\n> = Awaited<ReturnType<OperationMap<TOperationGeneric>[O]>>\n\nexport type OperationArgs<\n TOperationGeneric extends CollectionSlug,\n O extends keyof OperationMap<TOperationGeneric>,\n> = Parameters<OperationMap<TOperationGeneric>[O]>[0]\n\n// Map internal operation names to HookOperationType\nexport const operationToHookOperation = {\n count: 'count',\n countVersions: 'countVersions',\n create: 'create',\n delete: 'delete',\n deleteByID: 'delete',\n find: 'read',\n findByID: 'read',\n findDistinct: 'readDistinct',\n findVersionByID: 'read',\n findVersions: 'read',\n forgotPassword: 'forgotPassword',\n login: 'login',\n read: 'read',\n readDistinct: 'readDistinct',\n refresh: 'refresh',\n resetPassword: 'resetPassword',\n restoreVersion: 'restoreVersion',\n unlock: 'unlock',\n update: 'update',\n updateByID: 'update',\n} as const\n\nexport type BeforeOperationArg<TOperationGeneric extends CollectionSlug> = {\n /** The collection which this hook is being run on */\n collection: SanitizedCollectionConfig\n context: RequestContext\n /**\n * Whether access control is being overridden for this operation\n */\n overrideAccess?: boolean\n req: PayloadRequest\n} & (\n | {\n args:\n | Parameters<OperationMap<TOperationGeneric>['find']>[0]\n | Parameters<OperationMap<TOperationGeneric>['findByID']>[0]\n /**\n * @deprecated Use 'find' or 'findByID' operation instead\n *\n * TODO: v4 - remove this union option\n */\n operation: 'read'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['count']>[0]\n operation: 'count'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['countVersions']>[0]\n operation: 'countVersions'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['create']>[0]\n operation: 'create'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['delete']>[0]\n operation: 'delete'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['deleteByID']>[0]\n operation: 'deleteByID'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['find']>[0]\n operation: 'find'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['findByID']>[0]\n operation: 'findByID'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['findDistinct']>[0]\n /**\n * @deprecated Use 'findDistinct' operation instead\n *\n * TODO: v4 - remove this union option\n */\n operation: 'readDistinct'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['findDistinct']>[0]\n operation: 'findDistinct'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['findVersionByID']>[0]\n operation: 'findVersionByID'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['findVersions']>[0]\n operation: 'findVersions'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['forgotPassword']>[0]\n operation: 'forgotPassword'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['login']>[0]\n operation: 'login'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['refresh']>[0]\n operation: 'refresh'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['resetPassword']>[0]\n operation: 'resetPassword'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['restoreVersion']>[0]\n operation: 'restoreVersion'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['unlock']>[0]\n operation: 'unlock'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['update']>[0]\n operation: 'update'\n }\n | {\n args: Parameters<OperationMap<TOperationGeneric>['updateByID']>[0]\n operation: 'updateByID'\n }\n)\n"],"names":["operationToHookOperation","count","countVersions","create","delete","deleteByID","find","findByID","findDistinct","findVersionByID","findVersions","forgotPassword","login","read","readDistinct","refresh","resetPassword","restoreVersion","unlock","update","updateByID"],"mappings":"AAmKA,oDAAoD;AACpD,OAAO,MAAMA,2BAA2B;IACtCC,OAAO;IACPC,eAAe;IACfC,QAAQ;IACRC,QAAQ;IACRC,YAAY;IACZC,MAAM;IACNC,UAAU;IACVC,cAAc;IACdC,iBAAiB;IACjBC,cAAc;IACdC,gBAAgB;IAChBC,OAAO;IACPC,MAAM;IACNC,cAAc;IACdC,SAAS;IACTC,eAAe;IACfC,gBAAgB;IAChBC,QAAQ;IACRC,QAAQ;IACRC,YAAY;AACd,EAAU"}
@@ -19,7 +19,6 @@ export type SharedUpdateDocumentArgs<TSlug extends CollectionSlug> = {
19
19
  payload: Payload;
20
20
  populate?: PopulateType;
21
21
  publishAllLocales?: boolean;
22
- publishSpecificLocale?: string;
23
22
  req: PayloadRequest;
24
23
  select: SelectType;
25
24
  showHiddenFields: boolean;
@@ -38,5 +37,5 @@ export type SharedUpdateDocumentArgs<TSlug extends CollectionSlug> = {
38
37
  * - afterChange - Fields
39
38
  * - afterChange - Collection
40
39
  */
41
- export declare const updateDocument: <TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug> = SelectType>({ id, autosave, collectionConfig, config, data, depth, docWithLocales, draftArg, fallbackLocale, filesToUpload, locale, overrideAccess, overrideLock, payload, populate, publishAllLocales: publishAllLocalesArg, publishSpecificLocale, req, select, showHiddenFields, unpublishAllLocales: unpublishAllLocalesArg, }: SharedUpdateDocumentArgs<TSlug>) => Promise<TransformCollectionWithSelect<TSlug, TSelect>>;
40
+ export declare const updateDocument: <TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug> = SelectType>({ id, autosave, collectionConfig, config, data, depth, docWithLocales, draftArg, fallbackLocale, filesToUpload, locale, overrideAccess, overrideLock, payload, populate, publishAllLocales: publishAllLocalesArg, req, select, showHiddenFields, unpublishAllLocales: unpublishAllLocalesArg, }: SharedUpdateDocumentArgs<TSlug>) => Promise<TransformCollectionWithSelect<TSlug, TSelect>>;
42
41
  //# sourceMappingURL=update.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/collections/operations/utilities/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAGhD,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EACV,eAAe,EACf,mBAAmB,EACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EACV,UAAU,EACV,OAAO,EACP,cAAc,EACd,YAAY,EACZ,UAAU,EACV,6BAA6B,EAC9B,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,UAAU,EACX,MAAM,uBAAuB,CAAA;AAkB9B,MAAM,MAAM,wBAAwB,CAAC,KAAK,SAAS,cAAc,IAAI;IACnE,QAAQ,EAAE,OAAO,CAAA;IACjB,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,WAAW,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAA;IAChD,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,UAAU,GAAG,UAAU,CAAA;IACvC,QAAQ,EAAE,OAAO,CAAA;IACjB,cAAc,EAAE,mBAAmB,CAAA;IACnC,aAAa,EAAE,UAAU,EAAE,CAAA;IAC3B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,OAAO,CAAA;IACvB,YAAY,EAAE,OAAO,CAAA;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,EAAE,UAAU,CAAA;IAClB,gBAAgB,EAAE,OAAO,CAAA;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc,GACzB,KAAK,SAAS,cAAc,EAC5B,OAAO,SAAS,wBAAwB,CAAC,KAAK,CAAC,GAAG,UAAU,EAC5D,wTAsBC,wBAAwB,CAAC,KAAK,CAAC,KAAG,OAAO,CAAC,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,CA8WzF,CAAA"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/collections/operations/utilities/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAGhD,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EACV,eAAe,EACf,mBAAmB,EACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EACV,UAAU,EACV,OAAO,EACP,cAAc,EACd,YAAY,EACZ,UAAU,EACV,6BAA6B,EAC9B,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,UAAU,EACX,MAAM,uBAAuB,CAAA;AAkB9B,MAAM,MAAM,wBAAwB,CAAC,KAAK,SAAS,cAAc,IAAI;IACnE,QAAQ,EAAE,OAAO,CAAA;IACjB,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,WAAW,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAA;IAChD,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,UAAU,GAAG,UAAU,CAAA;IACvC,QAAQ,EAAE,OAAO,CAAA;IACjB,cAAc,EAAE,mBAAmB,CAAA;IACnC,aAAa,EAAE,UAAU,EAAE,CAAA;IAC3B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,OAAO,CAAA;IACvB,YAAY,EAAE,OAAO,CAAA;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,EAAE,UAAU,CAAA;IAClB,gBAAgB,EAAE,OAAO,CAAA;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc,GACzB,KAAK,SAAS,cAAc,EAC5B,OAAO,SAAS,wBAAwB,CAAC,KAAK,CAAC,GAAG,UAAU,EAC5D,iSAqBC,wBAAwB,CAAC,KAAK,CAAC,KAAG,OAAO,CAAC,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,CA2XzF,CAAA"}
@@ -4,12 +4,12 @@ import { afterChange } from '../../../fields/hooks/afterChange/index.js';
4
4
  import { afterRead } from '../../../fields/hooks/afterRead/index.js';
5
5
  import { beforeChange } from '../../../fields/hooks/beforeChange/index.js';
6
6
  import { beforeValidate } from '../../../fields/hooks/beforeValidate/index.js';
7
- import { deepCopyObjectSimple, getLatestCollectionVersion, saveVersion } from '../../../index.js';
7
+ import { deepCopyObjectSimple, saveVersion } from '../../../index.js';
8
8
  import { deleteAssociatedFiles } from '../../../uploads/deleteAssociatedFiles.js';
9
9
  import { uploadFiles } from '../../../uploads/uploadFiles.js';
10
10
  import { checkDocumentLockStatus } from '../../../utilities/checkDocumentLockStatus.js';
11
11
  import { hasDraftsEnabled, hasDraftValidationEnabled, hasLocalizeStatusEnabled } from '../../../utilities/getVersionsConfig.js';
12
- import { mergeLocalizedData } from '../../../utilities/mergeLocalizedData.js';
12
+ import { buildLocalizedPublishData } from '../../../versions/buildSingleLocalePublishData.js';
13
13
  /**
14
14
  * This function is used to update a document in the DB and return the result.
15
15
  *
@@ -22,9 +22,9 @@ import { mergeLocalizedData } from '../../../utilities/mergeLocalizedData.js';
22
22
  * - afterRead - Collection
23
23
  * - afterChange - Fields
24
24
  * - afterChange - Collection
25
- */ export const updateDocument = async ({ id, autosave, collectionConfig, config, data, depth, docWithLocales, draftArg, fallbackLocale, filesToUpload, locale, overrideAccess, overrideLock, payload, populate, publishAllLocales: publishAllLocalesArg, publishSpecificLocale, req, select, showHiddenFields, unpublishAllLocales: unpublishAllLocalesArg })=>{
25
+ */ export const updateDocument = async ({ id, autosave, collectionConfig, config, data, depth, docWithLocales, draftArg, fallbackLocale, filesToUpload, locale, overrideAccess, overrideLock, payload, populate, publishAllLocales: publishAllLocalesArg, req, select, showHiddenFields, unpublishAllLocales: unpublishAllLocalesArg })=>{
26
26
  const password = data?.password;
27
- const publishAllLocales = !draftArg && (publishAllLocalesArg ?? (hasLocalizeStatusEnabled(collectionConfig) ? false : true));
27
+ const publishAllLocales = !draftArg && (publishAllLocalesArg ?? (hasLocalizeStatusEnabled(collectionConfig) && locale !== 'all' ? false : true));
28
28
  const unpublishAllLocales = typeof unpublishAllLocalesArg === 'string' ? unpublishAllLocalesArg === 'true' : !!unpublishAllLocalesArg;
29
29
  const isSavingDraft = Boolean(draftArg && hasDraftsEnabled(collectionConfig)) && data._status !== 'published' && !publishAllLocales;
30
30
  const shouldSavePassword = Boolean(password && collectionConfig.auth && (!collectionConfig.auth.disableLocalStrategy || typeof collectionConfig.auth.disableLocalStrategy === 'object' && collectionConfig.auth.disableLocalStrategy.enableFields) && !isSavingDraft);
@@ -68,14 +68,22 @@ import { mergeLocalizedData } from '../../../utilities/mergeLocalizedData.js';
68
68
  // /////////////////////////////////////
69
69
  // Delete any associated files
70
70
  // /////////////////////////////////////
71
- await deleteAssociatedFiles({
72
- collectionConfig,
73
- config,
74
- doc: docWithLocales,
75
- files: filesToUpload,
76
- overrideDelete: false,
77
- req
78
- });
71
+ // When saving a draft on a document whose latest version is published, the file
72
+ // referenced by docWithLocales is still actively used by the published main document.
73
+ // Deleting it here would break the published document's file even though no publish
74
+ // is happening. Only skip deletion in this case; when the latest version is already a
75
+ // draft, it is safe to delete the old draft file as it is being replaced.
76
+ const isDraftOverPublished = isSavingDraft && docWithLocales._status === 'published';
77
+ if (!isDraftOverPublished) {
78
+ await deleteAssociatedFiles({
79
+ collectionConfig,
80
+ config,
81
+ doc: docWithLocales,
82
+ files: filesToUpload,
83
+ overrideDelete: false,
84
+ req
85
+ });
86
+ }
79
87
  // /////////////////////////////////////
80
88
  // beforeValidate - Fields
81
89
  // /////////////////////////////////////
@@ -152,11 +160,17 @@ import { mergeLocalizedData } from '../../../utilities/mergeLocalizedData.js';
152
160
  // Handle Localized Data Merging
153
161
  // /////////////////////////////////////
154
162
  let result = await beforeChange(beforeChangeArgs);
155
- let snapshotToSave;
163
+ if (config.localization && hasLocalizeStatusEnabled(collectionConfig) && typeof result._status === 'string') {
164
+ const statusStr = result._status;
165
+ result._status = {};
166
+ for (const localeCode of config.localization.localeCodes){
167
+ ;
168
+ result._status[localeCode] = statusStr;
169
+ }
170
+ }
171
+ let localizedPublishData = null;
156
172
  if (config.localization && collectionConfig.versions) {
157
- let snapshotData;
158
- let currentDoc;
159
- if (collectionConfig.versions.drafts && collectionConfig.versions.drafts.localizeStatus) {
173
+ if (hasLocalizeStatusEnabled(collectionConfig)) {
160
174
  if (publishAllLocales || unpublishAllLocales) {
161
175
  let accessibleLocaleCodes = config.localization.localeCodes;
162
176
  if (config.localization.filterAvailableLocales) {
@@ -172,10 +186,10 @@ import { mergeLocalizedData } from '../../../utilities/mergeLocalizedData.js';
172
186
  for (const localeCode of accessibleLocaleCodes){
173
187
  result._status[localeCode] = unpublishAllLocales ? 'draft' : 'published';
174
188
  }
175
- } else if (!isSavingDraft) {
176
- // publishing a single locale
177
- currentDoc = await payload.db.findOne({
189
+ } else if (!isSavingDraft && result._status && typeof result._status === 'object' && !Array.isArray(result._status) && result._status[locale] === 'published') {
190
+ const currentDoc = await payload.db.findOne({
178
191
  collection: collectionConfig.slug,
192
+ locale: 'all',
179
193
  req,
180
194
  where: {
181
195
  id: {
@@ -183,47 +197,18 @@ import { mergeLocalizedData } from '../../../utilities/mergeLocalizedData.js';
183
197
  }
184
198
  }
185
199
  });
186
- snapshotData = result;
200
+ localizedPublishData = buildLocalizedPublishData({
201
+ config,
202
+ currentDoc: currentDoc,
203
+ fields: collectionConfig.fields,
204
+ locale,
205
+ result
206
+ });
187
207
  }
188
- } else if (publishSpecificLocale) {
189
- // previous way of publishing a single locale
190
- currentDoc = await getLatestCollectionVersion({
191
- id,
192
- config: collectionConfig,
193
- payload,
194
- published: true,
195
- query: {
196
- collection: collectionConfig.slug,
197
- locale: 'all',
198
- req,
199
- where: {
200
- id: {
201
- equals: id
202
- }
203
- }
204
- },
205
- req
206
- });
207
- snapshotData = {
208
- ...result,
209
- _status: 'draft'
210
- };
211
- }
212
- if (snapshotData) {
213
- snapshotToSave = deepCopyObjectSimple(snapshotData || {});
214
- result = mergeLocalizedData({
215
- configBlockReferences: config.blocks,
216
- dataWithLocales: result || {},
217
- docWithLocales: currentDoc || {},
218
- fields: collectionConfig.fields,
219
- selectedLocales: [
220
- locale
221
- ]
222
- });
223
208
  }
224
209
  }
225
210
  const dataToUpdate = {
226
- ...result
211
+ ...localizedPublishData ?? result
227
212
  };
228
213
  // /////////////////////////////////////
229
214
  // Handle potential password update
@@ -246,13 +231,29 @@ import { mergeLocalizedData } from '../../../utilities/mergeLocalizedData.js';
246
231
  if (!isSavingDraft) {
247
232
  // Ensure updatedAt date is always updated
248
233
  dataToUpdate.updatedAt = new Date().toISOString();
249
- resultWithLocales = await req.payload.db.updateOne({
250
- id,
251
- collection: collectionConfig.slug,
252
- data: dataToUpdate,
253
- locale,
254
- req
255
- });
234
+ if (localizedPublishData) {
235
+ // Single-locale publish: save filtered data to main doc but keep full locale data for
236
+ // the version so draft fetches (replaceWithDraftIfAvailable) return complete data.
237
+ await req.payload.db.updateOne({
238
+ id,
239
+ collection: collectionConfig.slug,
240
+ data: dataToUpdate,
241
+ locale,
242
+ req
243
+ });
244
+ resultWithLocales = {
245
+ ...result,
246
+ updatedAt: dataToUpdate.updatedAt
247
+ };
248
+ } else {
249
+ resultWithLocales = await req.payload.db.updateOne({
250
+ id,
251
+ collection: collectionConfig.slug,
252
+ data: dataToUpdate,
253
+ locale,
254
+ req
255
+ });
256
+ }
256
257
  }
257
258
  // /////////////////////////////////////
258
259
  // Create version
@@ -266,9 +267,7 @@ import { mergeLocalizedData } from '../../../utilities/mergeLocalizedData.js';
266
267
  draft: isSavingDraft,
267
268
  operation: 'update',
268
269
  payload,
269
- publishSpecificLocale,
270
270
  req,
271
- snapshot: snapshotToSave,
272
271
  unpublish: unpublishAllLocales
273
272
  });
274
273
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/collections/operations/utilities/update.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport type { Args } from '../../../fields/hooks/beforeChange/index.js'\nimport type {\n CollectionSlug,\n FileToSave,\n SanitizedConfig,\n TypedFallbackLocale,\n} from '../../../index.js'\nimport type {\n JsonObject,\n Payload,\n PayloadRequest,\n PopulateType,\n SelectType,\n TransformCollectionWithSelect,\n} from '../../../types/index.js'\nimport type {\n DataFromCollectionSlug,\n SanitizedCollectionConfig,\n SelectFromCollectionSlug,\n TypeWithID,\n} from '../../config/types.js'\n\nimport { ensureUsernameOrEmail } from '../../../auth/ensureUsernameOrEmail.js'\nimport { generatePasswordSaltHash } from '../../../auth/strategies/local/generatePasswordSaltHash.js'\nimport { afterChange } from '../../../fields/hooks/afterChange/index.js'\nimport { afterRead } from '../../../fields/hooks/afterRead/index.js'\nimport { beforeChange } from '../../../fields/hooks/beforeChange/index.js'\nimport { beforeValidate } from '../../../fields/hooks/beforeValidate/index.js'\nimport { deepCopyObjectSimple, getLatestCollectionVersion, saveVersion } from '../../../index.js'\nimport { deleteAssociatedFiles } from '../../../uploads/deleteAssociatedFiles.js'\nimport { uploadFiles } from '../../../uploads/uploadFiles.js'\nimport { checkDocumentLockStatus } from '../../../utilities/checkDocumentLockStatus.js'\nimport {\n hasDraftsEnabled,\n hasDraftValidationEnabled,\n hasLocalizeStatusEnabled,\n} from '../../../utilities/getVersionsConfig.js'\nimport { mergeLocalizedData } from '../../../utilities/mergeLocalizedData.js'\nexport type SharedUpdateDocumentArgs<TSlug extends CollectionSlug> = {\n autosave: boolean\n collectionConfig: SanitizedCollectionConfig\n config: SanitizedConfig\n data: DeepPartial<DataFromCollectionSlug<TSlug>>\n depth: number\n docWithLocales: JsonObject & TypeWithID\n draftArg: boolean\n fallbackLocale: TypedFallbackLocale\n filesToUpload: FileToSave[]\n id: number | string\n locale: string\n overrideAccess: boolean\n overrideLock: boolean\n payload: Payload\n populate?: PopulateType\n publishAllLocales?: boolean\n publishSpecificLocale?: string\n req: PayloadRequest\n select: SelectType\n showHiddenFields: boolean\n unpublishAllLocales?: boolean\n}\n\n/**\n * This function is used to update a document in the DB and return the result.\n *\n * It runs the following hooks in order:\n * - beforeValidate - Fields\n * - beforeValidate - Collection\n * - beforeChange - Collection\n * - beforeChange - Fields\n * - afterRead - Fields\n * - afterRead - Collection\n * - afterChange - Fields\n * - afterChange - Collection\n */\nexport const updateDocument = async <\n TSlug extends CollectionSlug,\n TSelect extends SelectFromCollectionSlug<TSlug> = SelectType,\n>({\n id,\n autosave,\n collectionConfig,\n config,\n data,\n depth,\n docWithLocales,\n draftArg,\n fallbackLocale,\n filesToUpload,\n locale,\n overrideAccess,\n overrideLock,\n payload,\n populate,\n publishAllLocales: publishAllLocalesArg,\n publishSpecificLocale,\n req,\n select,\n showHiddenFields,\n unpublishAllLocales: unpublishAllLocalesArg,\n}: SharedUpdateDocumentArgs<TSlug>): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n const password = data?.password\n const publishAllLocales =\n !draftArg &&\n (publishAllLocalesArg ?? (hasLocalizeStatusEnabled(collectionConfig) ? false : true))\n const unpublishAllLocales =\n typeof unpublishAllLocalesArg === 'string'\n ? unpublishAllLocalesArg === 'true'\n : !!unpublishAllLocalesArg\n const isSavingDraft =\n Boolean(draftArg && hasDraftsEnabled(collectionConfig)) &&\n data._status !== 'published' &&\n !publishAllLocales\n const shouldSavePassword = Boolean(\n password &&\n collectionConfig.auth &&\n (!collectionConfig.auth.disableLocalStrategy ||\n (typeof collectionConfig.auth.disableLocalStrategy === 'object' &&\n collectionConfig.auth.disableLocalStrategy.enableFields)) &&\n !isSavingDraft,\n )\n\n if (isSavingDraft) {\n data._status = 'draft'\n }\n\n // /////////////////////////////////////\n // Handle potentially locked documents\n // /////////////////////////////////////\n\n await checkDocumentLockStatus({\n id,\n collectionSlug: collectionConfig.slug,\n lockErrorMessage: `Document with ID ${id} is currently locked by another user and cannot be updated.`,\n overrideLock,\n req,\n })\n\n const originalDoc = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth: 0,\n doc: deepCopyObjectSimple(docWithLocales),\n draft: draftArg,\n fallbackLocale: id ? null : fallbackLocale,\n global: null,\n locale,\n overrideAccess: true,\n req,\n showHiddenFields: true,\n })\n\n const isRestoringDraftFromTrash = Boolean(originalDoc?.deletedAt) && data?._status !== 'published'\n\n if (collectionConfig.auth) {\n ensureUsernameOrEmail<TSlug>({\n authOptions: collectionConfig.auth,\n collectionSlug: collectionConfig.slug,\n data,\n operation: 'update',\n originalDoc,\n req,\n })\n }\n\n // /////////////////////////////////////\n // Delete any associated files\n // /////////////////////////////////////\n\n await deleteAssociatedFiles({\n collectionConfig,\n config,\n doc: docWithLocales,\n files: filesToUpload,\n overrideDelete: false,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n data = await beforeValidate<DeepPartial<DataFromCollectionSlug<TSlug>>>({\n id,\n collection: collectionConfig,\n context: req.context,\n data,\n doc: originalDoc,\n global: null,\n operation: 'update',\n overrideAccess,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.beforeValidate?.length) {\n for (const hook of collectionConfig.hooks.beforeValidate) {\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'update',\n originalDoc,\n req,\n })) || data\n }\n }\n\n // /////////////////////////////////////\n // Write files to local storage\n // /////////////////////////////////////\n\n if (!collectionConfig.upload.disableLocalStorage) {\n await uploadFiles(payload, filesToUpload, req)\n }\n\n // /////////////////////////////////////\n // beforeChange - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.beforeChange?.length) {\n for (const hook of collectionConfig.hooks.beforeChange) {\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'update',\n originalDoc,\n req,\n })) || data\n }\n }\n\n // /////////////////////////////////////\n // beforeChange - Fields\n // /////////////////////////////////////\n\n const beforeChangeArgs: Args<DataFromCollectionSlug<TSlug>> = {\n id,\n collection: collectionConfig,\n context: req.context,\n data: { ...data, id },\n doc: originalDoc,\n docWithLocales,\n global: null,\n operation: 'update',\n overrideAccess,\n req,\n skipValidation:\n // only skip validation for drafts when draft validation is false\n (isSavingDraft && !hasDraftValidationEnabled(collectionConfig)) ||\n // Skip validation for trash operations since they're just metadata updates\n (collectionConfig.trash && (Boolean(data?.deletedAt) || isRestoringDraftFromTrash)) ||\n // Skip validation for unpublish operations — they only change _status, not document data\n unpublishAllLocales,\n }\n\n // /////////////////////////////////////\n // Handle Localized Data Merging\n // /////////////////////////////////////\n\n let result: JsonObject = await beforeChange(beforeChangeArgs)\n let snapshotToSave: JsonObject | undefined\n\n if (config.localization && collectionConfig.versions) {\n let snapshotData: JsonObject | undefined\n let currentDoc\n\n if (collectionConfig.versions.drafts && collectionConfig.versions.drafts.localizeStatus) {\n if (publishAllLocales || unpublishAllLocales) {\n let accessibleLocaleCodes = config.localization.localeCodes\n\n if (config.localization.filterAvailableLocales) {\n const filteredLocales = await config.localization.filterAvailableLocales({\n locales: config.localization.locales,\n req,\n })\n accessibleLocaleCodes = filteredLocales.map((locale) =>\n typeof locale === 'string' ? locale : locale.code,\n )\n }\n\n if (typeof result._status !== 'object' || result._status === null) {\n result._status = {}\n }\n\n for (const localeCode of accessibleLocaleCodes) {\n result._status[localeCode] = unpublishAllLocales ? 'draft' : 'published'\n }\n } else if (!isSavingDraft) {\n // publishing a single locale\n currentDoc = await payload.db.findOne<DataFromCollectionSlug<TSlug>>({\n collection: collectionConfig.slug,\n req,\n where: { id: { equals: id } },\n })\n snapshotData = result\n }\n } else if (publishSpecificLocale) {\n // previous way of publishing a single locale\n currentDoc = await getLatestCollectionVersion({\n id,\n config: collectionConfig,\n payload,\n published: true,\n query: {\n collection: collectionConfig.slug,\n locale: 'all',\n req,\n where: { id: { equals: id } },\n },\n req,\n })\n snapshotData = {\n ...result,\n _status: 'draft',\n }\n }\n\n if (snapshotData) {\n snapshotToSave = deepCopyObjectSimple(snapshotData || {})\n\n result = mergeLocalizedData({\n configBlockReferences: config.blocks,\n dataWithLocales: result || {},\n docWithLocales: currentDoc || {},\n fields: collectionConfig.fields,\n selectedLocales: [locale],\n })\n }\n }\n\n const dataToUpdate: JsonObject = { ...result }\n\n // /////////////////////////////////////\n // Handle potential password update\n // /////////////////////////////////////\n\n if (shouldSavePassword && typeof password === 'string') {\n const { hash, salt } = await generatePasswordSaltHash({\n collection: collectionConfig,\n password,\n req,\n })\n dataToUpdate.salt = salt\n dataToUpdate.hash = hash\n delete dataToUpdate.password\n delete data.password\n }\n\n // /////////////////////////////////////\n // Update\n // /////////////////////////////////////\n\n let resultWithLocales: JsonObject = result\n\n if (!isSavingDraft) {\n // Ensure updatedAt date is always updated\n dataToUpdate.updatedAt = new Date().toISOString()\n resultWithLocales = await req.payload.db.updateOne({\n id,\n collection: collectionConfig.slug,\n data: dataToUpdate,\n locale,\n req,\n })\n }\n\n // /////////////////////////////////////\n // Create version\n // /////////////////////////////////////\n\n if (collectionConfig.versions) {\n resultWithLocales = await saveVersion({\n id,\n autosave,\n collection: collectionConfig,\n docWithLocales: resultWithLocales,\n draft: isSavingDraft,\n operation: 'update',\n payload,\n publishSpecificLocale,\n req,\n snapshot: snapshotToSave,\n unpublish: unpublishAllLocales,\n })\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth,\n doc: resultWithLocales,\n draft: draftArg,\n fallbackLocale,\n global: null,\n locale,\n overrideAccess,\n populate,\n req,\n select,\n showHiddenFields,\n })\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterRead?.length) {\n for (const hook of collectionConfig.hooks.afterRead) {\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n overrideAccess,\n req,\n })) || result\n }\n }\n\n // /////////////////////////////////////\n // afterChange - Fields\n // /////////////////////////////////////\n\n result = await afterChange({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: result,\n global: null,\n operation: 'update',\n previousDoc: originalDoc,\n req,\n })\n\n // /////////////////////////////////////\n // afterChange - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterChange?.length) {\n for (const hook of collectionConfig.hooks.afterChange) {\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: result,\n operation: 'update',\n overrideAccess,\n previousDoc: originalDoc,\n req,\n })) || result\n }\n }\n\n return result as TransformCollectionWithSelect<TSlug, TSelect>\n}\n"],"names":["ensureUsernameOrEmail","generatePasswordSaltHash","afterChange","afterRead","beforeChange","beforeValidate","deepCopyObjectSimple","getLatestCollectionVersion","saveVersion","deleteAssociatedFiles","uploadFiles","checkDocumentLockStatus","hasDraftsEnabled","hasDraftValidationEnabled","hasLocalizeStatusEnabled","mergeLocalizedData","updateDocument","id","autosave","collectionConfig","config","data","depth","docWithLocales","draftArg","fallbackLocale","filesToUpload","locale","overrideAccess","overrideLock","payload","populate","publishAllLocales","publishAllLocalesArg","publishSpecificLocale","req","select","showHiddenFields","unpublishAllLocales","unpublishAllLocalesArg","password","isSavingDraft","Boolean","_status","shouldSavePassword","auth","disableLocalStrategy","enableFields","collectionSlug","slug","lockErrorMessage","originalDoc","collection","context","doc","draft","global","isRestoringDraftFromTrash","deletedAt","authOptions","operation","files","overrideDelete","hooks","length","hook","upload","disableLocalStorage","beforeChangeArgs","skipValidation","trash","result","snapshotToSave","localization","versions","snapshotData","currentDoc","drafts","localizeStatus","accessibleLocaleCodes","localeCodes","filterAvailableLocales","filteredLocales","locales","map","code","localeCode","db","findOne","where","equals","published","query","configBlockReferences","blocks","dataWithLocales","fields","selectedLocales","dataToUpdate","hash","salt","resultWithLocales","updatedAt","Date","toISOString","updateOne","snapshot","unpublish","previousDoc"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/collections/operations/utilities/update.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport type { Args } from '../../../fields/hooks/beforeChange/index.js'\nimport type {\n CollectionSlug,\n FileToSave,\n SanitizedConfig,\n TypedFallbackLocale,\n} from '../../../index.js'\nimport type {\n JsonObject,\n Payload,\n PayloadRequest,\n PopulateType,\n SelectType,\n TransformCollectionWithSelect,\n} from '../../../types/index.js'\nimport type {\n DataFromCollectionSlug,\n SanitizedCollectionConfig,\n SelectFromCollectionSlug,\n TypeWithID,\n} from '../../config/types.js'\n\nimport { ensureUsernameOrEmail } from '../../../auth/ensureUsernameOrEmail.js'\nimport { generatePasswordSaltHash } from '../../../auth/strategies/local/generatePasswordSaltHash.js'\nimport { afterChange } from '../../../fields/hooks/afterChange/index.js'\nimport { afterRead } from '../../../fields/hooks/afterRead/index.js'\nimport { beforeChange } from '../../../fields/hooks/beforeChange/index.js'\nimport { beforeValidate } from '../../../fields/hooks/beforeValidate/index.js'\nimport { deepCopyObjectSimple, saveVersion } from '../../../index.js'\nimport { deleteAssociatedFiles } from '../../../uploads/deleteAssociatedFiles.js'\nimport { uploadFiles } from '../../../uploads/uploadFiles.js'\nimport { checkDocumentLockStatus } from '../../../utilities/checkDocumentLockStatus.js'\nimport {\n hasDraftsEnabled,\n hasDraftValidationEnabled,\n hasLocalizeStatusEnabled,\n} from '../../../utilities/getVersionsConfig.js'\nimport { buildLocalizedPublishData } from '../../../versions/buildSingleLocalePublishData.js'\nexport type SharedUpdateDocumentArgs<TSlug extends CollectionSlug> = {\n autosave: boolean\n collectionConfig: SanitizedCollectionConfig\n config: SanitizedConfig\n data: DeepPartial<DataFromCollectionSlug<TSlug>>\n depth: number\n docWithLocales: JsonObject & TypeWithID\n draftArg: boolean\n fallbackLocale: TypedFallbackLocale\n filesToUpload: FileToSave[]\n id: number | string\n locale: string\n overrideAccess: boolean\n overrideLock: boolean\n payload: Payload\n populate?: PopulateType\n publishAllLocales?: boolean\n req: PayloadRequest\n select: SelectType\n showHiddenFields: boolean\n unpublishAllLocales?: boolean\n}\n\n/**\n * This function is used to update a document in the DB and return the result.\n *\n * It runs the following hooks in order:\n * - beforeValidate - Fields\n * - beforeValidate - Collection\n * - beforeChange - Collection\n * - beforeChange - Fields\n * - afterRead - Fields\n * - afterRead - Collection\n * - afterChange - Fields\n * - afterChange - Collection\n */\nexport const updateDocument = async <\n TSlug extends CollectionSlug,\n TSelect extends SelectFromCollectionSlug<TSlug> = SelectType,\n>({\n id,\n autosave,\n collectionConfig,\n config,\n data,\n depth,\n docWithLocales,\n draftArg,\n fallbackLocale,\n filesToUpload,\n locale,\n overrideAccess,\n overrideLock,\n payload,\n populate,\n publishAllLocales: publishAllLocalesArg,\n req,\n select,\n showHiddenFields,\n unpublishAllLocales: unpublishAllLocalesArg,\n}: SharedUpdateDocumentArgs<TSlug>): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n const password = data?.password\n const publishAllLocales =\n !draftArg &&\n (publishAllLocalesArg ??\n (hasLocalizeStatusEnabled(collectionConfig) && locale !== 'all' ? false : true))\n const unpublishAllLocales =\n typeof unpublishAllLocalesArg === 'string'\n ? unpublishAllLocalesArg === 'true'\n : !!unpublishAllLocalesArg\n const isSavingDraft =\n Boolean(draftArg && hasDraftsEnabled(collectionConfig)) &&\n data._status !== 'published' &&\n !publishAllLocales\n const shouldSavePassword = Boolean(\n password &&\n collectionConfig.auth &&\n (!collectionConfig.auth.disableLocalStrategy ||\n (typeof collectionConfig.auth.disableLocalStrategy === 'object' &&\n collectionConfig.auth.disableLocalStrategy.enableFields)) &&\n !isSavingDraft,\n )\n\n if (isSavingDraft) {\n data._status = 'draft'\n }\n\n // /////////////////////////////////////\n // Handle potentially locked documents\n // /////////////////////////////////////\n\n await checkDocumentLockStatus({\n id,\n collectionSlug: collectionConfig.slug,\n lockErrorMessage: `Document with ID ${id} is currently locked by another user and cannot be updated.`,\n overrideLock,\n req,\n })\n\n const originalDoc = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth: 0,\n doc: deepCopyObjectSimple(docWithLocales),\n draft: draftArg,\n fallbackLocale: id ? null : fallbackLocale,\n global: null,\n locale,\n overrideAccess: true,\n req,\n showHiddenFields: true,\n })\n\n const isRestoringDraftFromTrash = Boolean(originalDoc?.deletedAt) && data?._status !== 'published'\n\n if (collectionConfig.auth) {\n ensureUsernameOrEmail<TSlug>({\n authOptions: collectionConfig.auth,\n collectionSlug: collectionConfig.slug,\n data,\n operation: 'update',\n originalDoc,\n req,\n })\n }\n\n // /////////////////////////////////////\n // Delete any associated files\n // /////////////////////////////////////\n\n // When saving a draft on a document whose latest version is published, the file\n // referenced by docWithLocales is still actively used by the published main document.\n // Deleting it here would break the published document's file even though no publish\n // is happening. Only skip deletion in this case; when the latest version is already a\n // draft, it is safe to delete the old draft file as it is being replaced.\n const isDraftOverPublished = isSavingDraft && docWithLocales._status === 'published'\n\n if (!isDraftOverPublished) {\n await deleteAssociatedFiles({\n collectionConfig,\n config,\n doc: docWithLocales,\n files: filesToUpload,\n overrideDelete: false,\n req,\n })\n }\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n data = await beforeValidate<DeepPartial<DataFromCollectionSlug<TSlug>>>({\n id,\n collection: collectionConfig,\n context: req.context,\n data,\n doc: originalDoc,\n global: null,\n operation: 'update',\n overrideAccess,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.beforeValidate?.length) {\n for (const hook of collectionConfig.hooks.beforeValidate) {\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'update',\n originalDoc,\n req,\n })) || data\n }\n }\n\n // /////////////////////////////////////\n // Write files to local storage\n // /////////////////////////////////////\n\n if (!collectionConfig.upload.disableLocalStorage) {\n await uploadFiles(payload, filesToUpload, req)\n }\n\n // /////////////////////////////////////\n // beforeChange - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.beforeChange?.length) {\n for (const hook of collectionConfig.hooks.beforeChange) {\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'update',\n originalDoc,\n req,\n })) || data\n }\n }\n\n // /////////////////////////////////////\n // beforeChange - Fields\n // /////////////////////////////////////\n\n const beforeChangeArgs: Args<DataFromCollectionSlug<TSlug>> = {\n id,\n collection: collectionConfig,\n context: req.context,\n data: { ...data, id },\n doc: originalDoc,\n docWithLocales,\n global: null,\n operation: 'update',\n overrideAccess,\n req,\n skipValidation:\n // only skip validation for drafts when draft validation is false\n (isSavingDraft && !hasDraftValidationEnabled(collectionConfig)) ||\n // Skip validation for trash operations since they're just metadata updates\n (collectionConfig.trash && (Boolean(data?.deletedAt) || isRestoringDraftFromTrash)) ||\n // Skip validation for unpublish operations — they only change _status, not document data\n unpublishAllLocales,\n }\n\n // /////////////////////////////////////\n // Handle Localized Data Merging\n // /////////////////////////////////////\n\n let result: JsonObject = await beforeChange(beforeChangeArgs)\n\n if (\n config.localization &&\n hasLocalizeStatusEnabled(collectionConfig) &&\n typeof result._status === 'string'\n ) {\n const statusStr = result._status\n result._status = {}\n for (const localeCode of config.localization.localeCodes) {\n ;(result._status as Record<string, unknown>)[localeCode] = statusStr\n }\n }\n\n let localizedPublishData: JsonObject | null = null\n\n if (config.localization && collectionConfig.versions) {\n if (hasLocalizeStatusEnabled(collectionConfig)) {\n if (publishAllLocales || unpublishAllLocales) {\n let accessibleLocaleCodes = config.localization.localeCodes\n\n if (config.localization.filterAvailableLocales) {\n const filteredLocales = await config.localization.filterAvailableLocales({\n locales: config.localization.locales,\n req,\n })\n accessibleLocaleCodes = filteredLocales.map((locale) =>\n typeof locale === 'string' ? locale : locale.code,\n )\n }\n\n if (typeof result._status !== 'object' || result._status === null) {\n result._status = {}\n }\n\n for (const localeCode of accessibleLocaleCodes) {\n result._status[localeCode] = unpublishAllLocales ? 'draft' : 'published'\n }\n } else if (\n !isSavingDraft &&\n result._status &&\n typeof result._status === 'object' &&\n !Array.isArray(result._status) &&\n (result._status as Record<string, unknown>)[locale] === 'published'\n ) {\n const currentDoc = await payload.db.findOne<DataFromCollectionSlug<TSlug>>({\n collection: collectionConfig.slug,\n locale: 'all',\n req,\n where: { id: { equals: id } },\n })\n\n localizedPublishData = buildLocalizedPublishData({\n config,\n currentDoc: currentDoc as JsonObject,\n fields: collectionConfig.fields,\n locale,\n result,\n })\n }\n }\n }\n\n const dataToUpdate: JsonObject = { ...(localizedPublishData ?? result) }\n\n // /////////////////////////////////////\n // Handle potential password update\n // /////////////////////////////////////\n\n if (shouldSavePassword && typeof password === 'string') {\n const { hash, salt } = await generatePasswordSaltHash({\n collection: collectionConfig,\n password,\n req,\n })\n dataToUpdate.salt = salt\n dataToUpdate.hash = hash\n delete dataToUpdate.password\n delete data.password\n }\n\n // /////////////////////////////////////\n // Update\n // /////////////////////////////////////\n\n let resultWithLocales: JsonObject = result\n\n if (!isSavingDraft) {\n // Ensure updatedAt date is always updated\n dataToUpdate.updatedAt = new Date().toISOString()\n if (localizedPublishData) {\n // Single-locale publish: save filtered data to main doc but keep full locale data for\n // the version so draft fetches (replaceWithDraftIfAvailable) return complete data.\n await req.payload.db.updateOne({\n id,\n collection: collectionConfig.slug,\n data: dataToUpdate,\n locale,\n req,\n })\n resultWithLocales = { ...result, updatedAt: dataToUpdate.updatedAt }\n } else {\n resultWithLocales = await req.payload.db.updateOne({\n id,\n collection: collectionConfig.slug,\n data: dataToUpdate,\n locale,\n req,\n })\n }\n }\n\n // /////////////////////////////////////\n // Create version\n // /////////////////////////////////////\n\n if (collectionConfig.versions) {\n resultWithLocales = await saveVersion({\n id,\n autosave,\n collection: collectionConfig,\n docWithLocales: resultWithLocales,\n draft: isSavingDraft,\n operation: 'update',\n payload,\n req,\n unpublish: unpublishAllLocales,\n })\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth,\n doc: resultWithLocales,\n draft: draftArg,\n fallbackLocale,\n global: null,\n locale,\n overrideAccess,\n populate,\n req,\n select,\n showHiddenFields,\n })\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterRead?.length) {\n for (const hook of collectionConfig.hooks.afterRead) {\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n overrideAccess,\n req,\n })) || result\n }\n }\n\n // /////////////////////////////////////\n // afterChange - Fields\n // /////////////////////////////////////\n\n result = await afterChange({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: result,\n global: null,\n operation: 'update',\n previousDoc: originalDoc,\n req,\n })\n\n // /////////////////////////////////////\n // afterChange - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterChange?.length) {\n for (const hook of collectionConfig.hooks.afterChange) {\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: result,\n operation: 'update',\n overrideAccess,\n previousDoc: originalDoc,\n req,\n })) || result\n }\n }\n\n return result as TransformCollectionWithSelect<TSlug, TSelect>\n}\n"],"names":["ensureUsernameOrEmail","generatePasswordSaltHash","afterChange","afterRead","beforeChange","beforeValidate","deepCopyObjectSimple","saveVersion","deleteAssociatedFiles","uploadFiles","checkDocumentLockStatus","hasDraftsEnabled","hasDraftValidationEnabled","hasLocalizeStatusEnabled","buildLocalizedPublishData","updateDocument","id","autosave","collectionConfig","config","data","depth","docWithLocales","draftArg","fallbackLocale","filesToUpload","locale","overrideAccess","overrideLock","payload","populate","publishAllLocales","publishAllLocalesArg","req","select","showHiddenFields","unpublishAllLocales","unpublishAllLocalesArg","password","isSavingDraft","Boolean","_status","shouldSavePassword","auth","disableLocalStrategy","enableFields","collectionSlug","slug","lockErrorMessage","originalDoc","collection","context","doc","draft","global","isRestoringDraftFromTrash","deletedAt","authOptions","operation","isDraftOverPublished","files","overrideDelete","hooks","length","hook","upload","disableLocalStorage","beforeChangeArgs","skipValidation","trash","result","localization","statusStr","localeCode","localeCodes","localizedPublishData","versions","accessibleLocaleCodes","filterAvailableLocales","filteredLocales","locales","map","code","Array","isArray","currentDoc","db","findOne","where","equals","fields","dataToUpdate","hash","salt","resultWithLocales","updatedAt","Date","toISOString","updateOne","unpublish","previousDoc"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { I18nClient } from '@payloadcms/translations';
2
2
  import type { ImportMap } from '../bin/generateImportMap/index.js';
3
3
  import type { ClientBlock } from '../fields/config/types.js';
4
- import type { BlockSlug, TypedUser } from '../index.js';
4
+ import type { BlockSlug, User } from '../index.js';
5
5
  import type { ClientWidget, RootLivePreviewConfig, SanitizedConfig, ServerOnlyLivePreviewProperties } from './types.js';
6
6
  import { type ClientCollectionConfig } from '../collections/config/client.js';
7
7
  import { type ClientGlobalConfig } from '../globals/config/client.js';
@@ -51,7 +51,7 @@ export type CreateClientConfigArgs = {
51
51
  * For example, allow `true` to generate a client config for the "create first user" page
52
52
  * where there is no user yet, but the config should still be complete.
53
53
  */
54
- user: true | TypedUser;
54
+ user: true | User;
55
55
  };
56
56
  export declare const createUnauthenticatedClientConfig: ({ clientConfig, }: {
57
57
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/config/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/config/client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/config/client.ts"],"sourcesContent":["import type { I18nClient, TFunction } from '@payloadcms/translations'\nimport type { DeepPartial } from 'ts-essentials'\n\nimport type { ImportMap } from '../bin/generateImportMap/index.js'\nimport type { ClientBlock } from '../fields/config/types.js'\nimport type { BlockSlug, TypedUser } from '../index.js'\nimport type {\n ClientWidget,\n RootLivePreviewConfig,\n SanitizedConfig,\n ServerOnlyLivePreviewProperties,\n} from './types.js'\n\nimport {\n type ClientCollectionConfig,\n createClientCollectionConfigs,\n} from '../collections/config/client.js'\nimport { createClientBlocks, createClientFields } from '../fields/config/client.js'\nimport { type ClientGlobalConfig, createClientGlobalConfigs } from '../globals/config/client.js'\n\nexport type ServerOnlyRootProperties = keyof Pick<\n SanitizedConfig,\n | 'bin'\n | 'cors'\n | 'csrf'\n | 'custom'\n | 'db'\n | 'editor'\n | 'email'\n | 'endpoints'\n | 'graphQL'\n | 'hooks'\n | 'i18n'\n | 'jobs'\n | 'kv'\n | 'logger'\n | 'onInit'\n | 'plugins'\n | 'queryPresets'\n | 'secret'\n | 'sharp'\n | 'storage'\n | 'typescript'\n>\n\nexport type ServerOnlyRootAdminProperties = keyof Pick<SanitizedConfig['admin'], 'components'>\n\nexport type ClientConfig = {\n admin: {\n dashboard?: {\n widgets: ClientWidget[]\n }\n livePreview?: Omit<RootLivePreviewConfig, ServerOnlyLivePreviewProperties>\n } & Omit<SanitizedConfig['admin'], 'components' | 'dashboard' | 'dependencies' | 'livePreview'>\n blocks: ClientBlock[]\n blocksMap: Record<BlockSlug, ClientBlock>\n collections: ClientCollectionConfig[]\n custom?: Record<string, any>\n globals: ClientGlobalConfig[]\n unauthenticated?: boolean\n} & Omit<SanitizedConfig, 'admin' | 'collections' | 'globals' | 'i18n' | ServerOnlyRootProperties>\n\nexport type UnauthenticatedClientConfig = {\n admin: {\n routes: ClientConfig['admin']['routes']\n user: ClientConfig['admin']['user']\n }\n collections: [\n {\n auth: ClientCollectionConfig['auth']\n slug: string\n },\n ]\n globals: []\n routes: ClientConfig['routes']\n serverURL: ClientConfig['serverURL']\n unauthenticated: true\n}\n\nexport const serverOnlyAdminConfigProperties: readonly Partial<ServerOnlyRootAdminProperties>[] = []\n\nexport const serverOnlyConfigProperties: readonly Partial<ServerOnlyRootProperties>[] = [\n 'endpoints',\n 'db',\n 'editor',\n 'plugins',\n 'sharp',\n 'onInit',\n 'secret',\n 'hooks',\n 'bin',\n 'i18n',\n 'typescript',\n 'cors',\n 'csrf',\n 'email',\n 'custom',\n 'graphQL',\n 'jobs',\n 'logger',\n 'kv',\n 'queryPresets',\n 'storage',\n // `admin`, `onInit`, `localization`, `collections`, and `globals` are all handled separately\n]\n\nexport type CreateClientConfigArgs = {\n config: SanitizedConfig\n i18n: I18nClient\n importMap: ImportMap\n /**\n * If unauthenticated, the client config will omit some sensitive properties\n * such as field schemas, etc. This is useful for login and error pages where\n * the page source should not contain this information.\n *\n * For example, allow `true` to generate a client config for the \"create first user\" page\n * where there is no user yet, but the config should still be complete.\n */\n user: true | TypedUser\n}\n\nexport const createUnauthenticatedClientConfig = ({\n clientConfig,\n}: {\n /**\n * Send the previously generated client config to share memory when applicable.\n * E.g. the admin-enabled collection config can reference the existing collection rather than creating a new object.\n */\n clientConfig: ClientConfig\n}): UnauthenticatedClientConfig => {\n /**\n * To share memory, find the admin user collection from the existing client config.\n */\n const adminUserCollection = clientConfig.collections.find(\n ({ slug }) => slug === clientConfig.admin.user,\n )!\n\n return {\n admin: {\n routes: clientConfig.admin.routes,\n user: clientConfig.admin.user,\n },\n collections: [\n {\n slug: adminUserCollection.slug,\n auth: adminUserCollection.auth,\n },\n ],\n globals: [],\n routes: clientConfig.routes,\n serverURL: clientConfig.serverURL,\n unauthenticated: true,\n }\n}\n\nexport const createClientConfig = ({\n config,\n i18n,\n importMap,\n}: CreateClientConfigArgs): ClientConfig => {\n const clientConfig = {} as DeepPartial<ClientConfig>\n\n for (const key in config) {\n if (serverOnlyConfigProperties.includes(key as any)) {\n continue\n }\n\n switch (key) {\n case 'admin':\n clientConfig.admin = {\n autoLogin: config.admin.autoLogin,\n autoRefresh: config.admin.autoRefresh,\n avatar: config.admin.avatar,\n custom: config.admin.custom,\n dateFormat: config.admin.dateFormat,\n importMap: config.admin.importMap,\n meta: config.admin.meta,\n routes: config.admin.routes,\n theme: config.admin.theme,\n timezones: config.admin.timezones,\n toast: config.admin.toast,\n user: config.admin.user,\n }\n\n if (config.admin.dashboard?.widgets) {\n ;(clientConfig.admin.dashboard ??= {}).widgets = config.admin.dashboard.widgets.map(\n (widget) => {\n const { Component: _, fields, label, ...rest } = widget\n return {\n ...rest,\n ...(fields?.length\n ? {\n fields: createClientFields({\n defaultIDType: config.db.defaultIDType,\n fields,\n i18n,\n importMap,\n }),\n }\n : {}),\n // Resolve label function to string for client\n label:\n typeof label === 'function' ? label({ i18n, t: i18n.t as TFunction }) : label,\n }\n },\n )\n }\n\n if (config.admin.livePreview) {\n clientConfig.admin.livePreview = {}\n\n if (config.admin.livePreview.breakpoints) {\n clientConfig.admin.livePreview.breakpoints = config.admin.livePreview.breakpoints\n }\n\n if (config.admin.livePreview.collections) {\n clientConfig.admin.livePreview.collections = config.admin.livePreview.collections\n }\n\n if (config.admin.livePreview.globals) {\n clientConfig.admin.livePreview.globals = config.admin.livePreview.globals\n }\n }\n\n break\n\n case 'blocks': {\n ;(clientConfig.blocks as ClientBlock[]) = createClientBlocks({\n blocks: config.blocks!,\n defaultIDType: config.db.defaultIDType,\n i18n,\n importMap,\n }).filter((block) => typeof block !== 'string') as ClientBlock[]\n\n clientConfig.blocksMap = {}\n if (clientConfig.blocks?.length) {\n for (const block of clientConfig.blocks) {\n if (!block?.slug) {\n continue\n }\n\n clientConfig.blocksMap[block.slug] = block as ClientBlock\n }\n }\n\n break\n }\n\n case 'collections':\n ;(clientConfig.collections as ClientCollectionConfig[]) = createClientCollectionConfigs({\n collections: config.collections,\n defaultIDType: config.db.defaultIDType,\n i18n,\n importMap,\n })\n\n break\n\n case 'globals':\n ;(clientConfig.globals as ClientGlobalConfig[]) = createClientGlobalConfigs({\n defaultIDType: config.db.defaultIDType,\n globals: config.globals,\n i18n,\n importMap,\n })\n\n break\n\n case 'localization':\n if (typeof config.localization === 'object' && config.localization) {\n clientConfig.localization = {}\n\n if (config.localization.defaultLocale) {\n clientConfig.localization.defaultLocale = config.localization.defaultLocale\n }\n\n if (config.localization.defaultLocalePublishOption) {\n clientConfig.localization.defaultLocalePublishOption =\n config.localization.defaultLocalePublishOption\n }\n\n if (config.localization.fallback) {\n clientConfig.localization.fallback = config.localization.fallback\n }\n\n if (config.localization.localeCodes) {\n clientConfig.localization.localeCodes = config.localization.localeCodes\n }\n\n if (config.localization.locales) {\n clientConfig.localization.locales = []\n\n for (const locale of config.localization.locales) {\n if (locale) {\n const clientLocale: Partial<(typeof config.localization.locales)[0]> = {}\n\n if (locale.code) {\n clientLocale.code = locale.code\n }\n\n if (locale.fallbackLocale) {\n clientLocale.fallbackLocale = locale.fallbackLocale\n }\n\n if (locale.label) {\n clientLocale.label = locale.label\n }\n\n if (locale.rtl) {\n clientLocale.rtl = locale.rtl\n }\n\n clientConfig.localization.locales.push(clientLocale)\n }\n }\n }\n }\n\n break\n\n default:\n ;(clientConfig as any)[key] = config[key as keyof SanitizedConfig]\n }\n }\n\n return clientConfig as ClientConfig\n}\n"],"names":["createClientCollectionConfigs","createClientBlocks","createClientFields","createClientGlobalConfigs","serverOnlyAdminConfigProperties","serverOnlyConfigProperties","createUnauthenticatedClientConfig","clientConfig","adminUserCollection","collections","find","slug","admin","user","routes","auth","globals","serverURL","unauthenticated","createClientConfig","config","i18n","importMap","key","includes","autoLogin","autoRefresh","avatar","custom","dateFormat","meta","theme","timezones","toast","dashboard","widgets","map","widget","Component","_","fields","label","rest","length","defaultIDType","db","t","livePreview","breakpoints","blocks","filter","block","blocksMap","localization","defaultLocale","defaultLocalePublishOption","fallback","localeCodes","locales","locale","clientLocale","code","fallbackLocale","rtl","push"],"mappings":"AAaA,SAEEA,6BAA6B,QACxB,kCAAiC;AACxC,SAASC,kBAAkB,EAAEC,kBAAkB,QAAQ,6BAA4B;AACnF,SAAkCC,yBAAyB,QAAQ,8BAA6B;AA6DhG,OAAO,MAAMC,kCAAqF,EAAE,CAAA;AAEpG,OAAO,MAAMC,6BAA2E;IACtF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CAED,CAAA;AAiBD,OAAO,MAAMC,oCAAoC,CAAC,EAChDC,YAAY,EAOb;IACC;;GAEC,GACD,MAAMC,sBAAsBD,aAAaE,WAAW,CAACC,IAAI,CACvD,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAASJ,aAAaK,KAAK,CAACC,IAAI;IAGhD,OAAO;QACLD,OAAO;YACLE,QAAQP,aAAaK,KAAK,CAACE,MAAM;YACjCD,MAAMN,aAAaK,KAAK,CAACC,IAAI;QAC/B;QACAJ,aAAa;YACX;gBACEE,MAAMH,oBAAoBG,IAAI;gBAC9BI,MAAMP,oBAAoBO,IAAI;YAChC;SACD;QACDC,SAAS,EAAE;QACXF,QAAQP,aAAaO,MAAM;QAC3BG,WAAWV,aAAaU,SAAS;QACjCC,iBAAiB;IACnB;AACF,EAAC;AAED,OAAO,MAAMC,qBAAqB,CAAC,EACjCC,MAAM,EACNC,IAAI,EACJC,SAAS,EACc;IACvB,MAAMf,eAAe,CAAC;IAEtB,IAAK,MAAMgB,OAAOH,OAAQ;QACxB,IAAIf,2BAA2BmB,QAAQ,CAACD,MAAa;YACnD;QACF;QAEA,OAAQA;YACN,KAAK;gBACHhB,aAAaK,KAAK,GAAG;oBACnBa,WAAWL,OAAOR,KAAK,CAACa,SAAS;oBACjCC,aAAaN,OAAOR,KAAK,CAACc,WAAW;oBACrCC,QAAQP,OAAOR,KAAK,CAACe,MAAM;oBAC3BC,QAAQR,OAAOR,KAAK,CAACgB,MAAM;oBAC3BC,YAAYT,OAAOR,KAAK,CAACiB,UAAU;oBACnCP,WAAWF,OAAOR,KAAK,CAACU,SAAS;oBACjCQ,MAAMV,OAAOR,KAAK,CAACkB,IAAI;oBACvBhB,QAAQM,OAAOR,KAAK,CAACE,MAAM;oBAC3BiB,OAAOX,OAAOR,KAAK,CAACmB,KAAK;oBACzBC,WAAWZ,OAAOR,KAAK,CAACoB,SAAS;oBACjCC,OAAOb,OAAOR,KAAK,CAACqB,KAAK;oBACzBpB,MAAMO,OAAOR,KAAK,CAACC,IAAI;gBACzB;gBAEA,IAAIO,OAAOR,KAAK,CAACsB,SAAS,EAAEC,SAAS;;oBACjC5B,CAAAA,aAAaK,KAAK,CAACsB,SAAS,KAAK,CAAC,CAAA,EAAGC,OAAO,GAAGf,OAAOR,KAAK,CAACsB,SAAS,CAACC,OAAO,CAACC,GAAG,CACjF,CAACC;wBACC,MAAM,EAAEC,WAAWC,CAAC,EAAEC,MAAM,EAAEC,KAAK,EAAE,GAAGC,MAAM,GAAGL;wBACjD,OAAO;4BACL,GAAGK,IAAI;4BACP,GAAIF,QAAQG,SACR;gCACEH,QAAQtC,mBAAmB;oCACzB0C,eAAexB,OAAOyB,EAAE,CAACD,aAAa;oCACtCJ;oCACAnB;oCACAC;gCACF;4BACF,IACA,CAAC,CAAC;4BACN,8CAA8C;4BAC9CmB,OACE,OAAOA,UAAU,aAAaA,MAAM;gCAAEpB;gCAAMyB,GAAGzB,KAAKyB,CAAC;4BAAc,KAAKL;wBAC5E;oBACF;gBAEJ;gBAEA,IAAIrB,OAAOR,KAAK,CAACmC,WAAW,EAAE;oBAC5BxC,aAAaK,KAAK,CAACmC,WAAW,GAAG,CAAC;oBAElC,IAAI3B,OAAOR,KAAK,CAACmC,WAAW,CAACC,WAAW,EAAE;wBACxCzC,aAAaK,KAAK,CAACmC,WAAW,CAACC,WAAW,GAAG5B,OAAOR,KAAK,CAACmC,WAAW,CAACC,WAAW;oBACnF;oBAEA,IAAI5B,OAAOR,KAAK,CAACmC,WAAW,CAACtC,WAAW,EAAE;wBACxCF,aAAaK,KAAK,CAACmC,WAAW,CAACtC,WAAW,GAAGW,OAAOR,KAAK,CAACmC,WAAW,CAACtC,WAAW;oBACnF;oBAEA,IAAIW,OAAOR,KAAK,CAACmC,WAAW,CAAC/B,OAAO,EAAE;wBACpCT,aAAaK,KAAK,CAACmC,WAAW,CAAC/B,OAAO,GAAGI,OAAOR,KAAK,CAACmC,WAAW,CAAC/B,OAAO;oBAC3E;gBACF;gBAEA;YAEF,KAAK;gBAAU;;oBACXT,aAAa0C,MAAM,GAAqBhD,mBAAmB;wBAC3DgD,QAAQ7B,OAAO6B,MAAM;wBACrBL,eAAexB,OAAOyB,EAAE,CAACD,aAAa;wBACtCvB;wBACAC;oBACF,GAAG4B,MAAM,CAAC,CAACC,QAAU,OAAOA,UAAU;oBAEtC5C,aAAa6C,SAAS,GAAG,CAAC;oBAC1B,IAAI7C,aAAa0C,MAAM,EAAEN,QAAQ;wBAC/B,KAAK,MAAMQ,SAAS5C,aAAa0C,MAAM,CAAE;4BACvC,IAAI,CAACE,OAAOxC,MAAM;gCAChB;4BACF;4BAEAJ,aAAa6C,SAAS,CAACD,MAAMxC,IAAI,CAAC,GAAGwC;wBACvC;oBACF;oBAEA;gBACF;YAEA,KAAK;;gBACD5C,aAAaE,WAAW,GAAgCT,8BAA8B;oBACtFS,aAAaW,OAAOX,WAAW;oBAC/BmC,eAAexB,OAAOyB,EAAE,CAACD,aAAa;oBACtCvB;oBACAC;gBACF;gBAEA;YAEF,KAAK;;gBACDf,aAAaS,OAAO,GAA4Bb,0BAA0B;oBAC1EyC,eAAexB,OAAOyB,EAAE,CAACD,aAAa;oBACtC5B,SAASI,OAAOJ,OAAO;oBACvBK;oBACAC;gBACF;gBAEA;YAEF,KAAK;gBACH,IAAI,OAAOF,OAAOiC,YAAY,KAAK,YAAYjC,OAAOiC,YAAY,EAAE;oBAClE9C,aAAa8C,YAAY,GAAG,CAAC;oBAE7B,IAAIjC,OAAOiC,YAAY,CAACC,aAAa,EAAE;wBACrC/C,aAAa8C,YAAY,CAACC,aAAa,GAAGlC,OAAOiC,YAAY,CAACC,aAAa;oBAC7E;oBAEA,IAAIlC,OAAOiC,YAAY,CAACE,0BAA0B,EAAE;wBAClDhD,aAAa8C,YAAY,CAACE,0BAA0B,GAClDnC,OAAOiC,YAAY,CAACE,0BAA0B;oBAClD;oBAEA,IAAInC,OAAOiC,YAAY,CAACG,QAAQ,EAAE;wBAChCjD,aAAa8C,YAAY,CAACG,QAAQ,GAAGpC,OAAOiC,YAAY,CAACG,QAAQ;oBACnE;oBAEA,IAAIpC,OAAOiC,YAAY,CAACI,WAAW,EAAE;wBACnClD,aAAa8C,YAAY,CAACI,WAAW,GAAGrC,OAAOiC,YAAY,CAACI,WAAW;oBACzE;oBAEA,IAAIrC,OAAOiC,YAAY,CAACK,OAAO,EAAE;wBAC/BnD,aAAa8C,YAAY,CAACK,OAAO,GAAG,EAAE;wBAEtC,KAAK,MAAMC,UAAUvC,OAAOiC,YAAY,CAACK,OAAO,CAAE;4BAChD,IAAIC,QAAQ;gCACV,MAAMC,eAAiE,CAAC;gCAExE,IAAID,OAAOE,IAAI,EAAE;oCACfD,aAAaC,IAAI,GAAGF,OAAOE,IAAI;gCACjC;gCAEA,IAAIF,OAAOG,cAAc,EAAE;oCACzBF,aAAaE,cAAc,GAAGH,OAAOG,cAAc;gCACrD;gCAEA,IAAIH,OAAOlB,KAAK,EAAE;oCAChBmB,aAAanB,KAAK,GAAGkB,OAAOlB,KAAK;gCACnC;gCAEA,IAAIkB,OAAOI,GAAG,EAAE;oCACdH,aAAaG,GAAG,GAAGJ,OAAOI,GAAG;gCAC/B;gCAEAxD,aAAa8C,YAAY,CAACK,OAAO,CAACM,IAAI,CAACJ;4BACzC;wBACF;oBACF;gBACF;gBAEA;YAEF;;gBACIrD,YAAoB,CAACgB,IAAI,GAAGH,MAAM,CAACG,IAA6B;QACtE;IACF;IAEA,OAAOhB;AACT,EAAC"}
1
+ {"version":3,"sources":["../../src/config/client.ts"],"sourcesContent":["import type { I18nClient, TFunction } from '@payloadcms/translations'\nimport type { DeepPartial } from 'ts-essentials'\n\nimport type { ImportMap } from '../bin/generateImportMap/index.js'\nimport type { ClientBlock } from '../fields/config/types.js'\nimport type { BlockSlug, User } from '../index.js'\nimport type {\n ClientWidget,\n RootLivePreviewConfig,\n SanitizedConfig,\n ServerOnlyLivePreviewProperties,\n} from './types.js'\n\nimport {\n type ClientCollectionConfig,\n createClientCollectionConfigs,\n} from '../collections/config/client.js'\nimport { createClientBlocks, createClientFields } from '../fields/config/client.js'\nimport { type ClientGlobalConfig, createClientGlobalConfigs } from '../globals/config/client.js'\n\nexport type ServerOnlyRootProperties = keyof Pick<\n SanitizedConfig,\n | 'bin'\n | 'cors'\n | 'csrf'\n | 'custom'\n | 'db'\n | 'editor'\n | 'email'\n | 'endpoints'\n | 'graphQL'\n | 'hooks'\n | 'i18n'\n | 'jobs'\n | 'kv'\n | 'logger'\n | 'onInit'\n | 'plugins'\n | 'queryPresets'\n | 'secret'\n | 'sharp'\n | 'storage'\n | 'typescript'\n>\n\nexport type ServerOnlyRootAdminProperties = keyof Pick<SanitizedConfig['admin'], 'components'>\n\nexport type ClientConfig = {\n admin: {\n dashboard?: {\n widgets: ClientWidget[]\n }\n livePreview?: Omit<RootLivePreviewConfig, ServerOnlyLivePreviewProperties>\n } & Omit<SanitizedConfig['admin'], 'components' | 'dashboard' | 'dependencies' | 'livePreview'>\n blocks: ClientBlock[]\n blocksMap: Record<BlockSlug, ClientBlock>\n collections: ClientCollectionConfig[]\n custom?: Record<string, any>\n globals: ClientGlobalConfig[]\n unauthenticated?: boolean\n} & Omit<SanitizedConfig, 'admin' | 'collections' | 'globals' | 'i18n' | ServerOnlyRootProperties>\n\nexport type UnauthenticatedClientConfig = {\n admin: {\n routes: ClientConfig['admin']['routes']\n user: ClientConfig['admin']['user']\n }\n collections: [\n {\n auth: ClientCollectionConfig['auth']\n slug: string\n },\n ]\n globals: []\n routes: ClientConfig['routes']\n serverURL: ClientConfig['serverURL']\n unauthenticated: true\n}\n\nexport const serverOnlyAdminConfigProperties: readonly Partial<ServerOnlyRootAdminProperties>[] = []\n\nexport const serverOnlyConfigProperties: readonly Partial<ServerOnlyRootProperties>[] = [\n 'endpoints',\n 'db',\n 'editor',\n 'plugins',\n 'sharp',\n 'onInit',\n 'secret',\n 'hooks',\n 'bin',\n 'i18n',\n 'typescript',\n 'cors',\n 'csrf',\n 'email',\n 'custom',\n 'graphQL',\n 'jobs',\n 'logger',\n 'kv',\n 'queryPresets',\n 'storage',\n // `admin`, `onInit`, `localization`, `collections`, and `globals` are all handled separately\n]\n\nexport type CreateClientConfigArgs = {\n config: SanitizedConfig\n i18n: I18nClient\n importMap: ImportMap\n /**\n * If unauthenticated, the client config will omit some sensitive properties\n * such as field schemas, etc. This is useful for login and error pages where\n * the page source should not contain this information.\n *\n * For example, allow `true` to generate a client config for the \"create first user\" page\n * where there is no user yet, but the config should still be complete.\n */\n user: true | User\n}\n\nexport const createUnauthenticatedClientConfig = ({\n clientConfig,\n}: {\n /**\n * Send the previously generated client config to share memory when applicable.\n * E.g. the admin-enabled collection config can reference the existing collection rather than creating a new object.\n */\n clientConfig: ClientConfig\n}): UnauthenticatedClientConfig => {\n /**\n * To share memory, find the admin user collection from the existing client config.\n */\n const adminUserCollection = clientConfig.collections.find(\n ({ slug }) => slug === clientConfig.admin.user,\n )!\n\n return {\n admin: {\n routes: clientConfig.admin.routes,\n user: clientConfig.admin.user,\n },\n collections: [\n {\n slug: adminUserCollection.slug,\n auth: adminUserCollection.auth,\n },\n ],\n globals: [],\n routes: clientConfig.routes,\n serverURL: clientConfig.serverURL,\n unauthenticated: true,\n }\n}\n\nexport const createClientConfig = ({\n config,\n i18n,\n importMap,\n}: CreateClientConfigArgs): ClientConfig => {\n const clientConfig = {} as DeepPartial<ClientConfig>\n\n for (const key in config) {\n if (serverOnlyConfigProperties.includes(key as any)) {\n continue\n }\n\n switch (key) {\n case 'admin':\n clientConfig.admin = {\n autoLogin: config.admin.autoLogin,\n autoRefresh: config.admin.autoRefresh,\n avatar: config.admin.avatar,\n custom: config.admin.custom,\n dateFormat: config.admin.dateFormat,\n importMap: config.admin.importMap,\n meta: config.admin.meta,\n routes: config.admin.routes,\n theme: config.admin.theme,\n timezones: config.admin.timezones,\n toast: config.admin.toast,\n user: config.admin.user,\n }\n\n if (config.admin.dashboard?.widgets) {\n ;(clientConfig.admin.dashboard ??= {}).widgets = config.admin.dashboard.widgets.map(\n (widget) => {\n const { Component: _, fields, label, ...rest } = widget\n return {\n ...rest,\n ...(fields?.length\n ? {\n fields: createClientFields({\n defaultIDType: config.db.defaultIDType,\n fields,\n i18n,\n importMap,\n }),\n }\n : {}),\n // Resolve label function to string for client\n label:\n typeof label === 'function' ? label({ i18n, t: i18n.t as TFunction }) : label,\n }\n },\n )\n }\n\n if (config.admin.livePreview) {\n clientConfig.admin.livePreview = {}\n\n if (config.admin.livePreview.breakpoints) {\n clientConfig.admin.livePreview.breakpoints = config.admin.livePreview.breakpoints\n }\n\n if (config.admin.livePreview.collections) {\n clientConfig.admin.livePreview.collections = config.admin.livePreview.collections\n }\n\n if (config.admin.livePreview.globals) {\n clientConfig.admin.livePreview.globals = config.admin.livePreview.globals\n }\n }\n\n break\n\n case 'blocks': {\n ;(clientConfig.blocks as ClientBlock[]) = createClientBlocks({\n blocks: config.blocks!,\n defaultIDType: config.db.defaultIDType,\n i18n,\n importMap,\n }).filter((block) => typeof block !== 'string')\n\n clientConfig.blocksMap = {}\n if (clientConfig.blocks?.length) {\n for (const block of clientConfig.blocks) {\n if (!block?.slug) {\n continue\n }\n\n clientConfig.blocksMap[block.slug] = block as ClientBlock\n }\n }\n\n break\n }\n\n case 'collections':\n ;(clientConfig.collections as ClientCollectionConfig[]) = createClientCollectionConfigs({\n collections: config.collections,\n defaultIDType: config.db.defaultIDType,\n i18n,\n importMap,\n })\n\n break\n\n case 'globals':\n ;(clientConfig.globals as ClientGlobalConfig[]) = createClientGlobalConfigs({\n defaultIDType: config.db.defaultIDType,\n globals: config.globals,\n i18n,\n importMap,\n })\n\n break\n\n case 'localization':\n if (typeof config.localization === 'object' && config.localization) {\n clientConfig.localization = {}\n\n if (config.localization.defaultLocale) {\n clientConfig.localization.defaultLocale = config.localization.defaultLocale\n }\n\n if (config.localization.defaultLocalePublishOption) {\n clientConfig.localization.defaultLocalePublishOption =\n config.localization.defaultLocalePublishOption\n }\n\n if (config.localization.fallback) {\n clientConfig.localization.fallback = config.localization.fallback\n }\n\n if (config.localization.localeCodes) {\n clientConfig.localization.localeCodes = config.localization.localeCodes\n }\n\n if (config.localization.locales) {\n clientConfig.localization.locales = []\n\n for (const locale of config.localization.locales) {\n if (locale) {\n const clientLocale: Partial<(typeof config.localization.locales)[0]> = {}\n\n if (locale.code) {\n clientLocale.code = locale.code\n }\n\n if (locale.fallbackLocale) {\n clientLocale.fallbackLocale = locale.fallbackLocale\n }\n\n if (locale.label) {\n clientLocale.label = locale.label\n }\n\n if (locale.rtl) {\n clientLocale.rtl = locale.rtl\n }\n\n clientConfig.localization.locales.push(clientLocale)\n }\n }\n }\n }\n\n break\n\n default:\n ;(clientConfig as any)[key] = config[key as keyof SanitizedConfig]\n }\n }\n\n return clientConfig as ClientConfig\n}\n"],"names":["createClientCollectionConfigs","createClientBlocks","createClientFields","createClientGlobalConfigs","serverOnlyAdminConfigProperties","serverOnlyConfigProperties","createUnauthenticatedClientConfig","clientConfig","adminUserCollection","collections","find","slug","admin","user","routes","auth","globals","serverURL","unauthenticated","createClientConfig","config","i18n","importMap","key","includes","autoLogin","autoRefresh","avatar","custom","dateFormat","meta","theme","timezones","toast","dashboard","widgets","map","widget","Component","_","fields","label","rest","length","defaultIDType","db","t","livePreview","breakpoints","blocks","filter","block","blocksMap","localization","defaultLocale","defaultLocalePublishOption","fallback","localeCodes","locales","locale","clientLocale","code","fallbackLocale","rtl","push"],"mappings":"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"}
@@ -1,7 +1,3 @@
1
1
  import type { Config } from './types.js';
2
- /**
3
- * @deprecated - remove in 4.0. This is error-prone, as mutating this object will affect any objects that use the defaults as a base.
4
- */
5
- export declare const defaults: Omit<Config, 'db' | 'editor' | 'secret'>;
6
2
  export declare const addDefaultsToConfig: (config: Config) => Config;
7
3
  //# sourceMappingURL=defaults.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAKxC;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,QAAQ,GAAG,QAAQ,CAwE7D,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,KAAG,MA4FpD,CAAA"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAKxC,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,KAAG,MA4FpD,CAAA"}