payload 4.0.0-internal.ea6e8f8 → 4.0.0-internal.ee5d8bd

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 (703) hide show
  1. package/dist/admin/adapters/router.d.ts +1 -1
  2. package/dist/admin/adapters/router.d.ts.map +1 -1
  3. package/dist/admin/adapters/router.js.map +1 -1
  4. package/dist/admin/forms/Diff.d.ts +0 -4
  5. package/dist/admin/forms/Diff.d.ts.map +1 -1
  6. package/dist/admin/forms/Diff.js.map +1 -1
  7. package/dist/admin/forms/Form.d.ts +0 -2
  8. package/dist/admin/forms/Form.d.ts.map +1 -1
  9. package/dist/admin/forms/Form.js.map +1 -1
  10. package/dist/admin/initAdminContext.d.ts.map +1 -1
  11. package/dist/admin/initAdminContext.js +0 -10
  12. package/dist/admin/initAdminContext.js.map +1 -1
  13. package/dist/auth/createAuthToken.d.ts +26 -0
  14. package/dist/auth/createAuthToken.d.ts.map +1 -0
  15. package/dist/auth/createAuthToken.js +39 -0
  16. package/dist/auth/createAuthToken.js.map +1 -0
  17. package/dist/auth/endpoints/refresh.d.ts.map +1 -1
  18. package/dist/auth/endpoints/refresh.js +2 -1
  19. package/dist/auth/endpoints/refresh.js.map +1 -1
  20. package/dist/auth/getFieldsToSign.js.map +1 -1
  21. package/dist/auth/loginWithCookie.d.ts.map +1 -1
  22. package/dist/auth/loginWithCookie.js +1 -0
  23. package/dist/auth/loginWithCookie.js.map +1 -1
  24. package/dist/auth/operations/local/login.d.ts.map +1 -1
  25. package/dist/auth/operations/local/login.js +1 -0
  26. package/dist/auth/operations/local/login.js.map +1 -1
  27. package/dist/auth/operations/login.d.ts +2 -0
  28. package/dist/auth/operations/login.d.ts.map +1 -1
  29. package/dist/auth/operations/login.js +6 -19
  30. package/dist/auth/operations/login.js.map +1 -1
  31. package/dist/auth/operations/refresh.d.ts +8 -0
  32. package/dist/auth/operations/refresh.d.ts.map +1 -1
  33. package/dist/auth/operations/refresh.js +50 -19
  34. package/dist/auth/operations/refresh.js.map +1 -1
  35. package/dist/auth/operations/resetPassword.d.ts.map +1 -1
  36. package/dist/auth/operations/resetPassword.js +54 -20
  37. package/dist/auth/operations/resetPassword.js.map +1 -1
  38. package/dist/auth/refreshAuthToken.d.ts +32 -0
  39. package/dist/auth/refreshAuthToken.d.ts.map +1 -0
  40. package/dist/auth/refreshAuthToken.js +113 -0
  41. package/dist/auth/refreshAuthToken.js.map +1 -0
  42. package/dist/auth/serverFunctions/cookies.js.map +1 -1
  43. package/dist/auth/serverFunctions/login.js.map +1 -1
  44. package/dist/auth/sessions.d.ts +9 -2
  45. package/dist/auth/sessions.d.ts.map +1 -1
  46. package/dist/auth/sessions.js +6 -5
  47. package/dist/auth/sessions.js.map +1 -1
  48. package/dist/auth/types.d.ts +25 -1
  49. package/dist/auth/types.d.ts.map +1 -1
  50. package/dist/auth/types.js.map +1 -1
  51. package/dist/cli/commands/data/utilities.d.ts +1 -1
  52. package/dist/cli/commands/data/utilities.d.ts.map +1 -1
  53. package/dist/cli/commands/data/utilities.js.map +1 -1
  54. package/dist/cli/defineCLICommand.js +1 -1
  55. package/dist/cli/defineCLICommand.js.map +1 -1
  56. package/dist/collections/config/client.d.ts +1 -1
  57. package/dist/collections/config/client.d.ts.map +1 -1
  58. package/dist/collections/config/client.js +0 -1
  59. package/dist/collections/config/client.js.map +1 -1
  60. package/dist/collections/config/defaults.d.ts +2 -0
  61. package/dist/collections/config/defaults.d.ts.map +1 -1
  62. package/dist/collections/config/defaults.js +4 -0
  63. package/dist/collections/config/defaults.js.map +1 -1
  64. package/dist/collections/config/sanitize.d.ts.map +1 -1
  65. package/dist/collections/config/sanitize.js +3 -0
  66. package/dist/collections/config/sanitize.js.map +1 -1
  67. package/dist/collections/config/sanitizeCompoundIndexes.d.ts.map +1 -1
  68. package/dist/collections/config/sanitizeCompoundIndexes.js +0 -9
  69. package/dist/collections/config/sanitizeCompoundIndexes.js.map +1 -1
  70. package/dist/collections/config/types.d.ts +4 -21
  71. package/dist/collections/config/types.d.ts.map +1 -1
  72. package/dist/collections/config/types.js.map +1 -1
  73. package/dist/collections/dataloader.d.ts +1 -10
  74. package/dist/collections/dataloader.d.ts.map +1 -1
  75. package/dist/collections/dataloader.js +6 -14
  76. package/dist/collections/dataloader.js.map +1 -1
  77. package/dist/collections/operations/create.d.ts.map +1 -1
  78. package/dist/collections/operations/create.js +0 -13
  79. package/dist/collections/operations/create.js.map +1 -1
  80. package/dist/collections/operations/delete.d.ts.map +1 -1
  81. package/dist/collections/operations/delete.js +121 -638
  82. package/dist/collections/operations/delete.js.map +1 -1
  83. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  84. package/dist/collections/operations/deleteByID.js +32 -238
  85. package/dist/collections/operations/deleteByID.js.map +1 -1
  86. package/dist/collections/operations/findByID.d.ts.map +1 -1
  87. package/dist/collections/operations/findByID.js +0 -6
  88. package/dist/collections/operations/findByID.js.map +1 -1
  89. package/dist/collections/operations/findDistinct.d.ts.map +1 -1
  90. package/dist/collections/operations/findDistinct.js +6 -7
  91. package/dist/collections/operations/findDistinct.js.map +1 -1
  92. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  93. package/dist/collections/operations/findVersionByID.js +7 -0
  94. package/dist/collections/operations/findVersionByID.js.map +1 -1
  95. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  96. package/dist/collections/operations/findVersions.js +5 -0
  97. package/dist/collections/operations/findVersions.js.map +1 -1
  98. package/dist/collections/operations/local/count.d.ts +4 -9
  99. package/dist/collections/operations/local/count.d.ts.map +1 -1
  100. package/dist/collections/operations/local/count.js.map +1 -1
  101. package/dist/collections/operations/local/countVersions.d.ts +0 -4
  102. package/dist/collections/operations/local/countVersions.d.ts.map +1 -1
  103. package/dist/collections/operations/local/countVersions.js.map +1 -1
  104. package/dist/collections/operations/local/create.d.ts +4 -9
  105. package/dist/collections/operations/local/create.d.ts.map +1 -1
  106. package/dist/collections/operations/local/create.js.map +1 -1
  107. package/dist/collections/operations/local/delete.d.ts +4 -9
  108. package/dist/collections/operations/local/delete.d.ts.map +1 -1
  109. package/dist/collections/operations/local/delete.js.map +1 -1
  110. package/dist/collections/operations/local/duplicate.d.ts +0 -5
  111. package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
  112. package/dist/collections/operations/local/duplicate.js.map +1 -1
  113. package/dist/collections/operations/local/find.d.ts +4 -9
  114. package/dist/collections/operations/local/find.d.ts.map +1 -1
  115. package/dist/collections/operations/local/find.js.map +1 -1
  116. package/dist/collections/operations/local/findByID.d.ts +4 -9
  117. package/dist/collections/operations/local/findByID.d.ts.map +1 -1
  118. package/dist/collections/operations/local/findByID.js.map +1 -1
  119. package/dist/collections/operations/local/findDistinct.d.ts +0 -5
  120. package/dist/collections/operations/local/findDistinct.d.ts.map +1 -1
  121. package/dist/collections/operations/local/findDistinct.js.map +1 -1
  122. package/dist/collections/operations/local/findVersionByID.d.ts +0 -5
  123. package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
  124. package/dist/collections/operations/local/findVersionByID.js.map +1 -1
  125. package/dist/collections/operations/local/findVersions.d.ts +0 -5
  126. package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
  127. package/dist/collections/operations/local/findVersions.js.map +1 -1
  128. package/dist/collections/operations/local/restoreVersion.d.ts +0 -5
  129. package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
  130. package/dist/collections/operations/local/restoreVersion.js.map +1 -1
  131. package/dist/collections/operations/local/update.d.ts +4 -9
  132. package/dist/collections/operations/local/update.d.ts.map +1 -1
  133. package/dist/collections/operations/local/update.js.map +1 -1
  134. package/dist/collections/operations/renameFile.js +1 -1
  135. package/dist/collections/operations/renameFile.js.map +1 -1
  136. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  137. package/dist/collections/operations/restoreVersion.js +76 -157
  138. package/dist/collections/operations/restoreVersion.js.map +1 -1
  139. package/dist/collections/operations/update.d.ts.map +1 -1
  140. package/dist/collections/operations/update.js +171 -357
  141. package/dist/collections/operations/update.js.map +1 -1
  142. package/dist/collections/operations/updateByID.d.ts +0 -15
  143. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  144. package/dist/collections/operations/updateByID.js +60 -265
  145. package/dist/collections/operations/updateByID.js.map +1 -1
  146. package/dist/collections/operations/utilities/buildBeforeOperation.d.ts.map +1 -1
  147. package/dist/collections/operations/utilities/buildBeforeOperation.js +0 -7
  148. package/dist/collections/operations/utilities/buildBeforeOperation.js.map +1 -1
  149. package/dist/collections/operations/utilities/update.d.ts +1 -14
  150. package/dist/collections/operations/utilities/update.d.ts.map +1 -1
  151. package/dist/collections/operations/utilities/update.js +20 -92
  152. package/dist/collections/operations/utilities/update.js.map +1 -1
  153. package/dist/collections/operations/validate.js +4 -4
  154. package/dist/collections/operations/validate.js.map +1 -1
  155. package/dist/config/client.d.ts +1 -3
  156. package/dist/config/client.d.ts.map +1 -1
  157. package/dist/config/client.js +1 -9
  158. package/dist/config/client.js.map +1 -1
  159. package/dist/config/defaults.d.ts.map +1 -1
  160. package/dist/config/defaults.js +1 -0
  161. package/dist/config/defaults.js.map +1 -1
  162. package/dist/config/definePlugin.js.map +1 -1
  163. package/dist/config/sanitize.d.ts.map +1 -1
  164. package/dist/config/sanitize.js +2 -40
  165. package/dist/config/sanitize.js.map +1 -1
  166. package/dist/config/types.d.ts +13 -21
  167. package/dist/config/types.d.ts.map +1 -1
  168. package/dist/config/types.js.map +1 -1
  169. package/dist/database/defaultCopy.d.ts.map +1 -1
  170. package/dist/database/defaultCopy.js +0 -1
  171. package/dist/database/defaultCopy.js.map +1 -1
  172. package/dist/database/types.d.ts +4 -75
  173. package/dist/database/types.d.ts.map +1 -1
  174. package/dist/database/types.js.map +1 -1
  175. package/dist/exports/build-config.d.ts +9 -0
  176. package/dist/exports/build-config.d.ts.map +1 -0
  177. package/dist/exports/build-config.js +38 -0
  178. package/dist/exports/build-config.js.map +1 -0
  179. package/dist/exports/shared.d.ts +0 -2
  180. package/dist/exports/shared.d.ts.map +1 -1
  181. package/dist/exports/shared.js +0 -2
  182. package/dist/exports/shared.js.map +1 -1
  183. package/dist/fields/baseFields/authorship/index.d.ts +1 -2
  184. package/dist/fields/baseFields/authorship/index.d.ts.map +1 -1
  185. package/dist/fields/baseFields/authorship/index.js +0 -12
  186. package/dist/fields/baseFields/authorship/index.js.map +1 -1
  187. package/dist/fields/config/client.js.map +1 -1
  188. package/dist/fields/config/reservedFieldNames.d.ts.map +1 -1
  189. package/dist/fields/config/reservedFieldNames.js.map +1 -1
  190. package/dist/fields/config/types.d.ts.map +1 -1
  191. package/dist/fields/config/types.js.map +1 -1
  192. package/dist/fields/hooks/afterChange/promise.js.map +1 -1
  193. package/dist/fields/hooks/afterRead/index.d.ts +0 -8
  194. package/dist/fields/hooks/afterRead/index.d.ts.map +1 -1
  195. package/dist/fields/hooks/afterRead/index.js +2 -6
  196. package/dist/fields/hooks/afterRead/index.js.map +1 -1
  197. package/dist/fields/hooks/afterRead/promise.d.ts +1 -3
  198. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
  199. package/dist/fields/hooks/afterRead/promise.js +17 -41
  200. package/dist/fields/hooks/afterRead/promise.js.map +1 -1
  201. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts.map +1 -1
  202. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js +0 -2
  203. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js.map +1 -1
  204. package/dist/fields/hooks/afterRead/traverseFields.d.ts +1 -3
  205. package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
  206. package/dist/fields/hooks/afterRead/traverseFields.js +2 -4
  207. package/dist/fields/hooks/afterRead/traverseFields.js.map +1 -1
  208. package/dist/fields/hooks/afterRead/virtualFieldPopulationPromise.d.ts.map +1 -1
  209. package/dist/fields/hooks/afterRead/virtualFieldPopulationPromise.js +0 -3
  210. package/dist/fields/hooks/afterRead/virtualFieldPopulationPromise.js.map +1 -1
  211. package/dist/fields/hooks/beforeChange/flattenValidationData.d.ts +14 -0
  212. package/dist/fields/hooks/beforeChange/flattenValidationData.d.ts.map +1 -0
  213. package/dist/fields/hooks/beforeChange/flattenValidationData.js +36 -0
  214. package/dist/fields/hooks/beforeChange/flattenValidationData.js.map +1 -0
  215. package/dist/fields/hooks/beforeChange/promise.d.ts +2 -1
  216. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  217. package/dist/fields/hooks/beforeChange/promise.js +96 -22
  218. package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
  219. package/dist/fields/hooks/beforeChange/traverseFields.d.ts +2 -1
  220. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  221. package/dist/fields/hooks/beforeChange/traverseFields.js +2 -1
  222. package/dist/fields/hooks/beforeChange/traverseFields.js.map +1 -1
  223. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  224. package/dist/fields/hooks/beforeValidate/promise.js +0 -8
  225. package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
  226. package/dist/fields/validations.d.ts.map +1 -1
  227. package/dist/fields/validations.js +4 -1
  228. package/dist/fields/validations.js.map +1 -1
  229. package/dist/globals/config/types.d.ts +2 -6
  230. package/dist/globals/config/types.d.ts.map +1 -1
  231. package/dist/globals/config/types.js.map +1 -1
  232. package/dist/globals/operations/countGlobalVersions.d.ts.map +1 -1
  233. package/dist/globals/operations/countGlobalVersions.js +0 -7
  234. package/dist/globals/operations/countGlobalVersions.js.map +1 -1
  235. package/dist/globals/operations/findOne.d.ts.map +1 -1
  236. package/dist/globals/operations/findOne.js +0 -7
  237. package/dist/globals/operations/findOne.js.map +1 -1
  238. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  239. package/dist/globals/operations/findVersionByID.js +6 -6
  240. package/dist/globals/operations/findVersionByID.js.map +1 -1
  241. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  242. package/dist/globals/operations/findVersions.js +4 -6
  243. package/dist/globals/operations/findVersions.js.map +1 -1
  244. package/dist/globals/operations/local/countVersions.d.ts +0 -5
  245. package/dist/globals/operations/local/countVersions.d.ts.map +1 -1
  246. package/dist/globals/operations/local/countVersions.js.map +1 -1
  247. package/dist/globals/operations/local/findOne.d.ts +0 -5
  248. package/dist/globals/operations/local/findOne.d.ts.map +1 -1
  249. package/dist/globals/operations/local/findOne.js.map +1 -1
  250. package/dist/globals/operations/local/findVersionByID.d.ts +0 -5
  251. package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
  252. package/dist/globals/operations/local/findVersionByID.js.map +1 -1
  253. package/dist/globals/operations/local/findVersions.d.ts +0 -5
  254. package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
  255. package/dist/globals/operations/local/findVersions.js.map +1 -1
  256. package/dist/globals/operations/local/restoreVersion.d.ts +0 -5
  257. package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
  258. package/dist/globals/operations/local/restoreVersion.js.map +1 -1
  259. package/dist/globals/operations/local/update.d.ts +0 -5
  260. package/dist/globals/operations/local/update.d.ts.map +1 -1
  261. package/dist/globals/operations/local/update.js +18 -61
  262. package/dist/globals/operations/local/update.js.map +1 -1
  263. package/dist/globals/operations/restoreVersion.d.ts +2 -3
  264. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  265. package/dist/globals/operations/restoreVersion.js +24 -61
  266. package/dist/globals/operations/restoreVersion.js.map +1 -1
  267. package/dist/globals/operations/update.d.ts.map +1 -1
  268. package/dist/globals/operations/update.js +8 -86
  269. package/dist/globals/operations/update.js.map +1 -1
  270. package/dist/globals/operations/validate.js +1 -1
  271. package/dist/globals/operations/validate.js.map +1 -1
  272. package/dist/hierarchy/addHierarchyToCollection.d.ts.map +1 -1
  273. package/dist/hierarchy/addHierarchyToCollection.js +32 -21
  274. package/dist/hierarchy/addHierarchyToCollection.js.map +1 -1
  275. package/dist/hierarchy/createFolderField.js.map +1 -1
  276. package/dist/hierarchy/getInitialTreeData.d.ts +1 -3
  277. package/dist/hierarchy/getInitialTreeData.d.ts.map +1 -1
  278. package/dist/hierarchy/getInitialTreeData.js +1 -4
  279. package/dist/hierarchy/getInitialTreeData.js.map +1 -1
  280. package/dist/hierarchy/resolveHierarchyCollections.js +9 -3
  281. package/dist/hierarchy/resolveHierarchyCollections.js.map +1 -1
  282. package/dist/hierarchy/utils/computePaths.d.ts.map +1 -1
  283. package/dist/hierarchy/utils/computePaths.js.map +1 -1
  284. package/dist/index.bundled.d.ts +4336 -5501
  285. package/dist/index.d.ts +27 -51
  286. package/dist/index.d.ts.map +1 -1
  287. package/dist/index.js +14 -37
  288. package/dist/index.js.map +1 -1
  289. package/dist/llm-instructions/getInstructionsCollection.d.ts.map +1 -1
  290. package/dist/llm-instructions/getInstructionsCollection.js +2 -0
  291. package/dist/llm-instructions/getInstructionsCollection.js.map +1 -1
  292. package/dist/preferences/keys.d.ts +4 -11
  293. package/dist/preferences/keys.d.ts.map +1 -1
  294. package/dist/preferences/keys.js +3 -10
  295. package/dist/preferences/keys.js.map +1 -1
  296. package/dist/preferences/types.d.ts +0 -19
  297. package/dist/preferences/types.d.ts.map +1 -1
  298. package/dist/preferences/types.js.map +1 -1
  299. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js +1 -1
  300. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js.map +1 -1
  301. package/dist/types/index.d.ts +0 -13
  302. package/dist/types/index.d.ts.map +1 -1
  303. package/dist/types/index.js.map +1 -1
  304. package/dist/uploads/deleteAssociatedFiles.d.ts.map +1 -1
  305. package/dist/uploads/deleteAssociatedFiles.js +29 -108
  306. package/dist/uploads/deleteAssociatedFiles.js.map +1 -1
  307. package/dist/uploads/endpoints/getFile.d.ts.map +1 -1
  308. package/dist/uploads/endpoints/getFile.js +0 -5
  309. package/dist/uploads/endpoints/getFile.js.map +1 -1
  310. package/dist/uploads/fileExists.d.ts.map +1 -1
  311. package/dist/uploads/fileExists.js +2 -5
  312. package/dist/uploads/fileExists.js.map +1 -1
  313. package/dist/uploads/fileVersioning/archive.d.ts.map +1 -1
  314. package/dist/uploads/fileVersioning/archive.js +1 -15
  315. package/dist/uploads/fileVersioning/archive.js.map +1 -1
  316. package/dist/uploads/fileVersioning/cleanup.d.ts +0 -7
  317. package/dist/uploads/fileVersioning/cleanup.d.ts.map +1 -1
  318. package/dist/uploads/fileVersioning/cleanup.js +0 -12
  319. package/dist/uploads/fileVersioning/cleanup.js.map +1 -1
  320. package/dist/uploads/fileVersioning/cloudStorage.d.ts.map +1 -1
  321. package/dist/uploads/fileVersioning/cloudStorage.js +1 -16
  322. package/dist/uploads/fileVersioning/cloudStorage.js.map +1 -1
  323. package/dist/uploads/fileVersioning/resolveHistoricalFile.js.map +1 -1
  324. package/dist/uploads/formatFilesize.js +1 -1
  325. package/dist/uploads/formatFilesize.js.map +1 -1
  326. package/dist/uploads/generateFileData.d.ts +0 -5
  327. package/dist/uploads/generateFileData.d.ts.map +1 -1
  328. package/dist/uploads/generateFileData.js +2 -74
  329. package/dist/uploads/generateFileData.js.map +1 -1
  330. package/dist/uploads/getBaseFields.d.ts.map +1 -1
  331. package/dist/uploads/getBaseFields.js +29 -46
  332. package/dist/uploads/getBaseFields.js.map +1 -1
  333. package/dist/uploads/getFileContentRequirement.js.map +1 -1
  334. package/dist/uploads/getFileFromUploadInstructions.js.map +1 -1
  335. package/dist/uploads/getSafeFilename.d.ts.map +1 -1
  336. package/dist/uploads/getSafeFilename.js +3 -5
  337. package/dist/uploads/getSafeFilename.js.map +1 -1
  338. package/dist/uploads/safeFetch.js.map +1 -1
  339. package/dist/uploads/stagedUpload.js.map +1 -1
  340. package/dist/uploads/transformers/handleDynamicFileRequest.js +11 -2
  341. package/dist/uploads/transformers/handleDynamicFileRequest.js.map +1 -1
  342. package/dist/uploads/types.d.ts +0 -11
  343. package/dist/uploads/types.d.ts.map +1 -1
  344. package/dist/uploads/types.js.map +1 -1
  345. package/dist/uploads/uploadFiles.d.ts +1 -4
  346. package/dist/uploads/uploadFiles.d.ts.map +1 -1
  347. package/dist/uploads/uploadFiles.js +5 -29
  348. package/dist/uploads/uploadFiles.js.map +1 -1
  349. package/dist/utilities/addSelectGenericsToGeneretedTypes.d.ts.map +1 -1
  350. package/dist/utilities/addSelectGenericsToGeneretedTypes.js +0 -1
  351. package/dist/utilities/addSelectGenericsToGeneretedTypes.js.map +1 -1
  352. package/dist/utilities/appendDateTimezoneSelectFields.js.map +1 -1
  353. package/dist/utilities/assertNoValidationWrite.d.ts.map +1 -1
  354. package/dist/utilities/assertNoValidationWrite.js +0 -4
  355. package/dist/utilities/assertNoValidationWrite.js.map +1 -1
  356. package/dist/utilities/checkDocumentLockStatus.d.ts +6 -15
  357. package/dist/utilities/checkDocumentLockStatus.d.ts.map +1 -1
  358. package/dist/utilities/checkDocumentLockStatus.js +11 -44
  359. package/dist/utilities/checkDocumentLockStatus.js.map +1 -1
  360. package/dist/utilities/cloneValidationRequest.js.map +1 -1
  361. package/dist/utilities/commitTransaction.d.ts +0 -4
  362. package/dist/utilities/commitTransaction.d.ts.map +1 -1
  363. package/dist/utilities/commitTransaction.js +1 -41
  364. package/dist/utilities/commitTransaction.js.map +1 -1
  365. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  366. package/dist/utilities/configToJSONSchema.js +2 -18
  367. package/dist/utilities/configToJSONSchema.js.map +1 -1
  368. package/dist/utilities/createPayloadRequest.d.ts +0 -5
  369. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  370. package/dist/utilities/createPayloadRequest.js +3 -50
  371. package/dist/utilities/createPayloadRequest.js.map +1 -1
  372. package/dist/utilities/createPayloadRequestFromWebRequest.d.ts +12 -1
  373. package/dist/utilities/createPayloadRequestFromWebRequest.d.ts.map +1 -1
  374. package/dist/utilities/createPayloadRequestFromWebRequest.js +9 -5
  375. package/dist/utilities/createPayloadRequestFromWebRequest.js.map +1 -1
  376. package/dist/utilities/deepCopyObject.js.map +1 -1
  377. package/dist/utilities/documentMatchingWhereExists.js +1 -1
  378. package/dist/utilities/documentMatchingWhereExists.js.map +1 -1
  379. package/dist/utilities/entityInputSchema/validateEntityData.d.ts.map +1 -1
  380. package/dist/utilities/entityInputSchema/validateEntityData.js.map +1 -1
  381. package/dist/utilities/filterDataToSelectedLocales.js.map +1 -1
  382. package/dist/utilities/getEntityPermissions/getEntityPermissions.d.ts.map +1 -1
  383. package/dist/utilities/getEntityPermissions/getEntityPermissions.js +1 -0
  384. package/dist/utilities/getEntityPermissions/getEntityPermissions.js.map +1 -1
  385. package/dist/utilities/getEntityPermissions/populateFieldPermissions.js.map +1 -1
  386. package/dist/utilities/getVersionsConfig.d.ts +4 -0
  387. package/dist/utilities/getVersionsConfig.d.ts.map +1 -1
  388. package/dist/utilities/getVersionsConfig.js +5 -0
  389. package/dist/utilities/getVersionsConfig.js.map +1 -1
  390. package/dist/utilities/handleEndpoints.d.ts.map +1 -1
  391. package/dist/utilities/handleEndpoints.js +10 -9
  392. package/dist/utilities/handleEndpoints.js.map +1 -1
  393. package/dist/utilities/httpStatus.d.ts +0 -2
  394. package/dist/utilities/httpStatus.d.ts.map +1 -1
  395. package/dist/utilities/httpStatus.js +1 -3
  396. package/dist/utilities/httpStatus.js.map +1 -1
  397. package/dist/utilities/initTransaction.d.ts.map +1 -1
  398. package/dist/utilities/initTransaction.js +7 -35
  399. package/dist/utilities/initTransaction.js.map +1 -1
  400. package/dist/utilities/killTransaction.d.ts.map +1 -1
  401. package/dist/utilities/killTransaction.js +0 -27
  402. package/dist/utilities/killTransaction.js.map +1 -1
  403. package/dist/utilities/parseParams/index.js.map +1 -1
  404. package/dist/utilities/parseValidationLocale.js.map +1 -1
  405. package/dist/utilities/sanitizePopulateParam.js.map +1 -1
  406. package/dist/utilities/telemetry/conf/index.d.ts +4 -1
  407. package/dist/utilities/telemetry/conf/index.d.ts.map +1 -1
  408. package/dist/utilities/telemetry/conf/index.js.map +1 -1
  409. package/dist/utilities/telemetry/featureInfo/getFeatureInfo.js.map +1 -1
  410. package/dist/versions/allLocalesPublicationStatus.js.map +1 -1
  411. package/dist/versions/buildCollectionFields.d.ts.map +1 -1
  412. package/dist/versions/buildCollectionFields.js +0 -23
  413. package/dist/versions/buildCollectionFields.js.map +1 -1
  414. package/dist/versions/buildGlobalFields.d.ts.map +1 -1
  415. package/dist/versions/buildGlobalFields.js +0 -14
  416. package/dist/versions/buildGlobalFields.js.map +1 -1
  417. package/dist/versions/buildVersionCompoundIndexes.d.ts.map +1 -1
  418. package/dist/versions/buildVersionCompoundIndexes.js +2 -8
  419. package/dist/versions/buildVersionCompoundIndexes.js.map +1 -1
  420. package/dist/versions/deleteCollectionVersions.d.ts +1 -2
  421. package/dist/versions/deleteCollectionVersions.d.ts.map +1 -1
  422. package/dist/versions/deleteCollectionVersions.js +8 -37
  423. package/dist/versions/deleteCollectionVersions.js.map +1 -1
  424. package/dist/versions/deleteScheduledPublishJobs.d.ts.map +1 -1
  425. package/dist/versions/deleteScheduledPublishJobs.js +0 -4
  426. package/dist/versions/deleteScheduledPublishJobs.js.map +1 -1
  427. package/dist/versions/drafts/appendVersionToQueryKey.d.ts.map +1 -1
  428. package/dist/versions/drafts/appendVersionToQueryKey.js +1 -9
  429. package/dist/versions/drafts/appendVersionToQueryKey.js.map +1 -1
  430. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
  431. package/dist/versions/drafts/replaceWithDraftIfAvailable.js +1 -8
  432. package/dist/versions/drafts/replaceWithDraftIfAvailable.js.map +1 -1
  433. package/dist/versions/enforceMaxVersions.d.ts +0 -1
  434. package/dist/versions/enforceMaxVersions.d.ts.map +1 -1
  435. package/dist/versions/enforceMaxVersions.js +6 -22
  436. package/dist/versions/enforceMaxVersions.js.map +1 -1
  437. package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
  438. package/dist/versions/getLatestCollectionVersion.js +2 -10
  439. package/dist/versions/getLatestCollectionVersion.js.map +1 -1
  440. package/dist/versions/getLatestGlobalVersion.d.ts +2 -6
  441. package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
  442. package/dist/versions/getLatestGlobalVersion.js +21 -65
  443. package/dist/versions/getLatestGlobalVersion.js.map +1 -1
  444. package/dist/versions/isInheritedReadVersionsAccess.js.map +1 -1
  445. package/dist/versions/saveVersion.d.ts +0 -7
  446. package/dist/versions/saveVersion.d.ts.map +1 -1
  447. package/dist/versions/saveVersion.js +4 -27
  448. package/dist/versions/saveVersion.js.map +1 -1
  449. package/dist/versions/updateLatestVersion.d.ts +0 -1
  450. package/dist/versions/updateLatestVersion.d.ts.map +1 -1
  451. package/dist/versions/updateLatestVersion.js +7 -24
  452. package/dist/versions/updateLatestVersion.js.map +1 -1
  453. package/package.json +30 -28
  454. package/skills/payload/reference/ENDPOINTS.md +3 -9
  455. package/skills/payload/reference/PLUGIN-DEVELOPMENT.md +4 -4
  456. package/dist/admin/getAdminPreferences.d.ts +0 -10
  457. package/dist/admin/getAdminPreferences.d.ts.map +0 -1
  458. package/dist/admin/getAdminPreferences.js +0 -53
  459. package/dist/admin/getAdminPreferences.js.map +0 -1
  460. package/dist/admin/getRequestBranch.d.ts +0 -6
  461. package/dist/admin/getRequestBranch.d.ts.map +0 -1
  462. package/dist/admin/getRequestBranch.js +0 -17
  463. package/dist/admin/getRequestBranch.js.map +0 -1
  464. package/dist/branching/appendBranchFilter.d.ts +0 -30
  465. package/dist/branching/appendBranchFilter.d.ts.map +0 -1
  466. package/dist/branching/appendBranchFilter.js +0 -105
  467. package/dist/branching/appendBranchFilter.js.map +0 -1
  468. package/dist/branching/assertBranchAccess.d.ts +0 -10
  469. package/dist/branching/assertBranchAccess.d.ts.map +0 -1
  470. package/dist/branching/assertBranchAccess.js +0 -36
  471. package/dist/branching/assertBranchAccess.js.map +0 -1
  472. package/dist/branching/assertBranchActionAccess.d.ts +0 -10
  473. package/dist/branching/assertBranchActionAccess.d.ts.map +0 -1
  474. package/dist/branching/assertBranchActionAccess.js +0 -15
  475. package/dist/branching/assertBranchActionAccess.js.map +0 -1
  476. package/dist/branching/assertBranchCreatedDocumentsUnreferenced.d.ts +0 -53
  477. package/dist/branching/assertBranchCreatedDocumentsUnreferenced.d.ts.map +0 -1
  478. package/dist/branching/assertBranchCreatedDocumentsUnreferenced.js +0 -833
  479. package/dist/branching/assertBranchCreatedDocumentsUnreferenced.js.map +0 -1
  480. package/dist/branching/assertBranchReadable.d.ts +0 -36
  481. package/dist/branching/assertBranchReadable.d.ts.map +0 -1
  482. package/dist/branching/assertBranchReadable.js +0 -83
  483. package/dist/branching/assertBranchReadable.js.map +0 -1
  484. package/dist/branching/assertBranchUpdateAccess.d.ts +0 -8
  485. package/dist/branching/assertBranchUpdateAccess.d.ts.map +0 -1
  486. package/dist/branching/assertBranchUpdateAccess.js +0 -12
  487. package/dist/branching/assertBranchUpdateAccess.js.map +0 -1
  488. package/dist/branching/assertBranchWritable.d.ts +0 -18
  489. package/dist/branching/assertBranchWritable.d.ts.map +0 -1
  490. package/dist/branching/assertBranchWritable.js +0 -46
  491. package/dist/branching/assertBranchWritable.js.map +0 -1
  492. package/dist/branching/branchIDs.d.ts +0 -38
  493. package/dist/branching/branchIDs.d.ts.map +0 -1
  494. package/dist/branching/branchIDs.js +0 -113
  495. package/dist/branching/branchIDs.js.map +0 -1
  496. package/dist/branching/branchSelect.d.ts +0 -42
  497. package/dist/branching/branchSelect.d.ts.map +0 -1
  498. package/dist/branching/branchSelect.js +0 -97
  499. package/dist/branching/branchSelect.js.map +0 -1
  500. package/dist/branching/checkFieldAccess.d.ts +0 -21
  501. package/dist/branching/checkFieldAccess.d.ts.map +0 -1
  502. package/dist/branching/checkFieldAccess.js +0 -238
  503. package/dist/branching/checkFieldAccess.js.map +0 -1
  504. package/dist/branching/collections.d.ts +0 -14
  505. package/dist/branching/collections.d.ts.map +0 -1
  506. package/dist/branching/collections.js +0 -713
  507. package/dist/branching/collections.js.map +0 -1
  508. package/dist/branching/combineBranchAccess.d.ts +0 -6
  509. package/dist/branching/combineBranchAccess.d.ts.map +0 -1
  510. package/dist/branching/combineBranchAccess.js +0 -22
  511. package/dist/branching/combineBranchAccess.js.map +0 -1
  512. package/dist/branching/copyUploadFilesToBranch.d.ts +0 -9
  513. package/dist/branching/copyUploadFilesToBranch.d.ts.map +0 -1
  514. package/dist/branching/copyUploadFilesToBranch.js +0 -126
  515. package/dist/branching/copyUploadFilesToBranch.js.map +0 -1
  516. package/dist/branching/createShadowRow.d.ts +0 -70
  517. package/dist/branching/createShadowRow.d.ts.map +0 -1
  518. package/dist/branching/createShadowRow.js +0 -296
  519. package/dist/branching/createShadowRow.js.map +0 -1
  520. package/dist/branching/discard.d.ts +0 -52
  521. package/dist/branching/discard.d.ts.map +0 -1
  522. package/dist/branching/discard.js +0 -428
  523. package/dist/branching/discard.js.map +0 -1
  524. package/dist/branching/effectiveOperations.d.ts +0 -55
  525. package/dist/branching/effectiveOperations.d.ts.map +0 -1
  526. package/dist/branching/effectiveOperations.js +0 -472
  527. package/dist/branching/effectiveOperations.js.map +0 -1
  528. package/dist/branching/endpoints/discard.d.ts +0 -15
  529. package/dist/branching/endpoints/discard.d.ts.map +0 -1
  530. package/dist/branching/endpoints/discard.js +0 -55
  531. package/dist/branching/endpoints/discard.js.map +0 -1
  532. package/dist/branching/endpoints/merge.d.ts +0 -34
  533. package/dist/branching/endpoints/merge.d.ts.map +0 -1
  534. package/dist/branching/endpoints/merge.js +0 -119
  535. package/dist/branching/endpoints/merge.js.map +0 -1
  536. package/dist/branching/forkDocument.d.ts +0 -20
  537. package/dist/branching/forkDocument.d.ts.map +0 -1
  538. package/dist/branching/forkDocument.js +0 -169
  539. package/dist/branching/forkDocument.js.map +0 -1
  540. package/dist/branching/globalMergeWrites.d.ts +0 -21
  541. package/dist/branching/globalMergeWrites.d.ts.map +0 -1
  542. package/dist/branching/globalMergeWrites.js +0 -146
  543. package/dist/branching/globalMergeWrites.js.map +0 -1
  544. package/dist/branching/globals.d.ts +0 -49
  545. package/dist/branching/globals.d.ts.map +0 -1
  546. package/dist/branching/globals.js +0 -197
  547. package/dist/branching/globals.js.map +0 -1
  548. package/dist/branching/hooks.d.ts +0 -24
  549. package/dist/branching/hooks.d.ts.map +0 -1
  550. package/dist/branching/hooks.js +0 -92
  551. package/dist/branching/hooks.js.map +0 -1
  552. package/dist/branching/injectBranchFields.d.ts +0 -40
  553. package/dist/branching/injectBranchFields.d.ts.map +0 -1
  554. package/dist/branching/injectBranchFields.js +0 -229
  555. package/dist/branching/injectBranchFields.js.map +0 -1
  556. package/dist/branching/merge/applyMergeChange.d.ts +0 -27
  557. package/dist/branching/merge/applyMergeChange.d.ts.map +0 -1
  558. package/dist/branching/merge/applyMergeChange.js +0 -853
  559. package/dist/branching/merge/applyMergeChange.js.map +0 -1
  560. package/dist/branching/merge/branchMergeStatus.d.ts +0 -12
  561. package/dist/branching/merge/branchMergeStatus.d.ts.map +0 -1
  562. package/dist/branching/merge/branchMergeStatus.js +0 -74
  563. package/dist/branching/merge/branchMergeStatus.js.map +0 -1
  564. package/dist/branching/merge/executeMerge.d.ts +0 -22
  565. package/dist/branching/merge/executeMerge.d.ts.map +0 -1
  566. package/dist/branching/merge/executeMerge.js +0 -600
  567. package/dist/branching/merge/executeMerge.js.map +0 -1
  568. package/dist/branching/merge/finalizeMerge.d.ts +0 -40
  569. package/dist/branching/merge/finalizeMerge.d.ts.map +0 -1
  570. package/dist/branching/merge/finalizeMerge.js +0 -237
  571. package/dist/branching/merge/finalizeMerge.js.map +0 -1
  572. package/dist/branching/merge/mergeLedger.d.ts +0 -40
  573. package/dist/branching/merge/mergeLedger.d.ts.map +0 -1
  574. package/dist/branching/merge/mergeLedger.js +0 -130
  575. package/dist/branching/merge/mergeLedger.js.map +0 -1
  576. package/dist/branching/merge/prepareMerge.d.ts +0 -41
  577. package/dist/branching/merge/prepareMerge.d.ts.map +0 -1
  578. package/dist/branching/merge/prepareMerge.js +0 -234
  579. package/dist/branching/merge/prepareMerge.js.map +0 -1
  580. package/dist/branching/merge/recoverMerge.d.ts +0 -16
  581. package/dist/branching/merge/recoverMerge.d.ts.map +0 -1
  582. package/dist/branching/merge/recoverMerge.js +0 -199
  583. package/dist/branching/merge/recoverMerge.js.map +0 -1
  584. package/dist/branching/merge/retryFailedCleanups.d.ts +0 -36
  585. package/dist/branching/merge/retryFailedCleanups.d.ts.map +0 -1
  586. package/dist/branching/merge/retryFailedCleanups.js +0 -335
  587. package/dist/branching/merge/retryFailedCleanups.js.map +0 -1
  588. package/dist/branching/merge/utilities.d.ts +0 -35
  589. package/dist/branching/merge/utilities.d.ts.map +0 -1
  590. package/dist/branching/merge/utilities.js +0 -54
  591. package/dist/branching/merge/utilities.js.map +0 -1
  592. package/dist/branching/merge.d.ts +0 -88
  593. package/dist/branching/merge.d.ts.map +0 -1
  594. package/dist/branching/merge.js +0 -163
  595. package/dist/branching/merge.js.map +0 -1
  596. package/dist/branching/mergeWriteGuard.d.ts +0 -20
  597. package/dist/branching/mergeWriteGuard.d.ts.map +0 -1
  598. package/dist/branching/mergeWriteGuard.js +0 -27
  599. package/dist/branching/mergeWriteGuard.js.map +0 -1
  600. package/dist/branching/preflight.d.ts +0 -71
  601. package/dist/branching/preflight.d.ts.map +0 -1
  602. package/dist/branching/preflight.js +0 -757
  603. package/dist/branching/preflight.js.map +0 -1
  604. package/dist/branching/readLocalizedBranchWrite.d.ts +0 -14
  605. package/dist/branching/readLocalizedBranchWrite.d.ts.map +0 -1
  606. package/dist/branching/readLocalizedBranchWrite.js +0 -90
  607. package/dist/branching/readLocalizedBranchWrite.js.map +0 -1
  608. package/dist/branching/readMergeSnapshot.d.ts +0 -18
  609. package/dist/branching/readMergeSnapshot.d.ts.map +0 -1
  610. package/dist/branching/readMergeSnapshot.js +0 -99
  611. package/dist/branching/readMergeSnapshot.js.map +0 -1
  612. package/dist/branching/resolveBranch.d.ts +0 -153
  613. package/dist/branching/resolveBranch.d.ts.map +0 -1
  614. package/dist/branching/resolveBranch.js +0 -363
  615. package/dist/branching/resolveBranch.js.map +0 -1
  616. package/dist/branching/resolveBranchActionAccess.d.ts +0 -8
  617. package/dist/branching/resolveBranchActionAccess.d.ts.map +0 -1
  618. package/dist/branching/resolveBranchActionAccess.js +0 -9
  619. package/dist/branching/resolveBranchActionAccess.js.map +0 -1
  620. package/dist/branching/resolveBranchQuery.d.ts +0 -48
  621. package/dist/branching/resolveBranchQuery.d.ts.map +0 -1
  622. package/dist/branching/resolveBranchQuery.js +0 -115
  623. package/dist/branching/resolveBranchQuery.js.map +0 -1
  624. package/dist/branching/resolveBranchRowID.d.ts +0 -22
  625. package/dist/branching/resolveBranchRowID.d.ts.map +0 -1
  626. package/dist/branching/resolveBranchRowID.js +0 -70
  627. package/dist/branching/resolveBranchRowID.js.map +0 -1
  628. package/dist/branching/sanitizeBranchingConfig.d.ts +0 -31
  629. package/dist/branching/sanitizeBranchingConfig.d.ts.map +0 -1
  630. package/dist/branching/sanitizeBranchingConfig.js +0 -110
  631. package/dist/branching/sanitizeBranchingConfig.js.map +0 -1
  632. package/dist/branching/schedule/job.d.ts +0 -51
  633. package/dist/branching/schedule/job.d.ts.map +0 -1
  634. package/dist/branching/schedule/job.js +0 -151
  635. package/dist/branching/schedule/job.js.map +0 -1
  636. package/dist/branching/selectBranchChanges.d.ts +0 -8
  637. package/dist/branching/selectBranchChanges.d.ts.map +0 -1
  638. package/dist/branching/selectBranchChanges.js +0 -9
  639. package/dist/branching/selectBranchChanges.js.map +0 -1
  640. package/dist/branching/stripBranchMergeData.d.ts +0 -11
  641. package/dist/branching/stripBranchMergeData.d.ts.map +0 -1
  642. package/dist/branching/stripBranchMergeData.js +0 -20
  643. package/dist/branching/stripBranchMergeData.js.map +0 -1
  644. package/dist/branching/tombstone.d.ts +0 -91
  645. package/dist/branching/tombstone.d.ts.map +0 -1
  646. package/dist/branching/tombstone.js +0 -546
  647. package/dist/branching/tombstone.js.map +0 -1
  648. package/dist/branching/types.d.ts +0 -158
  649. package/dist/branching/types.d.ts.map +0 -1
  650. package/dist/branching/types.js +0 -54
  651. package/dist/branching/types.js.map +0 -1
  652. package/dist/branching/validation.d.ts +0 -47
  653. package/dist/branching/validation.d.ts.map +0 -1
  654. package/dist/branching/validation.js +0 -272
  655. package/dist/branching/validation.js.map +0 -1
  656. package/dist/branching/versions.d.ts +0 -131
  657. package/dist/branching/versions.d.ts.map +0 -1
  658. package/dist/branching/versions.js +0 -572
  659. package/dist/branching/versions.js.map +0 -1
  660. package/dist/collections/operations/utilities/createOperationRetryRequest.d.ts +0 -23
  661. package/dist/collections/operations/utilities/createOperationRetryRequest.d.ts.map +0 -1
  662. package/dist/collections/operations/utilities/createOperationRetryRequest.js +0 -683
  663. package/dist/collections/operations/utilities/createOperationRetryRequest.js.map +0 -1
  664. package/dist/fields/hooks/beforeValidate/throwOnAccessDenied.d.ts +0 -3
  665. package/dist/fields/hooks/beforeValidate/throwOnAccessDenied.d.ts.map +0 -1
  666. package/dist/fields/hooks/beforeValidate/throwOnAccessDenied.js +0 -3
  667. package/dist/fields/hooks/beforeValidate/throwOnAccessDenied.js.map +0 -1
  668. package/dist/uploads/appendBranchToFileURL.d.ts +0 -6
  669. package/dist/uploads/appendBranchToFileURL.d.ts.map +0 -1
  670. package/dist/uploads/appendBranchToFileURL.js +0 -24
  671. package/dist/uploads/appendBranchToFileURL.js.map +0 -1
  672. package/dist/uploads/deleteUploadFilesExclusiveToDocument.d.ts +0 -15
  673. package/dist/uploads/deleteUploadFilesExclusiveToDocument.d.ts.map +0 -1
  674. package/dist/uploads/deleteUploadFilesExclusiveToDocument.js +0 -62
  675. package/dist/uploads/deleteUploadFilesExclusiveToDocument.js.map +0 -1
  676. package/dist/uploads/fileIdentity.d.ts +0 -24
  677. package/dist/uploads/fileIdentity.d.ts.map +0 -1
  678. package/dist/uploads/fileIdentity.js +0 -36
  679. package/dist/uploads/fileIdentity.js.map +0 -1
  680. package/dist/uploads/fileQuarantine.d.ts +0 -17
  681. package/dist/uploads/fileQuarantine.d.ts.map +0 -1
  682. package/dist/uploads/fileQuarantine.js +0 -52
  683. package/dist/uploads/fileQuarantine.js.map +0 -1
  684. package/dist/uploads/linkFileWithoutOverwrite.d.ts +0 -13
  685. package/dist/uploads/linkFileWithoutOverwrite.d.ts.map +0 -1
  686. package/dist/uploads/linkFileWithoutOverwrite.js +0 -13
  687. package/dist/uploads/linkFileWithoutOverwrite.js.map +0 -1
  688. package/dist/uploads/uploadFileRollback.d.ts +0 -31
  689. package/dist/uploads/uploadFileRollback.d.ts.map +0 -1
  690. package/dist/uploads/uploadFileRollback.js +0 -269
  691. package/dist/uploads/uploadFileRollback.js.map +0 -1
  692. package/dist/utilities/extractRelationshipID.d.ts +0 -4
  693. package/dist/utilities/extractRelationshipID.d.ts.map +0 -1
  694. package/dist/utilities/extractRelationshipID.js +0 -14
  695. package/dist/utilities/extractRelationshipID.js.map +0 -1
  696. package/dist/utilities/transactionCallbacks.d.ts +0 -77
  697. package/dist/utilities/transactionCallbacks.d.ts.map +0 -1
  698. package/dist/utilities/transactionCallbacks.js +0 -299
  699. package/dist/utilities/transactionCallbacks.js.map +0 -1
  700. package/dist/utilities/transactionMutationTracker.d.ts +0 -21
  701. package/dist/utilities/transactionMutationTracker.d.ts.map +0 -1
  702. package/dist/utilities/transactionMutationTracker.js +0 -71
  703. package/dist/utilities/transactionMutationTracker.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/collections/operations/utilities/buildBeforeOperation.ts"],"sourcesContent":["import type { CollectionSlug } from '../../../index.js'\nimport type { BeforeOperationArg, OperationArgs, OperationMap } from './types.js'\n\nimport { assertBranchReadable } from '../../../branching/assertBranchReadable.js'\nimport { operationToHookOperation } from './types.js'\n// Specific overloads with TArgs (these take priority over the general overload)\n// Overload for 'read' operation (deprecated, backward compatibility)\n\n/**\n * TODO V4: remove overloads and operations should be the literal operation that was called\n *\n * - `read`: replace with `find` and `findByID` in both operations\n * - `delete`: replace with `deleteByID` in deleteByID operation\n * - `update`: replace with `updateByID` in updateByID operation\n */\n\n/**\n * @deprecated\n *\n * Should use `find` or `findByID`\n */\nexport async function buildBeforeOperation<TOperationGeneric extends CollectionSlug, TArgs>(\n operationArgs: {\n args: TArgs\n operation: 'read'\n } & Omit<BeforeOperationArg<TOperationGeneric>, 'args' | 'context' | 'operation' | 'req'>,\n): Promise<TArgs>\n\n/**\n * Overload for 'readDistinct' operation\n *\n * @deprecated - use `findDistinct`\n */\nexport async function buildBeforeOperation<TOperationGeneric extends CollectionSlug, TArgs>(\n operationArgs: {\n args: TArgs\n operation: 'readDistinct'\n } & Omit<BeforeOperationArg<TOperationGeneric>, 'args' | 'context' | 'operation' | 'req'>,\n): Promise<TArgs>\n\n// Overload for 'update' operation (can be called by both update and updateByID)\nexport async function buildBeforeOperation<TOperationGeneric extends CollectionSlug, TArgs>(\n operationArgs: {\n args: TArgs\n operation: 'update'\n } & Omit<BeforeOperationArg<TOperationGeneric>, 'args' | 'context' | 'operation' | 'req'>,\n): Promise<TArgs>\n\n// Overload for 'updateByID' operation\nexport async function buildBeforeOperation<TOperationGeneric extends CollectionSlug, TArgs>(\n operationArgs: {\n args: TArgs\n operation: 'updateByID'\n } & Omit<BeforeOperationArg<TOperationGeneric>, 'args' | 'context' | 'operation' | 'req'>,\n): Promise<TArgs>\n\nexport async function buildBeforeOperation<TOperationGeneric extends CollectionSlug, TArgs>(\n operationArgs: {\n args: TArgs\n operation: 'delete'\n } & Omit<BeforeOperationArg<TOperationGeneric>, 'args' | 'context' | 'operation' | 'req'>,\n): Promise<TArgs>\n\n// Overload for 'deleteByID' operation\nexport async function buildBeforeOperation<TOperationGeneric extends CollectionSlug, TArgs>(\n operationArgs: {\n args: TArgs\n operation: 'deleteByID'\n } & Omit<BeforeOperationArg<TOperationGeneric>, 'args' | 'context' | 'operation' | 'req'>,\n): Promise<TArgs>\n\n// General overload for operations that exist in OperationMap (fallback)\nexport async function buildBeforeOperation<\n TOperationGeneric extends CollectionSlug,\n O extends keyof OperationMap<TOperationGeneric>,\n>(\n operationArgs: { operation: O } & Omit<BeforeOperationArg<TOperationGeneric>, 'context' | 'req'>,\n): Promise<OperationArgs<TOperationGeneric, O>>\n\n// Implementation\nexport async function buildBeforeOperation<TOperationGeneric extends CollectionSlug>(\n operationArgs: Omit<BeforeOperationArg<TOperationGeneric>, 'context' | 'req'>,\n): Promise<unknown> {\n const { args, collection, operation, overrideAccess } = operationArgs\n\n let newArgs = args\n\n if (!overrideAccess) {\n await assertBranchReadable({ collectionSlug: collection.slug, req: args.req! })\n }\n\n if (args.collection.config.hooks?.beforeOperation?.length) {\n // TODO: v4 should not need this mapping\n // Map the operation to the hook operation type for backward compatibility\n const hookOperation = operationToHookOperation[operation]\n\n for (const hook of args.collection.config.hooks.beforeOperation) {\n const hookResult = await hook({\n args: newArgs,\n collection,\n context: args.req!.context,\n operation: hookOperation,\n overrideAccess,\n req: args.req!,\n } as BeforeOperationArg<TOperationGeneric>)\n\n if (hookResult !== undefined) {\n newArgs = hookResult\n }\n }\n }\n\n return newArgs\n}\n"],"names":["assertBranchReadable","operationToHookOperation","buildBeforeOperation","operationArgs","args","collection","operation","overrideAccess","newArgs","collectionSlug","slug","req","config","hooks","beforeOperation","length","hookOperation","hook","hookResult","context","undefined"],"mappings":"AAGA,SAASA,oBAAoB,QAAQ,6CAA4C;AACjF,SAASC,wBAAwB,QAAQ,aAAY;AA2ErD,iBAAiB;AACjB,OAAO,eAAeC,qBACpBC,aAA6E;IAE7E,MAAM,EAAEC,IAAI,EAAEC,UAAU,EAAEC,SAAS,EAAEC,cAAc,EAAE,GAAGJ;IAExD,IAAIK,UAAUJ;IAEd,IAAI,CAACG,gBAAgB;QACnB,MAAMP,qBAAqB;YAAES,gBAAgBJ,WAAWK,IAAI;YAAEC,KAAKP,KAAKO,GAAG;QAAE;IAC/E;IAEA,IAAIP,KAAKC,UAAU,CAACO,MAAM,CAACC,KAAK,EAAEC,iBAAiBC,QAAQ;QACzD,wCAAwC;QACxC,0EAA0E;QAC1E,MAAMC,gBAAgBf,wBAAwB,CAACK,UAAU;QAEzD,KAAK,MAAMW,QAAQb,KAAKC,UAAU,CAACO,MAAM,CAACC,KAAK,CAACC,eAAe,CAAE;YAC/D,MAAMI,aAAa,MAAMD,KAAK;gBAC5Bb,MAAMI;gBACNH;gBACAc,SAASf,KAAKO,GAAG,CAAEQ,OAAO;gBAC1Bb,WAAWU;gBACXT;gBACAI,KAAKP,KAAKO,GAAG;YACf;YAEA,IAAIO,eAAeE,WAAW;gBAC5BZ,UAAUU;YACZ;QACF;IACF;IAEA,OAAOV;AACT"}
