payload 3.0.0-beta.120 → 3.0.0-beta.121

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 (287) hide show
  1. package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
  2. package/dist/auth/operations/registerFirstUser.js.map +1 -1
  3. package/dist/auth/strategies/local/register.d.ts +3 -2
  4. package/dist/auth/strategies/local/register.d.ts.map +1 -1
  5. package/dist/auth/strategies/local/register.js +3 -2
  6. package/dist/auth/strategies/local/register.js.map +1 -1
  7. package/dist/bin/generateTypes.d.ts.map +1 -1
  8. package/dist/bin/generateTypes.js +4 -0
  9. package/dist/bin/generateTypes.js.map +1 -1
  10. package/dist/bin/index.d.ts +1 -1
  11. package/dist/bin/index.d.ts.map +1 -1
  12. package/dist/bin/index.js +25 -0
  13. package/dist/bin/index.js.map +1 -1
  14. package/dist/collections/config/types.d.ts +7 -5
  15. package/dist/collections/config/types.d.ts.map +1 -1
  16. package/dist/collections/config/types.js.map +1 -1
  17. package/dist/collections/dataloader.d.ts +3 -2
  18. package/dist/collections/dataloader.d.ts.map +1 -1
  19. package/dist/collections/dataloader.js +9 -5
  20. package/dist/collections/dataloader.js.map +1 -1
  21. package/dist/collections/operations/create.d.ts +4 -3
  22. package/dist/collections/operations/create.d.ts.map +1 -1
  23. package/dist/collections/operations/create.js +6 -3
  24. package/dist/collections/operations/create.js.map +1 -1
  25. package/dist/collections/operations/delete.d.ts +4 -9
  26. package/dist/collections/operations/delete.d.ts.map +1 -1
  27. package/dist/collections/operations/delete.js +3 -1
  28. package/dist/collections/operations/delete.js.map +1 -1
  29. package/dist/collections/operations/deleteByID.d.ts +4 -3
  30. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  31. package/dist/collections/operations/deleteByID.js +3 -1
  32. package/dist/collections/operations/deleteByID.js.map +1 -1
  33. package/dist/collections/operations/duplicate.d.ts +4 -3
  34. package/dist/collections/operations/duplicate.d.ts.map +1 -1
  35. package/dist/collections/operations/duplicate.js +7 -3
  36. package/dist/collections/operations/duplicate.js.map +1 -1
  37. package/dist/collections/operations/find.d.ts +4 -3
  38. package/dist/collections/operations/find.d.ts.map +1 -1
  39. package/dist/collections/operations/find.js +7 -1
  40. package/dist/collections/operations/find.js.map +1 -1
  41. package/dist/collections/operations/findByID.d.ts +4 -3
  42. package/dist/collections/operations/findByID.d.ts.map +1 -1
  43. package/dist/collections/operations/findByID.js +5 -2
  44. package/dist/collections/operations/findByID.js.map +1 -1
  45. package/dist/collections/operations/findVersionByID.d.ts +2 -1
  46. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  47. package/dist/collections/operations/findVersionByID.js +3 -1
  48. package/dist/collections/operations/findVersionByID.js.map +1 -1
  49. package/dist/collections/operations/findVersions.d.ts +2 -1
  50. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  51. package/dist/collections/operations/findVersions.js +3 -1
  52. package/dist/collections/operations/findVersions.js.map +1 -1
  53. package/dist/collections/operations/local/create.d.ts +5 -4
  54. package/dist/collections/operations/local/create.d.ts.map +1 -1
  55. package/dist/collections/operations/local/create.js +2 -1
  56. package/dist/collections/operations/local/create.js.map +1 -1
  57. package/dist/collections/operations/local/delete.d.ts +12 -11
  58. package/dist/collections/operations/local/delete.d.ts.map +1 -1
  59. package/dist/collections/operations/local/delete.js +2 -1
  60. package/dist/collections/operations/local/delete.js.map +1 -1
  61. package/dist/collections/operations/local/duplicate.d.ts +5 -4
  62. package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
  63. package/dist/collections/operations/local/duplicate.js +2 -1
  64. package/dist/collections/operations/local/duplicate.js.map +1 -1
  65. package/dist/collections/operations/local/find.d.ts +5 -4
  66. package/dist/collections/operations/local/find.d.ts.map +1 -1
  67. package/dist/collections/operations/local/find.js +3 -1
  68. package/dist/collections/operations/local/find.js.map +1 -1
  69. package/dist/collections/operations/local/findByID.d.ts +7 -6
  70. package/dist/collections/operations/local/findByID.d.ts.map +1 -1
  71. package/dist/collections/operations/local/findByID.js +3 -2
  72. package/dist/collections/operations/local/findByID.js.map +1 -1
  73. package/dist/collections/operations/local/findVersionByID.d.ts +2 -1
  74. package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
  75. package/dist/collections/operations/local/findVersionByID.js +2 -1
  76. package/dist/collections/operations/local/findVersionByID.js.map +1 -1
  77. package/dist/collections/operations/local/findVersions.d.ts +2 -1
  78. package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
  79. package/dist/collections/operations/local/findVersions.js +2 -1
  80. package/dist/collections/operations/local/findVersions.js.map +1 -1
  81. package/dist/collections/operations/local/index.d.ts.map +1 -1
  82. package/dist/collections/operations/local/index.js +1 -1
  83. package/dist/collections/operations/local/index.js.map +1 -1
  84. package/dist/collections/operations/local/restoreVersion.d.ts +2 -1
  85. package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
  86. package/dist/collections/operations/local/restoreVersion.js +2 -1
  87. package/dist/collections/operations/local/restoreVersion.js.map +1 -1
  88. package/dist/collections/operations/local/update.d.ts +12 -11
  89. package/dist/collections/operations/local/update.d.ts.map +1 -1
  90. package/dist/collections/operations/local/update.js +2 -1
  91. package/dist/collections/operations/local/update.js.map +1 -1
  92. package/dist/collections/operations/restoreVersion.d.ts +2 -1
  93. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  94. package/dist/collections/operations/restoreVersion.js +4 -2
  95. package/dist/collections/operations/restoreVersion.js.map +1 -1
  96. package/dist/collections/operations/update.d.ts +4 -3
  97. package/dist/collections/operations/update.d.ts.map +1 -1
  98. package/dist/collections/operations/update.js +6 -3
  99. package/dist/collections/operations/update.js.map +1 -1
  100. package/dist/collections/operations/updateByID.d.ts +4 -3
  101. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  102. package/dist/collections/operations/updateByID.js +5 -2
  103. package/dist/collections/operations/updateByID.js.map +1 -1
  104. package/dist/collections/operations/utils.d.ts +8 -8
  105. package/dist/collections/operations/utils.d.ts.map +1 -1
  106. package/dist/collections/operations/utils.js.map +1 -1
  107. package/dist/config/client.d.ts +2 -2
  108. package/dist/config/client.d.ts.map +1 -1
  109. package/dist/config/client.js +1 -0
  110. package/dist/config/client.js.map +1 -1
  111. package/dist/config/defaults.d.ts.map +1 -1
  112. package/dist/config/defaults.js +8 -0
  113. package/dist/config/defaults.js.map +1 -1
  114. package/dist/config/sanitize.d.ts.map +1 -1
  115. package/dist/config/sanitize.js +21 -0
  116. package/dist/config/sanitize.js.map +1 -1
  117. package/dist/config/types.d.ts +6 -1
  118. package/dist/config/types.d.ts.map +1 -1
  119. package/dist/config/types.js.map +1 -1
  120. package/dist/database/types.d.ts +15 -1
  121. package/dist/database/types.d.ts.map +1 -1
  122. package/dist/database/types.js.map +1 -1
  123. package/dist/exports/shared.d.ts +1 -0
  124. package/dist/exports/shared.d.ts.map +1 -1
  125. package/dist/exports/shared.js +1 -0
  126. package/dist/exports/shared.js.map +1 -1
  127. package/dist/fields/config/types.d.ts +2 -0
  128. package/dist/fields/config/types.d.ts.map +1 -1
  129. package/dist/fields/config/types.js.map +1 -1
  130. package/dist/fields/hooks/afterRead/index.d.ts +2 -1
  131. package/dist/fields/hooks/afterRead/index.d.ts.map +1 -1
  132. package/dist/fields/hooks/afterRead/index.js +4 -1
  133. package/dist/fields/hooks/afterRead/index.js.map +1 -1
  134. package/dist/fields/hooks/afterRead/promise.d.ts +4 -2
  135. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
  136. package/dist/fields/hooks/afterRead/promise.js +59 -1
  137. package/dist/fields/hooks/afterRead/promise.js.map +1 -1
  138. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts.map +1 -1
  139. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js +1 -0
  140. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js.map +1 -1
  141. package/dist/fields/hooks/afterRead/traverseFields.d.ts +4 -2
  142. package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
  143. package/dist/fields/hooks/afterRead/traverseFields.js +3 -1
  144. package/dist/fields/hooks/afterRead/traverseFields.js.map +1 -1
  145. package/dist/globals/config/types.d.ts +2 -1
  146. package/dist/globals/config/types.d.ts.map +1 -1
  147. package/dist/globals/config/types.js.map +1 -1
  148. package/dist/globals/operations/findOne.d.ts +2 -1
  149. package/dist/globals/operations/findOne.d.ts.map +1 -1
  150. package/dist/globals/operations/findOne.js +15 -2
  151. package/dist/globals/operations/findOne.js.map +1 -1
  152. package/dist/globals/operations/findVersionByID.d.ts +2 -1
  153. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  154. package/dist/globals/operations/findVersionByID.js +3 -1
  155. package/dist/globals/operations/findVersionByID.js.map +1 -1
  156. package/dist/globals/operations/findVersions.d.ts +2 -1
  157. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  158. package/dist/globals/operations/findVersions.js +7 -3
  159. package/dist/globals/operations/findVersions.js.map +1 -1
  160. package/dist/globals/operations/local/findOne.d.ts +5 -4
  161. package/dist/globals/operations/local/findOne.d.ts.map +1 -1
  162. package/dist/globals/operations/local/findOne.js +2 -1
  163. package/dist/globals/operations/local/findOne.js.map +1 -1
  164. package/dist/globals/operations/local/findVersionByID.d.ts +2 -1
  165. package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
  166. package/dist/globals/operations/local/findVersionByID.js +2 -1
  167. package/dist/globals/operations/local/findVersionByID.js.map +1 -1
  168. package/dist/globals/operations/local/findVersions.d.ts +2 -1
  169. package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
  170. package/dist/globals/operations/local/findVersions.js +3 -2
  171. package/dist/globals/operations/local/findVersions.js.map +1 -1
  172. package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
  173. package/dist/globals/operations/local/restoreVersion.js +1 -1
  174. package/dist/globals/operations/local/restoreVersion.js.map +1 -1
  175. package/dist/globals/operations/local/update.d.ts +5 -4
  176. package/dist/globals/operations/local/update.d.ts.map +1 -1
  177. package/dist/globals/operations/local/update.js +2 -1
  178. package/dist/globals/operations/local/update.js.map +1 -1
  179. package/dist/globals/operations/update.d.ts +4 -3
  180. package/dist/globals/operations/update.d.ts.map +1 -1
  181. package/dist/globals/operations/update.js +15 -2
  182. package/dist/globals/operations/update.js.map +1 -1
  183. package/dist/index.d.ts +61 -14
  184. package/dist/index.d.ts.map +1 -1
  185. package/dist/index.js +2 -0
  186. package/dist/index.js.map +1 -1
  187. package/dist/queues/config/generateJobsJSONSchemas.d.ts +18 -0
  188. package/dist/queues/config/generateJobsJSONSchemas.d.ts.map +1 -0
  189. package/dist/queues/config/generateJobsJSONSchemas.js +125 -0
  190. package/dist/queues/config/generateJobsJSONSchemas.js.map +1 -0
  191. package/dist/queues/config/jobsCollection.d.ts +4 -0
  192. package/dist/queues/config/jobsCollection.d.ts.map +1 -0
  193. package/dist/queues/config/jobsCollection.js +211 -0
  194. package/dist/queues/config/jobsCollection.js.map +1 -0
  195. package/dist/queues/config/types/index.d.ts +45 -0
  196. package/dist/queues/config/types/index.d.ts.map +1 -0
  197. package/dist/queues/config/types/index.js +3 -0
  198. package/dist/queues/config/types/index.js.map +1 -0
  199. package/dist/queues/config/types/taskTypes.d.ts +134 -0
  200. package/dist/queues/config/types/taskTypes.d.ts.map +1 -0
  201. package/dist/queues/config/types/taskTypes.js +3 -0
  202. package/dist/queues/config/types/taskTypes.js.map +1 -0
  203. package/dist/queues/config/types/workflowJSONTypes.d.ts +29 -0
  204. package/dist/queues/config/types/workflowJSONTypes.d.ts.map +1 -0
  205. package/dist/queues/config/types/workflowJSONTypes.js +3 -0
  206. package/dist/queues/config/types/workflowJSONTypes.js.map +1 -0
  207. package/dist/queues/config/types/workflowTypes.d.ts +98 -0
  208. package/dist/queues/config/types/workflowTypes.d.ts.map +1 -0
  209. package/dist/queues/config/types/workflowTypes.js +3 -0
  210. package/dist/queues/config/types/workflowTypes.js.map +1 -0
  211. package/dist/queues/localAPI.d.ts +23 -0
  212. package/dist/queues/localAPI.d.ts.map +1 -0
  213. package/dist/queues/localAPI.js +28 -0
  214. package/dist/queues/localAPI.js.map +1 -0
  215. package/dist/queues/operations/runJobs/index.d.ts +21 -0
  216. package/dist/queues/operations/runJobs/index.d.ts.map +1 -0
  217. package/dist/queues/operations/runJobs/index.js +180 -0
  218. package/dist/queues/operations/runJobs/index.js.map +1 -0
  219. package/dist/queues/operations/runJobs/runJSONJob/index.d.ts +18 -0
  220. package/dist/queues/operations/runJobs/runJSONJob/index.d.ts.map +1 -0
  221. package/dist/queues/operations/runJobs/runJSONJob/index.js +125 -0
  222. package/dist/queues/operations/runJobs/runJSONJob/index.js.map +1 -0
  223. package/dist/queues/operations/runJobs/runJob/calculateBackoffWaitUntil.d.ts +6 -0
  224. package/dist/queues/operations/runJobs/runJob/calculateBackoffWaitUntil.d.ts.map +1 -0
  225. package/dist/queues/operations/runJobs/runJob/calculateBackoffWaitUntil.js +26 -0
  226. package/dist/queues/operations/runJobs/runJob/calculateBackoffWaitUntil.js.map +1 -0
  227. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.d.ts +26 -0
  228. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.d.ts.map +1 -0
  229. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js +204 -0
  230. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js.map +1 -0
  231. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.d.ts +5 -0
  232. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.d.ts.map +1 -0
  233. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js +18 -0
  234. package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js.map +1 -0
  235. package/dist/queues/operations/runJobs/runJob/handleWorkflowError.d.ts +17 -0
  236. package/dist/queues/operations/runJobs/runJob/handleWorkflowError.d.ts.map +1 -0
  237. package/dist/queues/operations/runJobs/runJob/handleWorkflowError.js +43 -0
  238. package/dist/queues/operations/runJobs/runJob/handleWorkflowError.js.map +1 -0
  239. package/dist/queues/operations/runJobs/runJob/importHandlerPath.d.ts +2 -0
  240. package/dist/queues/operations/runJobs/runJob/importHandlerPath.d.ts.map +1 -0
  241. package/dist/queues/operations/runJobs/runJob/importHandlerPath.js +21 -0
  242. package/dist/queues/operations/runJobs/runJob/importHandlerPath.js.map +1 -0
  243. package/dist/queues/operations/runJobs/runJob/index.d.ts +17 -0
  244. package/dist/queues/operations/runJobs/runJob/index.d.ts.map +1 -0
  245. package/dist/queues/operations/runJobs/runJob/index.js +48 -0
  246. package/dist/queues/operations/runJobs/runJob/index.js.map +1 -0
  247. package/dist/queues/restEndpointRun.d.ts +3 -0
  248. package/dist/queues/restEndpointRun.d.ts.map +1 -0
  249. package/dist/queues/restEndpointRun.js +66 -0
  250. package/dist/queues/restEndpointRun.js.map +1 -0
  251. package/dist/queues/utilities/getJobTaskStatus.d.ts +9 -0
  252. package/dist/queues/utilities/getJobTaskStatus.d.ts.map +1 -0
  253. package/dist/queues/utilities/getJobTaskStatus.js +29 -0
  254. package/dist/queues/utilities/getJobTaskStatus.js.map +1 -0
  255. package/dist/types/index.d.ts +20 -2
  256. package/dist/types/index.d.ts.map +1 -1
  257. package/dist/types/index.js.map +1 -1
  258. package/dist/utilities/addSelectGenericsToGeneratedTyoes.spec.js +562 -0
  259. package/dist/utilities/addSelectGenericsToGeneratedTyoes.spec.js.map +1 -0
  260. package/dist/utilities/addSelectGenericsToGeneretedTypes.d.ts +4 -0
  261. package/dist/utilities/addSelectGenericsToGeneretedTypes.d.ts.map +1 -0
  262. package/dist/utilities/addSelectGenericsToGeneretedTypes.js +41 -0
  263. package/dist/utilities/addSelectGenericsToGeneretedTypes.js.map +1 -0
  264. package/dist/utilities/configToJSONSchema.d.ts +6 -1
  265. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  266. package/dist/utilities/configToJSONSchema.js +171 -15
  267. package/dist/utilities/configToJSONSchema.js.map +1 -1
  268. package/dist/utilities/getSelectMode.d.ts +3 -0
  269. package/dist/utilities/getSelectMode.d.ts.map +1 -0
  270. package/dist/utilities/getSelectMode.js +14 -0
  271. package/dist/utilities/getSelectMode.js.map +1 -0
  272. package/dist/utilities/traverseFields.d.ts.map +1 -1
  273. package/dist/utilities/traverseFields.js +51 -8
  274. package/dist/utilities/traverseFields.js.map +1 -1
  275. package/dist/versions/drafts/getQueryDraftsSelect.d.ts +5 -0
  276. package/dist/versions/drafts/getQueryDraftsSelect.d.ts.map +1 -0
  277. package/dist/versions/drafts/getQueryDraftsSelect.js +18 -0
  278. package/dist/versions/drafts/getQueryDraftsSelect.js.map +1 -0
  279. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts +3 -2
  280. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
  281. package/dist/versions/drafts/replaceWithDraftIfAvailable.js +11 -7
  282. package/dist/versions/drafts/replaceWithDraftIfAvailable.js.map +1 -1
  283. package/dist/versions/saveVersion.d.ts +3 -2
  284. package/dist/versions/saveVersion.d.ts.map +1 -1
  285. package/dist/versions/saveVersion.js +5 -1
  286. package/dist/versions/saveVersion.js.map +1 -1
  287. package/package.json +3 -2
