payload 3.0.0-beta.107 → 3.0.0-beta.109

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 (218) hide show
  1. package/dist/admin/fields/Join.d.ts +18 -0
  2. package/dist/admin/fields/Join.d.ts.map +1 -0
  3. package/dist/admin/fields/Join.js +3 -0
  4. package/dist/admin/fields/Join.js.map +1 -0
  5. package/dist/admin/forms/Label.d.ts +2 -2
  6. package/dist/admin/forms/Label.d.ts.map +1 -1
  7. package/dist/admin/forms/Label.js.map +1 -1
  8. package/dist/admin/types.d.ts +1 -0
  9. package/dist/admin/types.d.ts.map +1 -1
  10. package/dist/admin/types.js.map +1 -1
  11. package/dist/auth/operations/login.d.ts.map +1 -1
  12. package/dist/auth/operations/login.js +2 -1
  13. package/dist/auth/operations/login.js.map +1 -1
  14. package/dist/auth/operations/me.d.ts.map +1 -1
  15. package/dist/auth/operations/me.js +3 -1
  16. package/dist/auth/operations/me.js.map +1 -1
  17. package/dist/auth/operations/refresh.d.ts.map +1 -1
  18. package/dist/auth/operations/refresh.js +3 -0
  19. package/dist/auth/operations/refresh.js.map +1 -1
  20. package/dist/auth/types.d.ts +7 -3
  21. package/dist/auth/types.d.ts.map +1 -1
  22. package/dist/auth/types.js.map +1 -1
  23. package/dist/checkPayloadDependencies.d.ts.map +1 -1
  24. package/dist/checkPayloadDependencies.js +1 -44
  25. package/dist/checkPayloadDependencies.js.map +1 -1
  26. package/dist/collections/config/client.d.ts +2 -2
  27. package/dist/collections/config/client.d.ts.map +1 -1
  28. package/dist/collections/config/client.js.map +1 -1
  29. package/dist/collections/config/sanitize.d.ts.map +1 -1
  30. package/dist/collections/config/sanitize.js +6 -1
  31. package/dist/collections/config/sanitize.js.map +1 -1
  32. package/dist/collections/config/types.d.ts +31 -9
  33. package/dist/collections/config/types.d.ts.map +1 -1
  34. package/dist/collections/config/types.js.map +1 -1
  35. package/dist/collections/operations/delete.d.ts +1 -0
  36. package/dist/collections/operations/delete.d.ts.map +1 -1
  37. package/dist/collections/operations/delete.js +12 -1
  38. package/dist/collections/operations/delete.js.map +1 -1
  39. package/dist/collections/operations/deleteByID.d.ts +1 -0
  40. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  41. package/dist/collections/operations/deleteByID.js +12 -1
  42. package/dist/collections/operations/deleteByID.js.map +1 -1
  43. package/dist/collections/operations/find.d.ts +3 -1
  44. package/dist/collections/operations/find.d.ts.map +1 -1
  45. package/dist/collections/operations/find.js +43 -2
  46. package/dist/collections/operations/find.js.map +1 -1
  47. package/dist/collections/operations/findByID.d.ts +3 -1
  48. package/dist/collections/operations/findByID.d.ts.map +1 -1
  49. package/dist/collections/operations/findByID.js +38 -1
  50. package/dist/collections/operations/findByID.js.map +1 -1
  51. package/dist/collections/operations/findVersions.js +1 -1
  52. package/dist/collections/operations/findVersions.js.map +1 -1
  53. package/dist/collections/operations/local/delete.d.ts +1 -0
  54. package/dist/collections/operations/local/delete.d.ts.map +1 -1
  55. package/dist/collections/operations/local/delete.js +2 -1
  56. package/dist/collections/operations/local/delete.js.map +1 -1
  57. package/dist/collections/operations/local/find.d.ts +3 -1
  58. package/dist/collections/operations/local/find.d.ts.map +1 -1
  59. package/dist/collections/operations/local/find.js +3 -1
  60. package/dist/collections/operations/local/find.js.map +1 -1
  61. package/dist/collections/operations/local/findByID.d.ts +5 -3
  62. package/dist/collections/operations/local/findByID.d.ts.map +1 -1
  63. package/dist/collections/operations/local/findByID.js +3 -1
  64. package/dist/collections/operations/local/findByID.js.map +1 -1
  65. package/dist/collections/operations/local/update.d.ts +2 -0
  66. package/dist/collections/operations/local/update.d.ts.map +1 -1
  67. package/dist/collections/operations/local/update.js +3 -1
  68. package/dist/collections/operations/local/update.js.map +1 -1
  69. package/dist/collections/operations/update.d.ts +1 -0
  70. package/dist/collections/operations/update.d.ts.map +1 -1
  71. package/dist/collections/operations/update.js +13 -2
  72. package/dist/collections/operations/update.js.map +1 -1
  73. package/dist/collections/operations/updateByID.d.ts +2 -0
  74. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  75. package/dist/collections/operations/updateByID.js +44 -5
  76. package/dist/collections/operations/updateByID.js.map +1 -1
  77. package/dist/config/client.d.ts +1 -1
  78. package/dist/config/client.d.ts.map +1 -1
  79. package/dist/config/client.js +2 -1
  80. package/dist/config/client.js.map +1 -1
  81. package/dist/config/defaults.d.ts.map +1 -1
  82. package/dist/config/defaults.js +2 -1
  83. package/dist/config/defaults.js.map +1 -1
  84. package/dist/config/sanitize.d.ts.map +1 -1
  85. package/dist/config/sanitize.js +2 -0
  86. package/dist/config/sanitize.js.map +1 -1
  87. package/dist/config/types.d.ts +35 -3
  88. package/dist/config/types.d.ts.map +1 -1
  89. package/dist/config/types.js.map +1 -1
  90. package/dist/database/queryValidation/validateSearchParams.d.ts.map +1 -1
  91. package/dist/database/queryValidation/validateSearchParams.js +6 -1
  92. package/dist/database/queryValidation/validateSearchParams.js.map +1 -1
  93. package/dist/database/types.d.ts +26 -2
  94. package/dist/database/types.d.ts.map +1 -1
  95. package/dist/database/types.js.map +1 -1
  96. package/dist/errors/InvalidFieldJoin.d.ts +6 -0
  97. package/dist/errors/InvalidFieldJoin.d.ts.map +1 -0
  98. package/dist/errors/InvalidFieldJoin.js +8 -0
  99. package/dist/errors/InvalidFieldJoin.js.map +1 -0
  100. package/dist/errors/Locked.d.ts +5 -0
  101. package/dist/errors/Locked.d.ts.map +1 -0
  102. package/dist/errors/Locked.js +9 -0
  103. package/dist/errors/Locked.js.map +1 -0
  104. package/dist/errors/index.d.ts +1 -0
  105. package/dist/errors/index.d.ts.map +1 -1
  106. package/dist/errors/index.js +1 -0
  107. package/dist/errors/index.js.map +1 -1
  108. package/dist/exports/shared.d.ts +1 -1
  109. package/dist/exports/shared.d.ts.map +1 -1
  110. package/dist/exports/shared.js +1 -1
  111. package/dist/exports/shared.js.map +1 -1
  112. package/dist/fields/config/client.d.ts +1 -1
  113. package/dist/fields/config/client.d.ts.map +1 -1
  114. package/dist/fields/config/client.js.map +1 -1
  115. package/dist/fields/config/sanitize.d.ts +7 -2
  116. package/dist/fields/config/sanitize.d.ts.map +1 -1
  117. package/dist/fields/config/sanitize.js +27 -5
  118. package/dist/fields/config/sanitize.js.map +1 -1
  119. package/dist/fields/config/sanitizeJoinField.d.ts +10 -0
  120. package/dist/fields/config/sanitizeJoinField.d.ts.map +1 -0
  121. package/dist/fields/config/sanitizeJoinField.js +68 -0
  122. package/dist/fields/config/sanitizeJoinField.js.map +1 -0
  123. package/dist/fields/config/types.d.ts +108 -48
  124. package/dist/fields/config/types.d.ts.map +1 -1
  125. package/dist/fields/config/types.js +4 -1
  126. package/dist/fields/config/types.js.map +1 -1
  127. package/dist/fields/hooks/afterRead/promise.js +1 -1
  128. package/dist/fields/hooks/afterRead/promise.js.map +1 -1
  129. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts +2 -2
  130. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts.map +1 -1
  131. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js +16 -9
  132. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js.map +1 -1
  133. package/dist/fields/hooks/beforeChange/index.d.ts +1 -2
  134. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  135. package/dist/fields/hooks/beforeChange/index.js.map +1 -1
  136. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  137. package/dist/fields/hooks/beforeChange/promise.js +1 -1
  138. package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
  139. package/dist/fields/validations.d.ts +11 -1
  140. package/dist/fields/validations.d.ts.map +1 -1
  141. package/dist/fields/validations.js.map +1 -1
  142. package/dist/globals/config/types.d.ts +7 -0
  143. package/dist/globals/config/types.d.ts.map +1 -1
  144. package/dist/globals/config/types.js.map +1 -1
  145. package/dist/globals/operations/findOne.d.ts +1 -0
  146. package/dist/globals/operations/findOne.d.ts.map +1 -1
  147. package/dist/globals/operations/findOne.js +28 -1
  148. package/dist/globals/operations/findOne.js.map +1 -1
  149. package/dist/globals/operations/findVersions.js +1 -1
  150. package/dist/globals/operations/findVersions.js.map +1 -1
  151. package/dist/globals/operations/local/findOne.d.ts +1 -0
  152. package/dist/globals/operations/local/findOne.d.ts.map +1 -1
  153. package/dist/globals/operations/local/findOne.js +2 -1
  154. package/dist/globals/operations/local/findOne.js.map +1 -1
  155. package/dist/globals/operations/local/update.d.ts +2 -0
  156. package/dist/globals/operations/local/update.d.ts.map +1 -1
  157. package/dist/globals/operations/local/update.js +3 -1
  158. package/dist/globals/operations/local/update.js.map +1 -1
  159. package/dist/globals/operations/update.d.ts +2 -0
  160. package/dist/globals/operations/update.d.ts.map +1 -1
  161. package/dist/globals/operations/update.js +47 -7
  162. package/dist/globals/operations/update.js.map +1 -1
  163. package/dist/index.d.ts +15 -9
  164. package/dist/index.d.ts.map +1 -1
  165. package/dist/index.js +28 -10
  166. package/dist/index.js.map +1 -1
  167. package/dist/lockedDocuments/lockedDocumentsCollection.d.ts +4 -0
  168. package/dist/lockedDocuments/lockedDocumentsCollection.d.ts.map +1 -0
  169. package/dist/lockedDocuments/lockedDocumentsCollection.js +31 -0
  170. package/dist/lockedDocuments/lockedDocumentsCollection.js.map +1 -0
  171. package/dist/preferences/operations/update.d.ts.map +1 -1
  172. package/dist/preferences/operations/update.js +6 -17
  173. package/dist/preferences/operations/update.js.map +1 -1
  174. package/dist/types/index.d.ts +11 -2
  175. package/dist/types/index.d.ts.map +1 -1
  176. package/dist/types/index.js.map +1 -1
  177. package/dist/utilities/checkDocumentLockStatus.d.ts +13 -0
  178. package/dist/utilities/checkDocumentLockStatus.d.ts.map +1 -0
  179. package/dist/utilities/checkDocumentLockStatus.js +66 -0
  180. package/dist/utilities/checkDocumentLockStatus.js.map +1 -0
  181. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  182. package/dist/utilities/configToJSONSchema.js +26 -0
  183. package/dist/utilities/configToJSONSchema.js.map +1 -1
  184. package/dist/utilities/traverseFields.d.ts +36 -0
  185. package/dist/utilities/traverseFields.d.ts.map +1 -0
  186. package/dist/utilities/traverseFields.js +81 -0
  187. package/dist/utilities/traverseFields.js.map +1 -0
  188. package/dist/versions/baseFields.d.ts +1 -0
  189. package/dist/versions/baseFields.d.ts.map +1 -1
  190. package/dist/versions/baseFields.js +14 -0
  191. package/dist/versions/baseFields.js.map +1 -1
  192. package/dist/versions/buildCollectionFields.d.ts +2 -1
  193. package/dist/versions/buildCollectionFields.d.ts.map +1 -1
  194. package/dist/versions/buildCollectionFields.js +27 -8
  195. package/dist/versions/buildCollectionFields.js.map +1 -1
  196. package/dist/versions/buildGlobalFields.d.ts +2 -1
  197. package/dist/versions/buildGlobalFields.d.ts.map +1 -1
  198. package/dist/versions/buildGlobalFields.js +27 -8
  199. package/dist/versions/buildGlobalFields.js.map +1 -1
  200. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
  201. package/dist/versions/drafts/replaceWithDraftIfAvailable.js +12 -3
  202. package/dist/versions/drafts/replaceWithDraftIfAvailable.js.map +1 -1
  203. package/dist/versions/getLatestCollectionVersion.d.ts +2 -1
  204. package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
  205. package/dist/versions/getLatestCollectionVersion.js +38 -13
  206. package/dist/versions/getLatestCollectionVersion.js.map +1 -1
  207. package/dist/versions/getLatestGlobalVersion.d.ts +2 -1
  208. package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
  209. package/dist/versions/getLatestGlobalVersion.js +12 -4
  210. package/dist/versions/getLatestGlobalVersion.js.map +1 -1
  211. package/dist/versions/saveVersion.d.ts +3 -1
  212. package/dist/versions/saveVersion.d.ts.map +1 -1
  213. package/dist/versions/saveVersion.js +44 -20
  214. package/dist/versions/saveVersion.js.map +1 -1
  215. package/dist/versions/types.d.ts +2 -0
  216. package/dist/versions/types.d.ts.map +1 -1
  217. package/dist/versions/types.js.map +1 -1
  218. package/package.json +3 -3