1
+ {"version":3,"sources":["../../../../src/collections/operations/utilities/buildBeforeOperation.ts"],"sourcesContent":["import type { CollectionSlug } from '../../../index.js'\nimport type { BeforeOperationArg, OperationArgs, OperationMap } from './types.js'\n\nimport { operationToHookOperation } from './types.js'\n// Specific overloads with TArgs (these take priority over the general overload)\n// Overload for 'read' operation (deprecated, backward compatibility)\n\n/**\n * TODO V4: remove overloads and operations should be the literal operation that was called\n *\n * - `read`: replace with `find` and `findByID` in both operations\n * - `delete`: replace with `deleteByID` in deleteByID operation\n * - `update`: replace with `updateByID` in updateByID operation\n */\n\n/**\n * @deprecated\n *\n * Should use `find` or `findByID`\n */\nexport async function buildBeforeOperation<TOperationGeneric extends CollectionSlug, TArgs>(\n operationArgs: {\n args: TArgs\n operation: 'read'\n } & Omit<BeforeOperationArg<TOperationGeneric>, 'args' | 'context' | 'operation' | 'req'>,\n): Promise<TArgs>\n\n/**\n * Overload for 'readDistinct' operation\n *\n * @deprecated - use `findDistinct`\n */\nexport async function buildBeforeOperation<TOperationGeneric extends CollectionSlug, TArgs>(\n operationArgs: {\n args: TArgs\n operation: 'readDistinct'\n } & Omit<BeforeOperationArg<TOperationGeneric>, 'args' | 'context' | 'operation' | 'req'>,\n): Promise<TArgs>\n\n// Overload for 'update' operation (can be called by both update and updateByID)\nexport async function buildBeforeOperation<TOperationGeneric extends CollectionSlug, TArgs>(\n operationArgs: {\n args: TArgs\n operation: 'update'\n } & Omit<BeforeOperationArg<TOperationGeneric>, 'args' | 'context' | 'operation' | 'req'>,\n): Promise<TArgs>\n\n// Overload for 'updateByID' operation\nexport async function buildBeforeOperation<TOperationGeneric extends CollectionSlug, TArgs>(\n operationArgs: {\n args: TArgs\n operation: 'updateByID'\n } & Omit<BeforeOperationArg<TOperationGeneric>, 'args' | 'context' | 'operation' | 'req'>,\n): Promise<TArgs>\n\nexport async function buildBeforeOperation<TOperationGeneric extends CollectionSlug, TArgs>(\n operationArgs: {\n args: TArgs\n operation: 'delete'\n } & Omit<BeforeOperationArg<TOperationGeneric>, 'args' | 'context' | 'operation' | 'req'>,\n): Promise<TArgs>\n\n// Overload for 'deleteByID' operation\nexport async function buildBeforeOperation<TOperationGeneric extends CollectionSlug, TArgs>(\n operationArgs: {\n args: TArgs\n operation: 'deleteByID'\n } & Omit<BeforeOperationArg<TOperationGeneric>, 'args' | 'context' | 'operation' | 'req'>,\n): Promise<TArgs>\n\n// General overload for operations that exist in OperationMap (fallback)\nexport async function buildBeforeOperation<\n TOperationGeneric extends CollectionSlug,\n O extends keyof OperationMap<TOperationGeneric>,\n>(\n operationArgs: { operation: O } & Omit<BeforeOperationArg<TOperationGeneric>, 'context' | 'req'>,\n): Promise<OperationArgs<TOperationGeneric, O>>\n\n// Implementation\nexport async function buildBeforeOperation<TOperationGeneric extends CollectionSlug>(\n operationArgs: Omit<BeforeOperationArg<TOperationGeneric>, 'context' | 'req'>,\n): Promise<unknown> {\n const { args, collection, operation, overrideAccess } = operationArgs\n\n let newArgs = args\n\n if (args.collection.config.hooks?.beforeOperation?.length) {\n // TODO: v4 should not need this mapping\n // Map the operation to the hook operation type for backward compatibility\n const hookOperation = operationToHookOperation[operation]\n\n for (const hook of args.collection.config.hooks.beforeOperation) {\n const hookResult = await hook({\n args: newArgs,\n collection,\n context: args.req!.context,\n operation: hookOperation,\n overrideAccess,\n req: args.req!,\n } as BeforeOperationArg<TOperationGeneric>)\n\n if (hookResult !== undefined) {\n newArgs = hookResult\n }\n }\n }\n\n return newArgs\n}\n"],"names":["operationToHookOperation","buildBeforeOperation","operationArgs","args","collection","operation","overrideAccess","newArgs","config","hooks","beforeOperation","length","hookOperation","hook","hookResult","context","req","undefined"],"mappings":"AAGA,SAASA,wBAAwB,QAAQ,aAAY;AA2ErD,iBAAiB;AACjB,OAAO,eAAeC,qBACpBC,aAA6E;IAE7E,MAAM,EAAEC,IAAI,EAAEC,UAAU,EAAEC,SAAS,EAAEC,cAAc,EAAE,GAAGJ;IAExD,IAAIK,UAAUJ;IAEd,IAAIA,KAAKC,UAAU,CAACI,MAAM,CAACC,KAAK,EAAEC,iBAAiBC,QAAQ;QACzD,wCAAwC;QACxC,0EAA0E;QAC1E,MAAMC,gBAAgBZ,wBAAwB,CAACK,UAAU;QAEzD,KAAK,MAAMQ,QAAQV,KAAKC,UAAU,CAACI,MAAM,CAACC,KAAK,CAACC,eAAe,CAAE;YAC/D,MAAMI,aAAa,MAAMD,KAAK;gBAC5BV,MAAMI;gBACNH;gBACAW,SAASZ,KAAKa,GAAG,CAAED,OAAO;gBAC1BV,WAAWO;gBACXN;gBACAU,KAAKb,KAAKa,GAAG;YACf;YAEA,IAAIF,eAAeG,WAAW;gBAC5BV,UAAUO;YACZ;QACF;IACF;IAEA,OAAOP;AACT"}
@@ -2,15 +2,12 @@ import type { DeepPartial } from 'ts-essentials';
2
2
  import type { CollectionSlug, FileToSave, SanitizedConfig, TypedFallbackLocale } from '../../../index.js';
