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,472 +0,0 @@
1
- import { APIError } from '../errors/index.js';
2
- import { batchProcessing } from '../utilities/batchProcessing.js';
3
- import { extractRelationshipID } from '../utilities/extractRelationshipID.js';
4
- import { traverseForLocalizedFields } from '../utilities/traverseForLocalizedFields.js';
5
- import { branchDocIDField, branchField, MAIN_BRANCH } from './types.js';
6
- const effectiveOperationReadBatchSize = 400;
7
- /**
8
- * Resolves what each pending change will do to main.
9
- *
10
- * The shadow row alone cannot answer this. A fork copies main's row wholesale, so
11
- * a document forked from a published main row carries `_status: 'published'` even
12
- * when every edit made on the branch was a draft save — and draft saves never
13
- * touch the main row (§7), so the row still holds main's own pre-fork values.
14
- * Reading only the row therefore reports a `publish` of values main already has:
15
- * a merge that claims success and changes nothing.
16
- *
17
- * The branch's newest *version* is the missing half. `baseUpdatedAt`, recorded on
18
- * the registry row at fork time, separates the two cases the row cannot: the
19
- * shadow row's `updatedAt` still matching it means the branch never published,
20
- * because only a publish rewrites that row.
21
- */ export const resolveEffectiveOperations = async ({ branch, changes, payload, req })=>{
22
- const shadowsByChange = await readChangeShadows({
23
- branch,
24
- changes,
25
- payload,
26
- req
27
- });
28
- const resolved = [];
29
- for (const change of changes){
30
- const collectionSlug = change.collectionSlug;
31
- const docID = getBranchChangeDocumentID({
32
- change,
33
- collectionSlug
34
- });
35
- const shadow = shadowsByChange.get(changeKey({
36
- collectionSlug,
37
- docID
38
- })) ?? null;
39
- if (!shadow) {
40
- throw new APIError(`The ${collectionSlug} branch row for document ${String(docID)} is missing.`, 409);
41
- }
42
- resolved.push({
43
- change,
44
- collectionSlug,
45
- docID,
46
- shadow,
47
- writes: await resolveWrites({
48
- branch,
49
- change,
50
- collectionSlug,
51
- docID,
52
- payload,
53
- req,
54
- shadow
55
- })
56
- });
57
- }
58
- return resolved;
59
- };
60
- const changeKey = ({ collectionSlug, docID })=>`${collectionSlug}:${String(docID)}`;
61
- const readChangeShadows = async ({ branch, changes, payload, req })=>{
62
- const changesByCollection = new Map();
63
- const shadowsByChange = new Map();
64
- for (const change of changes){
65
- const collectionSlug = change.collectionSlug;
66
- const collectionChanges = changesByCollection.get(collectionSlug) ?? [];
67
- collectionChanges.push(change);
68
- changesByCollection.set(collectionSlug, collectionChanges);
69
- }
70
- for (const [collectionSlug, collectionChanges] of changesByCollection){
71
- await batchProcessing({
72
- batchSize: effectiveOperationReadBatchSize,
73
- input: collectionChanges,
74
- processBatch: async ({ batch })=>{
75
- const createdDocumentIDs = batch.filter(({ operation })=>operation === 'create').map((change)=>getBranchChangeDocumentID({
76
- change,
77
- collectionSlug
78
- }));
79
- const existingDocumentIDs = batch.filter(({ operation })=>operation !== 'create').map((change)=>getBranchChangeDocumentID({
80
- change,
81
- collectionSlug
82
- }));
83
- const identityQueries = [];
84
- if (createdDocumentIDs.length) {
85
- identityQueries.push({
86
- id: {
87
- in: createdDocumentIDs
88
- }
89
- });
90
- }
91
- if (existingDocumentIDs.length) {
92
- identityQueries.push({
93
- [branchDocIDField]: {
94
- in: existingDocumentIDs
95
- }
96
- });
97
- }
98
- const identityQuery = identityQueries.length === 1 ? identityQueries[0] : {
99
- or: identityQueries
100
- };
101
- const { docs } = await payload.db.find({
102
- branch: false,
103
- collection: collectionSlug,
104
- limit: batch.length,
105
- pagination: false,
106
- req,
107
- where: {
108
- and: [
109
- {
110
- [branchField]: {
111
- equals: branch
112
- }
113
- },
114
- identityQuery
115
- ]
116
- }
117
- });
118
- for (const shadow of docs){
119
- const docID = extractRelationshipID({
120
- relationship: shadow[branchDocIDField] ?? shadow.id
121
- });
122
- if (docID === undefined) {
123
- continue;
124
- }
125
- shadowsByChange.set(changeKey({
126
- collectionSlug,
127
- docID
128
- }), shadow);
129
- }
130
- }
131
- });
132
- }
133
- return shadowsByChange;
134
- };
135
- const getBranchChangeDocumentID = ({ change, collectionSlug })=>{
136
- const docID = extractRelationshipID({
137
- relationship: change.doc
138
- });
139
- if (docID === undefined) {
140
- throw new APIError(`The ${collectionSlug} branch change has no document ID.`, 409);
141
- }
142
- return docID;
143
- };
144
- const resolveWrites = async ({ branch, change, collectionSlug, docID, payload, req, shadow })=>{
145
- if (change.operation === 'delete') {
146
- return [
147
- {
148
- data: {},
149
- draft: false,
150
- operation: 'delete'
151
- }
152
- ];
153
- }
154
- if (!shadow) {
155
- return [];
156
- }
157
- const collectionConfig = payload.collections[collectionSlug]?.config;
158
- const hasDrafts = Boolean(collectionConfig?.versions?.drafts);
159
- // Without drafts there is no publish to distinguish: every row is live, so the
160
- // row itself is the whole change and ordinary update permission covers it.
161
- if (!hasDrafts) {
162
- return [
163
- ...getTrashAccessWrites({
164
- collectionSlug,
165
- payload,
166
- shadow
167
- }),
168
- {
169
- data: shadow,
170
- draft: false,
171
- operation: change.operation === 'create' ? 'create' : 'update'
172
- }
173
- ];
174
- }
175
- const rowIsPublished = isPublished(shadow._status);
176
- const newerDraft = await findNewerDraft({
177
- collectionSlug,
178
- payload,
179
- req,
180
- shadow
181
- });
182
- if (change.operation === 'create') {
183
- // Only the latest source state is applied. If a branch published and then
184
- // drafted, the draft creates an unpublished target without replaying the
185
- // earlier publication first.
186
- return [
187
- ...getTrashAccessWrites({
188
- collectionSlug,
189
- payload,
190
- shadow
191
- }),
192
- {
193
- data: newerDraft ?? shadow,
194
- draft: Boolean(newerDraft) || !rowIsPublished,
195
- operation: 'create'
196
- }
197
- ];
198
- }
199
- // Forked. Only a publish rewrites the shadow row, so a row still carrying the
200
- // `updatedAt` it was forked with means nothing was published on this branch —
201
- // whatever the branch changed lives entirely in its draft chain, and main's
202
- // published row must survive the merge untouched.
203
- //
204
- // The timestamp is a fast path, not the answer. A fork and the publish that follows it
205
- // can land in the same millisecond, and then the two are equal for a branch that really
206
- // did publish — which made the merge apply *nothing at all* while still reporting the
207
- // change as merged, and consume it. So an equal timestamp falls through to the question
208
- // it was standing in for: did this branch publish a version of its own?
209
- const publishedOnBranch = rowIsPublished && (!matchesForkPoint({
210
- baseUpdatedAt: change.baseUpdatedAt,
211
- shadow
212
- }) || await hasBranchPublishedVersion({
213
- branch,
214
- collectionSlug,
215
- payload,
216
- req,
217
- shadow
218
- }));
219
- const trashStateWrite = await resolveTrashStateWrite({
220
- collectionSlug,
221
- docID,
222
- payload,
223
- req,
224
- shadow
225
- });
226
- if (newerDraft) {
227
- return [
228
- ...trashStateWrite ? [
229
- {
230
- ...trashStateWrite,
231
- trashState: 'apply'
232
- }
233
- ] : getTrashAccessWrites({
234
- collectionSlug,
235
- payload,
236
- shadow
237
- }),
238
- {
239
- data: newerDraft,
240
- draft: true,
241
- operation: 'update'
242
- }
243
- ];
244
- }
245
- if (!publishedOnBranch) {
246
- // Nothing to apply when the branch has neither published nor drafted: the
247
- // fork itself is not a change to main.
248
- return [
249
- ...trashStateWrite ? [
250
- {
251
- ...trashStateWrite,
252
- trashState: 'apply'
253
- }
254
- ] : getTrashAccessWrites({
255
- collectionSlug,
256
- payload,
257
- shadow
258
- })
259
- ];
260
- }
261
- const writes = [
262
- ...trashStateWrite ? [
263
- {
264
- ...trashStateWrite,
265
- trashState: 'access'
266
- }
267
- ] : getTrashAccessWrites({
268
- collectionSlug,
269
- payload,
270
- shadow
271
- }),
272
- {
273
- data: shadow,
274
- draft: false,
275
- operation: 'publish'
276
- }
277
- ];
278
- return writes;
279
- };
280
- const getTrashAccessWrites = ({ collectionSlug, payload, shadow })=>{
281
- if (!payload.collections[collectionSlug]?.config.trash || shadow.deletedAt == null) {
282
- return [];
283
- }
284
- return [
285
- {
286
- data: shadow,
287
- draft: false,
288
- operation: 'delete',
289
- trashState: 'access'
290
- }
291
- ];
292
- };
293
- const resolveTrashStateWrite = async ({ collectionSlug, docID, payload, req, shadow })=>{
294
- if (!payload.collections[collectionSlug]?.config.trash) {
295
- return null;
296
- }
297
- const main = await payload.db.findOne({
298
- branch: false,
299
- collection: collectionSlug,
300
- req,
301
- where: {
302
- and: [
303
- {
304
- [branchField]: {
305
- equals: MAIN_BRANCH
306
- }
307
- },
308
- {
309
- id: {
310
- equals: docID
311
- }
312
- }
313
- ]
314
- }
315
- });
316
- if (!main || toTrashState(main.deletedAt) === toTrashState(shadow.deletedAt)) {
317
- return null;
318
- }
319
- return {
320
- data: shadow,
321
- draft: false,
322
- operation: shadow.deletedAt == null ? 'update' : 'delete'
323
- };
324
- };
325
- const toTrashState = (value)=>{
326
- if (value == null) {
327
- return null;
328
- }
329
- if (value instanceof Date) {
330
- return value.getTime();
331
- }
332
- if (typeof value !== 'number' && typeof value !== 'string') {
333
- return null;
334
- }
335
- const time = new Date(value).getTime();
336
- return Number.isNaN(time) ? value : time;
337
- };
338
- /**
339
- * Whether a row is published, whether or not its status is localized.
340
- *
341
- * With localization enabled, `_status` is stored per locale, so a raw row carries an
342
- * object rather than a string. Read as a scalar it is never `'published'` — which made
343
- * every publish on a branch look like a fork nobody had touched, so merging a localized
344
- * document applied **nothing** to main while consuming the change and reporting success.
345
- *
346
- * Published in any locale counts. The per-locale writes that follow carry each locale's own
347
- * status, so this only decides whether a publish is part of the merge at all.
348
- */ const isPublished = (status)=>{
349
- if (typeof status === 'object' && status !== null) {
350
- return Object.values(status).includes('published');
351
- }
352
- return status === 'published';
353
- };
354
- /**
355
- * Whether this branch published a version of its own for the document.
356
- *
357
- * A fork copies the row, not its version chain, so a branch that has only forked owns no
358
- * versions at all. One carrying a published version of its own has published on the
359
- * branch, whatever the row's timestamp says.
360
- */ const hasBranchPublishedVersion = async ({ branch, collectionSlug, payload, req, shadow })=>{
361
- if (!payload.collections[collectionSlug]?.config.versions) {
362
- return false;
363
- }
364
- const locales = payload.config.localization ? payload.config.localization.localeCodes : [
365
- undefined
366
- ];
367
- for (const locale of locales){
368
- const { docs } = await payload.db.findVersions({
369
- branch: false,
370
- collection: collectionSlug,
371
- limit: 1,
372
- locale,
373
- pagination: false,
374
- req,
375
- where: {
376
- and: [
377
- {
378
- parent: {
379
- equals: shadow.id
380
- }
381
- },
382
- {
383
- [branchField]: {
384
- equals: branch
385
- }
386
- },
387
- {
388
- 'version._status': {
389
- equals: 'published'
390
- }
391
- }
392
- ]
393
- }
394
- });
395
- if (docs.length > 0) {
396
- return true;
397
- }
398
- }
399
- return false;
400
- };
401
- /**
402
- * The branch's newest version when it sits above the branch's published row.
403
- *
404
- * Returns null when the newest version *is* the published state, so that a
405
- * publish is not applied twice — once as the row and again as its own version.
406
- */ const findNewerDraft = async ({ collectionSlug, payload, req, shadow })=>{
407
- const collectionConfig = payload.collections[collectionSlug].config;
408
- const localization = payload.config.localization;
409
- const hasLocalizedFields = traverseForLocalizedFields(collectionConfig.fields);
410
- const locale = localization ? hasLocalizedFields ? 'all' : req.locale && req.locale !== 'all' ? req.locale : localization.defaultLocale : undefined;
411
- const { docs } = await payload.db.findVersions({
412
- branch: false,
413
- collection: collectionSlug,
414
- limit: 1,
415
- locale,
416
- pagination: false,
417
- req,
418
- sort: '-updatedAt',
419
- where: {
420
- and: [
421
- {
422
- latest: {
423
- equals: true
424
- }
425
- },
426
- {
427
- parent: {
428
- equals: shadow.id
429
- }
430
- }
431
- ]
432
- }
433
- });
434
- const latest = docs?.[0];
435
- const version = latest?.version;
436
- if (!version || !isDraft({
437
- locale,
438
- status: version._status
439
- })) {
440
- return null;
441
- }
442
- return version;
443
- };
444
- const isDraft = ({ locale, status })=>{
445
- if (typeof status === 'object' && status !== null) {
446
- if (locale && locale !== 'all') {
447
- return status[locale] === 'draft';
448
- }
449
- return Object.values(status).includes('draft');
450
- }
451
- return status === 'draft';
452
- };
453
- /**
454
- * Whether the shadow row is still exactly as forked.
455
- *
456
- * `baseUpdatedAt` is stored as a date and may come back as a `Date` or a string
457
- * depending on the adapter, so both sides are normalised before comparing.
458
- */ const matchesForkPoint = ({ baseUpdatedAt, shadow })=>{
459
- if (!baseUpdatedAt || !shadow.updatedAt) {
460
- return false;
461
- }
462
- return toTime(baseUpdatedAt) === toTime(shadow.updatedAt);
463
- };
464
- const toTime = (value)=>{
465
- const time = new Date(value).getTime();
466
- return Number.isNaN(time) ? null : time;
467
- };
468
- /** The distinct operations a change needs permission for. */ export const operationsForChange = (resolved)=>[
469
- ...new Set(resolved.writes.map((write)=>write.operation))
470
- ];
471
-
472
- //# sourceMappingURL=effectiveOperations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/branching/effectiveOperations.ts"],"sourcesContent":["import type { Payload, PayloadRequest, Where } from '../types/index.js'\n\nimport { APIError } from '../errors/index.js'\nimport { batchProcessing } from '../utilities/batchProcessing.js'\nimport { extractRelationshipID } from '../utilities/extractRelationshipID.js'\nimport { traverseForLocalizedFields } from '../utilities/traverseForLocalizedFields.js'\nimport { branchDocIDField, branchField, MAIN_BRANCH } from './types.js'\n\nconst effectiveOperationReadBatchSize = 400\n\n/**\n * What a change will actually do to `main` when merged, which is not always what\n * it did on the branch. Editing a published document on a branch is a `publish`\n * against main and needs publish permission; saving a draft on that same\n * document is an ordinary `update` that must leave main's published row alone.\n */\nexport type EffectiveOperation = 'create' | 'delete' | 'publish' | 'update'\n\n/** One write against main for the selected source state or its Trash transition. */\nexport type EffectiveWrite = {\n /** The document state to write. */\n data: Record<string, unknown>\n /** Whether the write is a draft save rather than a publish. */\n draft: boolean\n operation: EffectiveOperation\n /**\n * A row-level Trash transition that accompanies versioned content.\n *\n * `apply` updates main. `access` only adds the required permission check\n * because a later published write already carries the same `deletedAt` state.\n */\n trashState?: 'access' | 'apply'\n}\n\nexport type ResolvedChange = {\n change: Record<string, any>\n collectionSlug: string\n docID: number | string\n shadow: null | Record<string, unknown>\n /** The latest source-state write and any separate Trash transition. */\n writes: EffectiveWrite[]\n}\n\n/**\n * Resolves what each pending change will do to main.\n *\n * The shadow row alone cannot answer this. A fork copies main's row wholesale, so\n * a document forked from a published main row carries `_status: 'published'` even\n * when every edit made on the branch was a draft save — and draft saves never\n * touch the main row (§7), so the row still holds main's own pre-fork values.\n * Reading only the row therefore reports a `publish` of values main already has:\n * a merge that claims success and changes nothing.\n *\n * The branch's newest *version* is the missing half. `baseUpdatedAt`, recorded on\n * the registry row at fork time, separates the two cases the row cannot: the\n * shadow row's `updatedAt` still matching it means the branch never published,\n * because only a publish rewrites that row.\n */\nexport const resolveEffectiveOperations = async ({\n branch,\n changes,\n payload,\n req,\n}: {\n branch: string\n changes: Record<string, any>[]\n payload: Payload\n req: PayloadRequest\n}): Promise<ResolvedChange[]> => {\n const shadowsByChange = await readChangeShadows({ branch, changes, payload, req })\n const resolved: ResolvedChange[] = []\n\n for (const change of changes) {\n const collectionSlug = change.collectionSlug as string\n const docID = getBranchChangeDocumentID({ change, collectionSlug })\n const shadow = shadowsByChange.get(changeKey({ collectionSlug, docID })) ?? null\n\n if (!shadow) {\n throw new APIError(\n `The ${collectionSlug} branch row for document ${String(docID)} is missing.`,\n 409,\n )\n }\n\n resolved.push({\n change,\n collectionSlug,\n docID,\n shadow,\n writes: await resolveWrites({ branch, change, collectionSlug, docID, payload, req, shadow }),\n })\n }\n\n return resolved\n}\n\nconst changeKey = ({\n collectionSlug,\n docID,\n}: {\n collectionSlug: string\n docID: number | string\n}): string => `${collectionSlug}:${String(docID)}`\n\nconst readChangeShadows = async ({\n branch,\n changes,\n payload,\n req,\n}: {\n branch: string\n changes: Record<string, any>[]\n payload: Payload\n req: PayloadRequest\n}): Promise<Map<string, Record<string, unknown>>> => {\n const changesByCollection = new Map<string, Record<string, any>[]>()\n const shadowsByChange = new Map<string, Record<string, unknown>>()\n\n for (const change of changes) {\n const collectionSlug = change.collectionSlug as string\n const collectionChanges = changesByCollection.get(collectionSlug) ?? []\n\n collectionChanges.push(change)\n changesByCollection.set(collectionSlug, collectionChanges)\n }\n\n for (const [collectionSlug, collectionChanges] of changesByCollection) {\n await batchProcessing({\n batchSize: effectiveOperationReadBatchSize,\n input: collectionChanges,\n processBatch: async ({ batch }) => {\n const createdDocumentIDs = batch\n .filter(({ operation }) => operation === 'create')\n .map((change) => getBranchChangeDocumentID({ change, collectionSlug }))\n const existingDocumentIDs = batch\n .filter(({ operation }) => operation !== 'create')\n .map((change) => getBranchChangeDocumentID({ change, collectionSlug }))\n const identityQueries: Where[] = []\n\n if (createdDocumentIDs.length) {\n identityQueries.push({ id: { in: createdDocumentIDs } })\n }\n\n if (existingDocumentIDs.length) {\n identityQueries.push({ [branchDocIDField]: { in: existingDocumentIDs } })\n }\n\n const identityQuery: Where =\n identityQueries.length === 1 ? identityQueries[0]! : { or: identityQueries }\n const { docs } = await payload.db.find({\n branch: false,\n collection: collectionSlug,\n limit: batch.length,\n pagination: false,\n req,\n where: {\n and: [{ [branchField]: { equals: branch } }, identityQuery],\n },\n })\n\n for (const shadow of docs as Record<string, unknown>[]) {\n const docID = extractRelationshipID({\n relationship: shadow[branchDocIDField] ?? shadow.id,\n })\n\n if (docID === undefined) {\n continue\n }\n\n shadowsByChange.set(changeKey({ collectionSlug, docID }), shadow)\n }\n },\n })\n }\n\n return shadowsByChange\n}\n\nconst getBranchChangeDocumentID = ({\n change,\n collectionSlug,\n}: {\n change: Record<string, any>\n collectionSlug: string\n}): number | string => {\n const docID = extractRelationshipID({ relationship: change.doc })\n\n if (docID === undefined) {\n throw new APIError(`The ${collectionSlug} branch change has no document ID.`, 409)\n }\n\n return docID\n}\n\nconst resolveWrites = async ({\n branch,\n change,\n collectionSlug,\n docID,\n payload,\n req,\n shadow,\n}: {\n branch: string\n change: Record<string, any>\n collectionSlug: string\n docID: number | string\n payload: Payload\n req: PayloadRequest\n shadow: null | Record<string, unknown>\n}): Promise<EffectiveWrite[]> => {\n if (change.operation === 'delete') {\n return [{ data: {}, draft: false, operation: 'delete' }]\n }\n\n if (!shadow) {\n return []\n }\n\n const collectionConfig = payload.collections[collectionSlug]?.config\n const hasDrafts = Boolean(collectionConfig?.versions?.drafts)\n\n // Without drafts there is no publish to distinguish: every row is live, so the\n // row itself is the whole change and ordinary update permission covers it.\n if (!hasDrafts) {\n return [\n ...getTrashAccessWrites({ collectionSlug, payload, shadow }),\n {\n data: shadow,\n draft: false,\n operation: change.operation === 'create' ? 'create' : 'update',\n },\n ]\n }\n\n const rowIsPublished = isPublished(shadow._status)\n const newerDraft = await findNewerDraft({ collectionSlug, payload, req, shadow })\n\n if (change.operation === 'create') {\n // Only the latest source state is applied. If a branch published and then\n // drafted, the draft creates an unpublished target without replaying the\n // earlier publication first.\n return [\n ...getTrashAccessWrites({ collectionSlug, payload, shadow }),\n {\n data: newerDraft ?? shadow,\n draft: Boolean(newerDraft) || !rowIsPublished,\n operation: 'create',\n },\n ]\n }\n\n // Forked. Only a publish rewrites the shadow row, so a row still carrying the\n // `updatedAt` it was forked with means nothing was published on this branch —\n // whatever the branch changed lives entirely in its draft chain, and main's\n // published row must survive the merge untouched.\n //\n // The timestamp is a fast path, not the answer. A fork and the publish that follows it\n // can land in the same millisecond, and then the two are equal for a branch that really\n // did publish — which made the merge apply *nothing at all* while still reporting the\n // change as merged, and consume it. So an equal timestamp falls through to the question\n // it was standing in for: did this branch publish a version of its own?\n const publishedOnBranch =\n rowIsPublished &&\n (!matchesForkPoint({ baseUpdatedAt: change.baseUpdatedAt, shadow }) ||\n (await hasBranchPublishedVersion({ branch, collectionSlug, payload, req, shadow })))\n const trashStateWrite = await resolveTrashStateWrite({\n collectionSlug,\n docID,\n payload,\n req,\n shadow,\n })\n\n if (newerDraft) {\n return [\n ...(trashStateWrite\n ? [{ ...trashStateWrite, trashState: 'apply' as const }]\n : getTrashAccessWrites({ collectionSlug, payload, shadow })),\n { data: newerDraft, draft: true, operation: 'update' },\n ]\n }\n\n if (!publishedOnBranch) {\n // Nothing to apply when the branch has neither published nor drafted: the\n // fork itself is not a change to main.\n return [\n ...(trashStateWrite\n ? [{ ...trashStateWrite, trashState: 'apply' as const }]\n : getTrashAccessWrites({ collectionSlug, payload, shadow })),\n ]\n }\n\n const writes: EffectiveWrite[] = [\n ...(trashStateWrite\n ? [{ ...trashStateWrite, trashState: 'access' as const }]\n : getTrashAccessWrites({ collectionSlug, payload, shadow })),\n { data: shadow, draft: false, operation: 'publish' },\n ]\n\n return writes\n}\n\nconst getTrashAccessWrites = ({\n collectionSlug,\n payload,\n shadow,\n}: {\n collectionSlug: string\n payload: Payload\n shadow: Record<string, unknown>\n}): EffectiveWrite[] => {\n if (!payload.collections[collectionSlug]?.config.trash || shadow.deletedAt == null) {\n return []\n }\n\n return [\n {\n data: shadow,\n draft: false,\n operation: 'delete',\n trashState: 'access',\n },\n ]\n}\n\nconst resolveTrashStateWrite = async ({\n collectionSlug,\n docID,\n payload,\n req,\n shadow,\n}: {\n collectionSlug: string\n docID: number | string\n payload: Payload\n req: PayloadRequest\n shadow: Record<string, unknown>\n}): Promise<EffectiveWrite | null> => {\n if (!payload.collections[collectionSlug]?.config.trash) {\n return null\n }\n\n const main = (await payload.db.findOne({\n branch: false,\n collection: collectionSlug,\n req,\n where: {\n and: [{ [branchField]: { equals: MAIN_BRANCH } }, { id: { equals: docID } }],\n },\n })) as null | Record<string, unknown>\n\n if (!main || toTrashState(main.deletedAt) === toTrashState(shadow.deletedAt)) {\n return null\n }\n\n return {\n data: shadow,\n draft: false,\n operation: shadow.deletedAt == null ? 'update' : 'delete',\n }\n}\n\nconst toTrashState = (value: unknown): null | number | string => {\n if (value == null) {\n return null\n }\n\n if (value instanceof Date) {\n return value.getTime()\n }\n\n if (typeof value !== 'number' && typeof value !== 'string') {\n return null\n }\n\n const time = new Date(value).getTime()\n\n return Number.isNaN(time) ? value : time\n}\n\n/**\n * Whether a row is published, whether or not its status is localized.\n *\n * With localization enabled, `_status` is stored per locale, so a raw row carries an\n * object rather than a string. Read as a scalar it is never `'published'` — which made\n * every publish on a branch look like a fork nobody had touched, so merging a localized\n * document applied **nothing** to main while consuming the change and reporting success.\n *\n * Published in any locale counts. The per-locale writes that follow carry each locale's own\n * status, so this only decides whether a publish is part of the merge at all.\n */\nconst isPublished = (status: unknown): boolean => {\n if (typeof status === 'object' && status !== null) {\n return Object.values(status as Record<string, unknown>).includes('published')\n }\n\n return status === 'published'\n}\n\n/**\n * Whether this branch published a version of its own for the document.\n *\n * A fork copies the row, not its version chain, so a branch that has only forked owns no\n * versions at all. One carrying a published version of its own has published on the\n * branch, whatever the row's timestamp says.\n */\nconst hasBranchPublishedVersion = async ({\n branch,\n collectionSlug,\n payload,\n req,\n shadow,\n}: {\n branch: string\n collectionSlug: string\n payload: Payload\n req: PayloadRequest\n shadow: Record<string, unknown>\n}): Promise<boolean> => {\n if (!payload.collections[collectionSlug]?.config.versions) {\n return false\n }\n\n const locales = payload.config.localization\n ? payload.config.localization.localeCodes\n : [undefined]\n\n for (const locale of locales) {\n const { docs } = await payload.db.findVersions({\n branch: false,\n collection: collectionSlug,\n limit: 1,\n locale,\n pagination: false,\n req,\n where: {\n and: [\n { parent: { equals: shadow.id } },\n { [branchField]: { equals: branch } },\n { 'version._status': { equals: 'published' } },\n ],\n },\n })\n\n if (docs.length > 0) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * The branch's newest version when it sits above the branch's published row.\n *\n * Returns null when the newest version *is* the published state, so that a\n * publish is not applied twice — once as the row and again as its own version.\n */\nconst findNewerDraft = async ({\n collectionSlug,\n payload,\n req,\n shadow,\n}: {\n collectionSlug: string\n payload: Payload\n req: PayloadRequest\n shadow: Record<string, unknown>\n}): Promise<null | Record<string, unknown>> => {\n const collectionConfig = payload.collections[collectionSlug]!.config\n const localization = payload.config.localization\n const hasLocalizedFields = traverseForLocalizedFields(collectionConfig.fields)\n const locale = localization\n ? hasLocalizedFields\n ? 'all'\n : req.locale && req.locale !== 'all'\n ? req.locale\n : localization.defaultLocale\n : undefined\n const { docs } = await payload.db.findVersions({\n branch: false,\n collection: collectionSlug,\n limit: 1,\n locale,\n pagination: false,\n req,\n sort: '-updatedAt',\n where: { and: [{ latest: { equals: true } }, { parent: { equals: shadow.id } }] },\n })\n\n const latest = docs?.[0] as { version?: Record<string, unknown> } | undefined\n const version = latest?.version\n\n if (!version || !isDraft({ locale, status: version._status })) {\n return null\n }\n\n return version\n}\n\nconst isDraft = ({ locale, status }: { locale?: string; status: unknown }): boolean => {\n if (typeof status === 'object' && status !== null) {\n if (locale && locale !== 'all') {\n return (status as Record<string, unknown>)[locale] === 'draft'\n }\n\n return Object.values(status as Record<string, unknown>).includes('draft')\n }\n\n return status === 'draft'\n}\n\n/**\n * Whether the shadow row is still exactly as forked.\n *\n * `baseUpdatedAt` is stored as a date and may come back as a `Date` or a string\n * depending on the adapter, so both sides are normalised before comparing.\n */\nconst matchesForkPoint = ({\n baseUpdatedAt,\n shadow,\n}: {\n baseUpdatedAt: unknown\n shadow: Record<string, unknown>\n}): boolean => {\n if (!baseUpdatedAt || !shadow.updatedAt) {\n return false\n }\n\n return toTime(baseUpdatedAt) === toTime(shadow.updatedAt)\n}\n\nconst toTime = (value: unknown): null | number => {\n const time = new Date(value as string).getTime()\n\n return Number.isNaN(time) ? null : time\n}\n\n/** The distinct operations a change needs permission for. */\nexport const operationsForChange = (resolved: ResolvedChange): EffectiveOperation[] => [\n ...new Set(resolved.writes.map((write) => write.operation)),\n]\n"],"names":["APIError","batchProcessing","extractRelationshipID","traverseForLocalizedFields","branchDocIDField","branchField","MAIN_BRANCH","effectiveOperationReadBatchSize","resolveEffectiveOperations","branch","changes","payload","req","shadowsByChange","readChangeShadows","resolved","change","collectionSlug","docID","getBranchChangeDocumentID","shadow","get","changeKey","String","push","writes","resolveWrites","changesByCollection","Map","collectionChanges","set","batchSize","input","processBatch","batch","createdDocumentIDs","filter","operation","map","existingDocumentIDs","identityQueries","length","id","in","identityQuery","or","docs","db","find","collection","limit","pagination","where","and","equals","relationship","undefined","doc","data","draft","collectionConfig","collections","config","hasDrafts","Boolean","versions","drafts","getTrashAccessWrites","rowIsPublished","isPublished","_status","newerDraft","findNewerDraft","publishedOnBranch","matchesForkPoint","baseUpdatedAt","hasBranchPublishedVersion","trashStateWrite","resolveTrashStateWrite","trashState","trash","deletedAt","main","findOne","toTrashState","value","Date","getTime","time","Number","isNaN","status","Object","values","includes","locales","localization","localeCodes","locale","findVersions","parent","hasLocalizedFields","fields","defaultLocale","sort","latest","version","isDraft","updatedAt","toTime","operationsForChange","Set","write"],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import type { PayloadHandler } from '../../config/types.js';
2
- /**
3
- * `POST /<branches>/:id/discard`
4
- *
5
- * Throws away pending changes, or the subset named in `changes`.
6
- *
7
- * No per-document preflight, unlike merge: discarding touches only the branch's own
8
- * rows and leaves `main` exactly as it was, so there is no production permission to
9
- * check on the collections those rows belong to. Reaching the branch still requires
10
- * being able to read it, a closed branch refuses outright, and — because discard
11
- * permanently destroys the branch's pending work, including documents that exist
12
- * only on this branch — it also requires discard access, not merely read access.
13
- */
14
- export declare const discardBranchHandler: PayloadHandler;
15
- //# sourceMappingURL=discard.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"discard.d.ts","sourceRoot":"","sources":["../../../src/branching/endpoints/discard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAS3D;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,EAAE,cAmClC,CAAA"}
@@ -1,55 +0,0 @@
1
- import { Forbidden, NotFound } from '../../errors/index.js';
2
- import { headersWithCors } from '../../utilities/headersWithCors.js';
3
- import { httpStatus } from '../../utilities/httpStatus.js';
4
- import { assertBranchActionAccess } from '../assertBranchActionAccess.js';
5
- import { discardBranchChanges } from '../discard.js';
6
- import { branchesCollectionSlug } from '../types.js';
7
- /**
8
- * `POST /<branches>/:id/discard`
9
- *
10
- * Throws away pending changes, or the subset named in `changes`.
11
- *
12
- * No per-document preflight, unlike merge: discarding touches only the branch's own
13
- * rows and leaves `main` exactly as it was, so there is no production permission to
14
- * check on the collections those rows belong to. Reaching the branch still requires
15
- * being able to read it, a closed branch refuses outright, and — because discard
16
- * permanently destroys the branch's pending work, including documents that exist
17
- * only on this branch — it also requires discard access, not merely read access.
18
- */ export const discardBranchHandler = async (req)=>{
19
- const { payload, routeParams } = req;
20
- const id = routeParams?.id;
21
- if (!req.user) {
22
- throw new Forbidden(req.t);
23
- }
24
- const branchDoc = await payload.findByID({
25
- id,
26
- collection: branchesCollectionSlug,
27
- disableErrors: true,
28
- overrideAccess: false,
29
- req
30
- });
31
- if (!branchDoc) {
32
- throw new NotFound(req.t);
33
- }
34
- await assertBranchActionAccess({
35
- action: 'discardBranch',
36
- branchDoc,
37
- req
38
- });
39
- const body = req.data ?? {};
40
- const result = await discardBranchChanges(payload, {
41
- branch: branchDoc.slug,
42
- changes: body.changes,
43
- overrideAccess: true,
44
- req
45
- });
46
- return Response.json(result, {
47
- headers: headersWithCors({
48
- headers: new Headers(),
49
- req
50
- }),
51
- status: httpStatus.OK
52
- });
53
- };
54
-
55
- //# sourceMappingURL=discard.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/branching/endpoints/discard.ts"],"sourcesContent":["import type { PayloadHandler } from '../../config/types.js'\n\nimport { Forbidden, NotFound } from '../../errors/index.js'\nimport { headersWithCors } from '../../utilities/headersWithCors.js'\nimport { httpStatus } from '../../utilities/httpStatus.js'\nimport { assertBranchActionAccess } from '../assertBranchActionAccess.js'\nimport { discardBranchChanges } from '../discard.js'\nimport { branchesCollectionSlug } from '../types.js'\n\n/**\n * `POST /<branches>/:id/discard`\n *\n * Throws away pending changes, or the subset named in `changes`.\n *\n * No per-document preflight, unlike merge: discarding touches only the branch's own\n * rows and leaves `main` exactly as it was, so there is no production permission to\n * check on the collections those rows belong to. Reaching the branch still requires\n * being able to read it, a closed branch refuses outright, and — because discard\n * permanently destroys the branch's pending work, including documents that exist\n * only on this branch — it also requires discard access, not merely read access.\n */\nexport const discardBranchHandler: PayloadHandler = async (req) => {\n const { payload, routeParams } = req\n const id = routeParams?.id as number | string\n\n if (!req.user) {\n throw new Forbidden(req.t)\n }\n\n const branchDoc = await payload.findByID({\n id,\n collection: branchesCollectionSlug,\n disableErrors: true,\n overrideAccess: false,\n req,\n })\n\n if (!branchDoc) {\n throw new NotFound(req.t)\n }\n\n await assertBranchActionAccess({ action: 'discardBranch', branchDoc, req })\n\n const body = (req.data ?? {}) as { changes?: (number | string)[] }\n\n const result = await discardBranchChanges(payload, {\n branch: branchDoc.slug as string,\n changes: body.changes,\n overrideAccess: true,\n req,\n })\n\n return Response.json(result, {\n headers: headersWithCors({ headers: new Headers(), req }),\n status: httpStatus.OK,\n })\n}\n"],"names":["Forbidden","NotFound","headersWithCors","httpStatus","assertBranchActionAccess","discardBranchChanges","branchesCollectionSlug","discardBranchHandler","req","payload","routeParams","id","user","t","branchDoc","findByID","collection","disableErrors","overrideAccess","action","body","data","result","branch","slug","changes","Response","json","headers","Headers","status","OK"],"mappings":"AAEA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,wBAAuB;AAC3D,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,UAAU,QAAQ,gCAA+B;AAC1D,SAASC,wBAAwB,QAAQ,iCAAgC;AACzE,SAASC,oBAAoB,QAAQ,gBAAe;AACpD,SAASC,sBAAsB,QAAQ,cAAa;AAEpD;;;;;;;;;;;CAWC,GACD,OAAO,MAAMC,uBAAuC,OAAOC;IACzD,MAAM,EAAEC,OAAO,EAAEC,WAAW,EAAE,GAAGF;IACjC,MAAMG,KAAKD,aAAaC;IAExB,IAAI,CAACH,IAAII,IAAI,EAAE;QACb,MAAM,IAAIZ,UAAUQ,IAAIK,CAAC;IAC3B;IAEA,MAAMC,YAAY,MAAML,QAAQM,QAAQ,CAAC;QACvCJ;QACAK,YAAYV;QACZW,eAAe;QACfC,gBAAgB;QAChBV;IACF;IAEA,IAAI,CAACM,WAAW;QACd,MAAM,IAAIb,SAASO,IAAIK,CAAC;IAC1B;IAEA,MAAMT,yBAAyB;QAAEe,QAAQ;QAAiBL;QAAWN;IAAI;IAEzE,MAAMY,OAAQZ,IAAIa,IAAI,IAAI,CAAC;IAE3B,MAAMC,SAAS,MAAMjB,qBAAqBI,SAAS;QACjDc,QAAQT,UAAUU,IAAI;QACtBC,SAASL,KAAKK,OAAO;QACrBP,gBAAgB;QAChBV;IACF;IAEA,OAAOkB,SAASC,IAAI,CAACL,QAAQ;QAC3BM,SAAS1B,gBAAgB;YAAE0B,SAAS,IAAIC;YAAWrB;QAAI;QACvDsB,QAAQ3B,WAAW4B,EAAE;IACvB;AACF,EAAC"}
@@ -1,34 +0,0 @@
1
- import type { PayloadHandler } from '../../config/types.js';
2
- import type { MergeResult } from '../merge.js';
3
- import type { MergeProgress } from '../types.js';
4
- /**
5
- * One line of the streamed merge response.
6
- *
7
- * NDJSON rather than server-sent events: the client is a `fetch` reading a
8
- * `ReadableStream`, not an `EventSource`, so the framing SSE adds buys nothing —
9
- * and one JSON object per line is trivially parseable from a reader loop.
10
- */
11
- export type MergeStreamEvent = {
12
- message: string;
13
- type: 'error';
14
- } | {
15
- result: MergeResult;
16
- type: 'complete';
17
- } | ({
18
- type: 'progress';
19
- } & MergeProgress);
20
- /**
21
- * `POST /<branches>/:id/merge`
22
- *
23
- * Runs with `overrideAccess: false` and the authenticated user, so the
24
- * per-document preflight applies. This is the boundary at which branching's
25
- * access model is actually enforced. The Local API uses the same secure default;
26
- * trusted server-side callers must opt in to bypassing it.
27
- *
28
- * `stream: true` switches the response to NDJSON progress events. A merge walks
29
- * an arbitrary number of documents one at a time, so the admin panel needs to
30
- * report where it is; streaming the loop it already runs avoids inventing a job
31
- * and a polling endpoint to carry that state.
32
- */
33
- export declare const mergeBranchHandler: PayloadHandler;
34
- //# sourceMappingURL=merge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../src/branching/endpoints/merge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAShD;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAClC;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GACzC,CAAC;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG,aAAa,CAAC,CAAA;AAE1C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kBAAkB,EAAE,cA4DhC,CAAA"}