@@ -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 { 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 id: number | string\n overrideAccess?: 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 = 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 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 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","commitTransaction","initTransaction","killTransaction","deleteCollectionVersions","buildAfterOperation","deleteByIDOperation","incomingArgs","args","shouldCommit","req","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","operation","Promise","resolve","id","collectionConfig","depth","overrideAccess","fallbackLocale","locale","payload","showHiddenFields","accessResults","access","delete","hasWhereAccess","beforeDelete","docToDelete","db","findOne","slug","where","equals","t","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 { 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 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 = 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","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,5 +1,5 @@
1
1
  import type { PaginatedDocs } from '../../database/types.js';
2
- import type { CollectionSlug } from '../../index.js';
2
+ import type { CollectionSlug, JoinQuery } from '../../index.js';
3
3
  import type { PayloadRequest, Where } from '../../types/index.js';
4
4
  import type { Collection, DataFromCollectionSlug } from '../config/types.js';
5
5
  export type Arguments = {
@@ -8,6 +8,8 @@ export type Arguments = {
8
8
  depth?: number;
9
9
  disableErrors?: boolean;
10
10
  draft?: boolean;
11
+ includeLockStatus?: boolean;
12
+ joins?: JoinQuery;
11
13
  limit?: number;
12
14
  overrideAccess?: boolean;
13
15
  page?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/find.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAY5E,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,eAAO,MAAM,aAAa,GAAU,KAAK,SAAS,cAAc,gBAChD,SAAS,KACtB,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CA8NtD,CAAA"}
1
+ {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/find.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAY5E,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,eAAO,MAAM,aAAa,GAAU,KAAK,SAAS,cAAc,gBAChD,SAAS,KACtB,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CA4QtD,CAAA"}
@@ -23,7 +23,7 @@ export const findOperation = async (incomingArgs)=>{
23
23
  req: args.req
24
24
  }) || args;
25
25
  }, Promise.resolve());
26
- const { collection: { config: collectionConfig }, collection, currentDepth, depth, disableErrors, draft: draftsEnabled, limit, overrideAccess, page, pagination = true, req: { fallbackLocale, locale, payload }, req, showHiddenFields, sort, where } = args;
26
+ const { collection: { config: collectionConfig }, collection, currentDepth, depth, disableErrors, draft: draftsEnabled, includeLockStatus, joins, limit, overrideAccess, page, pagination = true, req: { fallbackLocale, locale, payload }, req, showHiddenFields, sort, where } = args;
27
27
  // /////////////////////////////////////
28
28
  // Access
29
29
  // /////////////////////////////////////
@@ -63,7 +63,7 @@ export const findOperation = async (incomingArgs)=>{
63
63
  collectionConfig: collection.config,
64
64
  overrideAccess,
65
65
  req,
66
- versionFields: buildVersionCollectionFields(collection.config),
66
+ versionFields: buildVersionCollectionFields(payload.config, collection.config),
67
67
  where: fullWhere
68
68
  });
69
69
  result = await payload.db.queryDrafts({
@@ -85,6 +85,7 @@ export const findOperation = async (incomingArgs)=>{
85
85
  });
86
86
  result = await payload.db.find({
87
87
  collection: collectionConfig.slug,
88
+ joins: req.payloadAPI === 'GraphQL' ? false : joins,
88
89
  limit: sanitizedLimit,
89
90
  locale,
90
91
  page: sanitizedPage,
@@ -94,6 +95,46 @@ export const findOperation = async (incomingArgs)=>{
94
95
  where: fullWhere
95
96
  });
96
97
  }
98
+ if (includeLockStatus) {
99
+ try {
100
+ const lockedDocuments = await payload.find({
101
+ collection: 'payload-locked-documents',
102
+ depth: 1,
103
+ limit: sanitizedLimit,
104
+ pagination: false,
105
+ req,
106
+ where: {
107
+ and: [
108
+ {
109
+ 'document.relationTo': {
110
+ equals: collectionConfig.slug
111
+ }
112
+ },
113
+ {
114
+ 'document.value': {
115
+ in: result.docs.map((doc)=>doc.id)
116
+ }
117
+ }
118
+ ]
119
+ }
120
+ });
121
+ const lockedDocs = Array.isArray(lockedDocuments?.docs) ? lockedDocuments.docs : [];
122
+ result.docs = result.docs.map((doc)=>{
123
+ const lockedDoc = lockedDocs.find((lock)=>lock?.document?.value === doc.id);
124
+ return {
125
+ ...doc,
126
+ _isLocked: !!lockedDoc,
127
+ _userEditing: lockedDoc ? lockedDoc?.user?.value : null
128
+ };
129
+ });
130
+ } catch (error) {
131
+ result.docs = result.docs.map((doc)=>({
132
+ ...doc,
133
+ _isLocked: false,
134
+ _userEditing: null
135
+ }));
136
+ }
137
+ }
97
138
  // /////////////////////////////////////
98
139
  // beforeRead - Collection
99
140
  // /////////////////////////////////////
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/collections/operations/find.ts"],"sourcesContent":["import type { AccessResult } from '../../config/types.js'\nimport type { PaginatedDocs } from '../../database/types.js'\nimport type { CollectionSlug } from '../../index.js'\nimport type { PayloadRequest, Where } from '../../types/index.js'\nimport type { 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 { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { buildVersionCollectionFields } from '../../versions/buildCollectionFields.js'\nimport { appendVersionToQueryKey } from '../../versions/drafts/appendVersionToQueryKey.js'\nimport { getQueryDraftsSort } from '../../versions/drafts/getQueryDraftsSort.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type Arguments = {\n collection: Collection\n currentDepth?: number\n depth?: number\n disableErrors?: boolean\n draft?: boolean\n limit?: number\n overrideAccess?: boolean\n page?: number\n pagination?: boolean\n req?: PayloadRequest\n showHiddenFields?: boolean\n sort?: string\n where?: Where\n}\n\nexport const findOperation = async <TSlug extends CollectionSlug>(\n incomingArgs: Arguments,\n): Promise<PaginatedDocs<DataFromCollectionSlug<TSlug>>> => {\n let args = incomingArgs\n\n try {\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n await args.collection.config.hooks.beforeOperation.reduce(async (priorHook, hook) => {\n await priorHook\n\n args =\n (await hook({\n args,\n collection: args.collection.config,\n context: args.req.context,\n operation: 'read',\n req: args.req,\n })) || args\n }, Promise.resolve())\n\n const {\n collection: { config: collectionConfig },\n collection,\n currentDepth,\n depth,\n disableErrors,\n draft: draftsEnabled,\n limit,\n overrideAccess,\n page,\n pagination = true,\n req: { fallbackLocale, locale, payload },\n req,\n showHiddenFields,\n sort,\n where,\n } = args\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n let accessResult: AccessResult\n\n if (!overrideAccess) {\n accessResult = await executeAccess({ disableErrors, req }, collectionConfig.access.read)\n\n // If errors are disabled, and access returns false, return empty results\n if (accessResult === false) {\n return {\n docs: [],\n hasNextPage: false,\n hasPrevPage: false,\n limit,\n nextPage: null,\n page: 1,\n pagingCounter: 1,\n prevPage: null,\n totalDocs: 0,\n totalPages: 1,\n }\n }\n }\n\n // /////////////////////////////////////\n // Find\n // /////////////////////////////////////\n\n const usePagination = pagination && limit !== 0\n const sanitizedLimit = limit ?? (usePagination ? 10 : 0)\n const sanitizedPage = page || 1\n\n let result: PaginatedDocs<DataFromCollectionSlug<TSlug>>\n\n let fullWhere = combineQueries(where, accessResult)\n\n if (collectionConfig.versions?.drafts && draftsEnabled) {\n fullWhere = appendVersionToQueryKey(fullWhere)\n\n await validateQueryPaths({\n collectionConfig: collection.config,\n overrideAccess,\n req,\n versionFields: buildVersionCollectionFields(collection.config),\n where: fullWhere,\n })\n\n result = await payload.db.queryDrafts<DataFromCollectionSlug<TSlug>>({\n collection: collectionConfig.slug,\n limit: sanitizedLimit,\n locale,\n page: sanitizedPage,\n pagination: usePagination,\n req,\n sort: getQueryDraftsSort(sort),\n where: fullWhere,\n })\n } else {\n await validateQueryPaths({\n collectionConfig,\n overrideAccess,\n req,\n where,\n })\n\n result = await payload.db.find<DataFromCollectionSlug<TSlug>>({\n collection: collectionConfig.slug,\n limit: sanitizedLimit,\n locale,\n page: sanitizedPage,\n pagination,\n req,\n sort,\n where: fullWhere,\n })\n }\n\n // /////////////////////////////////////\n // beforeRead - Collection\n // /////////////////////////////////////\n\n result = {\n ...result,\n docs: await Promise.all(\n result.docs.map(async (doc) => {\n let docRef = doc\n\n await collectionConfig.hooks.beforeRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n docRef =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: docRef,\n query: fullWhere,\n req,\n })) || docRef\n }, Promise.resolve())\n\n return docRef\n }),\n ),\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = {\n ...result,\n docs: await Promise.all(\n result.docs.map(async (doc) =>\n afterRead<DataFromCollectionSlug<TSlug>>({\n collection: collectionConfig,\n context: req.context,\n currentDepth,\n depth,\n doc,\n draft: draftsEnabled,\n fallbackLocale,\n findMany: true,\n global: null,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n }),\n ),\n ),\n }\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n result = {\n ...result,\n docs: await Promise.all(\n result.docs.map(async (doc) => {\n let docRef = doc\n\n await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n docRef =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: docRef,\n findMany: true,\n query: fullWhere,\n req,\n })) || doc\n }, Promise.resolve())\n\n return docRef\n }),\n ),\n }\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation({\n args,\n collection: collectionConfig,\n operation: 'find',\n result,\n })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n return result\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["executeAccess","combineQueries","validateQueryPaths","afterRead","killTransaction","buildVersionCollectionFields","appendVersionToQueryKey","getQueryDraftsSort","buildAfterOperation","findOperation","incomingArgs","args","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","req","operation","Promise","resolve","collectionConfig","currentDepth","depth","disableErrors","draft","draftsEnabled","limit","overrideAccess","page","pagination","fallbackLocale","locale","payload","showHiddenFields","sort","where","accessResult","access","read","docs","hasNextPage","hasPrevPage","nextPage","pagingCounter","prevPage","totalDocs","totalPages","usePagination","sanitizedLimit","sanitizedPage","result","fullWhere","versions","drafts","versionFields","db","queryDrafts","slug","find","all","map","doc","docRef","beforeRead","query","findMany","global","error"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/collections/operations/find.ts"],"sourcesContent":["import type { AccessResult } from '../../config/types.js'\nimport type { PaginatedDocs } from '../../database/types.js'\nimport type { CollectionSlug, JoinQuery } from '../../index.js'\nimport type { PayloadRequest, Where } from '../../types/index.js'\nimport type { 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 { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { buildVersionCollectionFields } from '../../versions/buildCollectionFields.js'\nimport { appendVersionToQueryKey } from '../../versions/drafts/appendVersionToQueryKey.js'\nimport { getQueryDraftsSort } from '../../versions/drafts/getQueryDraftsSort.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type Arguments = {\n collection: Collection\n currentDepth?: number\n depth?: number\n disableErrors?: boolean\n draft?: boolean\n includeLockStatus?: boolean\n joins?: JoinQuery\n limit?: number\n overrideAccess?: boolean\n page?: number\n pagination?: boolean\n req?: PayloadRequest\n showHiddenFields?: boolean\n sort?: string\n where?: Where\n}\n\nexport const findOperation = async <TSlug extends CollectionSlug>(\n incomingArgs: Arguments,\n): Promise<PaginatedDocs<DataFromCollectionSlug<TSlug>>> => {\n let args = incomingArgs\n\n try {\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n await args.collection.config.hooks.beforeOperation.reduce(async (priorHook, hook) => {\n await priorHook\n\n args =\n (await hook({\n args,\n collection: args.collection.config,\n context: args.req.context,\n operation: 'read',\n req: args.req,\n })) || args\n }, Promise.resolve())\n\n const {\n collection: { config: collectionConfig },\n collection,\n currentDepth,\n depth,\n disableErrors,\n draft: draftsEnabled,\n includeLockStatus,\n joins,\n limit,\n overrideAccess,\n page,\n pagination = true,\n req: { fallbackLocale, locale, payload },\n req,\n showHiddenFields,\n sort,\n where,\n } = args\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n let accessResult: AccessResult\n\n if (!overrideAccess) {\n accessResult = await executeAccess({ disableErrors, req }, collectionConfig.access.read)\n\n // If errors are disabled, and access returns false, return empty results\n if (accessResult === false) {\n return {\n docs: [],\n hasNextPage: false,\n hasPrevPage: false,\n limit,\n nextPage: null,\n page: 1,\n pagingCounter: 1,\n prevPage: null,\n totalDocs: 0,\n totalPages: 1,\n }\n }\n }\n\n // /////////////////////////////////////\n // Find\n // /////////////////////////////////////\n\n const usePagination = pagination && limit !== 0\n const sanitizedLimit = limit ?? (usePagination ? 10 : 0)\n const sanitizedPage = page || 1\n\n let result: PaginatedDocs<DataFromCollectionSlug<TSlug>>\n\n let fullWhere = combineQueries(where, accessResult)\n\n if (collectionConfig.versions?.drafts && draftsEnabled) {\n fullWhere = appendVersionToQueryKey(fullWhere)\n\n await validateQueryPaths({\n collectionConfig: collection.config,\n overrideAccess,\n req,\n versionFields: buildVersionCollectionFields(payload.config, collection.config),\n where: fullWhere,\n })\n\n result = await payload.db.queryDrafts<DataFromCollectionSlug<TSlug>>({\n collection: collectionConfig.slug,\n limit: sanitizedLimit,\n locale,\n page: sanitizedPage,\n pagination: usePagination,\n req,\n sort: getQueryDraftsSort(sort),\n where: fullWhere,\n })\n } else {\n await validateQueryPaths({\n collectionConfig,\n overrideAccess,\n req,\n where,\n })\n\n result = await payload.db.find<DataFromCollectionSlug<TSlug>>({\n collection: collectionConfig.slug,\n joins: req.payloadAPI === 'GraphQL' ? false : joins,\n limit: sanitizedLimit,\n locale,\n page: sanitizedPage,\n pagination,\n req,\n sort,\n where: fullWhere,\n })\n }\n\n if (includeLockStatus) {\n try {\n const lockedDocuments = await payload.find({\n collection: 'payload-locked-documents',\n depth: 1,\n limit: sanitizedLimit,\n pagination: false,\n req,\n where: {\n and: [\n {\n 'document.relationTo': {\n equals: collectionConfig.slug,\n },\n },\n {\n 'document.value': {\n in: result.docs.map((doc) => doc.id),\n },\n },\n ],\n },\n })\n\n const lockedDocs = Array.isArray(lockedDocuments?.docs) ? lockedDocuments.docs : []\n\n result.docs = result.docs.map((doc) => {\n const lockedDoc = lockedDocs.find((lock) => lock?.document?.value === doc.id)\n return {\n ...doc,\n _isLocked: !!lockedDoc,\n _userEditing: lockedDoc ? lockedDoc?.user?.value : null,\n }\n })\n } catch (error) {\n result.docs = result.docs.map((doc) => ({\n ...doc,\n _isLocked: false,\n _userEditing: null,\n }))\n }\n }\n\n // /////////////////////////////////////\n // beforeRead - Collection\n // /////////////////////////////////////\n\n result = {\n ...result,\n docs: await Promise.all(\n result.docs.map(async (doc) => {\n let docRef = doc\n\n await collectionConfig.hooks.beforeRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n docRef =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: docRef,\n query: fullWhere,\n req,\n })) || docRef\n }, Promise.resolve())\n\n return docRef\n }),\n ),\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = {\n ...result,\n docs: await Promise.all(\n result.docs.map(async (doc) =>\n afterRead<DataFromCollectionSlug<TSlug>>({\n collection: collectionConfig,\n context: req.context,\n currentDepth,\n depth,\n doc,\n draft: draftsEnabled,\n fallbackLocale,\n findMany: true,\n global: null,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n }),\n ),\n ),\n }\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n result = {\n ...result,\n docs: await Promise.all(\n result.docs.map(async (doc) => {\n let docRef = doc\n\n await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n docRef =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: docRef,\n findMany: true,\n query: fullWhere,\n req,\n })) || doc\n }, Promise.resolve())\n\n return docRef\n }),\n ),\n }\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation({\n args,\n collection: collectionConfig,\n operation: 'find',\n result,\n })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n return result\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["executeAccess","combineQueries","validateQueryPaths","afterRead","killTransaction","buildVersionCollectionFields","appendVersionToQueryKey","getQueryDraftsSort","buildAfterOperation","findOperation","incomingArgs","args","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","req","operation","Promise","resolve","collectionConfig","currentDepth","depth","disableErrors","draft","draftsEnabled","includeLockStatus","joins","limit","overrideAccess","page","pagination","fallbackLocale","locale","payload","showHiddenFields","sort","where","accessResult","access","read","docs","hasNextPage","hasPrevPage","nextPage","pagingCounter","prevPage","totalDocs","totalPages","usePagination","sanitizedLimit","sanitizedPage","result","fullWhere","versions","drafts","versionFields","db","queryDrafts","slug","find","payloadAPI","lockedDocuments","and","equals","in","map","doc","id","lockedDocs","Array","isArray","lockedDoc","lock","document","value","_isLocked","_userEditing","user","error","all","docRef","beforeRead","query","findMany","global"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { CollectionSlug } from '../../index.js';
1
+ import type { CollectionSlug, JoinQuery } from '../../index.js';
2
2
  import type { PayloadRequest } from '../../types/index.js';
3
3
  import type { Collection, DataFromCollectionSlug } from '../config/types.js';
4
4
  export type Arguments = {
@@ -8,6 +8,8 @@ export type Arguments = {
8
8
  disableErrors?: boolean;
9
9
  draft?: boolean;
10
10
  id: number | string;
11
+ includeLockStatus?: boolean;
12
+ joins?: JoinQuery;
11
13
  overrideAccess?: boolean;
12
14
  req: PayloadRequest;
13
15
  showHiddenFields?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"findByID.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/findByID.ts"],"names":[],"mappings":"AACA,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;AAU5E,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,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,iBAAiB,GAAU,KAAK,SAAS,cAAc,gBACpD,SAAS,KACtB,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAkKvC,CAAA"}
1
+ {"version":3,"file":"findByID.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/findByID.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAU5E,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAU,KAAK,SAAS,cAAc,gBACpD,SAAS,KACtB,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CA8MvC,CAAA"}
@@ -21,7 +21,7 @@ export const findByIDOperation = async (incomingArgs)=>{
21
21
  req: args.req
22
22
  }) || args;
23
23
  }, Promise.resolve());
24
- const { id, collection: { config: collectionConfig }, currentDepth, depth, disableErrors, draft: draftEnabled = false, overrideAccess = false, req: { fallbackLocale, locale, t }, req, showHiddenFields } = args;
24
+ const { id, collection: { config: collectionConfig }, currentDepth, depth, disableErrors, draft: draftEnabled = false, includeLockStatus, joins, overrideAccess = false, req: { fallbackLocale, locale, t }, req, showHiddenFields } = args;
25
25
  // /////////////////////////////////////
26
26
  // Access
27
27
  // /////////////////////////////////////
@@ -36,6 +36,7 @@ export const findByIDOperation = async (incomingArgs)=>{
36
36
  }
37
37
  const findOneArgs = {
38
38
  collection: collectionConfig.slug,
39
+ joins: req.payloadAPI === 'GraphQL' ? false : joins,
39
40
  locale,
40
41
  req: {
41
42
  transactionID: req.transactionID
@@ -60,6 +61,42 @@ export const findByIDOperation = async (incomingArgs)=>{
60
61
  return null;
61
62
  }
62
63
  // /////////////////////////////////////
64
+ // Include Lock Status if required
65
+ // /////////////////////////////////////
66
+ if (includeLockStatus && id) {
67
+ let lockStatus = null;
68
+ try {
69
+ const lockedDocument = await req.payload.find({
70
+ collection: 'payload-locked-documents',
71
+ depth: 1,
72
+ limit: 1,
73
+ pagination: false,
74
+ req,
75
+ where: {
76
+ and: [
77
+ {
78
+ 'document.relationTo': {
79
+ equals: collectionConfig.slug
80
+ }
81
+ },
82
+ {
83
+ 'document.value': {
84
+ equals: id
85
+ }
86
+ }
87
+ ]
88
+ }
89
+ });
90
+ if (lockedDocument && lockedDocument.docs.length > 0) {
91
+ lockStatus = lockedDocument.docs[0];
92
+ }
93
+ } catch {
94
+ // swallow error
95
+ }
96
+ result._isLocked = !!lockStatus;
97
+ result._userEditing = lockStatus?.user?.value ?? null;
98
+ }
99
+ // /////////////////////////////////////
63
100
  // Replace document with draft if available
64
101
  // /////////////////////////////////////
65
102
  if (collectionConfig.versions?.drafts && draftEnabled) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/collections/operations/findByID.ts"],"sourcesContent":["import type { FindOneArgs } from '../../database/types.js'\nimport type { CollectionSlug } from '../../index.js'\nimport type { PayloadRequest } from '../../types/index.js'\nimport type { Collection, DataFromCollectionSlug } from '../config/types.js'\n\nimport executeAccess from '../../auth/executeAccess.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { NotFound } from '../../errors/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport replaceWithDraftIfAvailable from '../../versions/drafts/replaceWithDraftIfAvailable.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type Arguments = {\n collection: Collection\n currentDepth?: number\n depth?: number\n disableErrors?: boolean\n draft?: boolean\n id: number | string\n overrideAccess?: boolean\n req: PayloadRequest\n showHiddenFields?: boolean\n}\n\nexport const findByIDOperation = async <TSlug extends CollectionSlug>(\n incomingArgs: Arguments,\n): Promise<DataFromCollectionSlug<TSlug>> => {\n let args = incomingArgs\n\n try {\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n await args.collection.config.hooks.beforeOperation.reduce(async (priorHook, hook) => {\n await priorHook\n\n args =\n (await hook({\n args,\n collection: args.collection.config,\n context: args.req.context,\n operation: 'read',\n req: args.req,\n })) || args\n }, Promise.resolve())\n\n const {\n id,\n collection: { config: collectionConfig },\n currentDepth,\n depth,\n disableErrors,\n draft: draftEnabled = false,\n overrideAccess = false,\n req: { fallbackLocale, locale, t },\n req,\n showHiddenFields,\n } = args\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n const accessResult = !overrideAccess\n ? await executeAccess({ id, disableErrors, req }, collectionConfig.access.read)\n : true\n\n // If errors are disabled, and access returns false, return null\n if (accessResult === false) {\n return null\n }\n\n const findOneArgs: FindOneArgs = {\n collection: collectionConfig.slug,\n locale,\n req: {\n transactionID: req.transactionID,\n } as PayloadRequest,\n where: combineQueries({ id: { equals: id } }, accessResult),\n }\n\n // /////////////////////////////////////\n // Find by ID\n // /////////////////////////////////////\n\n if (!findOneArgs.where.and[0].id) {\n throw new NotFound(t)\n }\n\n let result: DataFromCollectionSlug<TSlug> = await req.payload.db.findOne(findOneArgs)\n\n if (!result) {\n if (!disableErrors) {\n throw new NotFound(req.t)\n }\n\n return null\n }\n\n // /////////////////////////////////////\n // Replace document with draft if available\n // /////////////////////////////////////\n\n if (collectionConfig.versions?.drafts && draftEnabled) {\n result = await replaceWithDraftIfAvailable({\n accessResult,\n doc: result,\n entity: collectionConfig,\n entityType: 'collection',\n overrideAccess,\n req,\n })\n }\n\n // /////////////////////////////////////\n // beforeRead - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.beforeRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n query: findOneArgs.where,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n currentDepth,\n depth,\n doc: result,\n draft: draftEnabled,\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 query: findOneArgs.where,\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: 'findByID',\n result,\n })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n return result\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["executeAccess","combineQueries","NotFound","afterRead","killTransaction","replaceWithDraftIfAvailable","buildAfterOperation","findByIDOperation","incomingArgs","args","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","req","operation","Promise","resolve","id","collectionConfig","currentDepth","depth","disableErrors","draft","draftEnabled","overrideAccess","fallbackLocale","locale","t","showHiddenFields","accessResult","access","read","findOneArgs","slug","transactionID","where","equals","and","result","payload","db","findOne","versions","drafts","doc","entity","entityType","beforeRead","query","global","error"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/collections/operations/findByID.ts"],"sourcesContent":["import type { FindOneArgs } from '../../database/types.js'\nimport type { CollectionSlug, JoinQuery } from '../../index.js'\nimport type { PayloadRequest } from '../../types/index.js'\nimport type { Collection, DataFromCollectionSlug } from '../config/types.js'\n\nimport executeAccess from '../../auth/executeAccess.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { NotFound } from '../../errors/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport replaceWithDraftIfAvailable from '../../versions/drafts/replaceWithDraftIfAvailable.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type Arguments = {\n collection: Collection\n currentDepth?: number\n depth?: number\n disableErrors?: boolean\n draft?: boolean\n id: number | string\n includeLockStatus?: boolean\n joins?: JoinQuery\n overrideAccess?: boolean\n req: PayloadRequest\n showHiddenFields?: boolean\n}\n\nexport const findByIDOperation = async <TSlug extends CollectionSlug>(\n incomingArgs: Arguments,\n): Promise<DataFromCollectionSlug<TSlug>> => {\n let args = incomingArgs\n\n try {\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n await args.collection.config.hooks.beforeOperation.reduce(async (priorHook, hook) => {\n await priorHook\n\n args =\n (await hook({\n args,\n collection: args.collection.config,\n context: args.req.context,\n operation: 'read',\n req: args.req,\n })) || args\n }, Promise.resolve())\n\n const {\n id,\n collection: { config: collectionConfig },\n currentDepth,\n depth,\n disableErrors,\n draft: draftEnabled = false,\n includeLockStatus,\n joins,\n overrideAccess = false,\n req: { fallbackLocale, locale, t },\n req,\n showHiddenFields,\n } = args\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n const accessResult = !overrideAccess\n ? await executeAccess({ id, disableErrors, req }, collectionConfig.access.read)\n : true\n\n // If errors are disabled, and access returns false, return null\n if (accessResult === false) {\n return null\n }\n\n const findOneArgs: FindOneArgs = {\n collection: collectionConfig.slug,\n joins: req.payloadAPI === 'GraphQL' ? false : joins,\n locale,\n req: {\n transactionID: req.transactionID,\n } as PayloadRequest,\n where: combineQueries({ id: { equals: id } }, accessResult),\n }\n\n // /////////////////////////////////////\n // Find by ID\n // /////////////////////////////////////\n\n if (!findOneArgs.where.and[0].id) {\n throw new NotFound(t)\n }\n\n let result: DataFromCollectionSlug<TSlug> = await req.payload.db.findOne(findOneArgs)\n\n if (!result) {\n if (!disableErrors) {\n throw new NotFound(req.t)\n }\n\n return null\n }\n\n // /////////////////////////////////////\n // Include Lock Status if required\n // /////////////////////////////////////\n\n if (includeLockStatus && id) {\n let lockStatus = null\n\n try {\n const lockedDocument = await req.payload.find({\n collection: 'payload-locked-documents',\n depth: 1,\n limit: 1,\n pagination: false,\n req,\n where: {\n and: [\n {\n 'document.relationTo': {\n equals: collectionConfig.slug,\n },\n },\n {\n 'document.value': {\n equals: id,\n },\n },\n ],\n },\n })\n\n if (lockedDocument && lockedDocument.docs.length > 0) {\n lockStatus = lockedDocument.docs[0]\n }\n } catch {\n // swallow error\n }\n\n result._isLocked = !!lockStatus\n result._userEditing = lockStatus?.user?.value ?? null\n }\n\n // /////////////////////////////////////\n // Replace document with draft if available\n // /////////////////////////////////////\n\n if (collectionConfig.versions?.drafts && draftEnabled) {\n result = await replaceWithDraftIfAvailable({\n accessResult,\n doc: result,\n entity: collectionConfig,\n entityType: 'collection',\n overrideAccess,\n req,\n })\n }\n\n // /////////////////////////////////////\n // beforeRead - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.beforeRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n query: findOneArgs.where,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n currentDepth,\n depth,\n doc: result,\n draft: draftEnabled,\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 query: findOneArgs.where,\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: 'findByID',\n result,\n })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n return result\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["executeAccess","combineQueries","NotFound","afterRead","killTransaction","replaceWithDraftIfAvailable","buildAfterOperation","findByIDOperation","incomingArgs","args","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","req","operation","Promise","resolve","id","collectionConfig","currentDepth","depth","disableErrors","draft","draftEnabled","includeLockStatus","joins","overrideAccess","fallbackLocale","locale","t","showHiddenFields","accessResult","access","read","findOneArgs","slug","payloadAPI","transactionID","where","equals","and","result","payload","db","findOne","lockStatus","lockedDocument","find","limit","pagination","docs","length","_isLocked","_userEditing","user","value","versions","drafts","doc","entity","entityType","beforeRead","query","global","error"],"mappings":"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"}
@@ -17,7 +17,7 @@ export const findVersionsOperation = async (args)=>{
17
17
  req
18
18
  }, collectionConfig.access.readVersions);
19
19
  }
20
- const versionFields = buildVersionCollectionFields(collectionConfig);
20
+ const versionFields = buildVersionCollectionFields(payload.config, collectionConfig);
21
21
  await validateQueryPaths({
22
22
  collectionConfig,
23
23
  overrideAccess,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/collections/operations/findVersions.ts"],"sourcesContent":["import type { PaginatedDocs } from '../../database/types.js'\nimport type { PayloadRequest, Where } from '../../types/index.js'\nimport type { TypeWithVersion } from '../../versions/types.js'\nimport type { Collection } 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 { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport sanitizeInternalFields from '../../utilities/sanitizeInternalFields.js'\nimport { buildVersionCollectionFields } from '../../versions/buildCollectionFields.js'\n\nexport type Arguments = {\n collection: Collection\n depth?: number\n limit?: number\n overrideAccess?: boolean\n page?: number\n pagination?: boolean\n req?: PayloadRequest\n showHiddenFields?: boolean\n sort?: string\n where?: Where\n}\n\nexport const findVersionsOperation = async <TData extends TypeWithVersion<TData>>(\n args: Arguments,\n): Promise<PaginatedDocs<TData>> => {\n const {\n collection: { config: collectionConfig },\n depth,\n limit,\n overrideAccess,\n page,\n pagination = true,\n req: { fallbackLocale, locale, payload },\n req,\n showHiddenFields,\n sort,\n where,\n } = args\n\n try {\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n let accessResults\n\n if (!overrideAccess) {\n accessResults = await executeAccess({ req }, collectionConfig.access.readVersions)\n }\n\n const versionFields = buildVersionCollectionFields(collectionConfig)\n\n await validateQueryPaths({\n collectionConfig,\n overrideAccess,\n req,\n versionFields,\n where,\n })\n\n const fullWhere = combineQueries(where, accessResults)\n\n // /////////////////////////////////////\n // Find\n // /////////////////////////////////////\n\n const paginatedDocs = await payload.db.findVersions<TData>({\n collection: collectionConfig.slug,\n limit: limit ?? 10,\n locale,\n page: page || 1,\n pagination,\n req,\n sort,\n where: fullWhere,\n })\n\n // /////////////////////////////////////\n // beforeRead - Collection\n // /////////////////////////////////////\n\n let result = {\n ...paginatedDocs,\n docs: await Promise.all(\n paginatedDocs.docs.map(async (doc) => {\n const docRef = doc\n await collectionConfig.hooks.beforeRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n docRef.version =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: docRef.version,\n query: fullWhere,\n req,\n })) || docRef.version\n }, Promise.resolve())\n\n return docRef\n }),\n ),\n } as PaginatedDocs<TData>\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = {\n ...result,\n docs: await Promise.all(\n result.docs.map(async (data) => ({\n ...data,\n version: await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth,\n doc: data.version,\n draft: undefined,\n fallbackLocale,\n findMany: true,\n global: null,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n }),\n })),\n ),\n }\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n result = {\n ...result,\n docs: await Promise.all(\n result.docs.map(async (doc) => {\n const docRef = doc\n\n await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n docRef.version =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: doc.version,\n findMany: true,\n query: fullWhere,\n req,\n })) || doc.version\n }, Promise.resolve())\n\n return docRef\n }),\n ),\n }\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n result = {\n ...result,\n docs: result.docs.map((doc) => sanitizeInternalFields<TData>(doc)),\n }\n\n return result\n } catch (error: unknown) {\n await killTransaction(req)\n throw error\n }\n}\n"],"names":["executeAccess","combineQueries","validateQueryPaths","afterRead","killTransaction","sanitizeInternalFields","buildVersionCollectionFields","findVersionsOperation","args","collection","config","collectionConfig","depth","limit","overrideAccess","page","pagination","req","fallbackLocale","locale","payload","showHiddenFields","sort","where","accessResults","access","readVersions","versionFields","fullWhere","paginatedDocs","db","findVersions","slug","result","docs","Promise","all","map","doc","docRef","hooks","beforeRead","reduce","priorHook","hook","version","context","query","resolve","data","draft","undefined","findMany","global","error"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/collections/operations/findVersions.ts"],"sourcesContent":["import type { PaginatedDocs } from '../../database/types.js'\nimport type { PayloadRequest, Where } from '../../types/index.js'\nimport type { TypeWithVersion } from '../../versions/types.js'\nimport type { Collection } 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 { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport sanitizeInternalFields from '../../utilities/sanitizeInternalFields.js'\nimport { buildVersionCollectionFields } from '../../versions/buildCollectionFields.js'\n\nexport type Arguments = {\n collection: Collection\n depth?: number\n limit?: number\n overrideAccess?: boolean\n page?: number\n pagination?: boolean\n req?: PayloadRequest\n showHiddenFields?: boolean\n sort?: string\n where?: Where\n}\n\nexport const findVersionsOperation = async <TData extends TypeWithVersion<TData>>(\n args: Arguments,\n): Promise<PaginatedDocs<TData>> => {\n const {\n collection: { config: collectionConfig },\n depth,\n limit,\n overrideAccess,\n page,\n pagination = true,\n req: { fallbackLocale, locale, payload },\n req,\n showHiddenFields,\n sort,\n where,\n } = args\n\n try {\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n let accessResults\n\n if (!overrideAccess) {\n accessResults = await executeAccess({ req }, collectionConfig.access.readVersions)\n }\n\n const versionFields = buildVersionCollectionFields(payload.config, collectionConfig)\n\n await validateQueryPaths({\n collectionConfig,\n overrideAccess,\n req,\n versionFields,\n where,\n })\n\n const fullWhere = combineQueries(where, accessResults)\n\n // /////////////////////////////////////\n // Find\n // /////////////////////////////////////\n\n const paginatedDocs = await payload.db.findVersions<TData>({\n collection: collectionConfig.slug,\n limit: limit ?? 10,\n locale,\n page: page || 1,\n pagination,\n req,\n sort,\n where: fullWhere,\n })\n\n // /////////////////////////////////////\n // beforeRead - Collection\n // /////////////////////////////////////\n\n let result = {\n ...paginatedDocs,\n docs: await Promise.all(\n paginatedDocs.docs.map(async (doc) => {\n const docRef = doc\n await collectionConfig.hooks.beforeRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n docRef.version =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: docRef.version,\n query: fullWhere,\n req,\n })) || docRef.version\n }, Promise.resolve())\n\n return docRef\n }),\n ),\n } as PaginatedDocs<TData>\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = {\n ...result,\n docs: await Promise.all(\n result.docs.map(async (data) => ({\n ...data,\n version: await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth,\n doc: data.version,\n draft: undefined,\n fallbackLocale,\n findMany: true,\n global: null,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n }),\n })),\n ),\n }\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n result = {\n ...result,\n docs: await Promise.all(\n result.docs.map(async (doc) => {\n const docRef = doc\n\n await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n docRef.version =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: doc.version,\n findMany: true,\n query: fullWhere,\n req,\n })) || doc.version\n }, Promise.resolve())\n\n return docRef\n }),\n ),\n }\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n result = {\n ...result,\n docs: result.docs.map((doc) => sanitizeInternalFields<TData>(doc)),\n }\n\n return result\n } catch (error: unknown) {\n await killTransaction(req)\n throw error\n }\n}\n"],"names":["executeAccess","combineQueries","validateQueryPaths","afterRead","killTransaction","sanitizeInternalFields","buildVersionCollectionFields","findVersionsOperation","args","collection","config","collectionConfig","depth","limit","overrideAccess","page","pagination","req","fallbackLocale","locale","payload","showHiddenFields","sort","where","accessResults","access","readVersions","versionFields","fullWhere","paginatedDocs","db","findVersions","slug","result","docs","Promise","all","map","doc","docRef","hooks","beforeRead","reduce","priorHook","hook","version","context","query","resolve","data","draft","undefined","findMany","global","error"],"mappings":"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"}
@@ -11,6 +11,7 @@ export type BaseOptions<TSlug extends CollectionSlug> = {
11
11
  fallbackLocale?: TypedLocale;
12
12
  locale?: TypedLocale;
13
13
  overrideAccess?: boolean;
14
+ overrideLock?: boolean;
14
15
  req?: PayloadRequest;
15
16
  showHiddenFields?: boolean;
16
17
  user?: Document;
@@ -1 +1 @@
1
- {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../../src/collections/operations/local/delete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC9F,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAOxF,MAAM,MAAM,WAAW,CAAC,KAAK,SAAS,cAAc,IAAI;IACtD,UAAU,EAAE,KAAK,CAAA;IACjB;;OAEG;IACH,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,WAAW,CAAA;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,CAAC,EAAE,QAAQ,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,KAAK,SAAS,cAAc,IAAI;IACtD,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;AAEtB,MAAM,MAAM,WAAW,CAAC,KAAK,SAAS,cAAc,IAAI;IACtD,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,KAAK,EAAE,KAAK,CAAA;CACb,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;AAEtB,MAAM,MAAM,OAAO,CAAC,KAAK,SAAS,cAAc,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;AAE3F,iBAAe,WAAW,CAAC,KAAK,SAAS,cAAc,EACrD,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,GAC1B,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAA;AACzC,iBAAe,WAAW,CAAC,KAAK,SAAS,cAAc,EACrD,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,GAC1B,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAA;AACtC,iBAAe,WAAW,CAAC,KAAK,SAAS,cAAc,EACrD,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,GACtB,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAA;AAsCtE,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../../src/collections/operations/local/delete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC9F,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAOxF,MAAM,MAAM,WAAW,CAAC,KAAK,SAAS,cAAc,IAAI;IACtD,UAAU,EAAE,KAAK,CAAA;IACjB;;OAEG;IACH,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,WAAW,CAAA;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,CAAC,EAAE,QAAQ,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,KAAK,SAAS,cAAc,IAAI;IACtD,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;AAEtB,MAAM,MAAM,WAAW,CAAC,KAAK,SAAS,cAAc,IAAI;IACtD,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,KAAK,EAAE,KAAK,CAAA;CACb,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;AAEtB,MAAM,MAAM,OAAO,CAAC,KAAK,SAAS,cAAc,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;AAE3F,iBAAe,WAAW,CAAC,KAAK,SAAS,cAAc,EACrD,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,GAC1B,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAA;AACzC,iBAAe,WAAW,CAAC,KAAK,SAAS,cAAc,EACrD,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,GAC1B,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAA;AACtC,iBAAe,WAAW,CAAC,KAAK,SAAS,cAAc,EACrD,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,GACtB,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAA;AAwCtE,eAAe,WAAW,CAAA"}
@@ -3,7 +3,7 @@ import { createLocalReq } from '../../../utilities/createLocalReq.js';
3
3
  import { deleteOperation } from '../delete.js';
4
4
  import { deleteByIDOperation } from '../deleteByID.js';
5
5
  async function deleteLocal(payload, options) {
6
- const { id, collection: collectionSlug, depth, overrideAccess = true, showHiddenFields, where } = options;
6
+ const { id, collection: collectionSlug, depth, overrideAccess = true, overrideLock, showHiddenFields, where } = options;
7
7
  const collection = payload.collections[collectionSlug];
8
8
  if (!collection) {
9
9
  throw new APIError(`The collection with slug ${String(collectionSlug)} can't be found. Delete Operation.`);
@@ -13,6 +13,7 @@ async function deleteLocal(payload, options) {
13
13
  collection,
14
14
  depth,
15
15
  overrideAccess,
16
+ overrideLock,
16
17
  req: await createLocalReq(options, payload),
17
18
  showHiddenFields,
18
19
  where
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/collections/operations/local/delete.ts"],"sourcesContent":["import type { CollectionSlug, Payload, TypedLocale } from '../../../index.js'\nimport type { Document, PayloadRequest, RequestContext, Where } from '../../../types/index.js'\nimport type { BulkOperationResult, DataFromCollectionSlug } from '../../config/types.js'\n\nimport { APIError } from '../../../errors/index.js'\nimport { createLocalReq } from '../../../utilities/createLocalReq.js'\nimport { deleteOperation } from '../delete.js'\nimport { deleteByIDOperation } from '../deleteByID.js'\n\nexport type BaseOptions<TSlug extends CollectionSlug> = {\n collection: TSlug\n /**\n * context, which will then be passed to req.context, which can be read by hooks\n */\n context?: RequestContext\n depth?: number\n fallbackLocale?: TypedLocale\n locale?: TypedLocale\n overrideAccess?: boolean\n req?: PayloadRequest\n showHiddenFields?: boolean\n user?: Document\n}\n\nexport type ByIDOptions<TSlug extends CollectionSlug> = {\n id: number | string\n where?: never\n} & BaseOptions<TSlug>\n\nexport type ManyOptions<TSlug extends CollectionSlug> = {\n id?: never\n where: Where\n} & BaseOptions<TSlug>\n\nexport type Options<TSlug extends CollectionSlug> = ByIDOptions<TSlug> | ManyOptions<TSlug>\n\nasync function deleteLocal<TSlug extends CollectionSlug>(\n payload: Payload,\n options: ByIDOptions<TSlug>,\n): Promise<DataFromCollectionSlug<TSlug>>\nasync function deleteLocal<TSlug extends CollectionSlug>(\n payload: Payload,\n options: ManyOptions<TSlug>,\n): Promise<BulkOperationResult<TSlug>>\nasync function deleteLocal<TSlug extends CollectionSlug>(\n payload: Payload,\n options: Options<TSlug>,\n): Promise<BulkOperationResult<TSlug> | DataFromCollectionSlug<TSlug>>\nasync function deleteLocal<TSlug extends CollectionSlug>(\n payload: Payload,\n options: Options<TSlug>,\n): Promise<BulkOperationResult<TSlug> | DataFromCollectionSlug<TSlug>> {\n const {\n id,\n collection: collectionSlug,\n depth,\n overrideAccess = true,\n showHiddenFields,\n where,\n } = options\n\n const collection = payload.collections[collectionSlug]\n\n if (!collection) {\n throw new APIError(\n `The collection with slug ${String(collectionSlug)} can't be found. Delete Operation.`,\n )\n }\n\n const args = {\n id,\n collection,\n depth,\n overrideAccess,\n req: await createLocalReq(options, payload),\n showHiddenFields,\n where,\n }\n\n if (options.id) {\n return deleteByIDOperation<TSlug>(args)\n }\n return deleteOperation<TSlug>(args)\n}\n\nexport default deleteLocal\n"],"names":["APIError","createLocalReq","deleteOperation","deleteByIDOperation","deleteLocal","payload","options","id","collection","collectionSlug","depth","overrideAccess","showHiddenFields","where","collections","String","args","req"],"mappings":"AAIA,SAASA,QAAQ,QAAQ,2BAA0B;AACnD,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,eAAe,QAAQ,eAAc;AAC9C,SAASC,mBAAmB,QAAQ,mBAAkB;AAyCtD,eAAeC,YACbC,OAAgB,EAChBC,OAAuB;IAEvB,MAAM,EACJC,EAAE,EACFC,YAAYC,cAAc,EAC1BC,KAAK,EACLC,iBAAiB,IAAI,EACrBC,gBAAgB,EAChBC,KAAK,EACN,GAAGP;IAEJ,MAAME,aAAaH,QAAQS,WAAW,CAACL,eAAe;IAEtD,IAAI,CAACD,YAAY;QACf,MAAM,IAAIR,SACR,CAAC,yBAAyB,EAAEe,OAAON,gBAAgB,kCAAkC,CAAC;IAE1F;IAEA,MAAMO,OAAO;QACXT;QACAC;QACAE;QACAC;QACAM,KAAK,MAAMhB,eAAeK,SAASD;QACnCO;QACAC;IACF;IAEA,IAAIP,QAAQC,EAAE,EAAE;QACd,OAAOJ,oBAA2Ba;IACpC;IACA,OAAOd,gBAAuBc;AAChC;AAEA,eAAeZ,YAAW"}
1
+ {"version":3,"sources":["../../../../src/collections/operations/local/delete.ts"],"sourcesContent":["import type { CollectionSlug, Payload, TypedLocale } from '../../../index.js'\nimport type { Document, PayloadRequest, RequestContext, Where } from '../../../types/index.js'\nimport type { BulkOperationResult, DataFromCollectionSlug } from '../../config/types.js'\n\nimport { APIError } from '../../../errors/index.js'\nimport { createLocalReq } from '../../../utilities/createLocalReq.js'\nimport { deleteOperation } from '../delete.js'\nimport { deleteByIDOperation } from '../deleteByID.js'\n\nexport type BaseOptions<TSlug extends CollectionSlug> = {\n collection: TSlug\n /**\n * context, which will then be passed to req.context, which can be read by hooks\n */\n context?: RequestContext\n depth?: number\n fallbackLocale?: TypedLocale\n locale?: TypedLocale\n overrideAccess?: boolean\n overrideLock?: boolean\n req?: PayloadRequest\n showHiddenFields?: boolean\n user?: Document\n}\n\nexport type ByIDOptions<TSlug extends CollectionSlug> = {\n id: number | string\n where?: never\n} & BaseOptions<TSlug>\n\nexport type ManyOptions<TSlug extends CollectionSlug> = {\n id?: never\n where: Where\n} & BaseOptions<TSlug>\n\nexport type Options<TSlug extends CollectionSlug> = ByIDOptions<TSlug> | ManyOptions<TSlug>\n\nasync function deleteLocal<TSlug extends CollectionSlug>(\n payload: Payload,\n options: ByIDOptions<TSlug>,\n): Promise<DataFromCollectionSlug<TSlug>>\nasync function deleteLocal<TSlug extends CollectionSlug>(\n payload: Payload,\n options: ManyOptions<TSlug>,\n): Promise<BulkOperationResult<TSlug>>\nasync function deleteLocal<TSlug extends CollectionSlug>(\n payload: Payload,\n options: Options<TSlug>,\n): Promise<BulkOperationResult<TSlug> | DataFromCollectionSlug<TSlug>>\nasync function deleteLocal<TSlug extends CollectionSlug>(\n payload: Payload,\n options: Options<TSlug>,\n): Promise<BulkOperationResult<TSlug> | DataFromCollectionSlug<TSlug>> {\n const {\n id,\n collection: collectionSlug,\n depth,\n overrideAccess = true,\n overrideLock,\n showHiddenFields,\n where,\n } = options\n\n const collection = payload.collections[collectionSlug]\n\n if (!collection) {\n throw new APIError(\n `The collection with slug ${String(collectionSlug)} can't be found. Delete Operation.`,\n )\n }\n\n const args = {\n id,\n collection,\n depth,\n overrideAccess,\n overrideLock,\n req: await createLocalReq(options, payload),\n showHiddenFields,\n where,\n }\n\n if (options.id) {\n return deleteByIDOperation<TSlug>(args)\n }\n return deleteOperation<TSlug>(args)\n}\n\nexport default deleteLocal\n"],"names":["APIError","createLocalReq","deleteOperation","deleteByIDOperation","deleteLocal","payload","options","id","collection","collectionSlug","depth","overrideAccess","overrideLock","showHiddenFields","where","collections","String","args","req"],"mappings":"AAIA,SAASA,QAAQ,QAAQ,2BAA0B;AACnD,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,eAAe,QAAQ,eAAc;AAC9C,SAASC,mBAAmB,QAAQ,mBAAkB;AA0CtD,eAAeC,YACbC,OAAgB,EAChBC,OAAuB;IAEvB,MAAM,EACJC,EAAE,EACFC,YAAYC,cAAc,EAC1BC,KAAK,EACLC,iBAAiB,IAAI,EACrBC,YAAY,EACZC,gBAAgB,EAChBC,KAAK,EACN,GAAGR;IAEJ,MAAME,aAAaH,QAAQU,WAAW,CAACN,eAAe;IAEtD,IAAI,CAACD,YAAY;QACf,MAAM,IAAIR,SACR,CAAC,yBAAyB,EAAEgB,OAAOP,gBAAgB,kCAAkC,CAAC;IAE1F;IAEA,MAAMQ,OAAO;QACXV;QACAC;QACAE;QACAC;QACAC;QACAM,KAAK,MAAMjB,eAAeK,SAASD;QACnCQ;QACAC;IACF;IAEA,IAAIR,QAAQC,EAAE,EAAE;QACd,OAAOJ,oBAA2Bc;IACpC;IACA,OAAOf,gBAAuBe;AAChC;AAEA,eAAeb,YAAW"}
@@ -1,5 +1,5 @@
1
1
  import type { PaginatedDocs } from '../../../database/types.js';
2
- import type { CollectionSlug, Payload, TypedLocale } from '../../../index.js';
2
+ import type { CollectionSlug, JoinQuery, Payload, TypedLocale } from '../../../index.js';
3
3
  import type { Document, PayloadRequest, RequestContext, Where } from '../../../types/index.js';
4
4
  import type { DataFromCollectionSlug } from '../../config/types.js';
5
5
  export type Options<TSlug extends CollectionSlug> = {
@@ -13,6 +13,8 @@ export type Options<TSlug extends CollectionSlug> = {
13
13
  disableErrors?: boolean;
14
14
  draft?: boolean;
15
15
  fallbackLocale?: TypedLocale;
16
+ includeLockStatus?: boolean;
17
+ joins?: JoinQuery;
16
18
  limit?: number;
17
19
  locale?: 'all' | TypedLocale;
18
20
  overrideAccess?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../../src/collections/operations/local/find.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC9F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAMnE,MAAM,MAAM,OAAO,CAAC,KAAK,SAAS,cAAc,IAAI;IAClD,UAAU,EAAE,KAAK,CAAA;IACjB;;OAEG;IACH,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,cAAc,CAAC,EAAE,WAAW,CAAA;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,KAAK,GAAG,WAAW,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,wBAAsB,SAAS,CAAC,KAAK,SAAS,cAAc,EAC1D,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,GACtB,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAuCvD"}
1
+ {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../../src/collections/operations/local/find.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACxF,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC9F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAMnE,MAAM,MAAM,OAAO,CAAC,KAAK,SAAS,cAAc,IAAI;IAClD,UAAU,EAAE,KAAK,CAAA;IACjB;;OAEG;IACH,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,cAAc,CAAC,EAAE,WAAW,CAAA;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,KAAK,GAAG,WAAW,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,wBAAsB,SAAS,CAAC,KAAK,SAAS,cAAc,EAC1D,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,GACtB,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CA2CvD"}
@@ -2,7 +2,7 @@ import { APIError } from '../../../errors/index.js';
2
2
  import { createLocalReq } from '../../../utilities/createLocalReq.js';
3
3
  import { findOperation } from '../find.js';
4
4
  export async function findLocal(payload, options) {
5
- const { collection: collectionSlug, currentDepth, depth, disableErrors, draft = false, limit, overrideAccess = true, page, pagination = true, showHiddenFields, sort, where } = options;
5
+ const { collection: collectionSlug, currentDepth, depth, disableErrors, draft = false, includeLockStatus, joins, limit, overrideAccess = true, page, pagination = true, showHiddenFields, sort, where } = options;
6
6
  const collection = payload.collections[collectionSlug];
7
7
  if (!collection) {
8
8
  throw new APIError(`The collection with slug ${String(collectionSlug)} can't be found. Find Operation.`);
@@ -13,6 +13,8 @@ export async function findLocal(payload, options) {
13
13
  depth,
14
14
  disableErrors,
15
15
  draft,
16
+ includeLockStatus,
17
+ joins,
16
18
  limit,
17
19
  overrideAccess,
18
20
  page,