3
3
  import type { JsonObject, Payload, PayloadRequest, PopulateType, SelectType, TransformCollectionWithSelect } from '../../../types/index.js';
4
4
  import type { SharedLocalAPIOptions } from '../../../types/operations.js';
5
- import type { UploadFileRollbacks } from '../../../uploads/uploadFileRollback.js';
6
5
  import type { DataFromCollectionSlug, SanitizedCollectionConfig, SelectFromCollectionSlug, TypeWithID } from '../../config/types.js';
7
6
  export type SharedUpdateDocumentArgs<TSlug extends CollectionSlug> = {
8
7
  autosave: boolean;
9
8
  collectionConfig: SanitizedCollectionConfig;
10
9
  config: SanitizedConfig;
11
10
  data: DeepPartial<DataFromCollectionSlug<TSlug>>;
12
- /** @internal Request used only for database reads and writes during branch promotion. */
13
- databaseReq?: PayloadRequest;
14
11
  depth: number;
15
12
  docWithLocales: JsonObject & TypeWithID;
16
13
  draftArg: boolean;
@@ -18,15 +15,6 @@ export type SharedUpdateDocumentArgs<TSlug extends CollectionSlug> = {
18
15
  filesToUpload: FileToSave[];
19
16
  id: number | string;
20
17
  locale: string;
21
- onBeforeDocumentWrite?: () => void;
22
- /**
23
- * Hook `operation` label. Merge reports a branch-created document as a
24
- * `create` on main even though the row is updated in place, since deleting
25
- * and recreating it would cascade away every inbound relationship.
26
- *
27
- * @default 'update'
28
- */
29
- operation?: 'create' | 'update';
30
18
  overrideLock: boolean;
31
19
  payload: Payload;
32
20
  populate?: PopulateType;
@@ -36,7 +24,6 @@ export type SharedUpdateDocumentArgs<TSlug extends CollectionSlug> = {
36
24
  shouldManageLocalFiles: boolean;
37
25
  showHiddenFields: boolean;
38
26
  unpublishAllLocales?: boolean;
39
- uploadFileRollbacks?: UploadFileRollbacks;
40
27
  } & Pick<Required<SharedLocalAPIOptions>, 'overrideAccess'>;
41
28
  /**
42
29
  * This function is used to update a document in the DB and return the result.
@@ -51,5 +38,5 @@ export type SharedUpdateDocumentArgs<TSlug extends CollectionSlug> = {
51
38
  * - afterChange - Fields
52
39
  * - afterChange - Collection
53
40
  */
54
- export declare const updateDocument: <TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug> = SelectType>({ id, autosave, collectionConfig, config, data, databaseReq, depth, docWithLocales, draftArg, fallbackLocale, filesToUpload, locale, onBeforeDocumentWrite, operation, overrideAccess, overrideLock, payload, populate, publishAllLocales: publishAllLocalesArg, req, select, shouldManageLocalFiles, showHiddenFields, unpublishAllLocales: unpublishAllLocalesArg, uploadFileRollbacks, }: SharedUpdateDocumentArgs<TSlug>) => Promise<TransformCollectionWithSelect<TSlug, TSelect>>;
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, req, select, shouldManageLocalFiles, showHiddenFields, unpublishAllLocales: unpublishAllLocalesArg, }: SharedUpdateDocumentArgs<TSlug>) => Promise<TransformCollectionWithSelect<TSlug, TSelect>>;
55
42
  //# 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;AAIhD,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,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AACjF,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,UAAU,EACX,MAAM,uBAAuB,CAAA;AAkC9B,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,yFAAyF;IACzF,WAAW,CAAC,EAAE,cAAc,CAAA;IAC5B,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,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAA;IAClC;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC/B,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,sBAAsB,EAAE,OAAO,CAAA;IAC/B,gBAAgB,EAAE,OAAO,CAAA;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;CAC1C,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,gBAAgB,CAAC,CAAA;AAE3D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc,GACzB,KAAK,SAAS,cAAc,EAC5B,OAAO,SAAS,wBAAwB,CAAC,KAAK,CAAC,GAAG,UAAU,+XA2B3D,wBAAwB,CAAC,KAAK,CAAC,KAAG,OAAO,CAAC,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,CAilBzF,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;AAIhD,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,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,UAAU,EACX,MAAM,uBAAuB,CAAA;AA8B9B,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,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,sBAAsB,EAAE,OAAO,CAAA;IAC/B,gBAAgB,EAAE,OAAO,CAAA;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,gBAAgB,CAAC,CAAA;AAE3D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc,GACzB,KAAK,SAAS,cAAc,EAC5B,OAAO,SAAS,wBAAwB,CAAC,KAAK,CAAC,GAAG,UAAU,2TAuB3D,wBAAwB,CAAC,KAAK,CAAC,KAAG,OAAO,CAAC,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,CA+gBzF,CAAA"}