@@ -40,7 +40,7 @@ export const createOperation = async (incomingArgs)=>{
40
40
  req: args.req
41
41
  }) || args;
42
42
  }, Promise.resolve());
43
- const { autosave = false, collection: { config: collectionConfig }, collection, depth, disableVerificationEmail, draft = false, overrideAccess, overwriteExistingFiles = false, req: { fallbackLocale, locale, payload, payload: { config, email } }, req, showHiddenFields } = args;
43
+ const { autosave = false, collection: { config: collectionConfig }, collection, depth, disableVerificationEmail, draft = false, overrideAccess, overwriteExistingFiles = false, req: { fallbackLocale, locale, payload, payload: { config, email } }, req, select, showHiddenFields } = args;
44
44
  let { data } = args;
45
45
  const shouldSaveDraft = Boolean(draft && collectionConfig.versions.drafts);
46
46
  // /////////////////////////////////////
@@ -147,13 +147,15 @@ export const createOperation = async (incomingArgs)=>{
147
147
  doc: resultWithLocales,
148
148
  password: data.password,
149
149
  payload: req.payload,
150
- req
150
+ req,
151
+ select
151
152
  });
152
153
  } else {
153
154
  doc = await payload.db.create({
154
155
  collection: collectionConfig.slug,
155
156
  data: resultWithLocales,
156
- req
157
+ req,
158
+ select
157
159
  });
158
160
  }
