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,30 +1,14 @@
1
- import { resolveBranchOwnVersions } from '../branching/versions.js';
2
1
  import { collectVersionFiles, scheduleUnreferencedFileCleanup } from '../uploads/fileVersioning/cleanup.js';
3
- export const skipEnforceMaxVersionsContextKey = Symbol('skipEnforceMaxVersions');
4
2
  export const enforceMaxVersions = async ({ id, collection, global: globalConfig, max, payload, req })=>{
5
- const skipEnforceMaxVersions = req?.context?.[skipEnforceMaxVersionsContextKey];
6
- if (collection && skipEnforceMaxVersions?.collectionSlug === collection.slug && String(skipEnforceMaxVersions.id) === String(id)) {
7
- return;
8
- }
9
3
  const entityType = collection ? 'collection' : 'global';
10
4
  const slug = collection ? collection.slug : globalConfig?.slug;
11
5
  try {
12
6
  const where = {};
13
7
  let oldestAllowedDoc;
14
8
  if (collection) {
15
- // Scoped to the chain being pruned, which on a branch is the branch's own —
16
- // hanging off its shadow row, not the canonical ID.
17
- //
18
- // Both halves need it. Unscoped, the probe counted main's versions as part of the
19
- // branch's ancestry (a branch reads main's history as its own past, §12), and then
20
- // the delete addressed `parent: <canonical id>` with no `_branch` filter, which on
21
- // a branch matches *only main's rows*. Saving on a branch therefore deleted
22
- // production version history and never pruned the branch at all.
23
- Object.assign(where, await resolveBranchOwnVersions({
24
- id: id,
25
- collectionSlug: collection.slug,
26
- req
27
- }));
9
+ where.parent = {
10
+ equals: id
11
+ };
28
12
  const query = await payload.db.findVersions({
29
13
  collection: collection.slug,
30
14
  limit: 1,
@@ -54,9 +38,9 @@ export const enforceMaxVersions = async ({ id, collection, global: globalConfig,
54
38
  }
55
39
  };
56
40
  if (collection) {
57
- // The same scoped predicate the probe used, so what is counted and what is
58
- // deleted are the same set of rows.
59
- Object.assign(deleteQuery, where);
41
+ deleteQuery.parent = {
42
+ equals: id
43
+ };
60
44
  }
61
45
  const deleteVersionsArgs = {
62
46
  req,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/versions/enforceMaxVersions.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../collections/config/types.js'\nimport type { DeleteVersionsArgs } from '../database/types.js'\nimport type { SanitizedGlobalConfig } from '../globals/config/types.js'\nimport type { Payload, PayloadRequest, Where } from '../types/index.js'\n\nimport { resolveBranchOwnVersions } from '../branching/versions.js'\nimport {\n collectVersionFiles,\n scheduleUnreferencedFileCleanup,\n} from '../uploads/fileVersioning/cleanup.js'\n\ntype Args = {\n collection?: SanitizedCollectionConfig\n global?: SanitizedGlobalConfig\n id?: number | string\n max: number\n payload: Payload\n req?: PayloadRequest\n}\n\nexport const skipEnforceMaxVersionsContextKey = Symbol('skipEnforceMaxVersions')\n\ntype SkipEnforceMaxVersions = {\n collectionSlug: string\n id: number | string\n}\n\nexport const enforceMaxVersions = async ({\n id,\n collection,\n global: globalConfig,\n max,\n payload,\n req,\n}: Args): Promise<void> => {\n const skipEnforceMaxVersions = (req?.context as Record<PropertyKey, unknown> | undefined)?.[\n skipEnforceMaxVersionsContextKey\n ] as SkipEnforceMaxVersions | undefined\n\n if (\n collection &&\n skipEnforceMaxVersions?.collectionSlug === collection.slug &&\n String(skipEnforceMaxVersions.id) === String(id)\n ) {\n return\n }\n\n const entityType = collection ? 'collection' : 'global'\n const slug = collection ? collection.slug : globalConfig?.slug\n\n try {\n const where: Where = {}\n let oldestAllowedDoc\n\n if (collection) {\n // Scoped to the chain being pruned, which on a branch is the branch's own —\n // hanging off its shadow row, not the canonical ID.\n //\n // Both halves need it. Unscoped, the probe counted main's versions as part of the\n // branch's ancestry (a branch reads main's history as its own past, §12), and then\n // the delete addressed `parent: <canonical id>` with no `_branch` filter, which on\n // a branch matches *only main's rows*. Saving on a branch therefore deleted\n // production version history and never pruned the branch at all.\n Object.assign(\n where,\n await resolveBranchOwnVersions({ id: id!, collectionSlug: collection.slug, req }),\n )\n\n const query = await payload.db.findVersions({\n collection: collection.slug,\n limit: 1,\n page: max + 1,\n pagination: false,\n req,\n sort: '-updatedAt',\n where,\n })\n\n ;[oldestAllowedDoc] = query.docs\n } else if (globalConfig) {\n const query = await payload.db.findGlobalVersions({\n global: globalConfig.slug,\n limit: 1,\n page: max + 1,\n pagination: false,\n req,\n sort: '-updatedAt',\n where,\n })\n\n ;[oldestAllowedDoc] = query.docs\n }\n\n if (oldestAllowedDoc?.updatedAt) {\n const deleteQuery: Where = {\n updatedAt: {\n less_than_equal: oldestAllowedDoc.updatedAt,\n },\n }\n\n if (collection) {\n // The same scoped predicate the probe used, so what is counted and what is\n // deleted are the same set of rows.\n Object.assign(deleteQuery, where)\n }\n\n const deleteVersionsArgs: DeleteVersionsArgs = { req, where: deleteQuery }\n\n if (globalConfig) {\n deleteVersionsArgs.globalSlug = slug\n } else {\n deleteVersionsArgs.collection = slug\n }\n\n const removedFiles =\n collection?.upload && id !== undefined && req\n ? await collectVersionFiles({ collection, parentID: id, req, where: deleteQuery })\n : []\n\n await payload.db.deleteVersions(deleteVersionsArgs)\n\n if (collection?.upload && req) {\n await scheduleUnreferencedFileCleanup({\n candidates: removedFiles,\n collection,\n req,\n })\n }\n }\n } catch (err) {\n payload.logger.error(err)\n payload.logger.error(\n `There was an error cleaning up old versions for the ${entityType} ${slug}`,\n )\n }\n}\n"],"names":["resolveBranchOwnVersions","collectVersionFiles","scheduleUnreferencedFileCleanup","skipEnforceMaxVersionsContextKey","Symbol","enforceMaxVersions","id","collection","global","globalConfig","max","payload","req","skipEnforceMaxVersions","context","collectionSlug","slug","String","entityType","where","oldestAllowedDoc","Object","assign","query","db","findVersions","limit","page","pagination","sort","docs","findGlobalVersions","updatedAt","deleteQuery","less_than_equal","deleteVersionsArgs","globalSlug","removedFiles","upload","undefined","parentID","deleteVersions","candidates","err","logger","error"],"mappings":"AAKA,SAASA,wBAAwB,QAAQ,2BAA0B;AACnE,SACEC,mBAAmB,EACnBC,+BAA+B,QAC1B,uCAAsC;AAW7C,OAAO,MAAMC,mCAAmCC,OAAO,0BAAyB;AAOhF,OAAO,MAAMC,qBAAqB,OAAO,EACvCC,EAAE,EACFC,UAAU,EACVC,QAAQC,YAAY,EACpBC,GAAG,EACHC,OAAO,EACPC,GAAG,EACE;IACL,MAAMC,yBAA0BD,KAAKE,SAAsD,CACzFX,iCACD;IAED,IACEI,cACAM,wBAAwBE,mBAAmBR,WAAWS,IAAI,IAC1DC,OAAOJ,uBAAuBP,EAAE,MAAMW,OAAOX,KAC7C;QACA;IACF;IAEA,MAAMY,aAAaX,aAAa,eAAe;IAC/C,MAAMS,OAAOT,aAAaA,WAAWS,IAAI,GAAGP,cAAcO;IAE1D,IAAI;QACF,MAAMG,QAAe,CAAC;QACtB,IAAIC;QAEJ,IAAIb,YAAY;YACd,4EAA4E;YAC5E,oDAAoD;YACpD,EAAE;YACF,kFAAkF;YAClF,mFAAmF;YACnF,mFAAmF;YACnF,4EAA4E;YAC5E,iEAAiE;YACjEc,OAAOC,MAAM,CACXH,OACA,MAAMnB,yBAAyB;gBAAEM,IAAIA;gBAAKS,gBAAgBR,WAAWS,IAAI;gBAAEJ;YAAI;YAGjF,MAAMW,QAAQ,MAAMZ,QAAQa,EAAE,CAACC,YAAY,CAAC;gBAC1ClB,YAAYA,WAAWS,IAAI;gBAC3BU,OAAO;gBACPC,MAAMjB,MAAM;gBACZkB,YAAY;gBACZhB;gBACAiB,MAAM;gBACNV;YACF;YAEC,CAACC,iBAAiB,GAAGG,MAAMO,IAAI;QAClC,OAAO,IAAIrB,cAAc;YACvB,MAAMc,QAAQ,MAAMZ,QAAQa,EAAE,CAACO,kBAAkB,CAAC;gBAChDvB,QAAQC,aAAaO,IAAI;gBACzBU,OAAO;gBACPC,MAAMjB,MAAM;gBACZkB,YAAY;gBACZhB;gBACAiB,MAAM;gBACNV;YACF;YAEC,CAACC,iBAAiB,GAAGG,MAAMO,IAAI;QAClC;QAEA,IAAIV,kBAAkBY,WAAW;YAC/B,MAAMC,cAAqB;gBACzBD,WAAW;oBACTE,iBAAiBd,iBAAiBY,SAAS;gBAC7C;YACF;YAEA,IAAIzB,YAAY;gBACd,2EAA2E;gBAC3E,oCAAoC;gBACpCc,OAAOC,MAAM,CAACW,aAAad;YAC7B;YAEA,MAAMgB,qBAAyC;gBAAEvB;gBAAKO,OAAOc;YAAY;YAEzE,IAAIxB,cAAc;gBAChB0B,mBAAmBC,UAAU,GAAGpB;YAClC,OAAO;gBACLmB,mBAAmB5B,UAAU,GAAGS;YAClC;YAEA,MAAMqB,eACJ9B,YAAY+B,UAAUhC,OAAOiC,aAAa3B,MACtC,MAAMX,oBAAoB;gBAAEM;gBAAYiC,UAAUlC;gBAAIM;gBAAKO,OAAOc;YAAY,KAC9E,EAAE;YAER,MAAMtB,QAAQa,EAAE,CAACiB,cAAc,CAACN;YAEhC,IAAI5B,YAAY+B,UAAU1B,KAAK;gBAC7B,MAAMV,gCAAgC;oBACpCwC,YAAYL;oBACZ9B;oBACAK;gBACF;YACF;QACF;IACF,EAAE,OAAO+B,KAAK;QACZhC,QAAQiC,MAAM,CAACC,KAAK,CAACF;QACrBhC,QAAQiC,MAAM,CAACC,KAAK,CAClB,CAAC,oDAAoD,EAAE3B,WAAW,CAAC,EAAEF,MAAM;IAE/E;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/versions/enforceMaxVersions.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../collections/config/types.js'\nimport type { DeleteVersionsArgs } from '../database/types.js'\nimport type { SanitizedGlobalConfig } from '../globals/config/types.js'\nimport type { Payload, PayloadRequest, Where } from '../types/index.js'\n\nimport {\n collectVersionFiles,\n scheduleUnreferencedFileCleanup,\n} from '../uploads/fileVersioning/cleanup.js'\n\ntype Args = {\n collection?: SanitizedCollectionConfig\n global?: SanitizedGlobalConfig\n id?: number | string\n max: number\n payload: Payload\n req?: PayloadRequest\n}\n\nexport const enforceMaxVersions = async ({\n id,\n collection,\n global: globalConfig,\n max,\n payload,\n req,\n}: Args): Promise<void> => {\n const entityType = collection ? 'collection' : 'global'\n const slug = collection ? collection.slug : globalConfig?.slug\n\n try {\n const where: Where = {}\n let oldestAllowedDoc\n\n if (collection) {\n where.parent = {\n equals: id,\n }\n\n const query = await payload.db.findVersions({\n collection: collection.slug,\n limit: 1,\n page: max + 1,\n pagination: false,\n req,\n sort: '-updatedAt',\n where,\n })\n\n ;[oldestAllowedDoc] = query.docs\n } else if (globalConfig) {\n const query = await payload.db.findGlobalVersions({\n global: globalConfig.slug,\n limit: 1,\n page: max + 1,\n pagination: false,\n req,\n sort: '-updatedAt',\n where,\n })\n\n ;[oldestAllowedDoc] = query.docs\n }\n\n if (oldestAllowedDoc?.updatedAt) {\n const deleteQuery: Where = {\n updatedAt: {\n less_than_equal: oldestAllowedDoc.updatedAt,\n },\n }\n\n if (collection) {\n deleteQuery.parent = {\n equals: id,\n }\n }\n\n const deleteVersionsArgs: DeleteVersionsArgs = { req, where: deleteQuery }\n\n if (globalConfig) {\n deleteVersionsArgs.globalSlug = slug\n } else {\n deleteVersionsArgs.collection = slug\n }\n\n const removedFiles =\n collection?.upload && id !== undefined && req\n ? await collectVersionFiles({ collection, parentID: id, req, where: deleteQuery })\n : []\n\n await payload.db.deleteVersions(deleteVersionsArgs)\n\n if (collection?.upload && req) {\n await scheduleUnreferencedFileCleanup({\n candidates: removedFiles,\n collection,\n req,\n })\n }\n }\n } catch (err) {\n payload.logger.error(err)\n payload.logger.error(\n `There was an error cleaning up old versions for the ${entityType} ${slug}`,\n )\n }\n}\n"],"names":["collectVersionFiles","scheduleUnreferencedFileCleanup","enforceMaxVersions","id","collection","global","globalConfig","max","payload","req","entityType","slug","where","oldestAllowedDoc","parent","equals","query","db","findVersions","limit","page","pagination","sort","docs","findGlobalVersions","updatedAt","deleteQuery","less_than_equal","deleteVersionsArgs","globalSlug","removedFiles","upload","undefined","parentID","deleteVersions","candidates","err","logger","error"],"mappings":"AAKA,SACEA,mBAAmB,EACnBC,+BAA+B,QAC1B,uCAAsC;AAW7C,OAAO,MAAMC,qBAAqB,OAAO,EACvCC,EAAE,EACFC,UAAU,EACVC,QAAQC,YAAY,EACpBC,GAAG,EACHC,OAAO,EACPC,GAAG,EACE;IACL,MAAMC,aAAaN,aAAa,eAAe;IAC/C,MAAMO,OAAOP,aAAaA,WAAWO,IAAI,GAAGL,cAAcK;IAE1D,IAAI;QACF,MAAMC,QAAe,CAAC;QACtB,IAAIC;QAEJ,IAAIT,YAAY;YACdQ,MAAME,MAAM,GAAG;gBACbC,QAAQZ;YACV;YAEA,MAAMa,QAAQ,MAAMR,QAAQS,EAAE,CAACC,YAAY,CAAC;gBAC1Cd,YAAYA,WAAWO,IAAI;gBAC3BQ,OAAO;gBACPC,MAAMb,MAAM;gBACZc,YAAY;gBACZZ;gBACAa,MAAM;gBACNV;YACF;YAEC,CAACC,iBAAiB,GAAGG,MAAMO,IAAI;QAClC,OAAO,IAAIjB,cAAc;YACvB,MAAMU,QAAQ,MAAMR,QAAQS,EAAE,CAACO,kBAAkB,CAAC;gBAChDnB,QAAQC,aAAaK,IAAI;gBACzBQ,OAAO;gBACPC,MAAMb,MAAM;gBACZc,YAAY;gBACZZ;gBACAa,MAAM;gBACNV;YACF;YAEC,CAACC,iBAAiB,GAAGG,MAAMO,IAAI;QAClC;QAEA,IAAIV,kBAAkBY,WAAW;YAC/B,MAAMC,cAAqB;gBACzBD,WAAW;oBACTE,iBAAiBd,iBAAiBY,SAAS;gBAC7C;YACF;YAEA,IAAIrB,YAAY;gBACdsB,YAAYZ,MAAM,GAAG;oBACnBC,QAAQZ;gBACV;YACF;YAEA,MAAMyB,qBAAyC;gBAAEnB;gBAAKG,OAAOc;YAAY;YAEzE,IAAIpB,cAAc;gBAChBsB,mBAAmBC,UAAU,GAAGlB;YAClC,OAAO;gBACLiB,mBAAmBxB,UAAU,GAAGO;YAClC;YAEA,MAAMmB,eACJ1B,YAAY2B,UAAU5B,OAAO6B,aAAavB,MACtC,MAAMT,oBAAoB;gBAAEI;gBAAY6B,UAAU9B;gBAAIM;gBAAKG,OAAOc;YAAY,KAC9E,EAAE;YAER,MAAMlB,QAAQS,EAAE,CAACiB,cAAc,CAACN;YAEhC,IAAIxB,YAAY2B,UAAUtB,KAAK;gBAC7B,MAAMR,gCAAgC;oBACpCkC,YAAYL;oBACZ1B;oBACAK;gBACF;YACF;QACF;IACF,EAAE,OAAO2B,KAAK;QACZ5B,QAAQ6B,MAAM,CAACC,KAAK,CAACF;QACrB5B,QAAQ6B,MAAM,CAACC,KAAK,CAClB,CAAC,oDAAoD,EAAE5B,WAAW,CAAC,EAAEC,MAAM;IAE/E;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getLatestCollectionVersion.d.ts","sourceRoot":"","sources":["../../src/versions/getLatestCollectionVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAS,MAAM,mBAAmB,CAAA;AAQvE,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,yBAAyB,CAAA;IACjC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,EAAE,WAAW,CAAA;IAClB,GAAG,CAAC,EAAE,cAAc,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAU,CAAC,SAAS,UAAU,GAAG,GAAG,mDAOxE,IAAI,KAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAqC9B,CAAA"}
1
+ {"version":3,"file":"getLatestCollectionVersion.d.ts","sourceRoot":"","sources":["../../src/versions/getLatestCollectionVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAS,MAAM,mBAAmB,CAAA;AAOvE,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,yBAAyB,CAAA;IACjC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,EAAE,WAAW,CAAA;IAClB,GAAG,CAAC,EAAE,cAAc,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAU,CAAC,SAAS,UAAU,GAAG,GAAG,mDAOxE,IAAI,KAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAiC9B,CAAA"}
@@ -1,21 +1,13 @@
1
- import { resolveBranchRowID } from '../branching/resolveBranchRowID.js';
2
1
  import { combineQueries } from '../database/combineQueries.js';
3
2
  import { hasDraftsEnabled } from '../utilities/getVersionsConfig.js';
4
3
  import { appendVersionToQueryKey } from './drafts/appendVersionToQueryKey.js';
5
4
  export const getLatestCollectionVersion = async ({ id, config, payload, published, query, req })=>{
6
5
  let latestVersion;
7
- // Version rows on a branch hang off the shadow row, so `parent` is that row's
8
- // primary key rather than the canonical document ID the caller passed.
9
- const parentID = await resolveBranchRowID({
10
- id,
11
- collectionSlug: config.slug,
12
- req
13
- });
14
6
  const whereQuery = published ? {
15
7
  and: [
16
8
  {
17
9
  parent: {
18
- equals: parentID
10
+ equals: id
19
11
  }
20
12
  },
21
13
  {
@@ -28,7 +20,7 @@ export const getLatestCollectionVersion = async ({ id, config, payload, publishe
28
20
  and: [
29
21
  {
30
22
  parent: {
31
- equals: parentID
23
+ equals: id
32
24
  }
33
25
  },
34
26
  {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/versions/getLatestCollectionVersion.ts"],"sourcesContent":["import type { SanitizedCollectionConfig, TypeWithID } from '../collections/config/types.js'\nimport type { FindOneArgs } from '../database/types.js'\nimport type { Payload, PayloadRequest, Where } from '../types/index.js'\nimport type { TypeWithVersion } from './types.js'\n\nimport { resolveBranchRowID } from '../branching/resolveBranchRowID.js'\nimport { combineQueries } from '../database/combineQueries.js'\nimport { hasDraftsEnabled } from '../utilities/getVersionsConfig.js'\nimport { appendVersionToQueryKey } from './drafts/appendVersionToQueryKey.js'\n\ntype Args = {\n config: SanitizedCollectionConfig\n id: number | string\n payload: Payload\n published?: boolean\n query: FindOneArgs\n req?: PayloadRequest\n}\n\nexport const getLatestCollectionVersion = async <T extends TypeWithID = any>({\n id,\n config,\n payload,\n published,\n query,\n req,\n}: Args): Promise<T | undefined> => {\n let latestVersion!: TypeWithVersion<T>\n\n // Version rows on a branch hang off the shadow row, so `parent` is that row's\n // primary key rather than the canonical document ID the caller passed.\n const parentID = await resolveBranchRowID({ id, collectionSlug: config.slug, req })\n\n const whereQuery = published\n ? { and: [{ parent: { equals: parentID } }, { 'version._status': { equals: 'published' } }] }\n : { and: [{ parent: { equals: parentID } }, { latest: { equals: true } }] }\n\n if (hasDraftsEnabled(config)) {\n const { docs } = await payload.db.findVersions<T>({\n collection: config.slug,\n limit: 1,\n locale: req?.locale || query.locale,\n pagination: false,\n req,\n sort: '-updatedAt',\n where: combineQueries(appendVersionToQueryKey(query.where), whereQuery as unknown as Where),\n })\n latestVersion = docs[0]!\n }\n\n if (!latestVersion) {\n if (!published) {\n const doc = await payload.db.findOne<T>({ ...query, req })\n\n return doc ?? undefined\n }\n\n return undefined\n }\n\n latestVersion.version.id = id\n\n return latestVersion.version\n}\n"],"names":["resolveBranchRowID","combineQueries","hasDraftsEnabled","appendVersionToQueryKey","getLatestCollectionVersion","id","config","payload","published","query","req","latestVersion","parentID","collectionSlug","slug","whereQuery","and","parent","equals","latest","docs","db","findVersions","collection","limit","locale","pagination","sort","where","doc","findOne","undefined","version"],"mappings":"AAKA,SAASA,kBAAkB,QAAQ,qCAAoC;AACvE,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SAASC,gBAAgB,QAAQ,oCAAmC;AACpE,SAASC,uBAAuB,QAAQ,sCAAqC;AAW7E,OAAO,MAAMC,6BAA6B,OAAmC,EAC3EC,EAAE,EACFC,MAAM,EACNC,OAAO,EACPC,SAAS,EACTC,KAAK,EACLC,GAAG,EACE;IACL,IAAIC;IAEJ,8EAA8E;IAC9E,uEAAuE;IACvE,MAAMC,WAAW,MAAMZ,mBAAmB;QAAEK;QAAIQ,gBAAgBP,OAAOQ,IAAI;QAAEJ;IAAI;IAEjF,MAAMK,aAAaP,YACf;QAAEQ,KAAK;YAAC;gBAAEC,QAAQ;oBAAEC,QAAQN;gBAAS;YAAE;YAAG;gBAAE,mBAAmB;oBAAEM,QAAQ;gBAAY;YAAE;SAAE;IAAC,IAC1F;QAAEF,KAAK;YAAC;gBAAEC,QAAQ;oBAAEC,QAAQN;gBAAS;YAAE;YAAG;gBAAEO,QAAQ;oBAAED,QAAQ;gBAAK;YAAE;SAAE;IAAC;IAE5E,IAAIhB,iBAAiBI,SAAS;QAC5B,MAAM,EAAEc,IAAI,EAAE,GAAG,MAAMb,QAAQc,EAAE,CAACC,YAAY,CAAI;YAChDC,YAAYjB,OAAOQ,IAAI;YACvBU,OAAO;YACPC,QAAQf,KAAKe,UAAUhB,MAAMgB,MAAM;YACnCC,YAAY;YACZhB;YACAiB,MAAM;YACNC,OAAO3B,eAAeE,wBAAwBM,MAAMmB,KAAK,GAAGb;QAC9D;QACAJ,gBAAgBS,IAAI,CAAC,EAAE;IACzB;IAEA,IAAI,CAACT,eAAe;QAClB,IAAI,CAACH,WAAW;YACd,MAAMqB,MAAM,MAAMtB,QAAQc,EAAE,CAACS,OAAO,CAAI;gBAAE,GAAGrB,KAAK;gBAAEC;YAAI;YAExD,OAAOmB,OAAOE;QAChB;QAEA,OAAOA;IACT;IAEApB,cAAcqB,OAAO,CAAC3B,EAAE,GAAGA;IAE3B,OAAOM,cAAcqB,OAAO;AAC9B,EAAC"}
1
+ {"version":3,"sources":["../../src/versions/getLatestCollectionVersion.ts"],"sourcesContent":["import type { SanitizedCollectionConfig, TypeWithID } from '../collections/config/types.js'\nimport type { FindOneArgs } from '../database/types.js'\nimport type { Payload, PayloadRequest, Where } from '../types/index.js'\nimport type { TypeWithVersion } from './types.js'\n\nimport { combineQueries } from '../database/combineQueries.js'\nimport { hasDraftsEnabled } from '../utilities/getVersionsConfig.js'\nimport { appendVersionToQueryKey } from './drafts/appendVersionToQueryKey.js'\n\ntype Args = {\n config: SanitizedCollectionConfig\n id: number | string\n payload: Payload\n published?: boolean\n query: FindOneArgs\n req?: PayloadRequest\n}\n\nexport const getLatestCollectionVersion = async <T extends TypeWithID = any>({\n id,\n config,\n payload,\n published,\n query,\n req,\n}: Args): Promise<T | undefined> => {\n let latestVersion!: TypeWithVersion<T>\n\n const whereQuery = published\n ? { and: [{ parent: { equals: id } }, { 'version._status': { equals: 'published' } }] }\n : { and: [{ parent: { equals: id } }, { latest: { equals: true } }] }\n\n if (hasDraftsEnabled(config)) {\n const { docs } = await payload.db.findVersions<T>({\n collection: config.slug,\n limit: 1,\n locale: req?.locale || query.locale,\n pagination: false,\n req,\n sort: '-updatedAt',\n where: combineQueries(appendVersionToQueryKey(query.where), whereQuery as unknown as Where),\n })\n latestVersion = docs[0]!\n }\n\n if (!latestVersion) {\n if (!published) {\n const doc = await payload.db.findOne<T>({ ...query, req })\n\n return doc ?? undefined\n }\n\n return undefined\n }\n\n latestVersion.version.id = id\n\n return latestVersion.version\n}\n"],"names":["combineQueries","hasDraftsEnabled","appendVersionToQueryKey","getLatestCollectionVersion","id","config","payload","published","query","req","latestVersion","whereQuery","and","parent","equals","latest","docs","db","findVersions","collection","slug","limit","locale","pagination","sort","where","doc","findOne","undefined","version"],"mappings":"AAKA,SAASA,cAAc,QAAQ,gCAA+B;AAC9D,SAASC,gBAAgB,QAAQ,oCAAmC;AACpE,SAASC,uBAAuB,QAAQ,sCAAqC;AAW7E,OAAO,MAAMC,6BAA6B,OAAmC,EAC3EC,EAAE,EACFC,MAAM,EACNC,OAAO,EACPC,SAAS,EACTC,KAAK,EACLC,GAAG,EACE;IACL,IAAIC;IAEJ,MAAMC,aAAaJ,YACf;QAAEK,KAAK;YAAC;gBAAEC,QAAQ;oBAAEC,QAAQV;gBAAG;YAAE;YAAG;gBAAE,mBAAmB;oBAAEU,QAAQ;gBAAY;YAAE;SAAE;IAAC,IACpF;QAAEF,KAAK;YAAC;gBAAEC,QAAQ;oBAAEC,QAAQV;gBAAG;YAAE;YAAG;gBAAEW,QAAQ;oBAAED,QAAQ;gBAAK;YAAE;SAAE;IAAC;IAEtE,IAAIb,iBAAiBI,SAAS;QAC5B,MAAM,EAAEW,IAAI,EAAE,GAAG,MAAMV,QAAQW,EAAE,CAACC,YAAY,CAAI;YAChDC,YAAYd,OAAOe,IAAI;YACvBC,OAAO;YACPC,QAAQb,KAAKa,UAAUd,MAAMc,MAAM;YACnCC,YAAY;YACZd;YACAe,MAAM;YACNC,OAAOzB,eAAeE,wBAAwBM,MAAMiB,KAAK,GAAGd;QAC9D;QACAD,gBAAgBM,IAAI,CAAC,EAAE;IACzB;IAEA,IAAI,CAACN,eAAe;QAClB,IAAI,CAACH,WAAW;YACd,MAAMmB,MAAM,MAAMpB,QAAQW,EAAE,CAACU,OAAO,CAAI;gBAAE,GAAGnB,KAAK;gBAAEC;YAAI;YAExD,OAAOiB,OAAOE;QAChB;QAEA,OAAOA;IACT;IAEAlB,cAAcmB,OAAO,CAACzB,EAAE,GAAGA;IAE3B,OAAOM,cAAcmB,OAAO;AAC9B,EAAC"}
@@ -7,15 +7,11 @@ type Args = {
7
7
  published?: boolean;
8
8
  req?: PayloadRequest;
9
9
  slug: string;
10
- /** Filters stored global and global-version rows without changing access-query field paths. */
11
- storageWhere?: Where;
12
10
  where: Where;
13
11
  };
14
- type Result = {
12
+ export declare const getLatestGlobalVersion: ({ slug, config, locale, payload, published, req, where, }: Args) => Promise<{
15
13
  global: Document;
16
14
  globalExists: boolean;
17
- hasLiveGlobal: boolean;
18
- };
19
- export declare const getLatestGlobalVersion: ({ slug, config, locale, payload, published, req, storageWhere, where, }: Args) => Promise<Result>;
15
+ }>;
20
16
  export {};
21
17
  //# sourceMappingURL=getLatestGlobalVersion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getLatestGlobalVersion.d.ts","sourceRoot":"","sources":["../../src/versions/getLatestGlobalVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AASjF,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,qBAAqB,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,+FAA+F;IAC/F,YAAY,CAAC,EAAE,KAAK,CAAA;IACpB,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,MAAM,EAAE,QAAQ,CAAA;IAChB,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,sBAAsB,4EAShC,IAAI,KAAG,OAAO,CAAC,MAAM,CA0GvB,CAAA"}
1
+ {"version":3,"file":"getLatestGlobalVersion.d.ts","sourceRoot":"","sources":["../../src/versions/getLatestGlobalVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAQjF,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,qBAAqB,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,eAAO,MAAM,sBAAsB,8DAQhC,IAAI,KAAG,OAAO,CAAC;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAAE,CAsD5D,CAAA"}
@@ -1,9 +1,8 @@
1
1
  import { hasWhereAccessResult } from '../auth/types.js';
2
- import { branchField } from '../branching/types.js';
3
2
  import { combineQueries } from '../database/combineQueries.js';
4
3
  import { hasDraftsEnabled } from '../utilities/getVersionsConfig.js';
5
- import { appendGlobalVersionToQueryKey } from './drafts/appendVersionToQueryKey.js';
6
- export const getLatestGlobalVersion = async ({ slug, config, locale, payload, published, req, storageWhere, where })=>{
4
+ import { appendVersionToQueryKey } from './drafts/appendVersionToQueryKey.js';
5
+ export const getLatestGlobalVersion = async ({ slug, config, locale, payload, published, req, where })=>{
7
6
  let latestVersion;
8
7
  const whereQuery = published ? {
9
8
  'version._status': {
@@ -14,7 +13,6 @@ export const getLatestGlobalVersion = async ({ slug, config, locale, payload, pu
14
13
  equals: true
15
14
  }
16
15
  };
17
- const scopedVersionQuery = storageWhere ? combineQueries(whereQuery, storageWhere) : whereQuery;
18
16
  if (hasDraftsEnabled(config)) {
19
17
  latestVersion = (await payload.db.findGlobalVersions({
20
18
  global: slug,
@@ -22,78 +20,36 @@ export const getLatestGlobalVersion = async ({ slug, config, locale, payload, pu
22
20
  locale: locale || req?.locale || undefined,
23
21
  pagination: false,
24
22
  req,
25
- where: scopedVersionQuery
23
+ where: combineQueries(appendVersionToQueryKey(where), whereQuery)
26
24
  })).docs[0];
27
25
  }
28
- const scopedLiveGlobal = await payload.db.findGlobal({
26
+ const global = await payload.db.findGlobal({
29
27
  slug,
30
28
  locale,
31
29
  req,
32
- where: storageWhere
30
+ where
33
31
  });
34
- const hasLiveGlobal = Boolean(scopedLiveGlobal && Object.keys(scopedLiveGlobal).length > 0);
35
- const globalExists = Boolean(latestVersion) || hasLiveGlobal;
36
- if (latestVersion) {
37
- let accessibleLatestVersion = latestVersion;
38
- if (hasWhereAccessResult(where)) {
39
- const versionAccessQuery = combineQueries(appendGlobalVersionToQueryKey(where), {
40
- id: {
41
- equals: latestVersion.id
42
- }
43
- });
44
- const scopedVersionAccessQuery = storageWhere ? combineQueries(versionAccessQuery, storageWhere) : versionAccessQuery;
45
- accessibleLatestVersion = (await payload.db.findGlobalVersions({
46
- global: slug,
47
- limit: 1,
48
- locale: locale || req?.locale || undefined,
49
- pagination: false,
50
- req,
51
- where: scopedVersionAccessQuery
52
- })).docs[0];
53
- }
54
- if (!accessibleLatestVersion) {
55
- return {
56
- global: {},
57
- globalExists,
58
- hasLiveGlobal
59
- };
60
- }
61
- if (!accessibleLatestVersion.version.createdAt) {
62
- accessibleLatestVersion.version.createdAt = accessibleLatestVersion.createdAt;
63
- }
64
- if (!accessibleLatestVersion.version.updatedAt) {
65
- accessibleLatestVersion.version.updatedAt = accessibleLatestVersion.updatedAt;
66
- }
32
+ const existingGlobal = hasWhereAccessResult(where) ? await payload.db.findGlobal({
33
+ slug,
34
+ locale,
35
+ req
36
+ }) : global;
37
+ const globalExists = Boolean(existingGlobal && Object.keys(existingGlobal).length > 0);
38
+ if (!latestVersion) {
67
39
  return {
68
- global: accessibleLatestVersion.version,
69
- globalExists,
70
- hasLiveGlobal
40
+ global,
41
+ globalExists
71
42
  };
72
43
  }
73
- if (!hasWhereAccessResult(where) || !hasLiveGlobal) {
74
- return {
75
- global: scopedLiveGlobal,
76
- globalExists,
77
- hasLiveGlobal
78
- };
44
+ if (!latestVersion.version.createdAt) {
45
+ latestVersion.version.createdAt = latestVersion.createdAt;
46
+ }
47
+ if (!latestVersion.version.updatedAt) {
48
+ latestVersion.version.updatedAt = latestVersion.updatedAt;
79
49
  }
80
- const liveGlobalBranch = scopedLiveGlobal[branchField];
81
- const exactLiveStorageWhere = typeof liveGlobalBranch === 'string' ? combineQueries(storageWhere ?? {}, {
82
- [branchField]: {
83
- equals: liveGlobalBranch
84
- }
85
- }) : storageWhere;
86
- const liveAccessQuery = exactLiveStorageWhere ? combineQueries(where, exactLiveStorageWhere) : where;
87
- const accessibleLiveGlobal = await payload.db.findGlobal({
88
- slug,
89
- locale,
90
- req,
91
- where: liveAccessQuery
92
- });
93
50
  return {
94
- global: accessibleLiveGlobal,
95
- globalExists,
96
- hasLiveGlobal
51
+ global: latestVersion.version,
52
+ globalExists
97
53
  };
98
54
  };
99
55
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/versions/getLatestGlobalVersion.ts"],"sourcesContent":["import type { SanitizedGlobalConfig } from '../globals/config/types.js'\nimport type { Document, Payload, PayloadRequest, Where } from '../types/index.js'\nimport type { TypeWithVersion } from './types.js'\n\nimport { hasWhereAccessResult } from '../auth/types.js'\nimport { branchField } from '../branching/types.js'\nimport { combineQueries } from '../database/combineQueries.js'\nimport { hasDraftsEnabled } from '../utilities/getVersionsConfig.js'\nimport { appendGlobalVersionToQueryKey } from './drafts/appendVersionToQueryKey.js'\n\ntype Args = {\n config: SanitizedGlobalConfig\n locale?: string\n payload: Payload\n published?: boolean\n req?: PayloadRequest\n slug: string\n /** Filters stored global and global-version rows without changing access-query field paths. */\n storageWhere?: Where\n where: Where\n}\n\ntype Result = {\n global: Document\n globalExists: boolean\n hasLiveGlobal: boolean\n}\n\nexport const getLatestGlobalVersion = async ({\n slug,\n config,\n locale,\n payload,\n published,\n req,\n storageWhere,\n where,\n}: Args): Promise<Result> => {\n let latestVersion: TypeWithVersion<Document> | undefined\n\n const whereQuery = published\n ? { 'version._status': { equals: 'published' } }\n : { latest: { equals: true } }\n const scopedVersionQuery = storageWhere\n ? combineQueries(whereQuery as unknown as Where, storageWhere)\n : (whereQuery as unknown as Where)\n\n if (hasDraftsEnabled(config)) {\n latestVersion = (\n await payload.db.findGlobalVersions({\n global: slug,\n limit: 1,\n locale: locale || req?.locale || undefined,\n pagination: false,\n req,\n where: scopedVersionQuery,\n })\n ).docs[0]\n }\n\n const scopedLiveGlobal = await payload.db.findGlobal({\n slug,\n locale,\n req,\n where: storageWhere,\n })\n const hasLiveGlobal = Boolean(scopedLiveGlobal && Object.keys(scopedLiveGlobal).length > 0)\n const globalExists = Boolean(latestVersion) || hasLiveGlobal\n\n if (latestVersion) {\n let accessibleLatestVersion: TypeWithVersion<Document> | undefined = latestVersion\n\n if (hasWhereAccessResult(where)) {\n const versionAccessQuery = combineQueries(appendGlobalVersionToQueryKey(where), {\n id: { equals: latestVersion.id },\n })\n const scopedVersionAccessQuery = storageWhere\n ? combineQueries(versionAccessQuery, storageWhere)\n : versionAccessQuery\n\n accessibleLatestVersion = (\n await payload.db.findGlobalVersions({\n global: slug,\n limit: 1,\n locale: locale || req?.locale || undefined,\n pagination: false,\n req,\n where: scopedVersionAccessQuery,\n })\n ).docs[0]\n }\n\n if (!accessibleLatestVersion) {\n return {\n global: {},\n globalExists,\n hasLiveGlobal,\n }\n }\n\n if (!accessibleLatestVersion.version.createdAt) {\n accessibleLatestVersion.version.createdAt = accessibleLatestVersion.createdAt\n }\n\n if (!accessibleLatestVersion.version.updatedAt) {\n accessibleLatestVersion.version.updatedAt = accessibleLatestVersion.updatedAt\n }\n\n return {\n global: accessibleLatestVersion.version,\n globalExists,\n hasLiveGlobal,\n }\n }\n\n if (!hasWhereAccessResult(where) || !hasLiveGlobal) {\n return {\n global: scopedLiveGlobal,\n globalExists,\n hasLiveGlobal,\n }\n }\n\n const liveGlobalBranch = scopedLiveGlobal[branchField]\n const exactLiveStorageWhere =\n typeof liveGlobalBranch === 'string'\n ? combineQueries(storageWhere ?? {}, { [branchField]: { equals: liveGlobalBranch } })\n : storageWhere\n const liveAccessQuery = exactLiveStorageWhere\n ? combineQueries(where, exactLiveStorageWhere)\n : where\n const accessibleLiveGlobal = await payload.db.findGlobal({\n slug,\n locale,\n req,\n where: liveAccessQuery,\n })\n\n return {\n global: accessibleLiveGlobal,\n globalExists,\n hasLiveGlobal,\n }\n}\n"],"names":["hasWhereAccessResult","branchField","combineQueries","hasDraftsEnabled","appendGlobalVersionToQueryKey","getLatestGlobalVersion","slug","config","locale","payload","published","req","storageWhere","where","latestVersion","whereQuery","equals","latest","scopedVersionQuery","db","findGlobalVersions","global","limit","undefined","pagination","docs","scopedLiveGlobal","findGlobal","hasLiveGlobal","Boolean","Object","keys","length","globalExists","accessibleLatestVersion","versionAccessQuery","id","scopedVersionAccessQuery","version","createdAt","updatedAt","liveGlobalBranch","exactLiveStorageWhere","liveAccessQuery","accessibleLiveGlobal"],"mappings":"AAIA,SAASA,oBAAoB,QAAQ,mBAAkB;AACvD,SAASC,WAAW,QAAQ,wBAAuB;AACnD,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SAASC,gBAAgB,QAAQ,oCAAmC;AACpE,SAASC,6BAA6B,QAAQ,sCAAqC;AAoBnF,OAAO,MAAMC,yBAAyB,OAAO,EAC3CC,IAAI,EACJC,MAAM,EACNC,MAAM,EACNC,OAAO,EACPC,SAAS,EACTC,GAAG,EACHC,YAAY,EACZC,KAAK,EACA;IACL,IAAIC;IAEJ,MAAMC,aAAaL,YACf;QAAE,mBAAmB;YAAEM,QAAQ;QAAY;IAAE,IAC7C;QAAEC,QAAQ;YAAED,QAAQ;QAAK;IAAE;IAC/B,MAAME,qBAAqBN,eACvBV,eAAea,YAAgCH,gBAC9CG;IAEL,IAAIZ,iBAAiBI,SAAS;QAC5BO,gBAAgB,AACd,CAAA,MAAML,QAAQU,EAAE,CAACC,kBAAkB,CAAC;YAClCC,QAAQf;YACRgB,OAAO;YACPd,QAAQA,UAAUG,KAAKH,UAAUe;YACjCC,YAAY;YACZb;YACAE,OAAOK;QACT,EAAC,EACDO,IAAI,CAAC,EAAE;IACX;IAEA,MAAMC,mBAAmB,MAAMjB,QAAQU,EAAE,CAACQ,UAAU,CAAC;QACnDrB;QACAE;QACAG;QACAE,OAAOD;IACT;IACA,MAAMgB,gBAAgBC,QAAQH,oBAAoBI,OAAOC,IAAI,CAACL,kBAAkBM,MAAM,GAAG;IACzF,MAAMC,eAAeJ,QAAQf,kBAAkBc;IAE/C,IAAId,eAAe;QACjB,IAAIoB,0BAAiEpB;QAErE,IAAId,qBAAqBa,QAAQ;YAC/B,MAAMsB,qBAAqBjC,eAAeE,8BAA8BS,QAAQ;gBAC9EuB,IAAI;oBAAEpB,QAAQF,cAAcsB,EAAE;gBAAC;YACjC;YACA,MAAMC,2BAA2BzB,eAC7BV,eAAeiC,oBAAoBvB,gBACnCuB;YAEJD,0BAA0B,AACxB,CAAA,MAAMzB,QAAQU,EAAE,CAACC,kBAAkB,CAAC;gBAClCC,QAAQf;gBACRgB,OAAO;gBACPd,QAAQA,UAAUG,KAAKH,UAAUe;gBACjCC,YAAY;gBACZb;gBACAE,OAAOwB;YACT,EAAC,EACDZ,IAAI,CAAC,EAAE;QACX;QAEA,IAAI,CAACS,yBAAyB;YAC5B,OAAO;gBACLb,QAAQ,CAAC;gBACTY;gBACAL;YACF;QACF;QAEA,IAAI,CAACM,wBAAwBI,OAAO,CAACC,SAAS,EAAE;YAC9CL,wBAAwBI,OAAO,CAACC,SAAS,GAAGL,wBAAwBK,SAAS;QAC/E;QAEA,IAAI,CAACL,wBAAwBI,OAAO,CAACE,SAAS,EAAE;YAC9CN,wBAAwBI,OAAO,CAACE,SAAS,GAAGN,wBAAwBM,SAAS;QAC/E;QAEA,OAAO;YACLnB,QAAQa,wBAAwBI,OAAO;YACvCL;YACAL;QACF;IACF;IAEA,IAAI,CAAC5B,qBAAqBa,UAAU,CAACe,eAAe;QAClD,OAAO;YACLP,QAAQK;YACRO;YACAL;QACF;IACF;IAEA,MAAMa,mBAAmBf,gBAAgB,CAACzB,YAAY;IACtD,MAAMyC,wBACJ,OAAOD,qBAAqB,WACxBvC,eAAeU,gBAAgB,CAAC,GAAG;QAAE,CAACX,YAAY,EAAE;YAAEe,QAAQyB;QAAiB;IAAE,KACjF7B;IACN,MAAM+B,kBAAkBD,wBACpBxC,eAAeW,OAAO6B,yBACtB7B;IACJ,MAAM+B,uBAAuB,MAAMnC,QAAQU,EAAE,CAACQ,UAAU,CAAC;QACvDrB;QACAE;QACAG;QACAE,OAAO8B;IACT;IAEA,OAAO;QACLtB,QAAQuB;QACRX;QACAL;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/versions/getLatestGlobalVersion.ts"],"sourcesContent":["import type { SanitizedGlobalConfig } from '../globals/config/types.js'\nimport type { Document, Payload, PayloadRequest, Where } from '../types/index.js'\nimport type { TypeWithVersion } from './types.js'\n\nimport { hasWhereAccessResult } from '../auth/types.js'\nimport { combineQueries } from '../database/combineQueries.js'\nimport { hasDraftsEnabled } from '../utilities/getVersionsConfig.js'\nimport { appendVersionToQueryKey } from './drafts/appendVersionToQueryKey.js'\n\ntype Args = {\n config: SanitizedGlobalConfig\n locale?: string\n payload: Payload\n published?: boolean\n req?: PayloadRequest\n slug: string\n where: Where\n}\n\nexport const getLatestGlobalVersion = async ({\n slug,\n config,\n locale,\n payload,\n published,\n req,\n where,\n}: Args): Promise<{ global: Document; globalExists: boolean }> => {\n let latestVersion: TypeWithVersion<Document> | undefined\n\n const whereQuery = published\n ? { 'version._status': { equals: 'published' } }\n : { latest: { equals: true } }\n\n if (hasDraftsEnabled(config)) {\n latestVersion = (\n await payload.db.findGlobalVersions({\n global: slug,\n limit: 1,\n locale: locale || req?.locale || undefined,\n pagination: false,\n req,\n where: combineQueries(appendVersionToQueryKey(where), whereQuery as unknown as Where),\n })\n ).docs[0]\n }\n\n const global = await payload.db.findGlobal({\n slug,\n locale,\n req,\n where,\n })\n const existingGlobal = hasWhereAccessResult(where)\n ? await payload.db.findGlobal({\n slug,\n locale,\n req,\n })\n : global\n const globalExists = Boolean(existingGlobal && Object.keys(existingGlobal).length > 0)\n\n if (!latestVersion) {\n return {\n global,\n globalExists,\n }\n }\n\n if (!latestVersion.version.createdAt) {\n latestVersion.version.createdAt = latestVersion.createdAt\n }\n\n if (!latestVersion.version.updatedAt) {\n latestVersion.version.updatedAt = latestVersion.updatedAt\n }\n\n return {\n global: latestVersion.version,\n globalExists,\n }\n}\n"],"names":["hasWhereAccessResult","combineQueries","hasDraftsEnabled","appendVersionToQueryKey","getLatestGlobalVersion","slug","config","locale","payload","published","req","where","latestVersion","whereQuery","equals","latest","db","findGlobalVersions","global","limit","undefined","pagination","docs","findGlobal","existingGlobal","globalExists","Boolean","Object","keys","length","version","createdAt","updatedAt"],"mappings":"AAIA,SAASA,oBAAoB,QAAQ,mBAAkB;AACvD,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SAASC,gBAAgB,QAAQ,oCAAmC;AACpE,SAASC,uBAAuB,QAAQ,sCAAqC;AAY7E,OAAO,MAAMC,yBAAyB,OAAO,EAC3CC,IAAI,EACJC,MAAM,EACNC,MAAM,EACNC,OAAO,EACPC,SAAS,EACTC,GAAG,EACHC,KAAK,EACA;IACL,IAAIC;IAEJ,MAAMC,aAAaJ,YACf;QAAE,mBAAmB;YAAEK,QAAQ;QAAY;IAAE,IAC7C;QAAEC,QAAQ;YAAED,QAAQ;QAAK;IAAE;IAE/B,IAAIZ,iBAAiBI,SAAS;QAC5BM,gBAAgB,AACd,CAAA,MAAMJ,QAAQQ,EAAE,CAACC,kBAAkB,CAAC;YAClCC,QAAQb;YACRc,OAAO;YACPZ,QAAQA,UAAUG,KAAKH,UAAUa;YACjCC,YAAY;YACZX;YACAC,OAAOV,eAAeE,wBAAwBQ,QAAQE;QACxD,EAAC,EACDS,IAAI,CAAC,EAAE;IACX;IAEA,MAAMJ,SAAS,MAAMV,QAAQQ,EAAE,CAACO,UAAU,CAAC;QACzClB;QACAE;QACAG;QACAC;IACF;IACA,MAAMa,iBAAiBxB,qBAAqBW,SACxC,MAAMH,QAAQQ,EAAE,CAACO,UAAU,CAAC;QAC1BlB;QACAE;QACAG;IACF,KACAQ;IACJ,MAAMO,eAAeC,QAAQF,kBAAkBG,OAAOC,IAAI,CAACJ,gBAAgBK,MAAM,GAAG;IAEpF,IAAI,CAACjB,eAAe;QAClB,OAAO;YACLM;YACAO;QACF;IACF;IAEA,IAAI,CAACb,cAAckB,OAAO,CAACC,SAAS,EAAE;QACpCnB,cAAckB,OAAO,CAACC,SAAS,GAAGnB,cAAcmB,SAAS;IAC3D;IAEA,IAAI,CAACnB,cAAckB,OAAO,CAACE,SAAS,EAAE;QACpCpB,cAAckB,OAAO,CAACE,SAAS,GAAGpB,cAAcoB,SAAS;IAC3D;IAEA,OAAO;QACLd,QAAQN,cAAckB,OAAO;QAC7BL;IACF;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/versions/isInheritedReadVersionsAccess.ts"],"sourcesContent":["import type { Access, AccessArgs } from '../config/types.js'\n\nconst inheritedReadVersionsAccess = Symbol('inheritedReadVersionsAccess')\nconst inheritedReadVersionsParentID = Symbol('inheritedReadVersionsParentID')\n\ntype InheritedReadVersionsAccess = {\n [inheritedReadVersionsAccess]: true\n} & Access\n\ntype InheritedReadVersionsAccessArgs = {\n [inheritedReadVersionsParentID]?: AccessArgs['id']\n} & AccessArgs\n\nexport const markInheritedReadVersionsAccess = <TAccess extends Access>(\n access: TAccess,\n): TAccess => {\n Object.defineProperty(access, inheritedReadVersionsAccess, { value: true })\n\n return access\n}\n\nexport const isInheritedReadVersionsAccess = (access?: Access): boolean =>\n Boolean(\n access &&\n (access as Partial<InheritedReadVersionsAccess>)[inheritedReadVersionsAccess] === true,\n )\n\nexport const resolveInheritedReadVersionsAccessArgs = (args: AccessArgs): AccessArgs => {\n const inheritedArgs = args as InheritedReadVersionsAccessArgs\n\n if (!(inheritedReadVersionsParentID in inheritedArgs)) {\n return args\n }\n\n const readArgs = {\n ...args,\n id: inheritedArgs[inheritedReadVersionsParentID],\n } as InheritedReadVersionsAccessArgs\n\n delete readArgs[inheritedReadVersionsParentID]\n\n return readArgs\n}\n\nexport const withInheritedReadVersionsParentID = (\n args: AccessArgs,\n parentID: AccessArgs['id'],\n): AccessArgs => {\n const inheritedArgs: InheritedReadVersionsAccessArgs = {\n ...args,\n [inheritedReadVersionsParentID]: parentID,\n }\n\n return inheritedArgs\n}\n"],"names":["inheritedReadVersionsAccess","Symbol","inheritedReadVersionsParentID","markInheritedReadVersionsAccess","access","Object","defineProperty","value","isInheritedReadVersionsAccess","Boolean","resolveInheritedReadVersionsAccessArgs","args","inheritedArgs","readArgs","id","withInheritedReadVersionsParentID","parentID"],"mappings":"AAEA,MAAMA,8BAA8BC,OAAO;AAC3C,MAAMC,gCAAgCD,OAAO;AAU7C,OAAO,MAAME,kCAAkC,CAC7CC;IAEAC,OAAOC,cAAc,CAACF,QAAQJ,6BAA6B;QAAEO,OAAO;IAAK;IAEzE,OAAOH;AACT,EAAC;AAED,OAAO,MAAMI,gCAAgC,CAACJ,SAC5CK,QACEL,UACE,AAACA,MAA+C,CAACJ,4BAA4B,KAAK,MACrF;AAEH,OAAO,MAAMU,yCAAyC,CAACC;IACrD,MAAMC,gBAAgBD;IAEtB,IAAI,CAAET,CAAAA,iCAAiCU,aAAY,GAAI;QACrD,OAAOD;IACT;IAEA,MAAME,WAAW;QACf,GAAGF,IAAI;QACPG,IAAIF,aAAa,CAACV,8BAA8B;IAClD;IAEA,OAAOW,QAAQ,CAACX,8BAA8B;IAE9C,OAAOW;AACT,EAAC;AAED,OAAO,MAAME,oCAAoC,CAC/CJ,MACAK;IAEA,MAAMJ,gBAAiD;QACrD,GAAGD,IAAI;QACP,CAACT,8BAA8B,EAAEc;IACnC;IAEA,OAAOJ;AACT,EAAC"}
1
+ {"version":3,"sources":["../../src/versions/isInheritedReadVersionsAccess.ts"],"sourcesContent":["import type { Access, AccessArgs } from '../config/types.js'\n\nconst inheritedReadVersionsAccess = Symbol('inheritedReadVersionsAccess')\nconst inheritedReadVersionsParentID = Symbol('inheritedReadVersionsParentID')\n\ntype InheritedReadVersionsAccess = {\n [inheritedReadVersionsAccess]: true\n} & Access\n\ntype InheritedReadVersionsAccessArgs = {\n [inheritedReadVersionsParentID]?: AccessArgs['id']\n} & AccessArgs\n\nexport const markInheritedReadVersionsAccess = <TAccess extends Access>(\n access: TAccess,\n): TAccess => {\n Object.defineProperty(access, inheritedReadVersionsAccess, { value: true })\n\n return access\n}\n\nexport const isInheritedReadVersionsAccess = (access?: Access): boolean =>\n Boolean(\n access &&\n (access as Partial<InheritedReadVersionsAccess>)[inheritedReadVersionsAccess] === true,\n )\n\nexport const resolveInheritedReadVersionsAccessArgs = (args: AccessArgs): AccessArgs => {\n const inheritedArgs = args as InheritedReadVersionsAccessArgs\n\n if (!(inheritedReadVersionsParentID in inheritedArgs)) {\n return args\n }\n\n const readArgs = {\n ...args,\n id: inheritedArgs[inheritedReadVersionsParentID],\n } as InheritedReadVersionsAccessArgs\n\n delete readArgs[inheritedReadVersionsParentID]\n\n return readArgs\n}\n\nexport const withInheritedReadVersionsParentID = (\n args: AccessArgs,\n parentID: AccessArgs['id'],\n): AccessArgs => {\n const inheritedArgs: InheritedReadVersionsAccessArgs = {\n ...args,\n [inheritedReadVersionsParentID]: parentID,\n }\n\n return inheritedArgs\n}\n"],"names":["inheritedReadVersionsAccess","Symbol","inheritedReadVersionsParentID","markInheritedReadVersionsAccess","access","Object","defineProperty","value","isInheritedReadVersionsAccess","Boolean","resolveInheritedReadVersionsAccessArgs","args","inheritedArgs","readArgs","id","withInheritedReadVersionsParentID","parentID"],"mappings":"AAEA,MAAMA,8BAA8BC,OAAO;AAC3C,MAAMC,gCAAgCD,OAAO;AAU7C,OAAO,MAAME,kCAAkC,CAC7CC;IAEAC,OAAOC,cAAc,CAACF,QAAQJ,6BAA6B;QAAEO,OAAO;IAAK;IAEzE,OAAOH;AACT,EAAC;AAED,OAAO,MAAMI,gCAAgC,CAACJ,SAC5CK,QACEL,UACA,AAACA,MAA+C,CAACJ,4BAA4B,KAAK,MACnF;AAEH,OAAO,MAAMU,yCAAyC,CAACC;IACrD,MAAMC,gBAAgBD;IAEtB,IAAI,CAAET,CAAAA,iCAAiCU,aAAY,GAAI;QACrD,OAAOD;IACT;IAEA,MAAME,WAAW;QACf,GAAGF,IAAI;QACPG,IAAIF,aAAa,CAACV,8BAA8B;IAClD;IAEA,OAAOW,QAAQ,CAACX,8BAA8B;IAE9C,OAAOW;AACT,EAAC;AAED,OAAO,MAAME,oCAAoC,CAC/CJ,MACAK;IAEA,MAAMJ,gBAAiD;QACrD,GAAGD,IAAI;QACP,CAACT,8BAA8B,EAAEc;IACnC;IAEA,OAAOJ;AACT,EAAC"}
@@ -14,15 +14,8 @@ type Args<T extends JsonObject = JsonObject> = {
14
14
  req?: PayloadRequest;
15
15
  returning?: boolean;
16
16
  select?: SelectType;
17
- shouldReturnVersionDocument?: boolean;
18
17
  unpublish?: boolean;
19
18
  };
20
- export declare const captureSavedVersionIDContextKey: unique symbol;
21
- export type CaptureSavedVersionID = (args: {
22
- collectionSlug?: string;
23
- globalSlug?: string;
24
- versionID: number | string;
25
- }) => void;
26
19
  export declare function saveVersion<TData extends JsonObject = JsonObject>(args: {
27
20
  returning: false;
28
21
  } & Args<TData>): Promise<null>;
@@ -1 +1 @@
1
- {"version":3,"file":"saveVersion.d.ts","sourceRoot":"","sources":["../../src/versions/saveVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC/E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAA8C,OAAO,EAAE,MAAM,aAAa,CAAA;AACtF,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAW/E,KAAK,IAAI,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,IAAI;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,yBAAyB,CAAA;IACtC,cAAc,EAAE,CAAC,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,qBAAqB,CAAA;IAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,QAAQ,GAAG,gBAAgB,GAAG,QAAQ,CAAA;IAClD,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,2BAA2B,CAAC,EAAE,OAAO,CAAA;IACrC,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,+BAA+B,eAAuD,CAAA;AAEnG,MAAM,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE;IACzC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAA;CAC3B,KAAK,IAAI,CAAA;AAEV,wBAAsB,WAAW,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,EACrE,IAAI,EAAE;IAAE,SAAS,EAAE,KAAK,CAAA;CAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC,CAAA;AAChB,wBAAsB,WAAW,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,EACrE,IAAI,EAAE;IAAE,SAAS,EAAE,IAAI,CAAA;CAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GACtC,OAAO,CAAC,UAAU,CAAC,CAAA;AACtB,wBAAsB,WAAW,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,EACrE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,GACnC,OAAO,CAAC,UAAU,CAAC,CAAA"}
1
+ {"version":3,"file":"saveVersion.d.ts","sourceRoot":"","sources":["../../src/versions/saveVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC/E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAA8C,OAAO,EAAE,MAAM,aAAa,CAAA;AACtF,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAU/E,KAAK,IAAI,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,IAAI;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,yBAAyB,CAAA;IACtC,cAAc,EAAE,CAAC,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,qBAAqB,CAAA;IAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,QAAQ,GAAG,gBAAgB,GAAG,QAAQ,CAAA;IAClD,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,wBAAsB,WAAW,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,EACrE,IAAI,EAAE;IAAE,SAAS,EAAE,KAAK,CAAA;CAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC,CAAA;AAChB,wBAAsB,WAAW,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,EACrE,IAAI,EAAE;IAAE,SAAS,EAAE,IAAI,CAAA;CAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GACtC,OAAO,CAAC,UAAU,CAAC,CAAA;AACtB,wBAAsB,WAAW,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,EACrE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,GACnC,OAAO,CAAC,UAAU,CAAC,CAAA"}
@@ -2,18 +2,15 @@ import { deepCopyObjectSimple } from '../index.js';
2
2
  import { assertNoValidationWrite } from '../utilities/assertNoValidationWrite.js';
3
3
  import { getVersionsMax, hasLocalizeStatusEnabled } from '../utilities/getVersionsConfig.js';
4
4
  import { sanitizeInternalFields } from '../utilities/sanitizeInternalFields.js';
5
- import { markTransactionWrite } from '../utilities/transactionMutationTracker.js';
6
5
  import { getQueryDraftsSelect } from './drafts/getQueryDraftsSelect.js';
7
6
  import { enforceMaxVersions } from './enforceMaxVersions.js';
8
- import { coalesceLatestVersionContextKey, updateLatestVersion } from './updateLatestVersion.js';
9
- export const captureSavedVersionIDContextKey = Symbol.for('payload.versions.captureSavedVersionID');
10
- export async function saveVersion({ id, autosave, collection, docWithLocales, draft, global, operation, payload, req, returning, select, shouldReturnVersionDocument, unpublish }) {
7
+ import { updateLatestVersion } from './updateLatestVersion.js';
8
+ export async function saveVersion({ id, autosave, collection, docWithLocales, draft, global, operation, payload, req, returning, select, unpublish }) {
11
9
  assertNoValidationWrite(req);
12
10
  let result;
13
11
  let createdNewVersion = false;
14
12
  const now = new Date().toISOString();
15
13
  const versionData = deepCopyObjectSimple(docWithLocales);
16
- const shouldCoalesceLatestVersion = req?.context?.[coalesceLatestVersionContextKey] === true;
17
14
  if ((collection?.timestamps || global) && draft) {
18
15
  versionData.updatedAt = now;
19
16
  }
@@ -31,7 +28,7 @@ export async function saveVersion({ id, autosave, collection, docWithLocales, dr
31
28
  ]));
32
29
  }
33
30
  try {
34
- if (unpublish || autosave || shouldCoalesceLatestVersion) {
31
+ if (unpublish || autosave) {
35
32
  result = await updateLatestVersion({
36
33
  id,
37
34
  collection,
@@ -39,14 +36,9 @@ export async function saveVersion({ id, autosave, collection, docWithLocales, dr
39
36
  now,
40
37
  payload,
41
38
  req,
42
- shouldUpdate: shouldCoalesceLatestVersion ? undefined : autosave ? (v)=>'autosave' in v && v.autosave === true : undefined,
39
+ shouldUpdate: autosave ? (v)=>'autosave' in v && v.autosave === true : undefined,
43
40
  versionData
44
41
  });
45
- if (result) {
46
- markTransactionWrite({
47
- req
48
- });
49
- }
50
42
  }
51
43
  if (!result) {
52
44
  createdNewVersion = true;
@@ -72,9 +64,6 @@ export async function saveVersion({ id, autosave, collection, docWithLocales, dr
72
64
  createVersionArgs.globalSlug = global.slug;
73
65
  result = await payload.db.createGlobalVersion(createVersionArgs);
74
66
  }
75
- markTransactionWrite({
76
- req
77
- });
78
67
  }
79
68
  } catch (err) {
80
69
  let errorMessage;
@@ -101,21 +90,9 @@ export async function saveVersion({ id, autosave, collection, docWithLocales, dr
101
90
  req
102
91
  });
103
92
  }
104
- const versionID = result?.id;
105
- const captureSavedVersionID = req?.context?.[captureSavedVersionIDContextKey];
106
- if (captureSavedVersionID && (typeof versionID === 'number' || typeof versionID === 'string')) {
107
- captureSavedVersionID({
108
- collectionSlug: collection?.slug,
109
- globalSlug: global?.slug,
110
- versionID
111
- });
112
- }
113
93
  if (returning === false) {
114
94
  return null;
115
95
  }
116
- if (shouldReturnVersionDocument) {
117
- return result;
118
- }
119
96
  let createdVersion = result.version;
120
97
  createdVersion = sanitizeInternalFields(createdVersion);
121
98
  createdVersion.id = result.parent;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/versions/saveVersion.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../globals/config/types.js'\nimport type { CreateGlobalVersionArgs, CreateVersionArgs, Payload } from '../index.js'\nimport type { JsonObject, PayloadRequest, SelectType } from '../types/index.js'\n\nimport { deepCopyObjectSimple } from '../index.js'\nimport { assertNoValidationWrite } from '../utilities/assertNoValidationWrite.js'\nimport { getVersionsMax, hasLocalizeStatusEnabled } from '../utilities/getVersionsConfig.js'\nimport { sanitizeInternalFields } from '../utilities/sanitizeInternalFields.js'\nimport { markTransactionWrite } from '../utilities/transactionMutationTracker.js'\nimport { getQueryDraftsSelect } from './drafts/getQueryDraftsSelect.js'\nimport { enforceMaxVersions } from './enforceMaxVersions.js'\nimport { coalesceLatestVersionContextKey, updateLatestVersion } from './updateLatestVersion.js'\n\ntype Args<T extends JsonObject = JsonObject> = {\n autosave?: boolean\n collection?: SanitizedCollectionConfig\n docWithLocales: T\n draft?: boolean\n global?: SanitizedGlobalConfig\n id?: number | string\n operation?: 'create' | 'restoreVersion' | 'update'\n payload: Payload\n req?: PayloadRequest\n returning?: boolean\n select?: SelectType\n shouldReturnVersionDocument?: boolean\n unpublish?: boolean\n}\n\nexport const captureSavedVersionIDContextKey = Symbol.for('payload.versions.captureSavedVersionID')\n\nexport type CaptureSavedVersionID = (args: {\n collectionSlug?: string\n globalSlug?: string\n versionID: number | string\n}) => void\n\nexport async function saveVersion<TData extends JsonObject = JsonObject>(\n args: { returning: false } & Args<TData>,\n): Promise<null>\nexport async function saveVersion<TData extends JsonObject = JsonObject>(\n args: { returning: true } & Args<TData>,\n): Promise<JsonObject>\nexport async function saveVersion<TData extends JsonObject = JsonObject>(\n args: Omit<Args<TData>, 'returning'>,\n): Promise<JsonObject>\nexport async function saveVersion<TData extends JsonObject = JsonObject>({\n id,\n autosave,\n collection,\n docWithLocales,\n draft,\n global,\n operation,\n payload,\n req,\n returning,\n select,\n shouldReturnVersionDocument,\n unpublish,\n}: Args<TData>): Promise<JsonObject | null> {\n assertNoValidationWrite(req)\n\n let result: JsonObject | undefined\n let createdNewVersion = false\n const now = new Date().toISOString()\n const versionData: {\n _status?: 'draft'\n updatedAt?: string\n } & TData = deepCopyObjectSimple(docWithLocales)\n const shouldCoalesceLatestVersion =\n (req?.context as Record<PropertyKey, unknown> | undefined)?.[\n coalesceLatestVersionContextKey\n ] === true\n\n if ((collection?.timestamps || global) && draft) {\n versionData.updatedAt = now\n }\n\n if (versionData._id) {\n delete versionData._id\n }\n\n // When localizeStatus is enabled, _status must be stored as a localized object.\n // Callers like restoreVersion set it as a plain string — expand it here.\n const entity = collection ?? global\n if (\n entity &&\n payload.config.localization &&\n hasLocalizeStatusEnabled(entity) &&\n typeof versionData._status === 'string'\n ) {\n const status = versionData._status\n ;(versionData as JsonObject)._status = Object.fromEntries(\n payload.config.localization.localeCodes.map((code) => [code, status]),\n )\n }\n\n try {\n if (unpublish || autosave || shouldCoalesceLatestVersion) {\n result = await updateLatestVersion({\n id,\n collection,\n global,\n now,\n payload,\n req,\n shouldUpdate: shouldCoalesceLatestVersion\n ? undefined\n : autosave\n ? (v) => 'autosave' in v && v.autosave === true\n : undefined,\n versionData,\n })\n if (result) {\n markTransactionWrite({ req })\n }\n }\n\n if (!result) {\n createdNewVersion = true\n\n const createVersionArgs = {\n autosave: Boolean(autosave),\n collectionSlug: undefined as string | undefined,\n createdAt: operation === 'restoreVersion' ? versionData.createdAt : now,\n globalSlug: undefined as string | undefined,\n parent: collection ? id : undefined,\n req,\n returning,\n select: getQueryDraftsSelect({ select }),\n updatedAt: now,\n versionData,\n }\n\n if (collection) {\n createVersionArgs.collectionSlug = collection.slug\n result = await payload.db.createVersion(createVersionArgs as CreateVersionArgs)\n }\n\n if (global) {\n createVersionArgs.globalSlug = global.slug\n result = await payload.db.createGlobalVersion(createVersionArgs as CreateGlobalVersionArgs)\n }\n markTransactionWrite({ req })\n }\n } catch (err) {\n let errorMessage: string | undefined\n\n if (collection) {\n errorMessage = `There was an error while saving a version for the ${typeof collection.labels.singular === 'string' ? collection.labels.singular : collection.slug} with ID ${id}.`\n }\n if (global) {\n errorMessage = `There was an error while saving a version for the global ${typeof global.label === 'string' ? global.label : global.slug}.`\n }\n payload.logger.error({ err, msg: errorMessage })\n throw err\n }\n\n const max = getVersionsMax(collection || global!)\n\n if (createdNewVersion && max > 0) {\n await enforceMaxVersions({\n id,\n collection,\n global,\n max,\n payload,\n req,\n })\n }\n\n const versionID = result?.id\n const captureSavedVersionID = (req?.context as Record<PropertyKey, unknown> | undefined)?.[\n captureSavedVersionIDContextKey\n ] as CaptureSavedVersionID | undefined\n\n if (captureSavedVersionID && (typeof versionID === 'number' || typeof versionID === 'string')) {\n captureSavedVersionID({\n collectionSlug: collection?.slug,\n globalSlug: global?.slug,\n versionID,\n })\n }\n\n if (returning === false) {\n return null\n }\n\n if (shouldReturnVersionDocument) {\n return result as JsonObject\n }\n\n let createdVersion = (result as any).version\n\n createdVersion = sanitizeInternalFields(createdVersion)\n createdVersion.id = (result as any).parent\n\n return createdVersion\n}\n"],"names":["deepCopyObjectSimple","assertNoValidationWrite","getVersionsMax","hasLocalizeStatusEnabled","sanitizeInternalFields","markTransactionWrite","getQueryDraftsSelect","enforceMaxVersions","coalesceLatestVersionContextKey","updateLatestVersion","captureSavedVersionIDContextKey","Symbol","for","saveVersion","id","autosave","collection","docWithLocales","draft","global","operation","payload","req","returning","select","shouldReturnVersionDocument","unpublish","result","createdNewVersion","now","Date","toISOString","versionData","shouldCoalesceLatestVersion","context","timestamps","updatedAt","_id","entity","config","localization","_status","status","Object","fromEntries","localeCodes","map","code","shouldUpdate","undefined","v","createVersionArgs","Boolean","collectionSlug","createdAt","globalSlug","parent","slug","db","createVersion","createGlobalVersion","err","errorMessage","labels","singular","label","logger","error","msg","max","versionID","captureSavedVersionID","createdVersion","version"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/versions/saveVersion.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../globals/config/types.js'\nimport type { CreateGlobalVersionArgs, CreateVersionArgs, Payload } from '../index.js'\nimport type { JsonObject, PayloadRequest, SelectType } from '../types/index.js'\n\nimport { deepCopyObjectSimple } from '../index.js'\nimport { assertNoValidationWrite } from '../utilities/assertNoValidationWrite.js'\nimport { getVersionsMax, hasLocalizeStatusEnabled } from '../utilities/getVersionsConfig.js'\nimport { sanitizeInternalFields } from '../utilities/sanitizeInternalFields.js'\nimport { getQueryDraftsSelect } from './drafts/getQueryDraftsSelect.js'\nimport { enforceMaxVersions } from './enforceMaxVersions.js'\nimport { updateLatestVersion } from './updateLatestVersion.js'\n\ntype Args<T extends JsonObject = JsonObject> = {\n autosave?: boolean\n collection?: SanitizedCollectionConfig\n docWithLocales: T\n draft?: boolean\n global?: SanitizedGlobalConfig\n id?: number | string\n operation?: 'create' | 'restoreVersion' | 'update'\n payload: Payload\n req?: PayloadRequest\n returning?: boolean\n select?: SelectType\n unpublish?: boolean\n}\n\nexport async function saveVersion<TData extends JsonObject = JsonObject>(\n args: { returning: false } & Args<TData>,\n): Promise<null>\nexport async function saveVersion<TData extends JsonObject = JsonObject>(\n args: { returning: true } & Args<TData>,\n): Promise<JsonObject>\nexport async function saveVersion<TData extends JsonObject = JsonObject>(\n args: Omit<Args<TData>, 'returning'>,\n): Promise<JsonObject>\nexport async function saveVersion<TData extends JsonObject = JsonObject>({\n id,\n autosave,\n collection,\n docWithLocales,\n draft,\n global,\n operation,\n payload,\n req,\n returning,\n select,\n unpublish,\n}: Args<TData>): Promise<JsonObject | null> {\n assertNoValidationWrite(req)\n\n let result: JsonObject | undefined\n let createdNewVersion = false\n const now = new Date().toISOString()\n const versionData: {\n _status?: 'draft'\n updatedAt?: string\n } & TData = deepCopyObjectSimple(docWithLocales)\n\n if ((collection?.timestamps || global) && draft) {\n versionData.updatedAt = now\n }\n\n if (versionData._id) {\n delete versionData._id\n }\n\n // When localizeStatus is enabled, _status must be stored as a localized object.\n // Callers like restoreVersion set it as a plain string — expand it here.\n const entity = collection ?? global\n if (\n entity &&\n payload.config.localization &&\n hasLocalizeStatusEnabled(entity) &&\n typeof versionData._status === 'string'\n ) {\n const status = versionData._status\n ;(versionData as JsonObject)._status = Object.fromEntries(\n payload.config.localization.localeCodes.map((code) => [code, status]),\n )\n }\n\n try {\n if (unpublish || autosave) {\n result = await updateLatestVersion({\n id,\n collection,\n global,\n now,\n payload,\n req,\n shouldUpdate: autosave ? (v) => 'autosave' in v && v.autosave === true : undefined,\n versionData,\n })\n }\n\n if (!result) {\n createdNewVersion = true\n\n const createVersionArgs = {\n autosave: Boolean(autosave),\n collectionSlug: undefined as string | undefined,\n createdAt: operation === 'restoreVersion' ? versionData.createdAt : now,\n globalSlug: undefined as string | undefined,\n parent: collection ? id : undefined,\n req,\n returning,\n select: getQueryDraftsSelect({ select }),\n updatedAt: now,\n versionData,\n }\n\n if (collection) {\n createVersionArgs.collectionSlug = collection.slug\n result = await payload.db.createVersion(createVersionArgs as CreateVersionArgs)\n }\n\n if (global) {\n createVersionArgs.globalSlug = global.slug\n result = await payload.db.createGlobalVersion(createVersionArgs as CreateGlobalVersionArgs)\n }\n }\n } catch (err) {\n let errorMessage: string | undefined\n\n if (collection) {\n errorMessage = `There was an error while saving a version for the ${typeof collection.labels.singular === 'string' ? collection.labels.singular : collection.slug} with ID ${id}.`\n }\n if (global) {\n errorMessage = `There was an error while saving a version for the global ${typeof global.label === 'string' ? global.label : global.slug}.`\n }\n payload.logger.error({ err, msg: errorMessage })\n throw err\n }\n\n const max = getVersionsMax(collection || global!)\n\n if (createdNewVersion && max > 0) {\n await enforceMaxVersions({\n id,\n collection,\n global,\n max,\n payload,\n req,\n })\n }\n if (returning === false) {\n return null\n }\n\n let createdVersion = (result as any).version\n\n createdVersion = sanitizeInternalFields(createdVersion)\n createdVersion.id = (result as any).parent\n\n return createdVersion\n}\n"],"names":["deepCopyObjectSimple","assertNoValidationWrite","getVersionsMax","hasLocalizeStatusEnabled","sanitizeInternalFields","getQueryDraftsSelect","enforceMaxVersions","updateLatestVersion","saveVersion","id","autosave","collection","docWithLocales","draft","global","operation","payload","req","returning","select","unpublish","result","createdNewVersion","now","Date","toISOString","versionData","timestamps","updatedAt","_id","entity","config","localization","_status","status","Object","fromEntries","localeCodes","map","code","shouldUpdate","v","undefined","createVersionArgs","Boolean","collectionSlug","createdAt","globalSlug","parent","slug","db","createVersion","createGlobalVersion","err","errorMessage","labels","singular","label","logger","error","msg","max","createdVersion","version"],"mappings":"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"}
@@ -2,7 +2,6 @@ import type { SanitizedCollectionConfig } from '../collections/config/types.js';
2
2
  import type { SanitizedGlobalConfig } from '../globals/config/types.js';
3
3
  import type { Payload } from '../index.js';
4
4
  import type { JsonObject, PayloadRequest } from '../types/index.js';
5
- export declare const coalesceLatestVersionContextKey: unique symbol;
6
5
  type Args<TData extends JsonObject> = {
7
6
  collection?: SanitizedCollectionConfig;
8
7
  global?: SanitizedGlobalConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"updateLatestVersion.d.ts","sourceRoot":"","sources":["../../src/versions/updateLatestVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC/E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAInE,eAAO,MAAM,+BAA+B,eAAkC,CAAA;AAE9E,KAAK,IAAI,CAAC,KAAK,SAAS,UAAU,IAAI;IACpC,UAAU,CAAC,EAAE,yBAAyB,CAAA;IACtC,MAAM,CAAC,EAAE,qBAAqB,CAAA;IAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,YAAY,CAAC,EAAE,CAAC,aAAa,EAAE,UAAU,KAAK,OAAO,CAAA;IACrD,WAAW,EAAE,KAAK,CAAA;CACnB,CAAA;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,SAAS,UAAU,EAAE,EAClE,EAAE,EACF,UAAU,EACV,MAAM,EACN,GAAG,EACH,OAAO,EACP,GAAG,EACH,YAAyB,EACzB,WAAW,GACZ,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CA4H/C"}
1
+ {"version":3,"file":"updateLatestVersion.d.ts","sourceRoot":"","sources":["../../src/versions/updateLatestVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC/E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEnE,KAAK,IAAI,CAAC,KAAK,SAAS,UAAU,IAAI;IACpC,UAAU,CAAC,EAAE,yBAAyB,CAAA;IACtC,MAAM,CAAC,EAAE,qBAAqB,CAAA;IAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,YAAY,CAAC,EAAE,CAAC,aAAa,EAAE,UAAU,KAAK,OAAO,CAAA;IACrD,WAAW,EAAE,KAAK,CAAA;CACnB,CAAA;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,SAAS,UAAU,EAAE,EAClE,EAAE,EACF,UAAU,EACV,MAAM,EACN,GAAG,EACH,OAAO,EACP,GAAG,EACH,YAAyB,EACzB,WAAW,GACZ,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CA0G/C"}
@@ -1,5 +1,3 @@
1
- import { resolveBranchOwnVersions, resolveBranchVersionParent } from '../branching/versions.js';
2
- export const coalesceLatestVersionContextKey = Symbol('coalesceLatestVersion');
3
1
  /**
4
2
  * Finds the latest version and updates it in place if `shouldUpdate` returns true.
5
3
  * Used by both the unpublish and autosave paths in `saveVersion` to avoid creating
@@ -14,27 +12,16 @@ export const coalesceLatestVersionContextKey = Symbol('coalesceLatestVersion');
14
12
  req,
15
13
  sort: '-updatedAt'
16
14
  };
17
- // On a branch, the row to rewrite and the row to rewrite it *as* both differ from
18
- // main's. Resolved together because getting one without the other is worse than
19
- // getting neither: the unscoped find returns main's latest version as part of the
20
- // branch's ancestry (a branch reads main's history as its own past), so unpublishing
21
- // on a branch rewrote main's version row in place with the branch's content.
22
- const branched = collection ? await resolveBranchVersionParent({
23
- collectionSlug: collection.slug,
24
- parent: id,
25
- req,
26
- versionData: {}
27
- }) : undefined;
28
15
  if (collection) {
29
16
  ;
30
17
  ({ docs } = await payload.db.findVersions({
31
18
  ...findVersionArgs,
32
19
  collection: collection.slug,
33
- where: await resolveBranchOwnVersions({
34
- id: id,
35
- collectionSlug: collection.slug,
36
- req
37
- })
20
+ where: {
21
+ parent: {
22
+ equals: id
23
+ }
24
+ }
38
25
  }));
39
26
  } else {
40
27
  ;
@@ -53,15 +40,11 @@ export const coalesceLatestVersionContextKey = Symbol('coalesceLatestVersion');
53
40
  versionData: {
54
41
  createdAt: new Date(latestVersion.createdAt).toISOString(),
55
42
  latest: true,
56
- // The branch's chain hangs off its shadow row, and `_branch`/`_branchParent` are
57
- // columns on the row being replaced — omitting them would strip the row's branch
58
- // identity and hand it to main.
59
- parent: branched?.parent ?? id,
43
+ parent: id,
60
44
  updatedAt: now,
61
45
  version: {
62
46
  ...versionData
63
- },
64
- ...branched?.versionData ?? {}
47
+ }
65
48
  }
66
49
  };
67
50
  let versionUpdateFailed = undefined;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/versions/updateLatestVersion.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../globals/config/types.js'\nimport type { Payload } from '../index.js'\nimport type { JsonObject, PayloadRequest } from '../types/index.js'\n\nimport { resolveBranchOwnVersions, resolveBranchVersionParent } from '../branching/versions.js'\n\nexport const coalesceLatestVersionContextKey = Symbol('coalesceLatestVersion')\n\ntype Args<TData extends JsonObject> = {\n collection?: SanitizedCollectionConfig\n global?: SanitizedGlobalConfig\n id?: number | string\n now: string\n payload: Payload\n req?: PayloadRequest\n shouldUpdate?: (latestVersion: JsonObject) => boolean\n versionData: TData\n}\n\n/**\n * Finds the latest version and updates it in place if `shouldUpdate` returns true.\n * Used by both the unpublish and autosave paths in `saveVersion` to avoid creating\n * a redundant new version.\n *\n * Returns the updated version result, or `undefined` if no update was performed.\n */\nexport async function updateLatestVersion<TData extends JsonObject>({\n id,\n collection,\n global,\n now,\n payload,\n req,\n shouldUpdate = () => true,\n versionData,\n}: Args<TData>): Promise<JsonObject | undefined> {\n let docs\n const findVersionArgs = {\n limit: 1,\n pagination: false,\n req,\n sort: '-updatedAt',\n }\n\n // On a branch, the row to rewrite and the row to rewrite it *as* both differ from\n // main's. Resolved together because getting one without the other is worse than\n // getting neither: the unscoped find returns main's latest version as part of the\n // branch's ancestry (a branch reads main's history as its own past), so unpublishing\n // on a branch rewrote main's version row in place with the branch's content.\n const branched = collection\n ? await resolveBranchVersionParent({\n collectionSlug: collection.slug,\n parent: id!,\n req,\n versionData: {},\n })\n : undefined\n\n if (collection) {\n ;({ docs } = await payload.db.findVersions<TData>({\n ...findVersionArgs,\n collection: collection.slug,\n where: await resolveBranchOwnVersions({\n id: id!,\n collectionSlug: collection.slug,\n req,\n }),\n }))\n } else {\n ;({ docs } = await payload.db.findGlobalVersions<TData>({\n ...findVersionArgs,\n global: global!.slug,\n }))\n }\n\n const [latestVersion] = docs\n\n if (!latestVersion || !shouldUpdate(latestVersion)) {\n return undefined\n }\n\n const updateVersionArgs = {\n id: latestVersion.id,\n req,\n versionData: {\n createdAt: new Date(latestVersion.createdAt).toISOString(),\n latest: true,\n // The branch's chain hangs off its shadow row, and `_branch`/`_branchParent` are\n // columns on the row being replaced — omitting them would strip the row's branch\n // identity and hand it to main.\n parent: branched?.parent ?? id,\n updatedAt: now,\n version: {\n ...versionData,\n },\n ...(branched?.versionData ?? {}),\n },\n }\n\n let versionUpdateFailed: boolean | undefined = undefined\n\n try {\n if (collection) {\n return await payload.db.updateVersion<TData>({\n ...updateVersionArgs,\n collection: collection.slug,\n req,\n })\n }\n\n return await payload.db.updateGlobalVersion<TData>({\n ...updateVersionArgs,\n global: global!.slug,\n req,\n })\n } catch (err) {\n versionUpdateFailed = true\n payload.logger.warn({\n err,\n msg: `Failed to update latest version — checking if a concurrent write already succeeded.`,\n })\n }\n\n if (versionUpdateFailed) {\n // If a concurrent request already committed, return its result to avoid a duplicate version.\n // If updatedAt is unchanged, the update genuinely failed — fall back to createVersion.\n try {\n let freshDocs: JsonObject[]\n\n if (collection) {\n ;({ docs: freshDocs } = await payload.db.findVersions<TData>({\n collection: collection.slug,\n limit: 1,\n pagination: false,\n req,\n sort: '-updatedAt',\n where: { parent: { equals: id } },\n }))\n } else {\n ;({ docs: freshDocs } = await payload.db.findGlobalVersions<TData>({\n global: global!.slug,\n limit: 1,\n pagination: false,\n req,\n sort: '-updatedAt',\n }))\n }\n\n const [freshVersion] = freshDocs\n\n if (freshVersion && new Date(freshVersion.updatedAt) > new Date(latestVersion.updatedAt)) {\n return freshVersion\n }\n } catch {\n // If the follow-up query also fails, fall through to createVersion\n }\n }\n\n return undefined\n}\n"],"names":["resolveBranchOwnVersions","resolveBranchVersionParent","coalesceLatestVersionContextKey","Symbol","updateLatestVersion","id","collection","global","now","payload","req","shouldUpdate","versionData","docs","findVersionArgs","limit","pagination","sort","branched","collectionSlug","slug","parent","undefined","db","findVersions","where","findGlobalVersions","latestVersion","updateVersionArgs","createdAt","Date","toISOString","latest","updatedAt","version","versionUpdateFailed","updateVersion","updateGlobalVersion","err","logger","warn","msg","freshDocs","equals","freshVersion"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/versions/updateLatestVersion.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../globals/config/types.js'\nimport type { Payload } from '../index.js'\nimport type { JsonObject, PayloadRequest } from '../types/index.js'\n\ntype Args<TData extends JsonObject> = {\n collection?: SanitizedCollectionConfig\n global?: SanitizedGlobalConfig\n id?: number | string\n now: string\n payload: Payload\n req?: PayloadRequest\n shouldUpdate?: (latestVersion: JsonObject) => boolean\n versionData: TData\n}\n\n/**\n * Finds the latest version and updates it in place if `shouldUpdate` returns true.\n * Used by both the unpublish and autosave paths in `saveVersion` to avoid creating\n * a redundant new version.\n *\n * Returns the updated version result, or `undefined` if no update was performed.\n */\nexport async function updateLatestVersion<TData extends JsonObject>({\n id,\n collection,\n global,\n now,\n payload,\n req,\n shouldUpdate = () => true,\n versionData,\n}: Args<TData>): Promise<JsonObject | undefined> {\n let docs\n const findVersionArgs = {\n limit: 1,\n pagination: false,\n req,\n sort: '-updatedAt',\n }\n\n if (collection) {\n ;({ docs } = await payload.db.findVersions<TData>({\n ...findVersionArgs,\n collection: collection.slug,\n where: {\n parent: {\n equals: id,\n },\n },\n }))\n } else {\n ;({ docs } = await payload.db.findGlobalVersions<TData>({\n ...findVersionArgs,\n global: global!.slug,\n }))\n }\n\n const [latestVersion] = docs\n\n if (!latestVersion || !shouldUpdate(latestVersion)) {\n return undefined\n }\n\n const updateVersionArgs = {\n id: latestVersion.id,\n req,\n versionData: {\n createdAt: new Date(latestVersion.createdAt).toISOString(),\n latest: true,\n parent: id,\n updatedAt: now,\n version: {\n ...versionData,\n },\n },\n }\n\n let versionUpdateFailed: boolean | undefined = undefined\n\n try {\n if (collection) {\n return await payload.db.updateVersion<TData>({\n ...updateVersionArgs,\n collection: collection.slug,\n req,\n })\n }\n\n return await payload.db.updateGlobalVersion<TData>({\n ...updateVersionArgs,\n global: global!.slug,\n req,\n })\n } catch (err) {\n versionUpdateFailed = true\n payload.logger.warn({\n err,\n msg: `Failed to update latest version — checking if a concurrent write already succeeded.`,\n })\n }\n\n if (versionUpdateFailed) {\n // If a concurrent request already committed, return its result to avoid a duplicate version.\n // If updatedAt is unchanged, the update genuinely failed — fall back to createVersion.\n try {\n let freshDocs: JsonObject[]\n\n if (collection) {\n ;({ docs: freshDocs } = await payload.db.findVersions<TData>({\n collection: collection.slug,\n limit: 1,\n pagination: false,\n req,\n sort: '-updatedAt',\n where: { parent: { equals: id } },\n }))\n } else {\n ;({ docs: freshDocs } = await payload.db.findGlobalVersions<TData>({\n global: global!.slug,\n limit: 1,\n pagination: false,\n req,\n sort: '-updatedAt',\n }))\n }\n\n const [freshVersion] = freshDocs\n\n if (freshVersion && new Date(freshVersion.updatedAt) > new Date(latestVersion.updatedAt)) {\n return freshVersion\n }\n } catch {\n // If the follow-up query also fails, fall through to createVersion\n }\n }\n\n return undefined\n}\n"],"names":["updateLatestVersion","id","collection","global","now","payload","req","shouldUpdate","versionData","docs","findVersionArgs","limit","pagination","sort","db","findVersions","slug","where","parent","equals","findGlobalVersions","latestVersion","undefined","updateVersionArgs","createdAt","Date","toISOString","latest","updatedAt","version","versionUpdateFailed","updateVersion","updateGlobalVersion","err","logger","warn","msg","freshDocs","freshVersion"],"mappings":"AAgBA;;;;;;CAMC,GACD,OAAO,eAAeA,oBAA8C,EAClEC,EAAE,EACFC,UAAU,EACVC,MAAM,EACNC,GAAG,EACHC,OAAO,EACPC,GAAG,EACHC,eAAe,IAAM,IAAI,EACzBC,WAAW,EACC;IACZ,IAAIC;IACJ,MAAMC,kBAAkB;QACtBC,OAAO;QACPC,YAAY;QACZN;QACAO,MAAM;IACR;IAEA,IAAIX,YAAY;;QACZ,CAAA,EAAEO,IAAI,EAAE,GAAG,MAAMJ,QAAQS,EAAE,CAACC,YAAY,CAAQ;YAChD,GAAGL,eAAe;YAClBR,YAAYA,WAAWc,IAAI;YAC3BC,OAAO;gBACLC,QAAQ;oBACNC,QAAQlB;gBACV;YACF;QACF,EAAC;IACH,OAAO;;QACH,CAAA,EAAEQ,IAAI,EAAE,GAAG,MAAMJ,QAAQS,EAAE,CAACM,kBAAkB,CAAQ;YACtD,GAAGV,eAAe;YAClBP,QAAQA,OAAQa,IAAI;QACtB,EAAC;IACH;IAEA,MAAM,CAACK,cAAc,GAAGZ;IAExB,IAAI,CAACY,iBAAiB,CAACd,aAAac,gBAAgB;QAClD,OAAOC;IACT;IAEA,MAAMC,oBAAoB;QACxBtB,IAAIoB,cAAcpB,EAAE;QACpBK;QACAE,aAAa;YACXgB,WAAW,IAAIC,KAAKJ,cAAcG,SAAS,EAAEE,WAAW;YACxDC,QAAQ;YACRT,QAAQjB;YACR2B,WAAWxB;YACXyB,SAAS;gBACP,GAAGrB,WAAW;YAChB;QACF;IACF;IAEA,IAAIsB,sBAA2CR;IAE/C,IAAI;QACF,IAAIpB,YAAY;YACd,OAAO,MAAMG,QAAQS,EAAE,CAACiB,aAAa,CAAQ;gBAC3C,GAAGR,iBAAiB;gBACpBrB,YAAYA,WAAWc,IAAI;gBAC3BV;YACF;QACF;QAEA,OAAO,MAAMD,QAAQS,EAAE,CAACkB,mBAAmB,CAAQ;YACjD,GAAGT,iBAAiB;YACpBpB,QAAQA,OAAQa,IAAI;YACpBV;QACF;IACF,EAAE,OAAO2B,KAAK;QACZH,sBAAsB;QACtBzB,QAAQ6B,MAAM,CAACC,IAAI,CAAC;YAClBF;YACAG,KAAK,CAAC,mFAAmF,CAAC;QAC5F;IACF;IAEA,IAAIN,qBAAqB;QACvB,6FAA6F;QAC7F,uFAAuF;QACvF,IAAI;YACF,IAAIO;YAEJ,IAAInC,YAAY;;gBACZ,CAAA,EAAEO,MAAM4B,SAAS,EAAE,GAAG,MAAMhC,QAAQS,EAAE,CAACC,YAAY,CAAQ;oBAC3Db,YAAYA,WAAWc,IAAI;oBAC3BL,OAAO;oBACPC,YAAY;oBACZN;oBACAO,MAAM;oBACNI,OAAO;wBAAEC,QAAQ;4BAAEC,QAAQlB;wBAAG;oBAAE;gBAClC,EAAC;YACH,OAAO;;gBACH,CAAA,EAAEQ,MAAM4B,SAAS,EAAE,GAAG,MAAMhC,QAAQS,EAAE,CAACM,kBAAkB,CAAQ;oBACjEjB,QAAQA,OAAQa,IAAI;oBACpBL,OAAO;oBACPC,YAAY;oBACZN;oBACAO,MAAM;gBACR,EAAC;YACH;YAEA,MAAM,CAACyB,aAAa,GAAGD;YAEvB,IAAIC,gBAAgB,IAAIb,KAAKa,aAAaV,SAAS,IAAI,IAAIH,KAAKJ,cAAcO,SAAS,GAAG;gBACxF,OAAOU;YACT;QACF,EAAE,OAAM;QACN,mEAAmE;QACrE;IACF;IAEA,OAAOhB;AACT"}