@@ -1,8 +1,6 @@
1
1
  import { ensureUsernameOrEmail } from '../../../auth/ensureUsernameOrEmail.js';
2
2
  import { removeExpiredSessions } from '../../../auth/sessions.js';
3
3
  import { generatePasswordSaltHash } from '../../../auth/strategies/local/generatePasswordSaltHash.js';
4
- import { runBranchMergeWriteGuard } from '../../../branching/mergeWriteGuard.js';
5
- import { branchDocIDField, branchField, MAIN_BRANCH } from '../../../branching/types.js';
6
4
  import { ValidationError } from '../../../errors/index.js';
7
5
  import { afterChange } from '../../../fields/hooks/afterChange/index.js';
8
6
  import { afterRead } from '../../../fields/hooks/afterRead/index.js';
@@ -10,14 +8,12 @@ import { beforeChange } from '../../../fields/hooks/beforeChange/index.js';
10
8
  import { beforeValidate } from '../../../fields/hooks/beforeValidate/index.js';
11
9
  import { deepCopyObjectSimple, saveVersion } from '../../../index.js';
12
10
  import { deleteAssociatedFiles } from '../../../uploads/deleteAssociatedFiles.js';
13
- import { deleteUploadFilesExclusiveToDocument } from '../../../uploads/deleteUploadFilesExclusiveToDocument.js';
14
11
  import { runLocalFileUpdate } from '../../../uploads/fileVersioning/archive.js';