159
161
  const verificationToken = doc._verificationToken;
@@ -201,6 +203,7 @@ export const createOperation = async (incomingArgs)=>{
201
203
  locale,
202
204
  overrideAccess,
203
205
  req,
206
+ select,
204
207
  showHiddenFields
205
208
  });
206
209
  // /////////////////////////////////////
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/collections/operations/create.ts"],"sourcesContent":["import crypto from 'crypto'\n\nimport type { CollectionSlug, JsonObject } from '../../index.js'\nimport type { Document, PayloadRequest } from '../../types/index.js'\nimport type {\n AfterChangeHook,\n BeforeOperationHook,\n BeforeValidateHook,\n Collection,\n DataFromCollectionSlug,\n RequiredDataFromCollectionSlug,\n} from '../config/types.js'\n\nimport { ensureUsernameOrEmail } from '../../auth/ensureUsernameOrEmail.js'\nimport executeAccess from '../../auth/executeAccess.js'\nimport { sendVerificationEmail } from '../../auth/sendVerificationEmail.js'\nimport { registerLocalStrategy } from '../../auth/strategies/local/register.js'\nimport { afterChange } from '../../fields/hooks/afterChange/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { beforeChange } from '../../fields/hooks/beforeChange/index.js'\nimport { beforeValidate } from '../../fields/hooks/beforeValidate/index.js'\nimport { generateFileData } from '../../uploads/generateFileData.js'\nimport { unlinkTempFiles } from '../../uploads/unlinkTempFiles.js'\nimport { uploadFiles } from '../../uploads/uploadFiles.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport sanitizeInternalFields from '../../utilities/sanitizeInternalFields.js'\nimport { saveVersion } from '../../versions/saveVersion.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type Arguments<TSlug extends CollectionSlug> = {\n autosave?: boolean\n collection: Collection\n data: RequiredDataFromCollectionSlug<TSlug>\n depth?: number\n disableTransaction?: boolean\n disableVerificationEmail?: boolean\n draft?: boolean\n overrideAccess?: boolean\n overwriteExistingFiles?: boolean\n req: PayloadRequest\n showHiddenFields?: boolean\n}\n\nexport const createOperation = async <TSlug extends CollectionSlug>(\n incomingArgs: Arguments<TSlug>,\n): Promise<DataFromCollectionSlug<TSlug>> => {\n let args = incomingArgs\n\n try {\n const shouldCommit = !args.disableTransaction && (await initTransaction(args.req))\n\n ensureUsernameOrEmail<TSlug>({\n authOptions: args.collection.config.auth,\n collectionSlug: args.collection.config.slug,\n data: args.data,\n operation: 'create',\n req: args.req,\n })\n\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n await args.collection.config.hooks.beforeOperation.reduce(\n async (priorHook: BeforeOperationHook | Promise<void>, hook: BeforeOperationHook) => {\n await priorHook\n\n args =\n (await hook({\n args,\n collection: args.collection.config,\n context: args.req.context,\n operation: 'create',\n req: args.req,\n })) || args\n },\n Promise.resolve(),\n )\n\n const {\n autosave = false,\n collection: { config: collectionConfig },\n collection,\n depth,\n disableVerificationEmail,\n draft = false,\n overrideAccess,\n overwriteExistingFiles = false,\n req: {\n fallbackLocale,\n locale,\n payload,\n payload: { config, email },\n },\n req,\n showHiddenFields,\n } = args\n\n let { data } = args\n\n const shouldSaveDraft = Boolean(draft && collectionConfig.versions.drafts)\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n if (!overrideAccess) {\n await executeAccess({ data, req }, collectionConfig.access.create)\n }\n\n // /////////////////////////////////////\n // Custom id\n // /////////////////////////////////////\n\n if (payload.collections[collectionConfig.slug].customIDType) {\n data = {\n _id: data.id,\n ...data,\n }\n }\n\n // /////////////////////////////////////\n // Generate data for all files and sizes\n // /////////////////////////////////////\n\n const { data: newFileData, files: filesToUpload } = await generateFileData({\n collection,\n config,\n data,\n operation: 'create',\n overwriteExistingFiles,\n req,\n throwOnMissingFile:\n !shouldSaveDraft && collection.config.upload.filesRequiredOnCreate !== false,\n })\n\n data = newFileData\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n data = await beforeValidate({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: {},\n global: null,\n operation: 'create',\n overrideAccess,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Collections\n // /////////////////////////////////////\n\n await collectionConfig.hooks.beforeValidate.reduce(\n async (priorHook: BeforeValidateHook | Promise<void>, hook: BeforeValidateHook) => {\n await priorHook\n\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'create',\n req,\n })) || data\n },\n Promise.resolve(),\n )\n\n // /////////////////////////////////////\n // beforeChange - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.beforeChange.reduce(async (priorHook, hook) => {\n await priorHook\n\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'create',\n req,\n })) || data\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // beforeChange - Fields\n // /////////////////////////////////////\n\n const resultWithLocales = await beforeChange<JsonObject>({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: {},\n docWithLocales: {},\n global: null,\n operation: 'create',\n req,\n skipValidation:\n shouldSaveDraft &&\n collectionConfig.versions.drafts &&\n !collectionConfig.versions.drafts.validate,\n })\n\n // /////////////////////////////////////\n // Write files to local storage\n // /////////////////////////////////////\n\n if (!collectionConfig.upload.disableLocalStorage) {\n await uploadFiles(payload, filesToUpload, req)\n }\n\n // /////////////////////////////////////\n // Create\n // /////////////////////////////////////\n\n let doc\n\n if (collectionConfig.auth && !collectionConfig.auth.disableLocalStrategy) {\n if (collectionConfig.auth.verify) {\n resultWithLocales._verified = Boolean(resultWithLocales._verified) || false\n resultWithLocales._verificationToken = crypto.randomBytes(20).toString('hex')\n }\n\n doc = await registerLocalStrategy({\n collection: collectionConfig,\n doc: resultWithLocales,\n password: data.password as string,\n payload: req.payload,\n req,\n })\n } else {\n doc = await payload.db.create({\n collection: collectionConfig.slug,\n data: resultWithLocales,\n req,\n })\n }\n\n const verificationToken = doc._verificationToken\n let result: Document = sanitizeInternalFields(doc)\n\n // /////////////////////////////////////\n // Create version\n // /////////////////////////////////////\n\n if (collectionConfig.versions) {\n await saveVersion({\n id: result.id,\n autosave,\n collection: collectionConfig,\n docWithLocales: result,\n payload,\n req,\n })\n }\n\n // /////////////////////////////////////\n // Send verification email if applicable\n // /////////////////////////////////////\n\n if (collectionConfig.auth && collectionConfig.auth.verify && result.email) {\n await sendVerificationEmail({\n collection: { config: collectionConfig },\n config: payload.config,\n disableEmail: disableVerificationEmail,\n email: payload.email,\n req,\n token: verificationToken,\n user: result,\n })\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth,\n doc: result,\n draft,\n fallbackLocale,\n global: null,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n })\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterChange - Fields\n // /////////////////////////////////////\n\n result = await afterChange({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: result,\n global: null,\n operation: 'create',\n previousDoc: {},\n req,\n })\n\n // /////////////////////////////////////\n // afterChange - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterChange.reduce(\n async (priorHook: AfterChangeHook | Promise<void>, hook: AfterChangeHook) => {\n await priorHook\n\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n operation: 'create',\n previousDoc: {},\n req: args.req,\n })) || result\n },\n Promise.resolve(),\n )\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation<TSlug>({\n args,\n collection: collectionConfig,\n operation: 'create',\n result,\n })\n\n await unlinkTempFiles({ collectionConfig, config, req })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n if (shouldCommit) {\n await commitTransaction(req)\n }\n\n return result\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["crypto","ensureUsernameOrEmail","executeAccess","sendVerificationEmail","registerLocalStrategy","afterChange","afterRead","beforeChange","beforeValidate","generateFileData","unlinkTempFiles","uploadFiles","commitTransaction","initTransaction","killTransaction","sanitizeInternalFields","saveVersion","buildAfterOperation","createOperation","incomingArgs","args","shouldCommit","disableTransaction","req","authOptions","collection","config","auth","collectionSlug","slug","data","operation","hooks","beforeOperation","reduce","priorHook","hook","context","Promise","resolve","autosave","collectionConfig","depth","disableVerificationEmail","draft","overrideAccess","overwriteExistingFiles","fallbackLocale","locale","payload","email","showHiddenFields","shouldSaveDraft","Boolean","versions","drafts","access","create","collections","customIDType","_id","id","newFileData","files","filesToUpload","throwOnMissingFile","upload","filesRequiredOnCreate","doc","global","resultWithLocales","docWithLocales","skipValidation","validate","disableLocalStorage","disableLocalStrategy","verify","_verified","_verificationToken","randomBytes","toString","password","db","verificationToken","result","disableEmail","token","user","previousDoc","error"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/collections/operations/create.ts"],"sourcesContent":["import crypto from 'crypto'\n\nimport type { CollectionSlug, JsonObject } from '../../index.js'\nimport type {\n Document,\n PayloadRequest,\n SelectType,\n TransformCollectionWithSelect,\n} from '../../types/index.js'\nimport type {\n AfterChangeHook,\n BeforeOperationHook,\n BeforeValidateHook,\n Collection,\n RequiredDataFromCollectionSlug,\n SelectFromCollectionSlug,\n} from '../config/types.js'\n\nimport { ensureUsernameOrEmail } from '../../auth/ensureUsernameOrEmail.js'\nimport executeAccess from '../../auth/executeAccess.js'\nimport { sendVerificationEmail } from '../../auth/sendVerificationEmail.js'\nimport { registerLocalStrategy } from '../../auth/strategies/local/register.js'\nimport { afterChange } from '../../fields/hooks/afterChange/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { beforeChange } from '../../fields/hooks/beforeChange/index.js'\nimport { beforeValidate } from '../../fields/hooks/beforeValidate/index.js'\nimport { generateFileData } from '../../uploads/generateFileData.js'\nimport { unlinkTempFiles } from '../../uploads/unlinkTempFiles.js'\nimport { uploadFiles } from '../../uploads/uploadFiles.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport sanitizeInternalFields from '../../utilities/sanitizeInternalFields.js'\nimport { saveVersion } from '../../versions/saveVersion.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type Arguments<TSlug extends CollectionSlug> = {\n autosave?: boolean\n collection: Collection\n data: RequiredDataFromCollectionSlug<TSlug>\n depth?: number\n disableTransaction?: boolean\n disableVerificationEmail?: boolean\n draft?: boolean\n overrideAccess?: boolean\n overwriteExistingFiles?: boolean\n req: PayloadRequest\n select?: SelectType\n showHiddenFields?: boolean\n}\n\nexport const createOperation = async <\n TSlug extends CollectionSlug,\n TSelect extends SelectFromCollectionSlug<TSlug>,\n>(\n incomingArgs: Arguments<TSlug>,\n): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n let args = incomingArgs\n\n try {\n const shouldCommit = !args.disableTransaction && (await initTransaction(args.req))\n\n ensureUsernameOrEmail<TSlug>({\n authOptions: args.collection.config.auth,\n collectionSlug: args.collection.config.slug,\n data: args.data,\n operation: 'create',\n req: args.req,\n })\n\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n await args.collection.config.hooks.beforeOperation.reduce(\n async (priorHook: BeforeOperationHook | Promise<void>, hook: BeforeOperationHook) => {\n await priorHook\n\n args =\n (await hook({\n args,\n collection: args.collection.config,\n context: args.req.context,\n operation: 'create',\n req: args.req,\n })) || args\n },\n Promise.resolve(),\n )\n\n const {\n autosave = false,\n collection: { config: collectionConfig },\n collection,\n depth,\n disableVerificationEmail,\n draft = false,\n overrideAccess,\n overwriteExistingFiles = false,\n req: {\n fallbackLocale,\n locale,\n payload,\n payload: { config, email },\n },\n req,\n select,\n showHiddenFields,\n } = args\n\n let { data } = args\n\n const shouldSaveDraft = Boolean(draft && collectionConfig.versions.drafts)\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n if (!overrideAccess) {\n await executeAccess({ data, req }, collectionConfig.access.create)\n }\n\n // /////////////////////////////////////\n // Custom id\n // /////////////////////////////////////\n\n if (payload.collections[collectionConfig.slug].customIDType) {\n data = {\n _id: data.id,\n ...data,\n }\n }\n\n // /////////////////////////////////////\n // Generate data for all files and sizes\n // /////////////////////////////////////\n\n const { data: newFileData, files: filesToUpload } = await generateFileData({\n collection,\n config,\n data,\n operation: 'create',\n overwriteExistingFiles,\n req,\n throwOnMissingFile:\n !shouldSaveDraft && collection.config.upload.filesRequiredOnCreate !== false,\n })\n\n data = newFileData\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n data = await beforeValidate({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: {},\n global: null,\n operation: 'create',\n overrideAccess,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Collections\n // /////////////////////////////////////\n\n await collectionConfig.hooks.beforeValidate.reduce(\n async (priorHook: BeforeValidateHook | Promise<void>, hook: BeforeValidateHook) => {\n await priorHook\n\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'create',\n req,\n })) || data\n },\n Promise.resolve(),\n )\n\n // /////////////////////////////////////\n // beforeChange - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.beforeChange.reduce(async (priorHook, hook) => {\n await priorHook\n\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'create',\n req,\n })) || data\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // beforeChange - Fields\n // /////////////////////////////////////\n\n const resultWithLocales = await beforeChange<JsonObject>({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: {},\n docWithLocales: {},\n global: null,\n operation: 'create',\n req,\n skipValidation:\n shouldSaveDraft &&\n collectionConfig.versions.drafts &&\n !collectionConfig.versions.drafts.validate,\n })\n\n // /////////////////////////////////////\n // Write files to local storage\n // /////////////////////////////////////\n\n if (!collectionConfig.upload.disableLocalStorage) {\n await uploadFiles(payload, filesToUpload, req)\n }\n\n // /////////////////////////////////////\n // Create\n // /////////////////////////////////////\n\n let doc\n\n if (collectionConfig.auth && !collectionConfig.auth.disableLocalStrategy) {\n if (collectionConfig.auth.verify) {\n resultWithLocales._verified = Boolean(resultWithLocales._verified) || false\n resultWithLocales._verificationToken = crypto.randomBytes(20).toString('hex')\n }\n\n doc = await registerLocalStrategy({\n collection: collectionConfig,\n doc: resultWithLocales,\n password: data.password as string,\n payload: req.payload,\n req,\n select,\n })\n } else {\n doc = await payload.db.create({\n collection: collectionConfig.slug,\n data: resultWithLocales,\n req,\n select,\n })\n }\n\n const verificationToken = doc._verificationToken\n let result: Document = sanitizeInternalFields(doc)\n\n // /////////////////////////////////////\n // Create version\n // /////////////////////////////////////\n\n if (collectionConfig.versions) {\n await saveVersion({\n id: result.id,\n autosave,\n collection: collectionConfig,\n docWithLocales: result,\n payload,\n req,\n })\n }\n\n // /////////////////////////////////////\n // Send verification email if applicable\n // /////////////////////////////////////\n\n if (collectionConfig.auth && collectionConfig.auth.verify && result.email) {\n await sendVerificationEmail({\n collection: { config: collectionConfig },\n config: payload.config,\n disableEmail: disableVerificationEmail,\n email: payload.email,\n req,\n token: verificationToken,\n user: result,\n })\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth,\n doc: result,\n draft,\n fallbackLocale,\n global: null,\n locale,\n overrideAccess,\n req,\n select,\n showHiddenFields,\n })\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterChange - Fields\n // /////////////////////////////////////\n\n result = await afterChange({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: result,\n global: null,\n operation: 'create',\n previousDoc: {},\n req,\n })\n\n // /////////////////////////////////////\n // afterChange - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterChange.reduce(\n async (priorHook: AfterChangeHook | Promise<void>, hook: AfterChangeHook) => {\n await priorHook\n\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n operation: 'create',\n previousDoc: {},\n req: args.req,\n })) || result\n },\n Promise.resolve(),\n )\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation<TSlug>({\n args,\n collection: collectionConfig,\n operation: 'create',\n result,\n })\n\n await unlinkTempFiles({ collectionConfig, config, req })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n if (shouldCommit) {\n await commitTransaction(req)\n }\n\n return result\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["crypto","ensureUsernameOrEmail","executeAccess","sendVerificationEmail","registerLocalStrategy","afterChange","afterRead","beforeChange","beforeValidate","generateFileData","unlinkTempFiles","uploadFiles","commitTransaction","initTransaction","killTransaction","sanitizeInternalFields","saveVersion","buildAfterOperation","createOperation","incomingArgs","args","shouldCommit","disableTransaction","req","authOptions","collection","config","auth","collectionSlug","slug","data","operation","hooks","beforeOperation","reduce","priorHook","hook","context","Promise","resolve","autosave","collectionConfig","depth","disableVerificationEmail","draft","overrideAccess","overwriteExistingFiles","fallbackLocale","locale","payload","email","select","showHiddenFields","shouldSaveDraft","Boolean","versions","drafts","access","create","collections","customIDType","_id","id","newFileData","files","filesToUpload","throwOnMissingFile","upload","filesRequiredOnCreate","doc","global","resultWithLocales","docWithLocales","skipValidation","validate","disableLocalStorage","disableLocalStrategy","verify","_verified","_verificationToken","randomBytes","toString","password","db","verificationToken","result","disableEmail","token","user","previousDoc","error"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { CollectionSlug } from '../../index.js';
2
- import type { PayloadRequest, Where } from '../../types/index.js';
3
- import type { Collection, DataFromCollectionSlug } from '../config/types.js';
2
+ import type { PayloadRequest, SelectType, Where } from '../../types/index.js';
3
+ import type { BulkOperationResult, Collection, SelectFromCollectionSlug } from '../config/types.js';
4
4
  export type Arguments = {
5
5
  collection: Collection;
6
6
  depth?: number;
@@ -8,14 +8,9 @@ export type Arguments = {
8
8
  overrideAccess?: boolean;
9
9
  overrideLock?: boolean;
10
10
  req: PayloadRequest;
11
+ select?: SelectType;
11
12
  showHiddenFields?: boolean;
12
13
  where: Where;
13
14
  };
14
- export declare const deleteOperation: <TSlug extends CollectionSlug>(incomingArgs: Arguments) => Promise<{
15
- docs: DataFromCollectionSlug<TSlug>[];
16
- errors: {
17
- id: DataFromCollectionSlug<TSlug>["id"];
18
- message: string;
19
- }[];
20
- }>;
15
+ export declare const deleteOperation: <TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(incomingArgs: Arguments) => Promise<BulkOperationResult<TSlug, TSelect>>;
21
16
  //# sourceMappingURL=delete.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/delete.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,KAAK,EAAuB,UAAU,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAgBjG,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,eAAO,MAAM,eAAe,GAAU,KAAK,SAAS,cAAc,gBAClD,SAAS,KACtB,OAAO,CAAC;IACT,IAAI,EAAE,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAA;IACrC,MAAM,EAAE;QACN,EAAE,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;QACvC,OAAO,EAAE,MAAM,CAAA;KAChB,EAAE,CAAA;CACJ,CAwPA,CAAA"}
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/delete.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC7E,OAAO,KAAK,EAEV,mBAAmB,EACnB,UAAU,EAEV,wBAAwB,EACzB,MAAM,oBAAoB,CAAA;AAgB3B,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,eAAO,MAAM,eAAe,GAC1B,KAAK,SAAS,cAAc,EAC5B,OAAO,SAAS,wBAAwB,CAAC,KAAK,CAAC,gBAEjC,SAAS,KACtB,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CA2P7C,CAAA"}
@@ -29,7 +29,7 @@ export const deleteOperation = async (incomingArgs)=>{
29
29
  req: args.req
30
30
  }) || args;
31
31
  }, Promise.resolve());
32
- const { collection: { config: collectionConfig }, depth, overrideAccess, overrideLock, req: { fallbackLocale, locale, payload: { config }, payload }, req, showHiddenFields, where } = args;
32
+ const { collection: { config: collectionConfig }, depth, overrideAccess, overrideLock, req: { fallbackLocale, locale, payload: { config }, payload }, req, select, showHiddenFields, where } = args;
33
33
  if (!where) {
34
34
  throw new APIError("Missing 'where' query of documents to delete.", httpStatus.BAD_REQUEST);
35
35
  }
@@ -56,6 +56,7 @@ export const deleteOperation = async (incomingArgs)=>{
56
56
  collection: collectionConfig.slug,
57
57
  locale,
58
58
  req,
59
+ select,
59
60
  where: fullWhere
60
61
  });
61
62
  const errors = [];
@@ -129,6 +130,7 @@ export const deleteOperation = async (incomingArgs)=>{
129
130
  locale,
130
131
  overrideAccess,
131
132
  req,
133
+ select,
132
134
  showHiddenFields
133
135
  });
134
136
  // /////////////////////////////////////
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/collections/operations/delete.ts"],"sourcesContent":["import httpStatus from 'http-status'\n\nimport type { AccessResult } from '../../config/types.js'\nimport type { CollectionSlug } from '../../index.js'\nimport type { PayloadRequest, Where } from '../../types/index.js'\nimport type { BeforeOperationHook, Collection, DataFromCollectionSlug } from '../config/types.js'\n\nimport executeAccess from '../../auth/executeAccess.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { validateQueryPaths } from '../../database/queryValidation/validateQueryPaths.js'\nimport { APIError } from '../../errors/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { deleteUserPreferences } from '../../preferences/deleteUserPreferences.js'\nimport { deleteAssociatedFiles } from '../../uploads/deleteAssociatedFiles.js'\nimport { checkDocumentLockStatus } from '../../utilities/checkDocumentLockStatus.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { deleteCollectionVersions } from '../../versions/deleteCollectionVersions.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type Arguments = {\n collection: Collection\n depth?: number\n disableTransaction?: boolean\n overrideAccess?: boolean\n overrideLock?: boolean\n req: PayloadRequest\n showHiddenFields?: boolean\n where: Where\n}\n\nexport const deleteOperation = async <TSlug extends CollectionSlug>(\n incomingArgs: Arguments,\n): Promise<{\n docs: DataFromCollectionSlug<TSlug>[]\n errors: {\n id: DataFromCollectionSlug<TSlug>['id']\n message: string\n }[]\n}> => {\n let args = incomingArgs\n\n try {\n const shouldCommit = !args.disableTransaction && (await initTransaction(args.req))\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n await args.collection.config.hooks.beforeOperation.reduce(\n async (priorHook: BeforeOperationHook | Promise<void>, hook: BeforeOperationHook) => {\n await priorHook\n\n args =\n (await hook({\n args,\n collection: args.collection.config,\n context: args.req.context,\n operation: 'delete',\n req: args.req,\n })) || args\n },\n Promise.resolve(),\n )\n\n const {\n collection: { config: collectionConfig },\n depth,\n overrideAccess,\n overrideLock,\n req: {\n fallbackLocale,\n locale,\n payload: { config },\n payload,\n },\n req,\n showHiddenFields,\n where,\n } = args\n\n if (!where) {\n throw new APIError(\"Missing 'where' query of documents to delete.\", httpStatus.BAD_REQUEST)\n }\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n let accessResult: AccessResult\n\n if (!overrideAccess) {\n accessResult = await executeAccess({ req }, collectionConfig.access.delete)\n }\n\n await validateQueryPaths({\n collectionConfig,\n overrideAccess,\n req,\n where,\n })\n\n const fullWhere = combineQueries(where, accessResult)\n\n // /////////////////////////////////////\n // Retrieve documents\n // /////////////////////////////////////\n\n const { docs } = await payload.db.find<DataFromCollectionSlug<TSlug>>({\n collection: collectionConfig.slug,\n locale,\n req,\n where: fullWhere,\n })\n\n const errors = []\n\n const promises = docs.map(async (doc) => {\n let result\n\n const { id } = doc\n\n try {\n // /////////////////////////////////////\n // Handle potentially locked documents\n // /////////////////////////////////////\n\n await checkDocumentLockStatus({\n id,\n collectionSlug: collectionConfig.slug,\n lockErrorMessage: `Document with ID ${id} is currently locked and cannot be deleted.`,\n overrideLock,\n req,\n })\n\n // /////////////////////////////////////\n // beforeDelete - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.beforeDelete.reduce(async (priorHook, hook) => {\n await priorHook\n\n return hook({\n id,\n collection: collectionConfig,\n context: req.context,\n req,\n })\n }, Promise.resolve())\n\n await deleteAssociatedFiles({\n collectionConfig,\n config,\n doc,\n overrideDelete: true,\n req,\n })\n\n // /////////////////////////////////////\n // Delete versions\n // /////////////////////////////////////\n\n if (collectionConfig.versions) {\n await deleteCollectionVersions({\n id,\n slug: collectionConfig.slug,\n payload,\n req,\n })\n }\n\n // /////////////////////////////////////\n // Delete document\n // /////////////////////////////////////\n\n await payload.db.deleteOne({\n collection: collectionConfig.slug,\n req,\n where: {\n id: {\n equals: id,\n },\n },\n })\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth,\n doc: result || doc,\n draft: undefined,\n fallbackLocale,\n global: null,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n })\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result || doc,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterDelete - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterDelete.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n id,\n collection: collectionConfig,\n context: req.context,\n doc: result,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // 8. Return results\n // /////////////////////////////////////\n\n return result\n } catch (error) {\n errors.push({\n id: doc.id,\n message: error.message,\n })\n }\n return null\n })\n\n const awaitedDocs = await Promise.all(promises)\n\n // /////////////////////////////////////\n // Delete Preferences\n // /////////////////////////////////////\n\n await deleteUserPreferences({\n collectionConfig,\n ids: docs.map(({ id }) => id),\n payload,\n req,\n })\n\n let result = {\n docs: awaitedDocs.filter(Boolean),\n errors,\n }\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation({\n args,\n collection: collectionConfig,\n operation: 'delete',\n result,\n })\n\n if (shouldCommit) {\n await commitTransaction(req)\n }\n\n return result\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["httpStatus","executeAccess","combineQueries","validateQueryPaths","APIError","afterRead","deleteUserPreferences","deleteAssociatedFiles","checkDocumentLockStatus","commitTransaction","initTransaction","killTransaction","deleteCollectionVersions","buildAfterOperation","deleteOperation","incomingArgs","args","shouldCommit","disableTransaction","req","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","operation","Promise","resolve","collectionConfig","depth","overrideAccess","overrideLock","fallbackLocale","locale","payload","showHiddenFields","where","BAD_REQUEST","accessResult","access","delete","fullWhere","docs","db","find","slug","errors","promises","map","doc","result","id","collectionSlug","lockErrorMessage","beforeDelete","overrideDelete","versions","deleteOne","equals","draft","undefined","global","afterDelete","error","push","message","awaitedDocs","all","ids","filter","Boolean"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/collections/operations/delete.ts"],"sourcesContent":["import httpStatus from 'http-status'\n\nimport type { AccessResult } from '../../config/types.js'\nimport type { CollectionSlug } from '../../index.js'\nimport type { PayloadRequest, SelectType, Where } from '../../types/index.js'\nimport type {\n BeforeOperationHook,\n BulkOperationResult,\n Collection,\n DataFromCollectionSlug,\n SelectFromCollectionSlug,\n} from '../config/types.js'\n\nimport executeAccess from '../../auth/executeAccess.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { validateQueryPaths } from '../../database/queryValidation/validateQueryPaths.js'\nimport { APIError } from '../../errors/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { deleteUserPreferences } from '../../preferences/deleteUserPreferences.js'\nimport { deleteAssociatedFiles } from '../../uploads/deleteAssociatedFiles.js'\nimport { checkDocumentLockStatus } from '../../utilities/checkDocumentLockStatus.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { deleteCollectionVersions } from '../../versions/deleteCollectionVersions.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type Arguments = {\n collection: Collection\n depth?: number\n disableTransaction?: boolean\n overrideAccess?: boolean\n overrideLock?: boolean\n req: PayloadRequest\n select?: SelectType\n showHiddenFields?: boolean\n where: Where\n}\n\nexport const deleteOperation = async <\n TSlug extends CollectionSlug,\n TSelect extends SelectFromCollectionSlug<TSlug>,\n>(\n incomingArgs: Arguments,\n): Promise<BulkOperationResult<TSlug, TSelect>> => {\n let args = incomingArgs\n\n try {\n const shouldCommit = !args.disableTransaction && (await initTransaction(args.req))\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n await args.collection.config.hooks.beforeOperation.reduce(\n async (priorHook: BeforeOperationHook | Promise<void>, hook: BeforeOperationHook) => {\n await priorHook\n\n args =\n (await hook({\n args,\n collection: args.collection.config,\n context: args.req.context,\n operation: 'delete',\n req: args.req,\n })) || args\n },\n Promise.resolve(),\n )\n\n const {\n collection: { config: collectionConfig },\n depth,\n overrideAccess,\n overrideLock,\n req: {\n fallbackLocale,\n locale,\n payload: { config },\n payload,\n },\n req,\n select,\n showHiddenFields,\n where,\n } = args\n\n if (!where) {\n throw new APIError(\"Missing 'where' query of documents to delete.\", httpStatus.BAD_REQUEST)\n }\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n let accessResult: AccessResult\n\n if (!overrideAccess) {\n accessResult = await executeAccess({ req }, collectionConfig.access.delete)\n }\n\n await validateQueryPaths({\n collectionConfig,\n overrideAccess,\n req,\n where,\n })\n\n const fullWhere = combineQueries(where, accessResult)\n\n // /////////////////////////////////////\n // Retrieve documents\n // /////////////////////////////////////\n\n const { docs } = await payload.db.find<DataFromCollectionSlug<TSlug>>({\n collection: collectionConfig.slug,\n locale,\n req,\n select,\n where: fullWhere,\n })\n\n const errors = []\n\n const promises = docs.map(async (doc) => {\n let result\n\n const { id } = doc\n\n try {\n // /////////////////////////////////////\n // Handle potentially locked documents\n // /////////////////////////////////////\n\n await checkDocumentLockStatus({\n id,\n collectionSlug: collectionConfig.slug,\n lockErrorMessage: `Document with ID ${id} is currently locked and cannot be deleted.`,\n overrideLock,\n req,\n })\n\n // /////////////////////////////////////\n // beforeDelete - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.beforeDelete.reduce(async (priorHook, hook) => {\n await priorHook\n\n return hook({\n id,\n collection: collectionConfig,\n context: req.context,\n req,\n })\n }, Promise.resolve())\n\n await deleteAssociatedFiles({\n collectionConfig,\n config,\n doc,\n overrideDelete: true,\n req,\n })\n\n // /////////////////////////////////////\n // Delete versions\n // /////////////////////////////////////\n\n if (collectionConfig.versions) {\n await deleteCollectionVersions({\n id,\n slug: collectionConfig.slug,\n payload,\n req,\n })\n }\n\n // /////////////////////////////////////\n // Delete document\n // /////////////////////////////////////\n\n await payload.db.deleteOne({\n collection: collectionConfig.slug,\n req,\n where: {\n id: {\n equals: id,\n },\n },\n })\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth,\n doc: result || doc,\n draft: undefined,\n fallbackLocale,\n global: null,\n locale,\n overrideAccess,\n req,\n select,\n showHiddenFields,\n })\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result || doc,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterDelete - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterDelete.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n id,\n collection: collectionConfig,\n context: req.context,\n doc: result,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // 8. Return results\n // /////////////////////////////////////\n\n return result\n } catch (error) {\n errors.push({\n id: doc.id,\n message: error.message,\n })\n }\n return null\n })\n\n const awaitedDocs = await Promise.all(promises)\n\n // /////////////////////////////////////\n // Delete Preferences\n // /////////////////////////////////////\n\n await deleteUserPreferences({\n collectionConfig,\n ids: docs.map(({ id }) => id),\n payload,\n req,\n })\n\n let result = {\n docs: awaitedDocs.filter(Boolean),\n errors,\n }\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation({\n args,\n collection: collectionConfig,\n operation: 'delete',\n result,\n })\n\n if (shouldCommit) {\n await commitTransaction(req)\n }\n\n return result\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["httpStatus","executeAccess","combineQueries","validateQueryPaths","APIError","afterRead","deleteUserPreferences","deleteAssociatedFiles","checkDocumentLockStatus","commitTransaction","initTransaction","killTransaction","deleteCollectionVersions","buildAfterOperation","deleteOperation","incomingArgs","args","shouldCommit","disableTransaction","req","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","operation","Promise","resolve","collectionConfig","depth","overrideAccess","overrideLock","fallbackLocale","locale","payload","select","showHiddenFields","where","BAD_REQUEST","accessResult","access","delete","fullWhere","docs","db","find","slug","errors","promises","map","doc","result","id","collectionSlug","lockErrorMessage","beforeDelete","overrideDelete","versions","deleteOne","equals","draft","undefined","global","afterDelete","error","push","message","awaitedDocs","all","ids","filter","Boolean"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { CollectionSlug } from '../../index.js';
2
- import type { PayloadRequest } from '../../types/index.js';
3
- import type { Collection, DataFromCollectionSlug } from '../config/types.js';
2
+ import type { PayloadRequest, SelectType, TransformCollectionWithSelect } from '../../types/index.js';
3
+ import type { Collection } from '../config/types.js';
4
4
  export type Arguments = {
5
5
  collection: Collection;
6
6
  depth?: number;
@@ -9,7 +9,8 @@ export type Arguments = {
9
9
  overrideAccess?: boolean;
10
10
  overrideLock?: boolean;
11
11
  req: PayloadRequest;
12
+ select?: SelectType;
12
13
  showHiddenFields?: boolean;
13
14
  };
14
- export declare const deleteByIDOperation: <TSlug extends CollectionSlug>(incomingArgs: Arguments) => Promise<DataFromCollectionSlug<TSlug>>;
15
+ export declare const deleteByIDOperation: <TSlug extends CollectionSlug, TSelect extends SelectType>(incomingArgs: Arguments) => Promise<TransformCollectionWithSelect<TSlug, TSelect>>;
15
16
  //# sourceMappingURL=deleteByID.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deleteByID.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/deleteByID.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAuB,UAAU,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAgBjG,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAU,KAAK,SAAS,cAAc,gBACtD,SAAS,KACtB,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAqNvC,CAAA"}
1
+ {"version":3,"file":"deleteByID.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/deleteByID.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EACV,6BAA6B,EAC9B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAuB,UAAU,EAA0B,MAAM,oBAAoB,CAAA;AAgBjG,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAU,KAAK,SAAS,cAAc,EAAE,OAAO,SAAS,UAAU,gBAClF,SAAS,KACtB,OAAO,CAAC,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,CAwNvD,CAAA"}
@@ -28,7 +28,7 @@ export const deleteByIDOperation = async (incomingArgs)=>{
28
28
  req: args.req
29
29
  }) || args;
30
30
  }, Promise.resolve());
31
- const { id, collection: { config: collectionConfig }, depth, overrideAccess, overrideLock, req: { fallbackLocale, locale, payload: { config }, payload }, req, showHiddenFields } = args;
31
+ const { id, collection: { config: collectionConfig }, depth, overrideAccess, overrideLock, req: { fallbackLocale, locale, payload: { config }, payload }, req, select, showHiddenFields } = args;
32
32
  // /////////////////////////////////////
33
33
  // Access
34
34
  // /////////////////////////////////////
@@ -102,6 +102,7 @@ export const deleteByIDOperation = async (incomingArgs)=>{
102
102
  let result = await req.payload.db.deleteOne({
103
103
  collection: collectionConfig.slug,
104
104
  req,
105
+ select,
105
106
  where: {
106
107
  id: {
107
108
  equals: id
@@ -133,6 +134,7 @@ export const deleteByIDOperation = async (incomingArgs)=>{
133
134
  locale,
134
135
  overrideAccess,
135
136
  req,
137
+ select,
136
138
  showHiddenFields
137
139
  });
138
140
  // /////////////////////////////////////
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/collections/operations/deleteByID.ts"],"sourcesContent":["import type { CollectionSlug } from '../../index.js'\nimport type { PayloadRequest } from '../../types/index.js'\nimport type { BeforeOperationHook, Collection, DataFromCollectionSlug } from '../config/types.js'\n\nimport executeAccess from '../../auth/executeAccess.js'\nimport { hasWhereAccessResult } from '../../auth/types.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { Forbidden, NotFound } from '../../errors/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { deleteUserPreferences } from '../../preferences/deleteUserPreferences.js'\nimport { deleteAssociatedFiles } from '../../uploads/deleteAssociatedFiles.js'\nimport { checkDocumentLockStatus } from '../../utilities/checkDocumentLockStatus.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { deleteCollectionVersions } from '../../versions/deleteCollectionVersions.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type Arguments = {\n collection: Collection\n depth?: number\n disableTransaction?: boolean\n id: number | string\n overrideAccess?: boolean\n overrideLock?: boolean\n req: PayloadRequest\n showHiddenFields?: boolean\n}\n\nexport const deleteByIDOperation = async <TSlug extends CollectionSlug>(\n incomingArgs: Arguments,\n): Promise<DataFromCollectionSlug<TSlug>> => {\n let args = incomingArgs\n\n try {\n const shouldCommit = !args.disableTransaction && (await initTransaction(args.req))\n\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n await args.collection.config.hooks.beforeOperation.reduce(\n async (priorHook: BeforeOperationHook | Promise<void>, hook: BeforeOperationHook) => {\n await priorHook\n\n args =\n (await hook({\n args,\n collection: args.collection.config,\n context: args.req.context,\n operation: 'delete',\n req: args.req,\n })) || args\n },\n Promise.resolve(),\n )\n\n const {\n id,\n collection: { config: collectionConfig },\n depth,\n overrideAccess,\n overrideLock,\n req: {\n fallbackLocale,\n locale,\n payload: { config },\n payload,\n },\n req,\n showHiddenFields,\n } = args\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n const accessResults = !overrideAccess\n ? await executeAccess({ id, req }, collectionConfig.access.delete)\n : true\n const hasWhereAccess = hasWhereAccessResult(accessResults)\n\n // /////////////////////////////////////\n // beforeDelete - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.beforeDelete.reduce(async (priorHook, hook) => {\n await priorHook\n\n return hook({\n id,\n collection: collectionConfig,\n context: req.context,\n req,\n })\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // Retrieve document\n // /////////////////////////////////////\n\n const docToDelete = await req.payload.db.findOne({\n collection: collectionConfig.slug,\n locale: req.locale,\n req,\n where: combineQueries({ id: { equals: id } }, accessResults),\n })\n\n if (!docToDelete && !hasWhereAccess) {\n throw new NotFound(req.t)\n }\n if (!docToDelete && hasWhereAccess) {\n throw new Forbidden(req.t)\n }\n\n // /////////////////////////////////////\n // Handle potentially locked documents\n // /////////////////////////////////////\n\n await checkDocumentLockStatus({\n id,\n collectionSlug: collectionConfig.slug,\n lockErrorMessage: `Document with ID ${id} is currently locked and cannot be deleted.`,\n overrideLock,\n req,\n })\n\n await deleteAssociatedFiles({\n collectionConfig,\n config,\n doc: docToDelete,\n overrideDelete: true,\n req,\n })\n\n // /////////////////////////////////////\n // Delete versions\n // /////////////////////////////////////\n\n if (collectionConfig.versions) {\n await deleteCollectionVersions({\n id,\n slug: collectionConfig.slug,\n payload,\n req,\n })\n }\n\n // /////////////////////////////////////\n // Delete document\n // /////////////////////////////////////\n\n let result: DataFromCollectionSlug<TSlug> = await req.payload.db.deleteOne({\n collection: collectionConfig.slug,\n req,\n where: { id: { equals: id } },\n })\n\n // /////////////////////////////////////\n // Delete Preferences\n // /////////////////////////////////////\n\n await deleteUserPreferences({\n collectionConfig,\n ids: [id],\n payload,\n req,\n })\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth,\n doc: result,\n draft: undefined,\n fallbackLocale,\n global: null,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n })\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterDelete - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterDelete.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n id,\n collection: collectionConfig,\n context: req.context,\n doc: result,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation({\n args,\n collection: collectionConfig,\n operation: 'deleteByID',\n result,\n })\n\n // /////////////////////////////////////\n // 8. Return results\n // /////////////////////////////////////\n\n if (shouldCommit) {\n await commitTransaction(req)\n }\n\n return result\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["executeAccess","hasWhereAccessResult","combineQueries","Forbidden","NotFound","afterRead","deleteUserPreferences","deleteAssociatedFiles","checkDocumentLockStatus","commitTransaction","initTransaction","killTransaction","deleteCollectionVersions","buildAfterOperation","deleteByIDOperation","incomingArgs","args","shouldCommit","disableTransaction","req","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","operation","Promise","resolve","id","collectionConfig","depth","overrideAccess","overrideLock","fallbackLocale","locale","payload","showHiddenFields","accessResults","access","delete","hasWhereAccess","beforeDelete","docToDelete","db","findOne","slug","where","equals","t","collectionSlug","lockErrorMessage","doc","overrideDelete","versions","result","deleteOne","ids","draft","undefined","global","afterDelete","error"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/collections/operations/deleteByID.ts"],"sourcesContent":["import type { CollectionSlug } from '../../index.js'\nimport type {\n PayloadRequest,\n SelectType,\n TransformCollectionWithSelect,\n} from '../../types/index.js'\nimport type { BeforeOperationHook, Collection, DataFromCollectionSlug } from '../config/types.js'\n\nimport executeAccess from '../../auth/executeAccess.js'\nimport { hasWhereAccessResult } from '../../auth/types.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { Forbidden, NotFound } from '../../errors/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { deleteUserPreferences } from '../../preferences/deleteUserPreferences.js'\nimport { deleteAssociatedFiles } from '../../uploads/deleteAssociatedFiles.js'\nimport { checkDocumentLockStatus } from '../../utilities/checkDocumentLockStatus.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { deleteCollectionVersions } from '../../versions/deleteCollectionVersions.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type Arguments = {\n collection: Collection\n depth?: number\n disableTransaction?: boolean\n id: number | string\n overrideAccess?: boolean\n overrideLock?: boolean\n req: PayloadRequest\n select?: SelectType\n showHiddenFields?: boolean\n}\n\nexport const deleteByIDOperation = async <TSlug extends CollectionSlug, TSelect extends SelectType>(\n incomingArgs: Arguments,\n): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n let args = incomingArgs\n\n try {\n const shouldCommit = !args.disableTransaction && (await initTransaction(args.req))\n\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n await args.collection.config.hooks.beforeOperation.reduce(\n async (priorHook: BeforeOperationHook | Promise<void>, hook: BeforeOperationHook) => {\n await priorHook\n\n args =\n (await hook({\n args,\n collection: args.collection.config,\n context: args.req.context,\n operation: 'delete',\n req: args.req,\n })) || args\n },\n Promise.resolve(),\n )\n\n const {\n id,\n collection: { config: collectionConfig },\n depth,\n overrideAccess,\n overrideLock,\n req: {\n fallbackLocale,\n locale,\n payload: { config },\n payload,\n },\n req,\n select,\n showHiddenFields,\n } = args\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n const accessResults = !overrideAccess\n ? await executeAccess({ id, req }, collectionConfig.access.delete)\n : true\n const hasWhereAccess = hasWhereAccessResult(accessResults)\n\n // /////////////////////////////////////\n // beforeDelete - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.beforeDelete.reduce(async (priorHook, hook) => {\n await priorHook\n\n return hook({\n id,\n collection: collectionConfig,\n context: req.context,\n req,\n })\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // Retrieve document\n // /////////////////////////////////////\n\n const docToDelete = await req.payload.db.findOne({\n collection: collectionConfig.slug,\n locale: req.locale,\n req,\n where: combineQueries({ id: { equals: id } }, accessResults),\n })\n\n if (!docToDelete && !hasWhereAccess) {\n throw new NotFound(req.t)\n }\n if (!docToDelete && hasWhereAccess) {\n throw new Forbidden(req.t)\n }\n\n // /////////////////////////////////////\n // Handle potentially locked documents\n // /////////////////////////////////////\n\n await checkDocumentLockStatus({\n id,\n collectionSlug: collectionConfig.slug,\n lockErrorMessage: `Document with ID ${id} is currently locked and cannot be deleted.`,\n overrideLock,\n req,\n })\n\n await deleteAssociatedFiles({\n collectionConfig,\n config,\n doc: docToDelete,\n overrideDelete: true,\n req,\n })\n\n // /////////////////////////////////////\n // Delete versions\n // /////////////////////////////////////\n\n if (collectionConfig.versions) {\n await deleteCollectionVersions({\n id,\n slug: collectionConfig.slug,\n payload,\n req,\n })\n }\n\n // /////////////////////////////////////\n // Delete document\n // /////////////////////////////////////\n\n let result: DataFromCollectionSlug<TSlug> = await req.payload.db.deleteOne({\n collection: collectionConfig.slug,\n req,\n select,\n where: { id: { equals: id } },\n })\n\n // /////////////////////////////////////\n // Delete Preferences\n // /////////////////////////////////////\n\n await deleteUserPreferences({\n collectionConfig,\n ids: [id],\n payload,\n req,\n })\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth,\n doc: result,\n draft: undefined,\n fallbackLocale,\n global: null,\n locale,\n overrideAccess,\n req,\n select,\n showHiddenFields,\n })\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterDelete - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterDelete.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n id,\n collection: collectionConfig,\n context: req.context,\n doc: result,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation({\n args,\n collection: collectionConfig,\n operation: 'deleteByID',\n result,\n })\n\n // /////////////////////////////////////\n // 8. Return results\n // /////////////////////////////////////\n\n if (shouldCommit) {\n await commitTransaction(req)\n }\n\n return result as TransformCollectionWithSelect<TSlug, TSelect>\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["executeAccess","hasWhereAccessResult","combineQueries","Forbidden","NotFound","afterRead","deleteUserPreferences","deleteAssociatedFiles","checkDocumentLockStatus","commitTransaction","initTransaction","killTransaction","deleteCollectionVersions","buildAfterOperation","deleteByIDOperation","incomingArgs","args","shouldCommit","disableTransaction","req","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","operation","Promise","resolve","id","collectionConfig","depth","overrideAccess","overrideLock","fallbackLocale","locale","payload","select","showHiddenFields","accessResults","access","delete","hasWhereAccess","beforeDelete","docToDelete","db","findOne","slug","where","equals","t","collectionSlug","lockErrorMessage","doc","overrideDelete","versions","result","deleteOne","ids","draft","undefined","global","afterDelete","error"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { CollectionSlug } from '../../index.js';
2
- import type { PayloadRequest } from '../../types/index.js';
3
- import type { Collection, DataFromCollectionSlug } from '../config/types.js';
2
+ import type { PayloadRequest, SelectType, TransformCollectionWithSelect } from '../../types/index.js';
3
+ import type { Collection, SelectFromCollectionSlug } from '../config/types.js';
4
4
  export type Arguments = {
5
5
  collection: Collection;
6
6
  depth?: number;
@@ -9,7 +9,8 @@ export type Arguments = {
9
9
  id: number | string;
10
10
  overrideAccess?: boolean;
11
11
  req: PayloadRequest;
12
+ select?: SelectType;
12
13
  showHiddenFields?: boolean;
13
14
  };
14
- export declare const duplicateOperation: <TSlug extends CollectionSlug>(incomingArgs: Arguments) => Promise<DataFromCollectionSlug<TSlug>>;
15
+ export declare const duplicateOperation: <TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(incomingArgs: Arguments) => Promise<TransformCollectionWithSelect<TSlug, TSelect>>;
15
16
  //# sourceMappingURL=duplicate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"duplicate.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/duplicate.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAoB5E,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAU,KAAK,SAAS,cAAc,gBACrD,SAAS,KACtB,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAwUvC,CAAA"}
1
+ {"version":3,"file":"duplicate.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/duplicate.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EACV,6BAA6B,EAC9B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EACV,UAAU,EAEV,wBAAwB,EACzB,MAAM,oBAAoB,CAAA;AAqB3B,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,kBAAkB,GAC7B,KAAK,SAAS,cAAc,EAC5B,OAAO,SAAS,wBAAwB,CAAC,KAAK,CAAC,gBAEjC,SAAS,KACtB,OAAO,CAAC,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,CA6UvD,CAAA"}
@@ -13,6 +13,7 @@ import { uploadFiles } from '../../uploads/uploadFiles.js';
13
13
  import { commitTransaction } from '../../utilities/commitTransaction.js';
14
14
  import { initTransaction } from '../../utilities/initTransaction.js';
15
15
  import { killTransaction } from '../../utilities/killTransaction.js';
16
+ import sanitizeInternalFields from '../../utilities/sanitizeInternalFields.js';
16
17
  import { getLatestCollectionVersion } from '../../versions/getLatestCollectionVersion.js';
17
18
  import { saveVersion } from '../../versions/saveVersion.js';
18
19
  import { buildAfterOperation } from './utils.js';
@@ -34,7 +35,7 @@ export const duplicateOperation = async (incomingArgs)=>{
34
35
  req: args.req
35
36
  }) || args;
36
37
  }, Promise.resolve());
37
- const { id, collection: { config: collectionConfig }, depth, draft: draftArg = true, overrideAccess, req: { fallbackLocale, locale: localeArg, payload }, req, showHiddenFields } = args;
38
+ const { id, collection: { config: collectionConfig }, depth, draft: draftArg = true, overrideAccess, req: { fallbackLocale, locale: localeArg, payload }, req, select, showHiddenFields } = args;
38
39
  if (!id) {
39
40
  throw new APIError('Missing ID of document to duplicate.', httpStatus.BAD_REQUEST);
40
41
  }
@@ -190,11 +191,13 @@ export const duplicateOperation = async (incomingArgs)=>{
190
191
  if (!collectionConfig.upload.disableLocalStorage) {
191
192
  await uploadFiles(payload, filesToUpload, req);
192
193
  }
193
- const versionDoc = await payload.db.create({
194
+ let versionDoc = await payload.db.create({
194
195
  collection: collectionConfig.slug,
195
196
  data: result,
196
- req
197
+ req,
198
+ select
197
199
  });
200
+ versionDoc = sanitizeInternalFields(versionDoc);
198
201
  // /////////////////////////////////////
199
202
  // Create version
200
203
  // /////////////////////////////////////
@@ -222,6 +225,7 @@ export const duplicateOperation = async (incomingArgs)=>{
222
225
  locale: localeArg,
223
226
  overrideAccess,
224
227
  req,
228
+ select,
225
229
  showHiddenFields
226
230
  });
227
231
  // /////////////////////////////////////