15
12
  import { uploadFiles } from '../../../uploads/uploadFiles.js';
16
13
  import { checkDocumentLockStatus } from '../../../utilities/checkDocumentLockStatus.js';
17
14
  import { getTopLevelFieldNames } from '../../../utilities/getTopLevelFieldNames.js';
18
15
  import { hasDraftsEnabled, hasDraftValidationEnabled, hasLocalizeStatusEnabled } from '../../../utilities/getVersionsConfig.js';
19
16
  import { resolvePublishAllLocales } from '../../../utilities/resolvePublishAllLocales.js';
20
- import { markTransactionWrite } from '../../../utilities/transactionMutationTracker.js';
21
17
  import { buildAllLocalesPublicationHookDoc, getAllLocalesPublicationStatus, hasAuthorizedAllLocalesPublicationStatus, validateAllLocalesPublicationFlags } from '../../../versions/allLocalesPublicationStatus.js';
22
18
  import { buildLocalizedPublishData } from '../../../versions/buildSingleLocalePublishData.js';
23
19
  import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
@@ -33,8 +29,7 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
33
29
  * - afterRead - Collection
34
30
  * - afterChange - Fields
35
31
  * - afterChange - Collection
36
- */ export const updateDocument = async ({ id, autosave, collectionConfig, config, data, databaseReq, depth, docWithLocales, draftArg, fallbackLocale, filesToUpload, locale, onBeforeDocumentWrite, operation = 'update', overrideAccess, overrideLock, payload, populate, publishAllLocales: publishAllLocalesArg, req, select, shouldManageLocalFiles, showHiddenFields, unpublishAllLocales: unpublishAllLocalesArg, uploadFileRollbacks })=>{
37
- const databaseRequest = databaseReq ?? req;
32
+ */ export const updateDocument = async ({ id, autosave, collectionConfig, config, data, depth, docWithLocales, draftArg, fallbackLocale, filesToUpload, locale, overrideAccess, overrideLock, payload, populate, publishAllLocales: publishAllLocalesArg, req, select, shouldManageLocalFiles, showHiddenFields, unpublishAllLocales: unpublishAllLocalesArg })=>{
38
33
  const nextFileData = collectionConfig.upload && shouldManageLocalFiles && !collectionConfig.upload.fileOperations ? deepCopyObjectSimple(data) : undefined;
39
34
  validateAllLocalesPublicationFlags({
40
35
  publishAllLocales: publishAllLocalesArg,
@@ -64,8 +59,7 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
64
59
  collectionSlug: collectionConfig.slug,
65
60
  lockErrorMessage: `Document with ID ${id} is currently locked by another user and cannot be updated.`,
66
61
  overrideLock,
67
- req,
68
- shouldDeleteLock: false
62
+ req
69
63
  });
70
64
  const originalDoc = await afterRead({
71
65
  collection: collectionConfig,
@@ -122,7 +116,7 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
122
116
  statusFieldAccess = accessResult;
123
117
  }
124
118
  },
125
- operation,
119
+ operation: 'update',
126
120
  overrideAccess,
127
121
  req
128
122
  });
@@ -142,7 +136,7 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
142
136
  collection: collectionConfig,
143
137
  context: req.context,
144
138
  data,
145
- operation,
139
+ operation: 'update',
146
140
  originalDoc: publicationHookDoc,
147
141
  req
148
142
  }) || data;
@@ -157,7 +151,7 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
157
151
  collection: collectionConfig,
158
152
  context: req.context,
159
153
  data,
160
- operation,
154
+ operation: 'update',
161
155
  originalDoc: publicationHookDoc,
162
156
  req
163
157
  }) || data;
@@ -181,7 +175,7 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
181
175
  docWithLocales,
182
176
  fieldsToValidate: submittedTopLevelFieldNames,
183
177
  global: null,
184
- operation,
178
+ operation: 'update',
185
179
  overrideAccess,
186
180
  req,
187
181
  // only skip validation for drafts when draft validation is false
@@ -246,7 +240,7 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
246
240
  const currentDoc = await payload.db.findOne({
247
241
  collection: collectionConfig.slug,
248
242
  locale: 'all',
249
- req: databaseRequest,
243
+ req,
250
244
  where: {
251
245
  id: {
252
246
  equals: id
@@ -255,7 +249,7 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
255
249
  });
256
250
  localizedPublishData = buildLocalizedPublishData({
257
251
  config,
258
- currentDoc: currentDoc,
252
+ currentDoc,
259
253
  fields: collectionConfig.fields,
260
254
  locale,
261
255
  result
@@ -295,53 +289,17 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
295
289
  // File deletion and writes must occur after the final publish validation. Validation failures
296
290
  // leave both the persisted upload and local files untouched.
297
291
  if (!isDraftOverPublished && !hasManagedLocalUpload) {
298
- const documentBranch = docWithLocales[branchField];
299
- const isBranchUploadReplacement = filesToUpload.length > 0 && typeof documentBranch === 'string' && documentBranch !== MAIN_BRANCH;
300
- if (isBranchUploadReplacement) {
301
- const canonicalDocument = docWithLocales[branchDocIDField];
302
- const canonicalDocumentID = canonicalDocument && typeof canonicalDocument === 'object' && 'value' in canonicalDocument ? canonicalDocument.value : canonicalDocument;
303
- const retainedDoc = typeof canonicalDocumentID === 'number' || typeof canonicalDocumentID === 'string' ? await payload.db.findOne({
304
- branch: false,
305
- collection: collectionConfig.slug,
306
- req,
307
- where: {
308
- and: [
309
- {
310
- [branchField]: {
311
- equals: MAIN_BRANCH
312
- }
313
- },
314
- {
315
- id: {
316
- equals: canonicalDocumentID
317
- }
318
- }
319
- ]
320
- }
321
- }) : null;
322
- await deleteUploadFilesExclusiveToDocument({
323
- collectionConfig,
324
- config,
325
- deleteFromAdapter: false,
326
- req,
327
- retainedDoc,
328
- sourceDoc: docWithLocales
329
- });
330
- } else {
331
- await deleteAssociatedFiles({
332
- collectionConfig,
333
- config,
334
- doc: docWithLocales,
335
- files: filesToUpload,
336
- overrideDelete: false,
337
- req
338
- });
339
- }
292
+ await deleteAssociatedFiles({
293
+ collectionConfig,
294
+ config,
295
+ doc: docWithLocales,
296
+ files: filesToUpload,
297
+ overrideDelete: false,
298
+ req
299
+ });
340
300
  }
341
301
  if (!collectionConfig.upload.disableLocalStorage && !hasManagedLocalUpload) {
342
- await uploadFiles(payload, filesToUpload, req, {
343
- uploadFileRollbacks
344
- });
302
+ await uploadFiles(payload, filesToUpload, req);
345
303
  }
346
304
  const writeDocument = async ()=>{
347
305
  const dataToUpdate = {
@@ -366,25 +324,6 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
366
324
  dataToUpdate.sessions = currentSid ? existingSessions.filter((session)=>session.id === currentSid) : [];
367
325
  }
368
326
  }
369
- await runBranchMergeWriteGuard({
370
- collectionSlug: collectionConfig.slug,
371
- data: dataToUpdate,
372
- req
373
- });
374
- if (localizedPublishData) {
375
- await runBranchMergeWriteGuard({
376
- collectionSlug: collectionConfig.slug,
377
- data: result,
378
- req
379
- });
380
- }
381
- await checkDocumentLockStatus({
382
- id,
383
- collectionSlug: collectionConfig.slug,
384
- lockErrorMessage: `Document with ID ${id} is currently locked by another user and cannot be updated.`,
385
- overrideLock,
386
- req
387
- });
388
327
  // /////////////////////////////////////
389
328
  // Update
390
329
  // /////////////////////////////////////
@@ -392,7 +331,6 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
392
331
  if (!isSavingDraft) {
393
332
  // Ensure updatedAt date is always updated
394
333
  dataToUpdate.updatedAt = new Date().toISOString();
395
- onBeforeDocumentWrite?.();
396
334
  if (localizedPublishData) {
397
335
  // Single-locale publish: save filtered data to main doc but keep full locale data for
398
336
  // the version so draft fetches (replaceWithDraftIfAvailable) return complete data.
@@ -401,9 +339,6 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
401
339
  collection: collectionConfig.slug,
402
340
  data: dataToUpdate,
403
341
  locale,
404
- req: databaseRequest
405
- });
406
- markTransactionWrite({
407
342
  req
408
343
  });
409
344
  resultWithLocales = {
@@ -416,9 +351,6 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
416
351
  collection: collectionConfig.slug,
417
352
  data: dataToUpdate,
418
353
  locale,
419
- req: databaseRequest
420
- });
421
- markTransactionWrite({
422
354
  req
423
355
  });
424
356
  }
@@ -427,7 +359,6 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
427
359
  // Create version
428
360
  // /////////////////////////////////////
429
361
  if (collectionConfig.versions) {
430
- onBeforeDocumentWrite?.();
431
362
  resultWithLocales = await saveVersion({
432
363
  id,
433
364
  autosave,
@@ -436,12 +367,9 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
436
367
  draft: isSavingDraft,
437
368
  operation: 'update',
438
369
  payload,
439
- req: databaseRequest,
370
+ req,
440
371
  unpublish: unpublishAllLocales
441
372
  });
442
- markTransactionWrite({
443
- req
444
- });
445
373
  }
446
374
  // /////////////////////////////////////
447
375
  // afterRead - Fields
@@ -484,7 +412,7 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
484
412
  data,
485
413
  doc: result,
486
414
  global: null,
487
- operation,
415
+ operation: 'update',
488
416
  previousDoc: originalDoc,
489
417
  req
490
418
  });
@@ -498,7 +426,7 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
498
426
  context: req.context,
499
427
  data,
500
428
  doc: result,
501
- operation,
429
+ operation: 'update',
502
430
  overrideAccess,
503
431
  previousDoc: originalDoc,
504
432
  req,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/collections/operations/utilities/update.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport type { UserSession } from '../../../auth/types.js'\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 { SharedLocalAPIOptions } from '../../../types/operations.js'\nimport type { UploadFileRollbacks } from '../../../uploads/uploadFileRollback.js'\nimport type {\n DataFromCollectionSlug,\n SanitizedCollectionConfig,\n SelectFromCollectionSlug,\n TypeWithID,\n} from '../../config/types.js'\n\nimport { ensureUsernameOrEmail } from '../../../auth/ensureUsernameOrEmail.js'\nimport { removeExpiredSessions } from '../../../auth/sessions.js'\nimport { generatePasswordSaltHash } from '../../../auth/strategies/local/generatePasswordSaltHash.js'\nimport { runBranchMergeWriteGuard } from '../../../branching/mergeWriteGuard.js'\nimport { branchDocIDField, branchField, MAIN_BRANCH } from '../../../branching/types.js'\nimport { ValidationError } from '../../../errors/index.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 { deleteUploadFilesExclusiveToDocument } from '../../../uploads/deleteUploadFilesExclusiveToDocument.js'\nimport { runLocalFileUpdate } from '../../../uploads/fileVersioning/archive.js'\nimport { uploadFiles } from '../../../uploads/uploadFiles.js'\nimport { checkDocumentLockStatus } from '../../../utilities/checkDocumentLockStatus.js'\nimport { getTopLevelFieldNames } from '../../../utilities/getTopLevelFieldNames.js'\nimport {\n hasDraftsEnabled,\n hasDraftValidationEnabled,\n hasLocalizeStatusEnabled,\n} from '../../../utilities/getVersionsConfig.js'\nimport { resolvePublishAllLocales } from '../../../utilities/resolvePublishAllLocales.js'\nimport { markTransactionWrite } from '../../../utilities/transactionMutationTracker.js'\nimport {\n buildAllLocalesPublicationHookDoc,\n getAllLocalesPublicationStatus,\n hasAuthorizedAllLocalesPublicationStatus,\n validateAllLocalesPublicationFlags,\n} from '../../../versions/allLocalesPublicationStatus.js'\nimport { buildLocalizedPublishData } from '../../../versions/buildSingleLocalePublishData.js'\nimport { validateLocalWithLocaleKeyedData } from '../local/validate.js'\nexport type SharedUpdateDocumentArgs<TSlug extends CollectionSlug> = {\n autosave: boolean\n collectionConfig: SanitizedCollectionConfig\n config: SanitizedConfig\n data: DeepPartial<DataFromCollectionSlug<TSlug>>\n /** @internal Request used only for database reads and writes during branch promotion. */\n databaseReq?: PayloadRequest\n depth: number\n docWithLocales: JsonObject & TypeWithID\n draftArg: boolean\n fallbackLocale: TypedFallbackLocale\n filesToUpload: FileToSave[]\n id: number | string\n locale: string\n onBeforeDocumentWrite?: () => void\n /**\n * Hook `operation` label. Merge reports a branch-created document as a\n * `create` on main even though the row is updated in place, since deleting\n * and recreating it would cascade away every inbound relationship.\n *\n * @default 'update'\n */\n operation?: 'create' | 'update'\n overrideLock: boolean\n payload: Payload\n populate?: PopulateType\n publishAllLocales?: boolean\n req: PayloadRequest\n select: SelectType\n shouldManageLocalFiles: boolean\n showHiddenFields: boolean\n unpublishAllLocales?: boolean\n uploadFileRollbacks?: UploadFileRollbacks\n} & Pick<Required<SharedLocalAPIOptions>, 'overrideAccess'>\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 databaseReq,\n depth,\n docWithLocales,\n draftArg,\n fallbackLocale,\n filesToUpload,\n locale,\n onBeforeDocumentWrite,\n operation = 'update',\n overrideAccess,\n overrideLock,\n payload,\n populate,\n publishAllLocales: publishAllLocalesArg,\n req,\n select,\n shouldManageLocalFiles,\n showHiddenFields,\n unpublishAllLocales: unpublishAllLocalesArg,\n uploadFileRollbacks,\n}: SharedUpdateDocumentArgs<TSlug>): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n const databaseRequest = databaseReq ?? req\n const nextFileData =\n collectionConfig.upload && shouldManageLocalFiles && !collectionConfig.upload.fileOperations\n ? deepCopyObjectSimple(data)\n : undefined\n\n validateAllLocalesPublicationFlags({\n publishAllLocales: publishAllLocalesArg,\n unpublishAllLocales: unpublishAllLocalesArg,\n })\n\n const publishAllLocales = resolvePublishAllLocales({\n draft: draftArg,\n hasLocalizeStatusEnabled: hasLocalizeStatusEnabled(collectionConfig),\n locale,\n publishAllLocalesArg,\n })\n const unpublishAllLocales =\n typeof unpublishAllLocalesArg === 'string'\n ? unpublishAllLocalesArg === 'true'\n : !!unpublishAllLocalesArg\n const allLocalesPublicationStatus = getAllLocalesPublicationStatus({\n hasLocalizedStatus: Boolean(config.localization && hasLocalizeStatusEnabled(collectionConfig)),\n publishAllLocales,\n unpublishAllLocales,\n })\n const isSavingDraft =\n Boolean(draftArg && hasDraftsEnabled(collectionConfig)) &&\n data._status !== 'published' &&\n !publishAllLocales\n if (allLocalesPublicationStatus || isSavingDraft) {\n data._status = allLocalesPublicationStatus ?? '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 shouldDeleteLock: false,\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 const isRestoringDraftFromTrash = Boolean(originalDoc?.deletedAt) && data?._status !== 'published'\n const shouldLimitValidationToSubmittedFields =\n (collectionConfig.trash && (Boolean(data?.deletedAt) || isRestoringDraftFromTrash)) ||\n unpublishAllLocales\n const submittedTopLevelFieldNames = shouldLimitValidationToSubmittedFields\n ? getTopLevelFieldNames(data)\n : undefined\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 // 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 during the update 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 const hasManagedLocalUpload =\n filesToUpload.length > 0 &&\n Boolean(data.original) &&\n !collectionConfig.upload.disableLocalStorage\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n let statusFieldAccess = false\n const publicationFieldPolicyDoc = buildAllLocalesPublicationHookDoc({\n doc: originalDoc,\n docWithLocales,\n status: data._status === allLocalesPublicationStatus ? allLocalesPublicationStatus : undefined,\n })\n\n data = await beforeValidate<DeepPartial<DataFromCollectionSlug<TSlug>>>({\n id,\n collection: collectionConfig,\n context: req.context,\n data,\n doc: originalDoc,\n docForHooks: publicationFieldPolicyDoc,\n global: null,\n onFieldAccess: ({ accessResult, path }) => {\n if (path === '_status') {\n statusFieldAccess = accessResult\n }\n },\n operation,\n overrideAccess,\n req,\n })\n\n const password = data?.password\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 const publicationHookDoc = buildAllLocalesPublicationHookDoc({\n doc: originalDoc,\n docWithLocales,\n status:\n statusFieldAccess && data._status === allLocalesPublicationStatus\n ? allLocalesPublicationStatus\n : undefined,\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,\n originalDoc: publicationHookDoc,\n req,\n })) || data\n }\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,\n originalDoc: publicationHookDoc,\n req,\n })) || data\n }\n }\n\n const publicationData = { ...data }\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: publicationHookDoc,\n docWithLocales,\n fieldsToValidate: submittedTopLevelFieldNames,\n global: null,\n operation,\n overrideAccess,\n req,\n // only skip validation for drafts when draft validation is false\n skipValidation: isSavingDraft && !hasDraftValidationEnabled(collectionConfig),\n }\n\n // /////////////////////////////////////\n // Handle Localized Data Merging\n // /////////////////////////////////////\n\n let statusFieldValue: unknown\n\n let result: JsonObject = await beforeChange({\n ...beforeChangeArgs,\n onDataProcessed: (processedData) => {\n statusFieldValue = processedData._status\n },\n })\n\n const hasAuthorizedPublicationStatus = hasAuthorizedAllLocalesPublicationStatus({\n data: publicationData,\n fieldAccessDenied: !statusFieldAccess,\n fieldValue: statusFieldValue,\n status: allLocalesPublicationStatus,\n })\n\n if (\n allLocalesPublicationStatus &&\n !hasAuthorizedPublicationStatus &&\n typeof statusFieldValue === 'undefined' &&\n typeof docWithLocales._status === 'object' &&\n docWithLocales._status !== null\n ) {\n result._status = { ...docWithLocales._status }\n }\n\n if (\n config.localization &&\n hasLocalizeStatusEnabled(collectionConfig) &&\n typeof result._status === 'string'\n ) {\n const statusStr = result._status\n\n if (\n hasAuthorizedPublicationStatus &&\n typeof docWithLocales._status === 'object' &&\n docWithLocales._status !== null\n ) {\n result._status = { ...docWithLocales._status }\n } else {\n result._status = {}\n }\n\n if (!hasAuthorizedPublicationStatus) {\n for (const localeCode of config.localization.localeCodes) {\n ;(result._status as Record<string, unknown>)[localeCode] = statusStr\n }\n }\n }\n\n let localizedPublishData: JsonObject | null = null\n\n if (config.localization && collectionConfig.versions) {\n if (hasLocalizeStatusEnabled(collectionConfig)) {\n if (hasAuthorizedPublicationStatus) {\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: databaseRequest,\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 if (\n config.localization &&\n hasDraftsEnabled(collectionConfig) &&\n publishAllLocales &&\n !unpublishAllLocales &&\n (!hasLocalizeStatusEnabled(collectionConfig) || hasAuthorizedPublicationStatus)\n ) {\n const validationResult = await validateLocalWithLocaleKeyedData({\n operation: 'update',\n options: {\n id,\n collection: collectionConfig.slug,\n data: result,\n draft: true,\n locale: 'all',\n overrideAccess,\n req,\n },\n payload,\n sourceData: {\n docWithLocales,\n originalDoc: publicationHookDoc,\n originalLocale: locale,\n },\n trash: Boolean(originalDoc?.deletedAt),\n })\n\n if (!validationResult.valid) {\n throw new ValidationError(\n {\n id,\n collection: collectionConfig.slug,\n errors: validationResult.errors,\n req,\n },\n req.t,\n )\n }\n }\n\n // File deletion and writes must occur after the final publish validation. Validation failures\n // leave both the persisted upload and local files untouched.\n if (!isDraftOverPublished && !hasManagedLocalUpload) {\n const documentBranch = docWithLocales[branchField]\n const isBranchUploadReplacement =\n filesToUpload.length > 0 &&\n typeof documentBranch === 'string' &&\n documentBranch !== MAIN_BRANCH\n\n if (isBranchUploadReplacement) {\n const canonicalDocument = docWithLocales[branchDocIDField]\n const canonicalDocumentID =\n canonicalDocument && typeof canonicalDocument === 'object' && 'value' in canonicalDocument\n ? canonicalDocument.value\n : canonicalDocument\n const retainedDoc =\n typeof canonicalDocumentID === 'number' || typeof canonicalDocumentID === 'string'\n ? ((await payload.db.findOne({\n branch: false,\n collection: collectionConfig.slug,\n req,\n where: {\n and: [\n { [branchField]: { equals: MAIN_BRANCH } },\n { id: { equals: canonicalDocumentID } },\n ],\n },\n })) as null | Record<string, unknown>)\n : null\n\n await deleteUploadFilesExclusiveToDocument({\n collectionConfig,\n config,\n deleteFromAdapter: false,\n req,\n retainedDoc,\n sourceDoc: docWithLocales,\n })\n } else {\n await deleteAssociatedFiles({\n collectionConfig,\n config,\n doc: docWithLocales,\n files: filesToUpload,\n overrideDelete: false,\n req,\n })\n }\n }\n\n if (!collectionConfig.upload.disableLocalStorage && !hasManagedLocalUpload) {\n await uploadFiles(payload, filesToUpload, req, { uploadFileRollbacks })\n }\n\n const writeDocument = async (): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\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 if (collectionConfig.auth?.useSessions) {\n const currentSid =\n req.user?.collection === collectionConfig.slug && String(req.user.id) === String(id)\n ? req.user._sid\n : undefined\n const existingSessions = removeExpiredSessions(\n (docWithLocales.sessions as undefined | UserSession[]) ?? [],\n )\n\n dataToUpdate.sessions = currentSid\n ? existingSessions.filter((session) => session.id === currentSid)\n : []\n }\n }\n\n await runBranchMergeWriteGuard({\n collectionSlug: collectionConfig.slug,\n data: dataToUpdate,\n req,\n })\n\n if (localizedPublishData) {\n await runBranchMergeWriteGuard({\n collectionSlug: collectionConfig.slug,\n data: result,\n req,\n })\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 // /////////////////////////////////////\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 onBeforeDocumentWrite?.()\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: databaseRequest,\n })\n markTransactionWrite({ req })\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: databaseRequest,\n })\n markTransactionWrite({ req })\n }\n }\n\n // /////////////////////////////////////\n // Create version\n // /////////////////////////////////////\n\n if (collectionConfig.versions) {\n onBeforeDocumentWrite?.()\n resultWithLocales = await saveVersion({\n id,\n autosave,\n collection: collectionConfig,\n docWithLocales: resultWithLocales,\n draft: isSavingDraft,\n operation: 'update',\n payload,\n req: databaseRequest,\n unpublish: unpublishAllLocales,\n })\n markTransactionWrite({ req })\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,\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,\n overrideAccess,\n previousDoc: originalDoc,\n req,\n select,\n })) || result\n }\n }\n\n return result as TransformCollectionWithSelect<TSlug, TSelect>\n }\n\n if (!nextFileData) {\n return writeDocument()\n }\n\n return runLocalFileUpdate({\n id,\n collection: collectionConfig,\n current: docWithLocales,\n files: hasManagedLocalUpload ? filesToUpload : [],\n next: nextFileData as JsonObject,\n req,\n write: writeDocument,\n })\n}\n"],"names":["ensureUsernameOrEmail","removeExpiredSessions","generatePasswordSaltHash","runBranchMergeWriteGuard","branchDocIDField","branchField","MAIN_BRANCH","ValidationError","afterChange","afterRead","beforeChange","beforeValidate","deepCopyObjectSimple","saveVersion","deleteAssociatedFiles","deleteUploadFilesExclusiveToDocument","runLocalFileUpdate","uploadFiles","checkDocumentLockStatus","getTopLevelFieldNames","hasDraftsEnabled","hasDraftValidationEnabled","hasLocalizeStatusEnabled","resolvePublishAllLocales","markTransactionWrite","buildAllLocalesPublicationHookDoc","getAllLocalesPublicationStatus","hasAuthorizedAllLocalesPublicationStatus","validateAllLocalesPublicationFlags","buildLocalizedPublishData","validateLocalWithLocaleKeyedData","updateDocument","id","autosave","collectionConfig","config","data","databaseReq","depth","docWithLocales","draftArg","fallbackLocale","filesToUpload","locale","onBeforeDocumentWrite","operation","overrideAccess","overrideLock","payload","populate","publishAllLocales","publishAllLocalesArg","req","select","shouldManageLocalFiles","showHiddenFields","unpublishAllLocales","unpublishAllLocalesArg","uploadFileRollbacks","databaseRequest","nextFileData","upload","fileOperations","undefined","draft","allLocalesPublicationStatus","hasLocalizedStatus","Boolean","localization","isSavingDraft","_status","collectionSlug","slug","lockErrorMessage","shouldDeleteLock","originalDoc","collection","context","doc","global","isRestoringDraftFromTrash","deletedAt","shouldLimitValidationToSubmittedFields","trash","submittedTopLevelFieldNames","auth","authOptions","isDraftOverPublished","hasManagedLocalUpload","length","original","disableLocalStorage","statusFieldAccess","publicationFieldPolicyDoc","status","docForHooks","onFieldAccess","accessResult","path","password","shouldSavePassword","disableLocalStrategy","enableFields","publicationHookDoc","hooks","hook","publicationData","beforeChangeArgs","fieldsToValidate","skipValidation","statusFieldValue","result","onDataProcessed","processedData","hasAuthorizedPublicationStatus","fieldAccessDenied","fieldValue","statusStr","localeCode","localeCodes","localizedPublishData","versions","accessibleLocaleCodes","filterAvailableLocales","filteredLocales","locales","map","code","Array","isArray","currentDoc","db","findOne","where","equals","fields","validationResult","options","sourceData","originalLocale","valid","errors","t","documentBranch","isBranchUploadReplacement","canonicalDocument","canonicalDocumentID","value","retainedDoc","branch","and","deleteFromAdapter","sourceDoc","files","overrideDelete","writeDocument","dataToUpdate","hash","salt","useSessions","currentSid","user","String","_sid","existingSessions","sessions","filter","session","resultWithLocales","updatedAt","Date","toISOString","updateOne","unpublish","previousDoc","current","next","write"],"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 { UserSession } from '../../../auth/types.js'\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 { SharedLocalAPIOptions } from '../../../types/operations.js'\nimport type {\n DataFromCollectionSlug,\n SanitizedCollectionConfig,\n SelectFromCollectionSlug,\n TypeWithID,\n} from '../../config/types.js'\n\nimport { ensureUsernameOrEmail } from '../../../auth/ensureUsernameOrEmail.js'\nimport { removeExpiredSessions } from '../../../auth/sessions.js'\nimport { generatePasswordSaltHash } from '../../../auth/strategies/local/generatePasswordSaltHash.js'\nimport { ValidationError } from '../../../errors/index.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 { runLocalFileUpdate } from '../../../uploads/fileVersioning/archive.js'\nimport { uploadFiles } from '../../../uploads/uploadFiles.js'\nimport { checkDocumentLockStatus } from '../../../utilities/checkDocumentLockStatus.js'\nimport { getTopLevelFieldNames } from '../../../utilities/getTopLevelFieldNames.js'\nimport {\n hasDraftsEnabled,\n hasDraftValidationEnabled,\n hasLocalizeStatusEnabled,\n} from '../../../utilities/getVersionsConfig.js'\nimport { resolvePublishAllLocales } from '../../../utilities/resolvePublishAllLocales.js'\nimport {\n buildAllLocalesPublicationHookDoc,\n getAllLocalesPublicationStatus,\n hasAuthorizedAllLocalesPublicationStatus,\n validateAllLocalesPublicationFlags,\n} from '../../../versions/allLocalesPublicationStatus.js'\nimport { buildLocalizedPublishData } from '../../../versions/buildSingleLocalePublishData.js'\nimport { validateLocalWithLocaleKeyedData } from '../local/validate.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 overrideLock: boolean\n payload: Payload\n populate?: PopulateType\n publishAllLocales?: boolean\n req: PayloadRequest\n select: SelectType\n shouldManageLocalFiles: boolean\n showHiddenFields: boolean\n unpublishAllLocales?: boolean\n} & Pick<Required<SharedLocalAPIOptions>, 'overrideAccess'>\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 shouldManageLocalFiles,\n showHiddenFields,\n unpublishAllLocales: unpublishAllLocalesArg,\n}: SharedUpdateDocumentArgs<TSlug>): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n const nextFileData =\n collectionConfig.upload && shouldManageLocalFiles && !collectionConfig.upload.fileOperations\n ? deepCopyObjectSimple(data)\n : undefined\n\n validateAllLocalesPublicationFlags({\n publishAllLocales: publishAllLocalesArg,\n unpublishAllLocales: unpublishAllLocalesArg,\n })\n\n const publishAllLocales = resolvePublishAllLocales({\n draft: draftArg,\n hasLocalizeStatusEnabled: hasLocalizeStatusEnabled(collectionConfig),\n locale,\n publishAllLocalesArg,\n })\n const unpublishAllLocales =\n typeof unpublishAllLocalesArg === 'string'\n ? unpublishAllLocalesArg === 'true'\n : !!unpublishAllLocalesArg\n const allLocalesPublicationStatus = getAllLocalesPublicationStatus({\n hasLocalizedStatus: Boolean(config.localization && hasLocalizeStatusEnabled(collectionConfig)),\n publishAllLocales,\n unpublishAllLocales,\n })\n const isSavingDraft =\n Boolean(draftArg && hasDraftsEnabled(collectionConfig)) &&\n data._status !== 'published' &&\n !publishAllLocales\n if (allLocalesPublicationStatus || isSavingDraft) {\n data._status = allLocalesPublicationStatus ?? '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 const isRestoringDraftFromTrash = Boolean(originalDoc?.deletedAt) && data?._status !== 'published'\n const shouldLimitValidationToSubmittedFields =\n (collectionConfig.trash && (Boolean(data?.deletedAt) || isRestoringDraftFromTrash)) ||\n unpublishAllLocales\n const submittedTopLevelFieldNames = shouldLimitValidationToSubmittedFields\n ? getTopLevelFieldNames(data)\n : undefined\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 // 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 during the update 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 const hasManagedLocalUpload =\n filesToUpload.length > 0 &&\n Boolean(data.original) &&\n !collectionConfig.upload.disableLocalStorage\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n let statusFieldAccess = false\n const publicationFieldPolicyDoc = buildAllLocalesPublicationHookDoc({\n doc: originalDoc,\n docWithLocales,\n status: data._status === allLocalesPublicationStatus ? allLocalesPublicationStatus : undefined,\n })\n\n data = await beforeValidate<DeepPartial<DataFromCollectionSlug<TSlug>>>({\n id,\n collection: collectionConfig,\n context: req.context,\n data,\n doc: originalDoc,\n docForHooks: publicationFieldPolicyDoc,\n global: null,\n onFieldAccess: ({ accessResult, path }) => {\n if (path === '_status') {\n statusFieldAccess = accessResult\n }\n },\n operation: 'update',\n overrideAccess,\n req,\n })\n\n const password = data?.password\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 const publicationHookDoc = buildAllLocalesPublicationHookDoc({\n doc: originalDoc,\n docWithLocales,\n status:\n statusFieldAccess && data._status === allLocalesPublicationStatus\n ? allLocalesPublicationStatus\n : undefined,\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: publicationHookDoc,\n req,\n })) || data\n }\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: publicationHookDoc,\n req,\n })) || data\n }\n }\n\n const publicationData = { ...data }\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: publicationHookDoc,\n docWithLocales,\n fieldsToValidate: submittedTopLevelFieldNames,\n global: null,\n operation: 'update',\n overrideAccess,\n req,\n // only skip validation for drafts when draft validation is false\n skipValidation: isSavingDraft && !hasDraftValidationEnabled(collectionConfig),\n }\n\n // /////////////////////////////////////\n // Handle Localized Data Merging\n // /////////////////////////////////////\n\n let statusFieldValue: unknown\n\n let result: JsonObject = await beforeChange({\n ...beforeChangeArgs,\n onDataProcessed: (processedData) => {\n statusFieldValue = processedData._status\n },\n })\n\n const hasAuthorizedPublicationStatus = hasAuthorizedAllLocalesPublicationStatus({\n data: publicationData,\n fieldAccessDenied: !statusFieldAccess,\n fieldValue: statusFieldValue,\n status: allLocalesPublicationStatus,\n })\n\n if (\n allLocalesPublicationStatus &&\n !hasAuthorizedPublicationStatus &&\n typeof statusFieldValue === 'undefined' &&\n typeof docWithLocales._status === 'object' &&\n docWithLocales._status !== null\n ) {\n result._status = { ...docWithLocales._status }\n }\n\n if (\n config.localization &&\n hasLocalizeStatusEnabled(collectionConfig) &&\n typeof result._status === 'string'\n ) {\n const statusStr = result._status\n\n if (\n hasAuthorizedPublicationStatus &&\n typeof docWithLocales._status === 'object' &&\n docWithLocales._status !== null\n ) {\n result._status = { ...docWithLocales._status }\n } else {\n result._status = {}\n }\n\n if (!hasAuthorizedPublicationStatus) {\n for (const localeCode of config.localization.localeCodes) {\n ;(result._status as Record<string, unknown>)[localeCode] = statusStr\n }\n }\n }\n\n let localizedPublishData: JsonObject | null = null\n\n if (config.localization && collectionConfig.versions) {\n if (hasLocalizeStatusEnabled(collectionConfig)) {\n if (hasAuthorizedPublicationStatus) {\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,\n fields: collectionConfig.fields,\n locale,\n result,\n })\n }\n }\n }\n\n if (\n config.localization &&\n hasDraftsEnabled(collectionConfig) &&\n publishAllLocales &&\n !unpublishAllLocales &&\n (!hasLocalizeStatusEnabled(collectionConfig) || hasAuthorizedPublicationStatus)\n ) {\n const validationResult = await validateLocalWithLocaleKeyedData({\n operation: 'update',\n options: {\n id,\n collection: collectionConfig.slug,\n data: result,\n draft: true,\n locale: 'all',\n overrideAccess,\n req,\n },\n payload,\n sourceData: {\n docWithLocales,\n originalDoc: publicationHookDoc,\n originalLocale: locale,\n },\n trash: Boolean(originalDoc?.deletedAt),\n })\n\n if (!validationResult.valid) {\n throw new ValidationError(\n {\n id,\n collection: collectionConfig.slug,\n errors: validationResult.errors,\n req,\n },\n req.t,\n )\n }\n }\n\n // File deletion and writes must occur after the final publish validation. Validation failures\n // leave both the persisted upload and local files untouched.\n if (!isDraftOverPublished && !hasManagedLocalUpload) {\n await deleteAssociatedFiles({\n collectionConfig,\n config,\n doc: docWithLocales,\n files: filesToUpload,\n overrideDelete: false,\n req,\n })\n }\n\n if (!collectionConfig.upload.disableLocalStorage && !hasManagedLocalUpload) {\n await uploadFiles(payload, filesToUpload, req)\n }\n\n const writeDocument = async (): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\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 if (collectionConfig.auth?.useSessions) {\n const currentSid =\n req.user?.collection === collectionConfig.slug && String(req.user.id) === String(id)\n ? req.user._sid\n : undefined\n const existingSessions = removeExpiredSessions(\n (docWithLocales.sessions as undefined | UserSession[]) ?? [],\n )\n\n dataToUpdate.sessions = currentSid\n ? existingSessions.filter((session) => session.id === currentSid)\n : []\n }\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 select,\n })) || result\n }\n }\n\n return result as TransformCollectionWithSelect<TSlug, TSelect>\n }\n\n if (!nextFileData) {\n return writeDocument()\n }\n\n return runLocalFileUpdate({\n id,\n collection: collectionConfig,\n current: docWithLocales,\n files: hasManagedLocalUpload ? filesToUpload : [],\n next: nextFileData,\n req,\n write: writeDocument,\n })\n}\n"],"names":["ensureUsernameOrEmail","removeExpiredSessions","generatePasswordSaltHash","ValidationError","afterChange","afterRead","beforeChange","beforeValidate","deepCopyObjectSimple","saveVersion","deleteAssociatedFiles","runLocalFileUpdate","uploadFiles","checkDocumentLockStatus","getTopLevelFieldNames","hasDraftsEnabled","hasDraftValidationEnabled","hasLocalizeStatusEnabled","resolvePublishAllLocales","buildAllLocalesPublicationHookDoc","getAllLocalesPublicationStatus","hasAuthorizedAllLocalesPublicationStatus","validateAllLocalesPublicationFlags","buildLocalizedPublishData","validateLocalWithLocaleKeyedData","updateDocument","id","autosave","collectionConfig","config","data","depth","docWithLocales","draftArg","fallbackLocale","filesToUpload","locale","overrideAccess","overrideLock","payload","populate","publishAllLocales","publishAllLocalesArg","req","select","shouldManageLocalFiles","showHiddenFields","unpublishAllLocales","unpublishAllLocalesArg","nextFileData","upload","fileOperations","undefined","draft","allLocalesPublicationStatus","hasLocalizedStatus","Boolean","localization","isSavingDraft","_status","collectionSlug","slug","lockErrorMessage","originalDoc","collection","context","doc","global","isRestoringDraftFromTrash","deletedAt","shouldLimitValidationToSubmittedFields","trash","submittedTopLevelFieldNames","auth","authOptions","operation","isDraftOverPublished","hasManagedLocalUpload","length","original","disableLocalStorage","statusFieldAccess","publicationFieldPolicyDoc","status","docForHooks","onFieldAccess","accessResult","path","password","shouldSavePassword","disableLocalStrategy","enableFields","publicationHookDoc","hooks","hook","publicationData","beforeChangeArgs","fieldsToValidate","skipValidation","statusFieldValue","result","onDataProcessed","processedData","hasAuthorizedPublicationStatus","fieldAccessDenied","fieldValue","statusStr","localeCode","localeCodes","localizedPublishData","versions","accessibleLocaleCodes","filterAvailableLocales","filteredLocales","locales","map","code","Array","isArray","currentDoc","db","findOne","where","equals","fields","validationResult","options","sourceData","originalLocale","valid","errors","t","files","overrideDelete","writeDocument","dataToUpdate","hash","salt","useSessions","currentSid","user","String","_sid","existingSessions","sessions","filter","session","resultWithLocales","updatedAt","Date","toISOString","updateOne","unpublish","previousDoc","current","next","write"],"mappings":"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"}
@@ -128,7 +128,7 @@ async function validateOperationWithScopedRequest({ id, collection, data: incomi
128
128
  ensureUsernameOrEmail({
129
129
  authOptions: collectionConfig.auth,
130
130
  collectionSlug: collectionConfig.slug,
131
- data: data,
131
+ data,
132
132
  operation: 'create',
133
133
  req
134
134
  });
@@ -136,9 +136,9 @@ async function validateOperationWithScopedRequest({ id, collection, data: incomi
136
136
  ensureUsernameOrEmail({
137
137
  authOptions: collectionConfig.auth,
138
138
  collectionSlug: collectionConfig.slug,
139
- data: data,
139
+ data,
140
140
  operation: 'update',
141
- originalDoc: originalDoc,
141
+ originalDoc,
142
142
  req
143
143
  });
144
144
  }
@@ -146,7 +146,7 @@ async function validateOperationWithScopedRequest({ id, collection, data: incomi
146
146
  collection: collectionConfig,
147
147
  docWithLocales,
148
148
  global: null,
149
- incomingData: incomingData,
149
+ incomingData,
150
150
  onValidationData,
151
151
  originalDoc,
152
152
  overrideAccess,