payload 4.0.0-internal.ea6e8f8 → 4.0.0-internal.ec73d44

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 (191) hide show
  1. package/dist/admin/adapters/router.d.ts +1 -1
  2. package/dist/admin/adapters/router.d.ts.map +1 -1
  3. package/dist/admin/adapters/router.js.map +1 -1
  4. package/dist/admin/forms/Diff.d.ts +0 -4
  5. package/dist/admin/forms/Diff.d.ts.map +1 -1
  6. package/dist/admin/forms/Diff.js.map +1 -1
  7. package/dist/admin/getAdminPreferences.js +1 -1
  8. package/dist/admin/getAdminPreferences.js.map +1 -1
  9. package/dist/admin/initAdminContext.js.map +1 -1
  10. package/dist/auth/getFieldsToSign.js.map +1 -1
  11. package/dist/auth/loginWithCookie.js.map +1 -1
  12. package/dist/auth/operations/resetPassword.d.ts.map +1 -1
  13. package/dist/auth/operations/resetPassword.js +50 -1
  14. package/dist/auth/operations/resetPassword.js.map +1 -1
  15. package/dist/auth/serverFunctions/cookies.js.map +1 -1
  16. package/dist/auth/serverFunctions/login.js.map +1 -1
  17. package/dist/auth/types.d.ts.map +1 -1
  18. package/dist/auth/types.js.map +1 -1
  19. package/dist/branching/discard.js +1 -1
  20. package/dist/branching/discard.js.map +1 -1
  21. package/dist/branching/merge/prepareMerge.js +1 -1
  22. package/dist/branching/merge/prepareMerge.js.map +1 -1
  23. package/dist/branching/merge/retryFailedCleanups.js.map +1 -1
  24. package/dist/branching/resolveBranchQuery.d.ts.map +1 -1
  25. package/dist/branching/resolveBranchQuery.js +0 -3
  26. package/dist/branching/resolveBranchQuery.js.map +1 -1
  27. package/dist/branching/sanitizeBranchingConfig.d.ts.map +1 -1
  28. package/dist/branching/sanitizeBranchingConfig.js +0 -3
  29. package/dist/branching/sanitizeBranchingConfig.js.map +1 -1
  30. package/dist/branching/schedule/job.d.ts.map +1 -1
  31. package/dist/branching/schedule/job.js +7 -0
  32. package/dist/branching/schedule/job.js.map +1 -1
  33. package/dist/branching/types.d.ts +4 -13
  34. package/dist/branching/types.d.ts.map +1 -1
  35. package/dist/branching/types.js.map +1 -1
  36. package/dist/cli/commands/data/utilities.d.ts +1 -1
  37. package/dist/cli/commands/data/utilities.d.ts.map +1 -1
  38. package/dist/cli/commands/data/utilities.js.map +1 -1
  39. package/dist/cli/defineCLICommand.js +1 -1
  40. package/dist/cli/defineCLICommand.js.map +1 -1
  41. package/dist/collections/config/client.js.map +1 -1
  42. package/dist/collections/config/types.d.ts +4 -1
  43. package/dist/collections/config/types.d.ts.map +1 -1
  44. package/dist/collections/config/types.js.map +1 -1
  45. package/dist/collections/operations/delete.js.map +1 -1
  46. package/dist/collections/operations/deleteByID.js.map +1 -1
  47. package/dist/collections/operations/findByID.js.map +1 -1
  48. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  49. package/dist/collections/operations/findVersionByID.js +11 -0
  50. package/dist/collections/operations/findVersionByID.js.map +1 -1
  51. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  52. package/dist/collections/operations/findVersions.js +11 -0
  53. package/dist/collections/operations/findVersions.js.map +1 -1
  54. package/dist/collections/operations/local/findDistinct.js.map +1 -1
  55. package/dist/collections/operations/renameFile.js +1 -1
  56. package/dist/collections/operations/renameFile.js.map +1 -1
  57. package/dist/collections/operations/update.js.map +1 -1
  58. package/dist/collections/operations/updateByID.js.map +1 -1
  59. package/dist/collections/operations/utilities/update.js +1 -1
  60. package/dist/collections/operations/utilities/update.js.map +1 -1
  61. package/dist/collections/operations/validate.js +4 -4
  62. package/dist/collections/operations/validate.js.map +1 -1
  63. package/dist/config/client.d.ts.map +1 -1
  64. package/dist/config/client.js +1 -0
  65. package/dist/config/client.js.map +1 -1
  66. package/dist/config/defaults.d.ts.map +1 -1
  67. package/dist/config/defaults.js +1 -0
  68. package/dist/config/defaults.js.map +1 -1
  69. package/dist/config/definePlugin.js.map +1 -1
  70. package/dist/config/sanitize.js +2 -2
  71. package/dist/config/sanitize.js.map +1 -1
  72. package/dist/config/types.d.ts +8 -1
  73. package/dist/config/types.d.ts.map +1 -1
  74. package/dist/config/types.js.map +1 -1
  75. package/dist/database/types.d.ts +4 -0
  76. package/dist/database/types.d.ts.map +1 -1
  77. package/dist/database/types.js.map +1 -1
  78. package/dist/exports/build-config.d.ts +9 -0
  79. package/dist/exports/build-config.d.ts.map +1 -0
  80. package/dist/exports/build-config.js +38 -0
  81. package/dist/exports/build-config.js.map +1 -0
  82. package/dist/fields/config/client.js.map +1 -1
  83. package/dist/fields/config/reservedFieldNames.d.ts.map +1 -1
  84. package/dist/fields/config/reservedFieldNames.js.map +1 -1
  85. package/dist/fields/config/types.d.ts.map +1 -1
  86. package/dist/fields/config/types.js.map +1 -1
  87. package/dist/fields/hooks/afterChange/promise.js.map +1 -1
  88. package/dist/fields/hooks/afterRead/promise.js.map +1 -1
  89. package/dist/fields/hooks/beforeChange/flattenValidationData.d.ts +14 -0
  90. package/dist/fields/hooks/beforeChange/flattenValidationData.d.ts.map +1 -0
  91. package/dist/fields/hooks/beforeChange/flattenValidationData.js +36 -0
  92. package/dist/fields/hooks/beforeChange/flattenValidationData.js.map +1 -0
  93. package/dist/fields/hooks/beforeChange/promise.d.ts +2 -1
  94. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  95. package/dist/fields/hooks/beforeChange/promise.js +96 -22
  96. package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
  97. package/dist/fields/hooks/beforeChange/traverseFields.d.ts +2 -1
  98. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  99. package/dist/fields/hooks/beforeChange/traverseFields.js +2 -1
  100. package/dist/fields/hooks/beforeChange/traverseFields.js.map +1 -1
  101. package/dist/fields/validations.d.ts.map +1 -1
  102. package/dist/fields/validations.js +4 -1
  103. package/dist/fields/validations.js.map +1 -1
  104. package/dist/globals/config/types.d.ts +2 -1
  105. package/dist/globals/config/types.d.ts.map +1 -1
  106. package/dist/globals/config/types.js.map +1 -1
  107. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  108. package/dist/globals/operations/findVersionByID.js +7 -0
  109. package/dist/globals/operations/findVersionByID.js.map +1 -1
  110. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  111. package/dist/globals/operations/findVersions.js +5 -0
  112. package/dist/globals/operations/findVersions.js.map +1 -1
  113. package/dist/globals/operations/local/findOne.js.map +1 -1
  114. package/dist/globals/operations/local/update.js.map +1 -1
  115. package/dist/globals/operations/restoreVersion.d.ts +2 -3
  116. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  117. package/dist/globals/operations/restoreVersion.js +24 -20
  118. package/dist/globals/operations/restoreVersion.js.map +1 -1
  119. package/dist/globals/operations/validate.js +1 -1
  120. package/dist/globals/operations/validate.js.map +1 -1
  121. package/dist/hierarchy/addHierarchyToCollection.d.ts.map +1 -1
  122. package/dist/hierarchy/addHierarchyToCollection.js +32 -21
  123. package/dist/hierarchy/addHierarchyToCollection.js.map +1 -1
  124. package/dist/hierarchy/createFolderField.js.map +1 -1
  125. package/dist/hierarchy/resolveHierarchyCollections.js +9 -3
  126. package/dist/hierarchy/resolveHierarchyCollections.js.map +1 -1
  127. package/dist/hierarchy/utils/computePaths.d.ts.map +1 -1
  128. package/dist/hierarchy/utils/computePaths.js.map +1 -1
  129. package/dist/index.bundled.d.ts +47 -27
  130. package/dist/llm-instructions/getInstructionsCollection.d.ts.map +1 -1
  131. package/dist/llm-instructions/getInstructionsCollection.js +2 -0
  132. package/dist/llm-instructions/getInstructionsCollection.js.map +1 -1
  133. package/dist/preferences/keys.d.ts +3 -9
  134. package/dist/preferences/keys.d.ts.map +1 -1
  135. package/dist/preferences/keys.js +3 -9
  136. package/dist/preferences/keys.js.map +1 -1
  137. package/dist/preferences/types.d.ts +1 -1
  138. package/dist/preferences/types.js.map +1 -1
  139. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js +1 -1
  140. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js.map +1 -1
  141. package/dist/types/index.d.ts +9 -3
  142. package/dist/types/index.d.ts.map +1 -1
  143. package/dist/types/index.js.map +1 -1
  144. package/dist/uploads/fileVersioning/archive.js.map +1 -1
  145. package/dist/uploads/fileVersioning/cloudStorage.js.map +1 -1
  146. package/dist/uploads/fileVersioning/resolveHistoricalFile.js.map +1 -1
  147. package/dist/uploads/formatFilesize.js +1 -1
  148. package/dist/uploads/formatFilesize.js.map +1 -1
  149. package/dist/uploads/generateFileData.d.ts.map +1 -1
  150. package/dist/uploads/generateFileData.js.map +1 -1
  151. package/dist/uploads/getFileContentRequirement.js.map +1 -1
  152. package/dist/uploads/getFileFromUploadInstructions.js.map +1 -1
  153. package/dist/uploads/safeFetch.js.map +1 -1
  154. package/dist/uploads/stagedUpload.js.map +1 -1
  155. package/dist/uploads/transformers/handleDynamicFileRequest.js +11 -2
  156. package/dist/uploads/transformers/handleDynamicFileRequest.js.map +1 -1
  157. package/dist/utilities/addSelectGenericsToGeneretedTypes.d.ts.map +1 -1
  158. package/dist/utilities/addSelectGenericsToGeneretedTypes.js +0 -1
  159. package/dist/utilities/addSelectGenericsToGeneretedTypes.js.map +1 -1
  160. package/dist/utilities/appendDateTimezoneSelectFields.js.map +1 -1
  161. package/dist/utilities/cloneValidationRequest.js.map +1 -1
  162. package/dist/utilities/createPayloadRequest.js.map +1 -1
  163. package/dist/utilities/deepCopyObject.js.map +1 -1
  164. package/dist/utilities/documentMatchingWhereExists.js +1 -1
  165. package/dist/utilities/documentMatchingWhereExists.js.map +1 -1
  166. package/dist/utilities/entityInputSchema/validateEntityData.d.ts.map +1 -1
  167. package/dist/utilities/entityInputSchema/validateEntityData.js.map +1 -1
  168. package/dist/utilities/filterDataToSelectedLocales.js.map +1 -1
  169. package/dist/utilities/getEntityPermissions/getEntityPermissions.d.ts.map +1 -1
  170. package/dist/utilities/getEntityPermissions/getEntityPermissions.js +1 -0
  171. package/dist/utilities/getEntityPermissions/getEntityPermissions.js.map +1 -1
  172. package/dist/utilities/getEntityPermissions/populateFieldPermissions.js.map +1 -1
  173. package/dist/utilities/getVersionsConfig.d.ts +4 -0
  174. package/dist/utilities/getVersionsConfig.d.ts.map +1 -1
  175. package/dist/utilities/getVersionsConfig.js +5 -0
  176. package/dist/utilities/getVersionsConfig.js.map +1 -1
  177. package/dist/utilities/parseParams/index.js.map +1 -1
  178. package/dist/utilities/parseValidationLocale.js.map +1 -1
  179. package/dist/utilities/sanitizePopulateParam.js.map +1 -1
  180. package/dist/utilities/telemetry/conf/index.d.ts +4 -1
  181. package/dist/utilities/telemetry/conf/index.d.ts.map +1 -1
  182. package/dist/utilities/telemetry/conf/index.js.map +1 -1
  183. package/dist/utilities/telemetry/featureInfo/getFeatureInfo.js.map +1 -1
  184. package/dist/versions/allLocalesPublicationStatus.js.map +1 -1
  185. package/dist/versions/isInheritedReadVersionsAccess.js.map +1 -1
  186. package/dist/versions/types.d.ts +2 -0
  187. package/dist/versions/types.d.ts.map +1 -1
  188. package/dist/versions/types.js.map +1 -1
  189. package/package.json +30 -28
  190. package/skills/payload/reference/ENDPOINTS.md +3 -9
  191. package/skills/payload/reference/PLUGIN-DEVELOPMENT.md +4 -4
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/collections/operations/update.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport { randomUUID } from 'node:crypto'\nimport fs from 'node:fs/promises'\nimport path from 'node:path'\n\nimport type { AccessResult } from '../../config/types.js'\nimport type { PayloadRequest, PopulateType, SelectType, Sort, Where } from '../../types/index.js'\nimport type { UploadFileRollbacks } from '../../uploads/uploadFileRollback.js'\nimport type { DeferredCleanupScope } from '../../utilities/transactionCallbacks.js'\nimport type {\n BulkOperationResult,\n Collection,\n DataFromCollectionSlug,\n RequiredDataFromCollectionSlug,\n SelectFromCollectionSlug,\n} from '../config/types.js'\n\nimport { executeAccess } from '../../auth/executeAccess.js'\nimport { forkDocument } from '../../branching/forkDocument.js'\nimport { assertBranchMergeValidationWriteAllowed } from '../../branching/mergeWriteGuard.js'\nimport {\n refreshRequestDataLoader,\n resetBranchState,\n resolveBranch,\n} from '../../branching/resolveBranch.js'\nimport { branchField, MAIN_BRANCH } from '../../branching/types.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { validateQueryPaths } from '../../database/queryValidation/validateQueryPaths.js'\nimport { validateSortQuery } from '../../database/queryValidation/validateSortQuery.js'\nimport { sanitizeWhereQuery } from '../../database/sanitizeWhereQuery.js'\nimport { APIError } from '../../errors/index.js'\nimport { type CollectionSlug, type FindOptions } from '../../index.js'\nimport { runCloudFileUpdate } from '../../uploads/fileVersioning/cloudStorage.js'\nimport {\n abortFileOperationScope,\n beginFileOperationScope,\n completeFileOperationScope,\n shareFileOperationScope,\n} from '../../uploads/fileVersioning/fileOperationManager.js'\nimport { withLegacyCloudUploadFileData } from '../../uploads/fileVersioning/storedFiles.js'\nimport { generateFileData } from '../../uploads/generateFileData.js'\nimport {\n getLocalizedUploadProperties,\n getUploadDestination,\n mergeUploadDataWithDocument,\n sanitizeUploadData,\n} from '../../uploads/sanitizeUploadData.js'\nimport { unlinkTempFiles } from '../../uploads/unlinkTempFiles.js'\nimport {\n cleanupUploadFileRollbacks,\n rollbackUploadFiles,\n} from '../../uploads/uploadFileRollback.js'\nimport { appendNonTrashedFilter } from '../../utilities/appendNonTrashedFilter.js'\nimport { assertNoValidationWrite } from '../../utilities/assertNoValidationWrite.js'\nimport {\n commitTransaction,\n shouldRollbackTransactionArtifacts,\n} from '../../utilities/commitTransaction.js'\nimport { hasDraftsEnabled, hasLocalizeStatusEnabled } from '../../utilities/getVersionsConfig.js'\nimport { httpStatus } from '../../utilities/httpStatus.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { isErrorPublic } from '../../utilities/isErrorPublic.js'\nimport { isolateObjectProperty } from '../../utilities/isolateObjectProperty.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { resolveSelect } from '../../utilities/resolveSelect.js'\nimport { sanitizeSelect } from '../../utilities/sanitizeSelect.js'\nimport {\n beginDeferredCleanupScope,\n clearDeferredCleanupScope,\n createIsolatedDeferredCleanupContext,\n flushDeferredCleanupScope,\n flushDeferredCleanupScopeAfterOperation,\n} from '../../utilities/transactionCallbacks.js'\nimport {\n hasTransactionWrite,\n runInTransactionMutationScope,\n} from '../../utilities/transactionMutationTracker.js'\nimport {\n getAllLocalesPublicationStatus,\n normalizeAllLocalesPublicationStatus,\n reconcileAllLocalesPublicationStatus,\n validateAllLocalesPublicationFlags,\n} from '../../versions/allLocalesPublicationStatus.js'\nimport { buildVersionCollectionFields } from '../../versions/buildCollectionFields.js'\nimport { appendVersionToQueryKey } from '../../versions/drafts/appendVersionToQueryKey.js'\nimport { getQueryDraftsSort } from '../../versions/drafts/getQueryDraftsSort.js'\nimport { buildAfterOperation } from './utilities/buildAfterOperation.js'\nimport { buildBeforeOperation } from './utilities/buildBeforeOperation.js'\nimport { copyDataWithFreshRowIDs } from './utilities/copyDataWithFreshRowIDs.js'\nimport { sanitizeSortQuery } from './utilities/sanitizeSortQuery.js'\nimport { updateDocument } from './utilities/update.js'\n\nexport type Arguments<TSlug extends CollectionSlug> = {\n autosave?: boolean\n collection: Collection\n data: DeepPartial<RequiredDataFromCollectionSlug<TSlug>>\n depth?: number\n disableTransaction?: boolean\n disableVerificationEmail?: boolean\n draft?: boolean\n limit?: number\n overrideAccess?: boolean\n overrideLock?: boolean\n overwriteExistingFiles?: boolean\n populate?: PopulateType\n publishAllLocales?: boolean\n req: PayloadRequest\n showHiddenFields?: boolean\n /**\n * Sort the documents, can be a string or an array of strings\n * @example '-createdAt' // Sort DESC by createdAt\n * @example ['group', '-createdAt'] // sort by 2 fields, ASC group and DESC createdAt\n */\n sort?: Sort\n trash?: boolean\n unpublishAllLocales?: boolean\n where: Where\n} & Pick<FindOptions<TSlug, SelectType>, 'select'>\n\nexport const updateOperation = async <\n TSlug extends CollectionSlug,\n TSelect extends SelectFromCollectionSlug<TSlug>,\n>(\n incomingArgs: Arguments<TSlug>,\n): Promise<BulkOperationResult<TSlug, TSelect>> => {\n let args = incomingArgs\n let cleanupScope: DeferredCleanupScope | null = null\n let shouldUsePerDocumentBranchTransactions = false\n let shouldCommit = false\n const uploadFileRollbacks: UploadFileRollbacks = new Map()\n const hasFileOperationScope = Boolean(args.collection.config.upload)\n\n assertBranchMergeValidationWriteAllowed({ req: args.req })\n\n assertNoValidationWrite(args.req)\n\n if (args.collection.config.disableBulkEdit && !args.overrideAccess) {\n throw new APIError(`Collection ${args.collection.config.slug} has disabled bulk edit`, 403)\n }\n\n if (hasFileOperationScope) {\n beginFileOperationScope({ req: args.req })\n }\n\n try {\n const branch = resolveBranch(args.req)\n const isBranchUpdate =\n branch !== MAIN_BRANCH &&\n Boolean(\n args.req.payload.config.branching?.branchableCollections.has(args.collection.config.slug),\n )\n const hasCallerTransaction = Boolean(await args.req.transactionID)\n\n shouldUsePerDocumentBranchTransactions = isBranchUpdate && !hasCallerTransaction\n shouldCommit =\n !args.disableTransaction &&\n !args.req.payload.db.bulkOperationsSingleTransaction &&\n !shouldUsePerDocumentBranchTransactions &&\n (await initTransaction(args.req))\n cleanupScope = await beginDeferredCleanupScope({ req: args.req })\n\n if (args.collection.config.upload && !args.overrideAccess) {\n const { objectKey, prefix } = getUploadDestination({ data: args.data, file: args.req.file })\n const data = sanitizeUploadData(args.data, 'update')\n\n args = {\n ...args,\n data:\n typeof data === 'object' && data !== null\n ? {\n ...data,\n ...(prefix !== undefined ? { prefix } : {}),\n ...(objectKey !== undefined ? { _objectKey: objectKey } : {}),\n }\n : data,\n }\n }\n\n validateAllLocalesPublicationFlags({\n publishAllLocales: args.publishAllLocales,\n unpublishAllLocales: args.unpublishAllLocales,\n })\n\n const initialCollectionConfig = args.collection.config\n const initialAllLocalesPublicationStatus = getAllLocalesPublicationStatus({\n hasLocalizedStatus: Boolean(\n args.req.payload.config.localization && hasLocalizeStatusEnabled(initialCollectionConfig),\n ),\n publishAllLocales:\n !args.draft &&\n (args.publishAllLocales ??\n !(hasLocalizeStatusEnabled(initialCollectionConfig) && args.req.locale !== 'all')),\n unpublishAllLocales: Boolean(args.unpublishAllLocales),\n })\n\n const initialAllLocalesPublicationIntent = normalizeAllLocalesPublicationStatus({\n data: args.data,\n status: initialAllLocalesPublicationStatus,\n })\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n args = await buildBeforeOperation({\n args,\n collection: args.collection.config,\n operation: 'update',\n overrideAccess: args.overrideAccess!,\n })\n\n const {\n autosave = false,\n collection: { config: collectionConfig },\n collection,\n depth,\n draft: draftArg = false,\n limit = 0,\n overrideAccess,\n overrideLock,\n overwriteExistingFiles = false,\n populate,\n publishAllLocales: publishAllLocalesArg,\n req: {\n fallbackLocale,\n locale,\n payload: { config },\n payload,\n },\n req,\n select: incomingSelect,\n showHiddenFields,\n sort: incomingSort,\n trash = false,\n unpublishAllLocales: unpublishAllLocalesArg,\n where,\n } = args\n\n if (!where) {\n throw new APIError(\"Missing 'where' query of documents to update.\", httpStatus.BAD_REQUEST)\n }\n\n const { data: bulkUpdateData } = args\n\n validateAllLocalesPublicationFlags({\n publishAllLocales: publishAllLocalesArg,\n unpublishAllLocales: unpublishAllLocalesArg,\n })\n\n const requestedAllLocalesPublicationStatus = getAllLocalesPublicationStatus({\n hasLocalizedStatus: Boolean(\n config.localization && hasLocalizeStatusEnabled(collectionConfig),\n ),\n publishAllLocales:\n !draftArg &&\n (publishAllLocalesArg ?? !(hasLocalizeStatusEnabled(collectionConfig) && locale !== 'all')),\n unpublishAllLocales: Boolean(unpublishAllLocalesArg),\n })\n const allLocalesPublicationStatus = reconcileAllLocalesPublicationStatus({\n data: bulkUpdateData,\n intent: initialAllLocalesPublicationIntent,\n status: requestedAllLocalesPublicationStatus,\n })\n const publicationIntentSurvivedBeforeOperation =\n !requestedAllLocalesPublicationStatus || Boolean(allLocalesPublicationStatus)\n const publishAllLocales = publicationIntentSurvivedBeforeOperation\n ? publishAllLocalesArg\n : false\n const unpublishAllLocales = publicationIntentSurvivedBeforeOperation\n ? unpublishAllLocalesArg\n : false\n\n const shouldSaveDraft = Boolean(draftArg && hasDraftsEnabled(collectionConfig))\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n let accessResult: AccessResult\n if (!overrideAccess) {\n accessResult = await executeAccess(\n { slug: collectionConfig.slug, data: bulkUpdateData, req },\n collectionConfig.access.update,\n )\n }\n\n await validateQueryPaths({\n collectionConfig,\n overrideAccess: overrideAccess!,\n req,\n where,\n })\n\n // /////////////////////////////////////\n // Retrieve documents\n // /////////////////////////////////////\n\n let fullWhere = combineQueries(where, accessResult!)\n\n const isTrashAttempt =\n collectionConfig.trash &&\n typeof bulkUpdateData === 'object' &&\n bulkUpdateData !== null &&\n 'deletedAt' in bulkUpdateData &&\n bulkUpdateData.deletedAt != null\n\n // Enforce delete access if performing a soft-delete (trash)\n if (isTrashAttempt && !overrideAccess) {\n // Pass data so access function can check data.deletedAt to know it's a trash attempt\n const deleteAccessResult = await executeAccess(\n { slug: collectionConfig.slug, data: bulkUpdateData, req },\n collectionConfig.access.delete,\n )\n fullWhere = combineQueries(fullWhere, deleteAccessResult)\n }\n\n // Exclude trashed documents when trash: false\n fullWhere = appendNonTrashedFilter({\n enableTrash: collectionConfig.trash,\n trash,\n where: fullWhere,\n })\n\n sanitizeWhereQuery({ fields: collectionConfig.flattenedFields, payload, where: fullWhere })\n\n const sort = sanitizeSortQuery({\n fields: collection.config.flattenedFields,\n sort: incomingSort || collectionConfig.defaultSort,\n })\n\n await validateSortQuery({\n collectionConfig,\n overrideAccess: overrideAccess!,\n req,\n sort,\n })\n\n if (hasDraftsEnabled(collectionConfig) && (shouldSaveDraft || isTrashAttempt)) {\n await validateQueryPaths({\n collectionConfig: collection.config,\n overrideAccess: overrideAccess!,\n req,\n versionFields: buildVersionCollectionFields(payload.config, collection.config, true),\n where: appendVersionToQueryKey(where),\n })\n }\n\n const runQuery = async ({\n queryLimit = limit,\n queryReq = req,\n queryWhere = fullWhere,\n }: {\n queryLimit?: number\n queryReq?: PayloadRequest\n queryWhere?: Where\n } = {}) => {\n if (hasDraftsEnabled(collectionConfig) && (shouldSaveDraft || isTrashAttempt)) {\n const versionsWhere = appendVersionToQueryKey(queryWhere)\n\n const query = await payload.db.queryDrafts<DataFromCollectionSlug<TSlug>>({\n collection: collectionConfig.slug,\n limit: queryLimit,\n locale: locale!,\n pagination: false,\n req: queryReq,\n sort: getQueryDraftsSort({ collectionConfig, sort }),\n where: versionsWhere,\n })\n\n return query.docs\n }\n\n const query = await payload.db.find({\n collection: collectionConfig.slug,\n limit: queryLimit,\n locale: locale!,\n pagination: false,\n req: queryReq,\n sort,\n where: queryWhere,\n })\n\n return query.docs\n }\n\n const docs = await runQuery()\n\n const sharedGeneratedFileData = !collectionConfig.upload\n ? await generateFileData({\n collection,\n config,\n data: bulkUpdateData,\n operation: 'update',\n overwriteExistingFiles,\n req,\n throwOnMissingFile: false,\n })\n : null\n\n const errors: BulkOperationResult<TSlug, TSelect>['errors'] = []\n // File replacement cleanup needs a per-document checkpoint. Process file uploads in order so\n // each checkpoint remains the active nested scope until that document finishes.\n const shouldProcessDocumentsSequentially =\n isBranchUpdate ||\n req.payload.db.bulkOperationsSingleTransaction ||\n hasCallerTransaction ||\n Boolean(collectionConfig.upload && (req.file || shouldCommit))\n\n const processDocument = (initialDocWithLocales: (typeof docs)[number]) =>\n runInTransactionMutationScope({\n adapter: req.payload.db,\n callback: async (transactionMutationScope) => {\n const { id } = initialDocWithLocales\n let documentCleanupScope: DeferredCleanupScope | null = null\n let documentReq = req\n let documentTempFilePath: string | undefined\n let docShouldCommit = false\n let hasEnteredUpdateDocument = false\n let hasWrittenTransactionArtifact = false\n const documentUploadFileRollbacks: UploadFileRollbacks = new Map()\n\n if (collectionConfig.upload) {\n documentReq = isolateObjectProperty(documentReq, [\n 'context',\n 'file',\n 'payloadUploadSizes',\n ])\n documentReq.context = createIsolatedDeferredCleanupContext({ req })\n delete documentReq.context._payloadCloudStorage\n documentReq.file = req.file ? { ...req.file } : undefined\n documentReq.payloadUploadSizes =\n sharedGeneratedFileData === null ? {} : { ...req.payloadUploadSizes }\n }\n\n try {\n // Branch updates need a transaction per result so a caught document failure can roll back\n // its fork without removing successful documents from the same bulk operation.\n if (\n req.payload.db.bulkOperationsSingleTransaction ||\n (!args.disableTransaction && shouldUsePerDocumentBranchTransactions)\n ) {\n docShouldCommit = await initTransaction(documentReq)\n }\n if (collectionConfig.upload && !docShouldCommit) {\n shareFileOperationScope({ owner: req, req: documentReq })\n }\n if (collectionConfig.upload || shouldProcessDocumentsSequentially) {\n documentCleanupScope = await beginDeferredCleanupScope({ req: documentReq })\n }\n\n let docWithLocales = initialDocWithLocales\n\n if (isBranchUpdate) {\n const isExistingBranchDocument =\n (docWithLocales as Record<string, unknown>)[branchField] === branch\n\n if (hasCallerTransaction && !isExistingBranchDocument) {\n throw new APIError(\n 'Cannot update an untouched branch document within an existing transaction.',\n httpStatus.CONFLICT,\n )\n }\n\n await forkDocument({\n id,\n collectionSlug: collection.config.slug,\n req: documentReq,\n // Without an operation-owned transaction, keep the isolated race-recovery path. An\n // adapter with transactions disabled or unavailable cannot roll back a later hook\n // failure after its write has completed.\n useAmbientTransaction: docShouldCommit,\n })\n\n const branchDocuments = await runQuery({\n queryLimit: 1,\n queryReq: documentReq,\n queryWhere: combineQueries(fullWhere, { id: { equals: id } }),\n })\n const branchDocument = branchDocuments[0]\n\n if (!branchDocument) {\n throw new Error('Unable to read the branch document after creating its shadow.')\n }\n\n docWithLocales = branchDocument\n }\n\n if (collectionConfig.upload?.fileOperations) {\n docWithLocales = await withLegacyCloudUploadFileData({\n collection: collectionConfig,\n doc: docWithLocales,\n req: documentReq,\n })\n }\n\n const documentFile = documentReq.file ? { ...documentReq.file } : undefined\n if (collectionConfig.upload && !overrideAccess && documentFile?.tempFilePath) {\n const extension = path.extname(documentFile.tempFilePath)\n documentTempFilePath = path.join(\n path.dirname(documentFile.tempFilePath),\n `${path.basename(documentFile.tempFilePath, extension)}-${randomUUID()}${extension}`,\n )\n await fs.copyFile(documentFile.tempFilePath, documentTempFilePath)\n documentFile.tempFilePath = documentTempFilePath\n }\n\n if (collectionConfig.upload && documentFile) {\n documentReq.file = documentFile\n }\n const generatedFileData =\n sharedGeneratedFileData ??\n (await generateFileData({\n collection,\n config,\n data: mergeUploadDataWithDocument(bulkUpdateData, docWithLocales, {\n locale:\n locale === 'all' || !locale\n ? config.localization\n ? config.localization.defaultLocale\n : undefined\n : locale,\n localizedProperties: getLocalizedUploadProperties(\n collectionConfig.flattenedFields,\n ),\n }),\n operation: 'update',\n originalDoc: docWithLocales,\n overwriteExistingFiles,\n req: documentReq,\n throwOnMissingFile: false,\n }))\n\n const shouldTrackUploadFileRollback = Boolean(\n (shouldCommit || docShouldCommit) &&\n collectionConfig.upload &&\n !collectionConfig.upload.disableLocalStorage,\n )\n\n const select = sanitizeSelect({\n fields: collectionConfig.flattenedFields,\n select: resolveSelect({\n config: collectionConfig.select,\n operation: 'update',\n req,\n select: incomingSelect,\n }),\n })\n\n // ///////////////////////////////////////////////\n // Update document, runs all document level hooks\n // ///////////////////////////////////////////////\n hasEnteredUpdateDocument = true\n hasWrittenTransactionArtifact =\n shouldTrackUploadFileRollback && generatedFileData.files.length > 0\n const documentData = copyDataWithFreshRowIDs({\n config,\n data: generatedFileData.data,\n existingDoc: docWithLocales,\n fields: collectionConfig.fields,\n })\n const updateArgs = {\n id,\n autosave,\n collectionConfig,\n config,\n data: documentData,\n depth: depth!,\n docWithLocales,\n draftArg,\n fallbackLocale: fallbackLocale!,\n filesToUpload: generatedFileData.files,\n locale: locale!,\n onBeforeDocumentWrite: () => {\n hasWrittenTransactionArtifact = true\n },\n overrideAccess: overrideAccess!,\n overrideLock: overrideLock!,\n payload,\n populate,\n publishAllLocales,\n req: documentReq,\n select: select!,\n shouldManageLocalFiles: true,\n showHiddenFields: showHiddenFields!,\n unpublishAllLocales,\n uploadFileRollbacks: shouldTrackUploadFileRollback\n ? docShouldCommit\n ? documentUploadFileRollbacks\n : uploadFileRollbacks\n : undefined,\n } as const\n const write = () => updateDocument(updateArgs)\n let updatedDoc = collectionConfig.upload?.fileOperations\n ? await runCloudFileUpdate({\n id,\n collection: collectionConfig,\n current: docWithLocales,\n data: updateArgs.data,\n files: generatedFileData.files,\n req: documentReq,\n write,\n })\n : await write()\n\n // /////////////////////////////////////\n // Add collection property for auth collections\n // /////////////////////////////////////\n\n if (collectionConfig.auth) {\n updatedDoc = { ...updatedDoc, collection: collectionConfig.slug }\n }\n\n if (documentCleanupScope) {\n if (documentCleanupScope.transactionID === undefined) {\n await flushDeferredCleanupScopeAfterOperation({\n req: documentReq,\n scope: documentCleanupScope,\n })\n } else {\n await flushDeferredCleanupScope({ req: documentReq, scope: documentCleanupScope })\n }\n }\n if (docShouldCommit) {\n await commitTransaction(documentReq)\n\n await cleanupUploadFileRollbacks({ rollbacks: documentUploadFileRollbacks }).catch(\n (error) => {\n args.req.payload.logger.error({\n err: error,\n msg: 'Failed to remove an upload rollback backup after committing its document database write.',\n })\n },\n )\n }\n\n return updatedDoc\n } catch (error) {\n const isPublic = error instanceof Error ? isErrorPublic(error, config) : false\n const shouldRollbackArtifacts = shouldRollbackTransactionArtifacts({ error })\n\n if (documentCleanupScope) {\n clearDeferredCleanupScope({ req: documentReq, scope: documentCleanupScope })\n }\n if (docShouldCommit) {\n await killTransaction(documentReq)\n\n if (shouldRollbackArtifacts) {\n await rollbackUploadFiles({ rollbacks: documentUploadFileRollbacks }).catch(\n (rollbackError) => {\n args.req.payload.logger.error({\n err: rollbackError,\n msg: 'Failed to restore upload files after rolling back their document database write.',\n })\n },\n )\n }\n }\n if (isBranchUpdate) {\n resetBranchState(documentReq)\n }\n if (\n (hasCallerTransaction && hasEnteredUpdateDocument) ||\n (shouldCommit &&\n (hasTransactionWrite({ scope: transactionMutationScope }) ||\n hasWrittenTransactionArtifact))\n ) {\n throw error\n }\n errors.push({\n id,\n isPublic,\n message: error instanceof Error ? error.message : 'Unknown error',\n })\n } finally {\n if (documentTempFilePath) {\n await fs.rm(documentTempFilePath, { force: true }).catch((error) => {\n req.payload.logger.error({ err: error, msg: 'Failed to remove temp file copy' })\n })\n }\n }\n return null\n },\n })\n\n // Upload processing may mutate its temp file while cropping, so each upload document must\n // finish before the next starts. Branch updates also run in order because each result owns its\n // fork transaction. Other metadata-only bulk updates retain their parallel behavior.\n let awaitedDocs: (DataFromCollectionSlug<TSlug> | null)[]\n if (shouldProcessDocumentsSequentially) {\n awaitedDocs = []\n for (const doc of docs) {\n awaitedDocs.push(await processDocument(doc))\n }\n } else {\n const documentPromises = docs.map(processDocument)\n\n try {\n awaitedDocs = await Promise.all(documentPromises)\n } catch (error) {\n await Promise.allSettled(documentPromises)\n throw error\n }\n }\n\n await unlinkTempFiles({\n collectionConfig,\n config,\n req,\n }).catch((unlinkError) => {\n req.payload.logger.error({ err: unlinkError, msg: 'Failed to remove temp file' })\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: 'update',\n overrideAccess,\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n result,\n })\n\n if (cleanupScope) {\n if (errors.length === 0 || shouldProcessDocumentsSequentially) {\n await flushDeferredCleanupScopeAfterOperation({ req, scope: cleanupScope })\n } else {\n clearDeferredCleanupScope({ req: args.req, scope: cleanupScope })\n }\n }\n if (shouldCommit) {\n await commitTransaction(req)\n\n await cleanupUploadFileRollbacks({ rollbacks: uploadFileRollbacks }).catch((error) => {\n args.req.payload.logger.error({\n err: error,\n msg: 'Failed to remove an upload rollback backup after committing its database write.',\n })\n })\n }\n\n if (isBranchUpdate) {\n refreshRequestDataLoader(req)\n }\n\n if (hasFileOperationScope) {\n await completeFileOperationScope({ req })\n }\n\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n return result\n } catch (error: unknown) {\n const shouldRollbackArtifacts = shouldRollbackTransactionArtifacts({ error })\n\n if (shouldUsePerDocumentBranchTransactions) {\n resetBranchState(args.req)\n }\n\n if (cleanupScope) {\n clearDeferredCleanupScope({ req: args.req, scope: cleanupScope })\n }\n\n await unlinkTempFiles({\n collectionConfig: args.collection.config,\n config: args.req.payload.config,\n req: args.req,\n }).catch((unlinkError) => {\n args.req.payload.logger.error({ err: unlinkError, msg: 'Failed to remove temp file' })\n })\n if (shouldCommit) {\n await killTransaction(args.req)\n\n if (shouldRollbackArtifacts) {\n await rollbackUploadFiles({ rollbacks: uploadFileRollbacks }).catch((error) => {\n args.req.payload.logger.error({\n err: error,\n msg: 'Failed to restore upload files after rolling back their database write.',\n })\n })\n }\n }\n\n if (hasFileOperationScope) {\n await abortFileOperationScope({ req: args.req })\n }\n throw error\n }\n}\n"],"names":["randomUUID","fs","path","executeAccess","forkDocument","assertBranchMergeValidationWriteAllowed","refreshRequestDataLoader","resetBranchState","resolveBranch","branchField","MAIN_BRANCH","combineQueries","validateQueryPaths","validateSortQuery","sanitizeWhereQuery","APIError","runCloudFileUpdate","abortFileOperationScope","beginFileOperationScope","completeFileOperationScope","shareFileOperationScope","withLegacyCloudUploadFileData","generateFileData","getLocalizedUploadProperties","getUploadDestination","mergeUploadDataWithDocument","sanitizeUploadData","unlinkTempFiles","cleanupUploadFileRollbacks","rollbackUploadFiles","appendNonTrashedFilter","assertNoValidationWrite","commitTransaction","shouldRollbackTransactionArtifacts","hasDraftsEnabled","hasLocalizeStatusEnabled","httpStatus","initTransaction","isErrorPublic","isolateObjectProperty","killTransaction","resolveSelect","sanitizeSelect","beginDeferredCleanupScope","clearDeferredCleanupScope","createIsolatedDeferredCleanupContext","flushDeferredCleanupScope","flushDeferredCleanupScopeAfterOperation","hasTransactionWrite","runInTransactionMutationScope","getAllLocalesPublicationStatus","normalizeAllLocalesPublicationStatus","reconcileAllLocalesPublicationStatus","validateAllLocalesPublicationFlags","buildVersionCollectionFields","appendVersionToQueryKey","getQueryDraftsSort","buildAfterOperation","buildBeforeOperation","copyDataWithFreshRowIDs","sanitizeSortQuery","updateDocument","updateOperation","incomingArgs","args","cleanupScope","shouldUsePerDocumentBranchTransactions","shouldCommit","uploadFileRollbacks","Map","hasFileOperationScope","Boolean","collection","config","upload","req","disableBulkEdit","overrideAccess","slug","branch","isBranchUpdate","payload","branching","branchableCollections","has","hasCallerTransaction","transactionID","disableTransaction","db","bulkOperationsSingleTransaction","objectKey","prefix","data","file","undefined","_objectKey","publishAllLocales","unpublishAllLocales","initialCollectionConfig","initialAllLocalesPublicationStatus","hasLocalizedStatus","localization","draft","locale","initialAllLocalesPublicationIntent","status","operation","autosave","collectionConfig","depth","draftArg","limit","overrideLock","overwriteExistingFiles","populate","publishAllLocalesArg","fallbackLocale","select","incomingSelect","showHiddenFields","sort","incomingSort","trash","unpublishAllLocalesArg","where","BAD_REQUEST","bulkUpdateData","requestedAllLocalesPublicationStatus","allLocalesPublicationStatus","intent","publicationIntentSurvivedBeforeOperation","shouldSaveDraft","accessResult","access","update","fullWhere","isTrashAttempt","deletedAt","deleteAccessResult","delete","enableTrash","fields","flattenedFields","defaultSort","versionFields","runQuery","queryLimit","queryReq","queryWhere","versionsWhere","query","queryDrafts","pagination","docs","find","sharedGeneratedFileData","throwOnMissingFile","errors","shouldProcessDocumentsSequentially","processDocument","initialDocWithLocales","adapter","callback","transactionMutationScope","id","documentCleanupScope","documentReq","documentTempFilePath","docShouldCommit","hasEnteredUpdateDocument","hasWrittenTransactionArtifact","documentUploadFileRollbacks","context","_payloadCloudStorage","payloadUploadSizes","owner","docWithLocales","isExistingBranchDocument","CONFLICT","collectionSlug","useAmbientTransaction","branchDocuments","equals","branchDocument","Error","fileOperations","doc","documentFile","tempFilePath","extension","extname","join","dirname","basename","copyFile","generatedFileData","defaultLocale","localizedProperties","originalDoc","shouldTrackUploadFileRollback","disableLocalStorage","files","length","documentData","existingDoc","updateArgs","filesToUpload","onBeforeDocumentWrite","shouldManageLocalFiles","write","updatedDoc","current","auth","scope","rollbacks","catch","error","logger","err","msg","isPublic","shouldRollbackArtifacts","rollbackError","push","message","rm","force","awaitedDocs","documentPromises","map","Promise","all","allSettled","unlinkError","result","filter"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/collections/operations/update.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport { randomUUID } from 'node:crypto'\nimport fs from 'node:fs/promises'\nimport path from 'node:path'\n\nimport type { AccessResult } from '../../config/types.js'\nimport type { PayloadRequest, PopulateType, SelectType, Sort, Where } from '../../types/index.js'\nimport type { UploadFileRollbacks } from '../../uploads/uploadFileRollback.js'\nimport type { DeferredCleanupScope } from '../../utilities/transactionCallbacks.js'\nimport type {\n BulkOperationResult,\n Collection,\n DataFromCollectionSlug,\n RequiredDataFromCollectionSlug,\n SelectFromCollectionSlug,\n} from '../config/types.js'\n\nimport { executeAccess } from '../../auth/executeAccess.js'\nimport { forkDocument } from '../../branching/forkDocument.js'\nimport { assertBranchMergeValidationWriteAllowed } from '../../branching/mergeWriteGuard.js'\nimport {\n refreshRequestDataLoader,\n resetBranchState,\n resolveBranch,\n} from '../../branching/resolveBranch.js'\nimport { branchField, MAIN_BRANCH } from '../../branching/types.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { validateQueryPaths } from '../../database/queryValidation/validateQueryPaths.js'\nimport { validateSortQuery } from '../../database/queryValidation/validateSortQuery.js'\nimport { sanitizeWhereQuery } from '../../database/sanitizeWhereQuery.js'\nimport { APIError } from '../../errors/index.js'\nimport { type CollectionSlug, type FindOptions } from '../../index.js'\nimport { runCloudFileUpdate } from '../../uploads/fileVersioning/cloudStorage.js'\nimport {\n abortFileOperationScope,\n beginFileOperationScope,\n completeFileOperationScope,\n shareFileOperationScope,\n} from '../../uploads/fileVersioning/fileOperationManager.js'\nimport { withLegacyCloudUploadFileData } from '../../uploads/fileVersioning/storedFiles.js'\nimport { generateFileData } from '../../uploads/generateFileData.js'\nimport {\n getLocalizedUploadProperties,\n getUploadDestination,\n mergeUploadDataWithDocument,\n sanitizeUploadData,\n} from '../../uploads/sanitizeUploadData.js'\nimport { unlinkTempFiles } from '../../uploads/unlinkTempFiles.js'\nimport {\n cleanupUploadFileRollbacks,\n rollbackUploadFiles,\n} from '../../uploads/uploadFileRollback.js'\nimport { appendNonTrashedFilter } from '../../utilities/appendNonTrashedFilter.js'\nimport { assertNoValidationWrite } from '../../utilities/assertNoValidationWrite.js'\nimport {\n commitTransaction,\n shouldRollbackTransactionArtifacts,\n} from '../../utilities/commitTransaction.js'\nimport { hasDraftsEnabled, hasLocalizeStatusEnabled } from '../../utilities/getVersionsConfig.js'\nimport { httpStatus } from '../../utilities/httpStatus.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { isErrorPublic } from '../../utilities/isErrorPublic.js'\nimport { isolateObjectProperty } from '../../utilities/isolateObjectProperty.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { resolveSelect } from '../../utilities/resolveSelect.js'\nimport { sanitizeSelect } from '../../utilities/sanitizeSelect.js'\nimport {\n beginDeferredCleanupScope,\n clearDeferredCleanupScope,\n createIsolatedDeferredCleanupContext,\n flushDeferredCleanupScope,\n flushDeferredCleanupScopeAfterOperation,\n} from '../../utilities/transactionCallbacks.js'\nimport {\n hasTransactionWrite,\n runInTransactionMutationScope,\n} from '../../utilities/transactionMutationTracker.js'\nimport {\n getAllLocalesPublicationStatus,\n normalizeAllLocalesPublicationStatus,\n reconcileAllLocalesPublicationStatus,\n validateAllLocalesPublicationFlags,\n} from '../../versions/allLocalesPublicationStatus.js'\nimport { buildVersionCollectionFields } from '../../versions/buildCollectionFields.js'\nimport { appendVersionToQueryKey } from '../../versions/drafts/appendVersionToQueryKey.js'\nimport { getQueryDraftsSort } from '../../versions/drafts/getQueryDraftsSort.js'\nimport { buildAfterOperation } from './utilities/buildAfterOperation.js'\nimport { buildBeforeOperation } from './utilities/buildBeforeOperation.js'\nimport { copyDataWithFreshRowIDs } from './utilities/copyDataWithFreshRowIDs.js'\nimport { sanitizeSortQuery } from './utilities/sanitizeSortQuery.js'\nimport { updateDocument } from './utilities/update.js'\n\nexport type Arguments<TSlug extends CollectionSlug> = {\n autosave?: boolean\n collection: Collection\n data: DeepPartial<RequiredDataFromCollectionSlug<TSlug>>\n depth?: number\n disableTransaction?: boolean\n disableVerificationEmail?: boolean\n draft?: boolean\n limit?: number\n overrideAccess?: boolean\n overrideLock?: boolean\n overwriteExistingFiles?: boolean\n populate?: PopulateType\n publishAllLocales?: boolean\n req: PayloadRequest\n showHiddenFields?: boolean\n /**\n * Sort the documents, can be a string or an array of strings\n * @example '-createdAt' // Sort DESC by createdAt\n * @example ['group', '-createdAt'] // sort by 2 fields, ASC group and DESC createdAt\n */\n sort?: Sort\n trash?: boolean\n unpublishAllLocales?: boolean\n where: Where\n} & Pick<FindOptions<TSlug, SelectType>, 'select'>\n\nexport const updateOperation = async <\n TSlug extends CollectionSlug,\n TSelect extends SelectFromCollectionSlug<TSlug>,\n>(\n incomingArgs: Arguments<TSlug>,\n): Promise<BulkOperationResult<TSlug, TSelect>> => {\n let args = incomingArgs\n let cleanupScope: DeferredCleanupScope | null = null\n let shouldUsePerDocumentBranchTransactions = false\n let shouldCommit = false\n const uploadFileRollbacks: UploadFileRollbacks = new Map()\n const hasFileOperationScope = Boolean(args.collection.config.upload)\n\n assertBranchMergeValidationWriteAllowed({ req: args.req })\n\n assertNoValidationWrite(args.req)\n\n if (args.collection.config.disableBulkEdit && !args.overrideAccess) {\n throw new APIError(`Collection ${args.collection.config.slug} has disabled bulk edit`, 403)\n }\n\n if (hasFileOperationScope) {\n beginFileOperationScope({ req: args.req })\n }\n\n try {\n const branch = resolveBranch(args.req)\n const isBranchUpdate =\n branch !== MAIN_BRANCH &&\n Boolean(\n args.req.payload.config.branching?.branchableCollections.has(args.collection.config.slug),\n )\n const hasCallerTransaction = Boolean(await args.req.transactionID)\n\n shouldUsePerDocumentBranchTransactions = isBranchUpdate && !hasCallerTransaction\n shouldCommit =\n !args.disableTransaction &&\n !args.req.payload.db.bulkOperationsSingleTransaction &&\n !shouldUsePerDocumentBranchTransactions &&\n (await initTransaction(args.req))\n cleanupScope = await beginDeferredCleanupScope({ req: args.req })\n\n if (args.collection.config.upload && !args.overrideAccess) {\n const { objectKey, prefix } = getUploadDestination({ data: args.data, file: args.req.file })\n const data = sanitizeUploadData(args.data, 'update')\n\n args = {\n ...args,\n data:\n typeof data === 'object' && data !== null\n ? {\n ...data,\n ...(prefix !== undefined ? { prefix } : {}),\n ...(objectKey !== undefined ? { _objectKey: objectKey } : {}),\n }\n : data,\n }\n }\n\n validateAllLocalesPublicationFlags({\n publishAllLocales: args.publishAllLocales,\n unpublishAllLocales: args.unpublishAllLocales,\n })\n\n const initialCollectionConfig = args.collection.config\n const initialAllLocalesPublicationStatus = getAllLocalesPublicationStatus({\n hasLocalizedStatus: Boolean(\n args.req.payload.config.localization && hasLocalizeStatusEnabled(initialCollectionConfig),\n ),\n publishAllLocales:\n !args.draft &&\n (args.publishAllLocales ??\n !(hasLocalizeStatusEnabled(initialCollectionConfig) && args.req.locale !== 'all')),\n unpublishAllLocales: Boolean(args.unpublishAllLocales),\n })\n\n const initialAllLocalesPublicationIntent = normalizeAllLocalesPublicationStatus({\n data: args.data,\n status: initialAllLocalesPublicationStatus,\n })\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n args = await buildBeforeOperation({\n args,\n collection: args.collection.config,\n operation: 'update',\n overrideAccess: args.overrideAccess!,\n })\n\n const {\n autosave = false,\n collection: { config: collectionConfig },\n collection,\n depth,\n draft: draftArg = false,\n limit = 0,\n overrideAccess,\n overrideLock,\n overwriteExistingFiles = false,\n populate,\n publishAllLocales: publishAllLocalesArg,\n req: {\n fallbackLocale,\n locale,\n payload: { config },\n payload,\n },\n req,\n select: incomingSelect,\n showHiddenFields,\n sort: incomingSort,\n trash = false,\n unpublishAllLocales: unpublishAllLocalesArg,\n where,\n } = args\n\n if (!where) {\n throw new APIError(\"Missing 'where' query of documents to update.\", httpStatus.BAD_REQUEST)\n }\n\n const { data: bulkUpdateData } = args\n\n validateAllLocalesPublicationFlags({\n publishAllLocales: publishAllLocalesArg,\n unpublishAllLocales: unpublishAllLocalesArg,\n })\n\n const requestedAllLocalesPublicationStatus = getAllLocalesPublicationStatus({\n hasLocalizedStatus: Boolean(\n config.localization && hasLocalizeStatusEnabled(collectionConfig),\n ),\n publishAllLocales:\n !draftArg &&\n (publishAllLocalesArg ?? !(hasLocalizeStatusEnabled(collectionConfig) && locale !== 'all')),\n unpublishAllLocales: Boolean(unpublishAllLocalesArg),\n })\n const allLocalesPublicationStatus = reconcileAllLocalesPublicationStatus({\n data: bulkUpdateData,\n intent: initialAllLocalesPublicationIntent,\n status: requestedAllLocalesPublicationStatus,\n })\n const publicationIntentSurvivedBeforeOperation =\n !requestedAllLocalesPublicationStatus || Boolean(allLocalesPublicationStatus)\n const publishAllLocales = publicationIntentSurvivedBeforeOperation\n ? publishAllLocalesArg\n : false\n const unpublishAllLocales = publicationIntentSurvivedBeforeOperation\n ? unpublishAllLocalesArg\n : false\n\n const shouldSaveDraft = Boolean(draftArg && hasDraftsEnabled(collectionConfig))\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n let accessResult: AccessResult\n if (!overrideAccess) {\n accessResult = await executeAccess(\n { slug: collectionConfig.slug, data: bulkUpdateData, req },\n collectionConfig.access.update,\n )\n }\n\n await validateQueryPaths({\n collectionConfig,\n overrideAccess: overrideAccess!,\n req,\n where,\n })\n\n // /////////////////////////////////////\n // Retrieve documents\n // /////////////////////////////////////\n\n let fullWhere = combineQueries(where, accessResult!)\n\n const isTrashAttempt =\n collectionConfig.trash &&\n typeof bulkUpdateData === 'object' &&\n bulkUpdateData !== null &&\n 'deletedAt' in bulkUpdateData &&\n bulkUpdateData.deletedAt != null\n\n // Enforce delete access if performing a soft-delete (trash)\n if (isTrashAttempt && !overrideAccess) {\n // Pass data so access function can check data.deletedAt to know it's a trash attempt\n const deleteAccessResult = await executeAccess(\n { slug: collectionConfig.slug, data: bulkUpdateData, req },\n collectionConfig.access.delete,\n )\n fullWhere = combineQueries(fullWhere, deleteAccessResult)\n }\n\n // Exclude trashed documents when trash: false\n fullWhere = appendNonTrashedFilter({\n enableTrash: collectionConfig.trash,\n trash,\n where: fullWhere,\n })\n\n sanitizeWhereQuery({ fields: collectionConfig.flattenedFields, payload, where: fullWhere })\n\n const sort = sanitizeSortQuery({\n fields: collection.config.flattenedFields,\n sort: incomingSort || collectionConfig.defaultSort,\n })\n\n await validateSortQuery({\n collectionConfig,\n overrideAccess: overrideAccess!,\n req,\n sort,\n })\n\n if (hasDraftsEnabled(collectionConfig) && (shouldSaveDraft || isTrashAttempt)) {\n await validateQueryPaths({\n collectionConfig: collection.config,\n overrideAccess: overrideAccess!,\n req,\n versionFields: buildVersionCollectionFields(payload.config, collection.config, true),\n where: appendVersionToQueryKey(where),\n })\n }\n\n const runQuery = async ({\n queryLimit = limit,\n queryReq = req,\n queryWhere = fullWhere,\n }: {\n queryLimit?: number\n queryReq?: PayloadRequest\n queryWhere?: Where\n } = {}) => {\n if (hasDraftsEnabled(collectionConfig) && (shouldSaveDraft || isTrashAttempt)) {\n const versionsWhere = appendVersionToQueryKey(queryWhere)\n\n const query = await payload.db.queryDrafts<DataFromCollectionSlug<TSlug>>({\n collection: collectionConfig.slug,\n limit: queryLimit,\n locale: locale!,\n pagination: false,\n req: queryReq,\n sort: getQueryDraftsSort({ collectionConfig, sort }),\n where: versionsWhere,\n })\n\n return query.docs\n }\n\n const query = await payload.db.find({\n collection: collectionConfig.slug,\n limit: queryLimit,\n locale: locale!,\n pagination: false,\n req: queryReq,\n sort,\n where: queryWhere,\n })\n\n return query.docs\n }\n\n const docs = await runQuery()\n\n const sharedGeneratedFileData = !collectionConfig.upload\n ? await generateFileData({\n collection,\n config,\n data: bulkUpdateData,\n operation: 'update',\n overwriteExistingFiles,\n req,\n throwOnMissingFile: false,\n })\n : null\n\n const errors: BulkOperationResult<TSlug, TSelect>['errors'] = []\n // File replacement cleanup needs a per-document checkpoint. Process file uploads in order so\n // each checkpoint remains the active nested scope until that document finishes.\n const shouldProcessDocumentsSequentially =\n isBranchUpdate ||\n req.payload.db.bulkOperationsSingleTransaction ||\n hasCallerTransaction ||\n Boolean(collectionConfig.upload && (req.file || shouldCommit))\n\n const processDocument = (initialDocWithLocales: (typeof docs)[number]) =>\n runInTransactionMutationScope({\n adapter: req.payload.db,\n callback: async (transactionMutationScope) => {\n const { id } = initialDocWithLocales\n let documentCleanupScope: DeferredCleanupScope | null = null\n let documentReq = req\n let documentTempFilePath: string | undefined\n let docShouldCommit = false\n let hasEnteredUpdateDocument = false\n let hasWrittenTransactionArtifact = false\n const documentUploadFileRollbacks: UploadFileRollbacks = new Map()\n\n if (collectionConfig.upload) {\n documentReq = isolateObjectProperty(documentReq, [\n 'context',\n 'file',\n 'payloadUploadSizes',\n ])\n documentReq.context = createIsolatedDeferredCleanupContext({ req })\n delete documentReq.context._payloadCloudStorage\n documentReq.file = req.file ? { ...req.file } : undefined\n documentReq.payloadUploadSizes =\n sharedGeneratedFileData === null ? {} : { ...req.payloadUploadSizes }\n }\n\n try {\n // Branch updates need a transaction per result so a caught document failure can roll back\n // its fork without removing successful documents from the same bulk operation.\n if (\n req.payload.db.bulkOperationsSingleTransaction ||\n (!args.disableTransaction && shouldUsePerDocumentBranchTransactions)\n ) {\n docShouldCommit = await initTransaction(documentReq)\n }\n if (collectionConfig.upload && !docShouldCommit) {\n shareFileOperationScope({ owner: req, req: documentReq })\n }\n if (collectionConfig.upload || shouldProcessDocumentsSequentially) {\n documentCleanupScope = await beginDeferredCleanupScope({ req: documentReq })\n }\n\n let docWithLocales = initialDocWithLocales\n\n if (isBranchUpdate) {\n const isExistingBranchDocument =\n (docWithLocales as Record<string, unknown>)[branchField] === branch\n\n if (hasCallerTransaction && !isExistingBranchDocument) {\n throw new APIError(\n 'Cannot update an untouched branch document within an existing transaction.',\n httpStatus.CONFLICT,\n )\n }\n\n await forkDocument({\n id,\n collectionSlug: collection.config.slug,\n req: documentReq,\n // Without an operation-owned transaction, keep the isolated race-recovery path. An\n // adapter with transactions disabled or unavailable cannot roll back a later hook\n // failure after its write has completed.\n useAmbientTransaction: docShouldCommit,\n })\n\n const branchDocuments = await runQuery({\n queryLimit: 1,\n queryReq: documentReq,\n queryWhere: combineQueries(fullWhere, { id: { equals: id } }),\n })\n const branchDocument = branchDocuments[0]\n\n if (!branchDocument) {\n throw new Error('Unable to read the branch document after creating its shadow.')\n }\n\n docWithLocales = branchDocument\n }\n\n if (collectionConfig.upload?.fileOperations) {\n docWithLocales = await withLegacyCloudUploadFileData({\n collection: collectionConfig,\n doc: docWithLocales,\n req: documentReq,\n })\n }\n\n const documentFile = documentReq.file ? { ...documentReq.file } : undefined\n if (collectionConfig.upload && !overrideAccess && documentFile?.tempFilePath) {\n const extension = path.extname(documentFile.tempFilePath)\n documentTempFilePath = path.join(\n path.dirname(documentFile.tempFilePath),\n `${path.basename(documentFile.tempFilePath, extension)}-${randomUUID()}${extension}`,\n )\n await fs.copyFile(documentFile.tempFilePath, documentTempFilePath)\n documentFile.tempFilePath = documentTempFilePath\n }\n\n if (collectionConfig.upload && documentFile) {\n documentReq.file = documentFile\n }\n const generatedFileData =\n sharedGeneratedFileData ??\n (await generateFileData({\n collection,\n config,\n data: mergeUploadDataWithDocument(bulkUpdateData, docWithLocales, {\n locale:\n locale === 'all' || !locale\n ? config.localization\n ? config.localization.defaultLocale\n : undefined\n : locale,\n localizedProperties: getLocalizedUploadProperties(\n collectionConfig.flattenedFields,\n ),\n }),\n operation: 'update',\n originalDoc: docWithLocales,\n overwriteExistingFiles,\n req: documentReq,\n throwOnMissingFile: false,\n }))\n\n const shouldTrackUploadFileRollback = Boolean(\n (shouldCommit || docShouldCommit) &&\n collectionConfig.upload &&\n !collectionConfig.upload.disableLocalStorage,\n )\n\n const select = sanitizeSelect({\n fields: collectionConfig.flattenedFields,\n select: resolveSelect({\n config: collectionConfig.select,\n operation: 'update',\n req,\n select: incomingSelect,\n }),\n })\n\n // ///////////////////////////////////////////////\n // Update document, runs all document level hooks\n // ///////////////////////////////////////////////\n hasEnteredUpdateDocument = true\n hasWrittenTransactionArtifact =\n shouldTrackUploadFileRollback && generatedFileData.files.length > 0\n const documentData = copyDataWithFreshRowIDs({\n config,\n data: generatedFileData.data,\n existingDoc: docWithLocales,\n fields: collectionConfig.fields,\n })\n const updateArgs = {\n id,\n autosave,\n collectionConfig,\n config,\n data: documentData,\n depth: depth!,\n docWithLocales,\n draftArg,\n fallbackLocale: fallbackLocale!,\n filesToUpload: generatedFileData.files,\n locale: locale!,\n onBeforeDocumentWrite: () => {\n hasWrittenTransactionArtifact = true\n },\n overrideAccess: overrideAccess!,\n overrideLock: overrideLock!,\n payload,\n populate,\n publishAllLocales,\n req: documentReq,\n select: select!,\n shouldManageLocalFiles: true,\n showHiddenFields: showHiddenFields!,\n unpublishAllLocales,\n uploadFileRollbacks: shouldTrackUploadFileRollback\n ? docShouldCommit\n ? documentUploadFileRollbacks\n : uploadFileRollbacks\n : undefined,\n } as const\n const write = () => updateDocument(updateArgs)\n let updatedDoc = collectionConfig.upload?.fileOperations\n ? await runCloudFileUpdate({\n id,\n collection: collectionConfig,\n current: docWithLocales,\n data: updateArgs.data,\n files: generatedFileData.files,\n req: documentReq,\n write,\n })\n : await write()\n\n // /////////////////////////////////////\n // Add collection property for auth collections\n // /////////////////////////////////////\n\n if (collectionConfig.auth) {\n updatedDoc = { ...updatedDoc, collection: collectionConfig.slug }\n }\n\n if (documentCleanupScope) {\n if (documentCleanupScope.transactionID === undefined) {\n await flushDeferredCleanupScopeAfterOperation({\n req: documentReq,\n scope: documentCleanupScope,\n })\n } else {\n await flushDeferredCleanupScope({ req: documentReq, scope: documentCleanupScope })\n }\n }\n if (docShouldCommit) {\n await commitTransaction(documentReq)\n\n await cleanupUploadFileRollbacks({ rollbacks: documentUploadFileRollbacks }).catch(\n (error) => {\n args.req.payload.logger.error({\n err: error,\n msg: 'Failed to remove an upload rollback backup after committing its document database write.',\n })\n },\n )\n }\n\n return updatedDoc\n } catch (error) {\n const isPublic = error instanceof Error ? isErrorPublic(error, config) : false\n const shouldRollbackArtifacts = shouldRollbackTransactionArtifacts({ error })\n\n if (documentCleanupScope) {\n clearDeferredCleanupScope({ req: documentReq, scope: documentCleanupScope })\n }\n if (docShouldCommit) {\n await killTransaction(documentReq)\n\n if (shouldRollbackArtifacts) {\n await rollbackUploadFiles({ rollbacks: documentUploadFileRollbacks }).catch(\n (rollbackError) => {\n args.req.payload.logger.error({\n err: rollbackError,\n msg: 'Failed to restore upload files after rolling back their document database write.',\n })\n },\n )\n }\n }\n if (isBranchUpdate) {\n resetBranchState(documentReq)\n }\n if (\n (hasCallerTransaction && hasEnteredUpdateDocument) ||\n (shouldCommit &&\n (hasTransactionWrite({ scope: transactionMutationScope }) ||\n hasWrittenTransactionArtifact))\n ) {\n throw error\n }\n errors.push({\n id,\n isPublic,\n message: error instanceof Error ? error.message : 'Unknown error',\n })\n } finally {\n if (documentTempFilePath) {\n await fs.rm(documentTempFilePath, { force: true }).catch((error) => {\n req.payload.logger.error({ err: error, msg: 'Failed to remove temp file copy' })\n })\n }\n }\n return null\n },\n })\n\n // Upload processing may mutate its temp file while cropping, so each upload document must\n // finish before the next starts. Branch updates also run in order because each result owns its\n // fork transaction. Other metadata-only bulk updates retain their parallel behavior.\n let awaitedDocs: (DataFromCollectionSlug<TSlug> | null)[]\n if (shouldProcessDocumentsSequentially) {\n awaitedDocs = []\n for (const doc of docs) {\n awaitedDocs.push(await processDocument(doc))\n }\n } else {\n const documentPromises = docs.map(processDocument)\n\n try {\n awaitedDocs = await Promise.all(documentPromises)\n } catch (error) {\n await Promise.allSettled(documentPromises)\n throw error\n }\n }\n\n await unlinkTempFiles({\n collectionConfig,\n config,\n req,\n }).catch((unlinkError) => {\n req.payload.logger.error({ err: unlinkError, msg: 'Failed to remove temp file' })\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: 'update',\n overrideAccess,\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n result,\n })\n\n if (cleanupScope) {\n if (errors.length === 0 || shouldProcessDocumentsSequentially) {\n await flushDeferredCleanupScopeAfterOperation({ req, scope: cleanupScope })\n } else {\n clearDeferredCleanupScope({ req: args.req, scope: cleanupScope })\n }\n }\n if (shouldCommit) {\n await commitTransaction(req)\n\n await cleanupUploadFileRollbacks({ rollbacks: uploadFileRollbacks }).catch((error) => {\n args.req.payload.logger.error({\n err: error,\n msg: 'Failed to remove an upload rollback backup after committing its database write.',\n })\n })\n }\n\n if (isBranchUpdate) {\n refreshRequestDataLoader(req)\n }\n\n if (hasFileOperationScope) {\n await completeFileOperationScope({ req })\n }\n\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n return result\n } catch (error: unknown) {\n const shouldRollbackArtifacts = shouldRollbackTransactionArtifacts({ error })\n\n if (shouldUsePerDocumentBranchTransactions) {\n resetBranchState(args.req)\n }\n\n if (cleanupScope) {\n clearDeferredCleanupScope({ req: args.req, scope: cleanupScope })\n }\n\n await unlinkTempFiles({\n collectionConfig: args.collection.config,\n config: args.req.payload.config,\n req: args.req,\n }).catch((unlinkError) => {\n args.req.payload.logger.error({ err: unlinkError, msg: 'Failed to remove temp file' })\n })\n if (shouldCommit) {\n await killTransaction(args.req)\n\n if (shouldRollbackArtifacts) {\n await rollbackUploadFiles({ rollbacks: uploadFileRollbacks }).catch((error) => {\n args.req.payload.logger.error({\n err: error,\n msg: 'Failed to restore upload files after rolling back their database write.',\n })\n })\n }\n }\n\n if (hasFileOperationScope) {\n await abortFileOperationScope({ req: args.req })\n }\n throw error\n }\n}\n"],"names":["randomUUID","fs","path","executeAccess","forkDocument","assertBranchMergeValidationWriteAllowed","refreshRequestDataLoader","resetBranchState","resolveBranch","branchField","MAIN_BRANCH","combineQueries","validateQueryPaths","validateSortQuery","sanitizeWhereQuery","APIError","runCloudFileUpdate","abortFileOperationScope","beginFileOperationScope","completeFileOperationScope","shareFileOperationScope","withLegacyCloudUploadFileData","generateFileData","getLocalizedUploadProperties","getUploadDestination","mergeUploadDataWithDocument","sanitizeUploadData","unlinkTempFiles","cleanupUploadFileRollbacks","rollbackUploadFiles","appendNonTrashedFilter","assertNoValidationWrite","commitTransaction","shouldRollbackTransactionArtifacts","hasDraftsEnabled","hasLocalizeStatusEnabled","httpStatus","initTransaction","isErrorPublic","isolateObjectProperty","killTransaction","resolveSelect","sanitizeSelect","beginDeferredCleanupScope","clearDeferredCleanupScope","createIsolatedDeferredCleanupContext","flushDeferredCleanupScope","flushDeferredCleanupScopeAfterOperation","hasTransactionWrite","runInTransactionMutationScope","getAllLocalesPublicationStatus","normalizeAllLocalesPublicationStatus","reconcileAllLocalesPublicationStatus","validateAllLocalesPublicationFlags","buildVersionCollectionFields","appendVersionToQueryKey","getQueryDraftsSort","buildAfterOperation","buildBeforeOperation","copyDataWithFreshRowIDs","sanitizeSortQuery","updateDocument","updateOperation","incomingArgs","args","cleanupScope","shouldUsePerDocumentBranchTransactions","shouldCommit","uploadFileRollbacks","Map","hasFileOperationScope","Boolean","collection","config","upload","req","disableBulkEdit","overrideAccess","slug","branch","isBranchUpdate","payload","branching","branchableCollections","has","hasCallerTransaction","transactionID","disableTransaction","db","bulkOperationsSingleTransaction","objectKey","prefix","data","file","undefined","_objectKey","publishAllLocales","unpublishAllLocales","initialCollectionConfig","initialAllLocalesPublicationStatus","hasLocalizedStatus","localization","draft","locale","initialAllLocalesPublicationIntent","status","operation","autosave","collectionConfig","depth","draftArg","limit","overrideLock","overwriteExistingFiles","populate","publishAllLocalesArg","fallbackLocale","select","incomingSelect","showHiddenFields","sort","incomingSort","trash","unpublishAllLocalesArg","where","BAD_REQUEST","bulkUpdateData","requestedAllLocalesPublicationStatus","allLocalesPublicationStatus","intent","publicationIntentSurvivedBeforeOperation","shouldSaveDraft","accessResult","access","update","fullWhere","isTrashAttempt","deletedAt","deleteAccessResult","delete","enableTrash","fields","flattenedFields","defaultSort","versionFields","runQuery","queryLimit","queryReq","queryWhere","versionsWhere","query","queryDrafts","pagination","docs","find","sharedGeneratedFileData","throwOnMissingFile","errors","shouldProcessDocumentsSequentially","processDocument","initialDocWithLocales","adapter","callback","transactionMutationScope","id","documentCleanupScope","documentReq","documentTempFilePath","docShouldCommit","hasEnteredUpdateDocument","hasWrittenTransactionArtifact","documentUploadFileRollbacks","context","_payloadCloudStorage","payloadUploadSizes","owner","docWithLocales","isExistingBranchDocument","CONFLICT","collectionSlug","useAmbientTransaction","branchDocuments","equals","branchDocument","Error","fileOperations","doc","documentFile","tempFilePath","extension","extname","join","dirname","basename","copyFile","generatedFileData","defaultLocale","localizedProperties","originalDoc","shouldTrackUploadFileRollback","disableLocalStorage","files","length","documentData","existingDoc","updateArgs","filesToUpload","onBeforeDocumentWrite","shouldManageLocalFiles","write","updatedDoc","current","auth","scope","rollbacks","catch","error","logger","err","msg","isPublic","shouldRollbackArtifacts","rollbackError","push","message","rm","force","awaitedDocs","documentPromises","map","Promise","all","allSettled","unlinkError","result","filter"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/collections/operations/updateByID.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport type { FindOneArgs } from '../../database/types.js'\nimport type {\n PayloadRequest,\n PopulateType,\n SelectType,\n TransformCollectionWithSelect,\n Where,\n} from '../../types/index.js'\nimport type { UploadFileRollbacks } from '../../uploads/uploadFileRollback.js'\nimport type { DeferredCleanupScope } from '../../utilities/transactionCallbacks.js'\nimport type {\n Collection,\n RequiredDataFromCollectionSlug,\n SelectFromCollectionSlug,\n TypeWithID,\n} from '../config/types.js'\n\nimport { executeAccess } from '../../auth/executeAccess.js'\nimport { hasWhereAccessResult } from '../../auth/types.js'\nimport { retryConcurrentShadowOperation } from '../../branching/createShadowRow.js'\nimport { forkDocument } from '../../branching/forkDocument.js'\nimport { assertBranchMergeValidationWriteAllowed } from '../../branching/mergeWriteGuard.js'\nimport {\n refreshRequestDataLoader,\n resetBranchState,\n resolveBranch,\n} from '../../branching/resolveBranch.js'\nimport { branchField, MAIN_BRANCH } from '../../branching/types.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { APIError, Forbidden, NotFound } from '../../errors/index.js'\nimport { type CollectionSlug, deepCopyObjectSimple, type FindOptions } from '../../index.js'\nimport { runCloudFileUpdate } from '../../uploads/fileVersioning/cloudStorage.js'\nimport {\n abortFileOperationScope,\n beginFileOperationScope,\n completeFileOperationScope,\n} from '../../uploads/fileVersioning/fileOperationManager.js'\nimport { withLegacyCloudUploadFileData } from '../../uploads/fileVersioning/storedFiles.js'\nimport { generateFileData } from '../../uploads/generateFileData.js'\nimport {\n getLocalizedUploadProperties,\n getUploadDestination,\n mergeUploadDataWithDocument,\n sanitizeUploadData,\n} from '../../uploads/sanitizeUploadData.js'\nimport { unlinkTempFiles } from '../../uploads/unlinkTempFiles.js'\nimport {\n cleanupUploadFileRollbacks,\n rollbackUploadFiles,\n} from '../../uploads/uploadFileRollback.js'\nimport { appendNonTrashedFilter } from '../../utilities/appendNonTrashedFilter.js'\nimport { assertNoValidationWrite } from '../../utilities/assertNoValidationWrite.js'\nimport {\n commitTransaction,\n shouldRollbackTransactionArtifacts,\n} from '../../utilities/commitTransaction.js'\nimport { hasLocalizeStatusEnabled } from '../../utilities/getVersionsConfig.js'\nimport { httpStatus } from '../../utilities/httpStatus.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { resolveSelect } from '../../utilities/resolveSelect.js'\nimport { sanitizeSelect } from '../../utilities/sanitizeSelect.js'\nimport {\n beginDeferredCleanupScope,\n clearDeferredCleanupScope,\n flushDeferredCleanupScopeAfterOperation,\n hasActiveDeferredCleanupScope,\n} from '../../utilities/transactionCallbacks.js'\nimport {\n getAllLocalesPublicationStatus,\n normalizeAllLocalesPublicationStatus,\n reconcileAllLocalesPublicationStatus,\n validateAllLocalesPublicationFlags,\n} from '../../versions/allLocalesPublicationStatus.js'\nimport { getLatestCollectionVersion } from '../../versions/getLatestCollectionVersion.js'\nimport { buildAfterOperation } from './utilities/buildAfterOperation.js'\nimport { buildBeforeOperation } from './utilities/buildBeforeOperation.js'\nimport {\n commitOperationRetryRequestContext,\n createOperationRetryRequest,\n shouldRetryOperationRequest,\n} from './utilities/createOperationRetryRequest.js'\nimport { updateDocument } from './utilities/update.js'\n\nexport const branchMergeUploadDataContextKey = Symbol('branchMergeUploadData')\n\nexport type BranchMergeUploadDataContext = {\n collectionSlug: string\n data: unknown\n id: number | string\n}\n\nexport type Arguments<TSlug extends CollectionSlug> = {\n autosave?: boolean\n /** @internal Storage request for an in-place branch-created row promotion. */\n branchMergeStorageReq?: PayloadRequest\n collection: Collection\n data: DeepPartial<RequiredDataFromCollectionSlug<TSlug>>\n depth?: number\n disableTransaction?: boolean\n disableVerificationEmail?: boolean\n draft?: boolean\n id: number | string\n overrideAccess?: boolean\n overrideLock?: boolean\n overwriteExistingFiles?: boolean\n populate?: PopulateType\n publishAllLocales?: boolean\n req: PayloadRequest\n showHiddenFields?: boolean\n trash?: boolean\n unpublishAllLocales?: boolean\n} & Pick<FindOptions<TSlug, SelectType>, 'select'>\n\nexport const updateByIDOperation = <\n TSlug extends CollectionSlug,\n TSelect extends SelectFromCollectionSlug<TSlug> = SelectType,\n>(\n incomingArgs: Arguments<TSlug>,\n): Promise<TransformCollectionWithSelect<TSlug, TSelect>> =>\n updateByIDOperationWithLifecycle<TSlug, TSelect>({\n incomingArgs,\n lifecycleOperation: 'update',\n })\n\n/**\n * Promotes a branch-created row while applying create access and lifecycle hooks.\n * This module is not a package export; external callers use `updateByIDOperation`.\n *\n * @internal\n */\nexport const updateByIDOperationForBranchMerge = <\n TSlug extends CollectionSlug,\n TSelect extends SelectFromCollectionSlug<TSlug> = SelectType,\n>(\n incomingArgs: Arguments<TSlug>,\n): Promise<TransformCollectionWithSelect<TSlug, TSelect>> =>\n updateByIDOperationWithLifecycle<TSlug, TSelect>({\n incomingArgs,\n lifecycleOperation: 'create',\n trustedUploadData: incomingArgs.data,\n })\n\nconst updateByIDOperationWithLifecycle = async <\n TSlug extends CollectionSlug,\n TSelect extends SelectFromCollectionSlug<TSlug> = SelectType,\n>({\n incomingArgs,\n lifecycleOperation,\n trustedUploadData,\n}: {\n incomingArgs: Arguments<TSlug>\n lifecycleOperation: 'create' | 'update'\n trustedUploadData?: unknown\n}): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n assertNoValidationWrite(incomingArgs.req)\n\n const reqContext = incomingArgs.req.context as Record<PropertyKey, unknown> | undefined\n const pendingBranchMergeUploadData = reqContext?.[branchMergeUploadDataContextKey] as\n | BranchMergeUploadDataContext\n | undefined\n let branchMergeUploadDataToTrust: BranchMergeUploadDataContext | undefined =\n trustedUploadData === undefined\n ? undefined\n : {\n id: incomingArgs.id,\n collectionSlug: incomingArgs.collection.config.slug,\n data: trustedUploadData,\n }\n\n if (\n pendingBranchMergeUploadData?.collectionSlug === incomingArgs.collection.config.slug &&\n pendingBranchMergeUploadData.id === incomingArgs.id\n ) {\n branchMergeUploadDataToTrust ??= pendingBranchMergeUploadData\n delete reqContext![branchMergeUploadDataContextKey]\n }\n\n const hasCallerTransaction = Boolean(await incomingArgs.req.transactionID)\n const pristineData = deepCopyObjectSimple(incomingArgs.data)\n const shouldIsolateTempFile = Boolean(\n !hasCallerTransaction &&\n incomingArgs.req.file?.tempFilePath &&\n (incomingArgs.req.payload.config.upload?.useTempFiles ||\n incomingArgs.req.file.uploadReference ||\n incomingArgs.req.context?._payloadClientUploadTempFile),\n )\n let didOwnAttemptTransaction = false\n let didReachFinalCommit = false\n let isRetrySafe = false\n\n try {\n return await retryConcurrentShadowOperation({\n operation: async () => {\n didOwnAttemptTransaction = false\n didReachFinalCommit = false\n isRetrySafe = false\n\n const shouldReuseParentRequest =\n incomingArgs.disableTransaction &&\n hasActiveDeferredCleanupScope({ req: incomingArgs.req })\n const retryRequest =\n hasCallerTransaction || shouldReuseParentRequest\n ? undefined\n : await createOperationRetryRequest({\n copyFileTempPath: shouldIsolateTempFile,\n req: incomingArgs.req,\n })\n\n isRetrySafe = retryRequest?.isRetrySafe ?? false\n const attemptArgs = retryRequest\n ? {\n ...incomingArgs,\n data: deepCopyObjectSimple(pristineData),\n req: retryRequest.req,\n }\n : incomingArgs\n\n const result = await updateByIDOperationWithLifecycleAttempt<TSlug, TSelect>({\n branchMergeUploadDataToTrust,\n hasCallerTransaction,\n incomingArgs: attemptArgs,\n lifecycleOperation,\n reportFinalCommit: () => {\n didReachFinalCommit = true\n },\n reportTransactionOwnership: ({ isOperationTransaction }) => {\n didOwnAttemptTransaction = isOperationTransaction\n },\n })\n\n if (retryRequest?.isRetrySafe) {\n commitOperationRetryRequestContext({ req: attemptArgs.req })\n }\n\n return result\n },\n shouldRetry: ({ error }) =>\n shouldRetryOperationRequest({\n didOwnAttemptTransaction,\n didReachFinalCommit,\n error,\n hasCallerTransaction,\n isRetrySafe,\n }),\n })\n } finally {\n if (shouldIsolateTempFile) {\n await unlinkTempFiles({\n collectionConfig: incomingArgs.collection.config,\n config: incomingArgs.req.payload.config,\n req: incomingArgs.req,\n }).catch((unlinkError) => {\n incomingArgs.req.payload.logger.error({\n err: unlinkError,\n msg: 'Failed to remove temp file',\n })\n })\n }\n }\n}\n\nconst updateByIDOperationWithLifecycleAttempt = async <\n TSlug extends CollectionSlug,\n TSelect extends SelectFromCollectionSlug<TSlug> = SelectType,\n>({\n branchMergeUploadDataToTrust,\n hasCallerTransaction,\n incomingArgs,\n lifecycleOperation,\n reportFinalCommit,\n reportTransactionOwnership,\n}: {\n branchMergeUploadDataToTrust?: BranchMergeUploadDataContext\n hasCallerTransaction: boolean\n incomingArgs: Arguments<TSlug>\n lifecycleOperation: 'create' | 'update'\n reportFinalCommit: () => void\n reportTransactionOwnership: (args: { isOperationTransaction: boolean }) => void\n}): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n let args = incomingArgs\n let cleanupScope: DeferredCleanupScope | null = null\n let didResolveBranchFork = false\n let shouldCommit = false\n const uploadFileRollbacks: UploadFileRollbacks = new Map()\n const hasFileOperationScope = Boolean(args.collection.config.upload)\n\n assertBranchMergeValidationWriteAllowed({ req: args.req })\n\n if (hasFileOperationScope) {\n beginFileOperationScope({ req: args.req })\n }\n\n try {\n shouldCommit = !args.disableTransaction && (await initTransaction(args.req))\n reportTransactionOwnership({ isOperationTransaction: shouldCommit })\n cleanupScope = await beginDeferredCleanupScope({ req: args.req })\n\n if (args.collection.config.upload && !args.overrideAccess) {\n const { objectKey, prefix } = getUploadDestination({ data: args.data, file: args.req.file })\n const data = sanitizeUploadData(args.data, 'update')\n\n args = {\n ...args,\n data:\n typeof data === 'object' && data !== null\n ? {\n ...data,\n ...(prefix !== undefined ? { prefix } : {}),\n ...(objectKey !== undefined ? { _objectKey: objectKey } : {}),\n }\n : data,\n }\n }\n\n validateAllLocalesPublicationFlags({\n publishAllLocales: args.publishAllLocales,\n unpublishAllLocales: args.unpublishAllLocales,\n })\n\n const initialCollectionConfig = args.collection.config\n const initialAllLocalesPublicationStatus = getAllLocalesPublicationStatus({\n hasLocalizedStatus: Boolean(\n args.req.payload.config.localization && hasLocalizeStatusEnabled(initialCollectionConfig),\n ),\n publishAllLocales:\n !args.draft &&\n (args.publishAllLocales ??\n (hasLocalizeStatusEnabled(initialCollectionConfig) && args.req.locale !== 'all'\n ? false\n : true)),\n unpublishAllLocales: Boolean(args.unpublishAllLocales),\n })\n\n const initialAllLocalesPublicationIntent = normalizeAllLocalesPublicationStatus({\n data: args.data,\n status: initialAllLocalesPublicationStatus,\n })\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n args = await buildBeforeOperation({\n args,\n collection: args.collection.config,\n operation: 'update',\n overrideAccess: args.overrideAccess!,\n })\n\n const {\n id,\n autosave = false,\n branchMergeStorageReq,\n collection: { config: collectionConfig },\n collection,\n depth,\n draft: draftArg = false,\n overrideAccess,\n overrideLock,\n overwriteExistingFiles = false,\n populate,\n publishAllLocales: publishAllLocalesArg,\n req: {\n fallbackLocale,\n locale,\n payload: { config },\n payload,\n },\n req,\n select: incomingSelect,\n showHiddenFields,\n trash = false,\n unpublishAllLocales: unpublishAllLocalesArg,\n } = args\n\n if (!id) {\n throw new APIError('Missing ID of document to update.', httpStatus.BAD_REQUEST)\n }\n\n let { data } = args\n\n validateAllLocalesPublicationFlags({\n publishAllLocales: publishAllLocalesArg,\n unpublishAllLocales: unpublishAllLocalesArg,\n })\n\n const requestedAllLocalesPublicationStatus = getAllLocalesPublicationStatus({\n hasLocalizedStatus: Boolean(\n config.localization && hasLocalizeStatusEnabled(collectionConfig),\n ),\n publishAllLocales:\n !draftArg &&\n (publishAllLocalesArg ?? !(hasLocalizeStatusEnabled(collectionConfig) && locale !== 'all')),\n unpublishAllLocales: Boolean(unpublishAllLocalesArg),\n })\n const allLocalesPublicationStatus = reconcileAllLocalesPublicationStatus({\n data,\n intent: initialAllLocalesPublicationIntent,\n status: requestedAllLocalesPublicationStatus,\n })\n const publicationIntentSurvivedBeforeOperation =\n !requestedAllLocalesPublicationStatus || Boolean(allLocalesPublicationStatus)\n const publishAllLocales = publicationIntentSurvivedBeforeOperation\n ? publishAllLocalesArg\n : false\n const unpublishAllLocales = publicationIntentSurvivedBeforeOperation\n ? unpublishAllLocalesArg\n : false\n\n const authorizedDocument = await readAuthorizedUpdateDocument<TSlug>({\n id,\n collectionConfig,\n data,\n lifecycleOperation,\n locale: locale!,\n overrideAccess: overrideAccess!,\n req,\n storageReq: branchMergeStorageReq,\n trash,\n })\n let { docWithLocales } = authorizedDocument\n const branch = resolveBranch(req)\n const isBranchingDocument =\n branch !== MAIN_BRANCH &&\n req.payload.config.branching?.branchableCollections.has(collectionConfig.slug)\n\n if (isBranchingDocument) {\n const isExistingBranchDocument = docWithLocales[branchField] === branch\n\n if (hasCallerTransaction && !isExistingBranchDocument) {\n throw new APIError(\n 'Cannot update an untouched branch document within an existing transaction.',\n httpStatus.CONFLICT,\n )\n }\n\n await forkDocument({\n id,\n collectionSlug: collectionConfig.slug,\n req,\n // Without an operation-owned transaction, retain the isolated race-recovery path. An\n // adapter with transactions disabled or unavailable cannot roll back a later hook failure.\n useAmbientTransaction: shouldCommit,\n })\n didResolveBranchFork = true\n\n if (!isExistingBranchDocument) {\n docWithLocales = await readUpdateDocument<TSlug>({\n id,\n collectionConfig,\n hasWherePolicy: authorizedDocument.hasWherePolicy,\n locale: locale!,\n req,\n where: authorizedDocument.where,\n })\n }\n }\n\n const storedDocWithLocales = docWithLocales\n if (collectionConfig.upload.fileOperations) {\n docWithLocales = await withLegacyCloudUploadFileData({\n collection: collectionConfig,\n doc: docWithLocales,\n req,\n })\n }\n\n if (collectionConfig.upload && !overrideAccess) {\n const trustedUploadDataForDocument =\n branchMergeUploadDataToTrust?.collectionSlug === collectionConfig.slug &&\n branchMergeUploadDataToTrust.id === id\n ? branchMergeUploadDataToTrust.data\n : docWithLocales\n\n data = mergeUploadDataWithDocument(data, trustedUploadDataForDocument, {\n locale:\n locale === 'all' || !locale\n ? config.localization\n ? config.localization.defaultLocale\n : undefined\n : locale,\n localizedProperties: getLocalizedUploadProperties(collectionConfig.flattenedFields),\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: 'update',\n originalDoc: docWithLocales,\n overwriteExistingFiles,\n req,\n throwOnMissingFile: false,\n })\n\n const select = sanitizeSelect({\n fields: collectionConfig.flattenedFields,\n select: resolveSelect({\n config: collectionConfig.select,\n operation: 'update',\n req,\n select: incomingSelect,\n }),\n })\n\n // ///////////////////////////////////////////////\n // Update document, runs all document level hooks\n // ///////////////////////////////////////////////\n\n const updateArgs = {\n id,\n autosave,\n collectionConfig,\n config,\n data: deepCopyObjectSimple(newFileData),\n databaseReq: branchMergeStorageReq,\n depth: depth!,\n docWithLocales,\n draftArg,\n fallbackLocale: fallbackLocale!,\n filesToUpload,\n locale: locale!,\n operation: lifecycleOperation,\n overrideAccess: overrideAccess!,\n overrideLock: overrideLock!,\n payload,\n populate,\n publishAllLocales,\n req,\n select: select!,\n shouldManageLocalFiles: true,\n showHiddenFields: showHiddenFields!,\n unpublishAllLocales,\n uploadFileRollbacks:\n shouldCommit && collectionConfig.upload && !collectionConfig.upload.disableLocalStorage\n ? uploadFileRollbacks\n : undefined,\n } as const\n\n const write = () => updateDocument<TSlug, TSelect>(updateArgs)\n let result = collectionConfig.upload.fileOperations\n ? await runCloudFileUpdate({\n id,\n collection: collectionConfig,\n current: storedDocWithLocales,\n data: updateArgs.data,\n files: filesToUpload,\n req,\n write,\n })\n : await write()\n\n // /////////////////////////////////////\n // Add collection property for auth collections\n // /////////////////////////////////////\n\n if (collectionConfig.auth) {\n result = { ...result, collection: collectionConfig.slug }\n }\n\n await unlinkTempFiles({\n collectionConfig,\n config,\n req,\n }).catch((unlinkError) => {\n req.payload.logger.error({ err: unlinkError, msg: 'Failed to remove temp file' })\n })\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = (await buildAfterOperation({\n args,\n collection: collectionConfig,\n operation: 'updateByID',\n overrideAccess,\n result,\n })) as TransformCollectionWithSelect<TSlug, TSelect>\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n if (cleanupScope) {\n await flushDeferredCleanupScopeAfterOperation({ req, scope: cleanupScope })\n }\n if (shouldCommit) {\n reportFinalCommit()\n await commitTransaction(req)\n\n await cleanupUploadFileRollbacks({ rollbacks: uploadFileRollbacks }).catch((error) => {\n args.req.payload.logger.error({\n err: error,\n msg: 'Failed to remove an upload rollback backup after committing its database write.',\n })\n })\n }\n\n if (isBranchingDocument) {\n refreshRequestDataLoader(req)\n }\n\n if (hasFileOperationScope) {\n await completeFileOperationScope({ req })\n }\n\n return result\n } catch (error: unknown) {\n const shouldRollbackArtifacts = shouldRollbackTransactionArtifacts({ error })\n\n if (cleanupScope) {\n clearDeferredCleanupScope({ req: args.req, scope: cleanupScope })\n }\n\n await unlinkTempFiles({\n collectionConfig: args.collection.config,\n config: args.req.payload.config,\n req: args.req,\n }).catch((unlinkError) => {\n args.req.payload.logger.error({ err: unlinkError, msg: 'Failed to remove temp file' })\n })\n if (shouldCommit) {\n await killTransaction(args.req)\n if (didResolveBranchFork) {\n resetBranchState(args.req)\n }\n\n if (shouldRollbackArtifacts) {\n await rollbackUploadFiles({ rollbacks: uploadFileRollbacks })\n }\n }\n\n if (hasFileOperationScope) {\n await abortFileOperationScope({ req: args.req })\n }\n throw error\n }\n}\n\nconst readAuthorizedUpdateDocument = async <TSlug extends CollectionSlug>({\n id,\n collectionConfig,\n data,\n lifecycleOperation,\n locale,\n overrideAccess,\n req,\n storageReq,\n trash,\n}: {\n collectionConfig: Collection['config']\n data: DeepPartial<RequiredDataFromCollectionSlug<TSlug>>\n id: number | string\n lifecycleOperation: 'create' | 'update'\n locale: string\n overrideAccess: boolean\n req: PayloadRequest\n storageReq?: PayloadRequest\n trash: boolean\n}): Promise<{\n docWithLocales: RequiredDataFromCollectionSlug<TSlug> & TypeWithID\n hasWherePolicy: boolean\n where: Where\n}> => {\n if (!id) {\n throw new APIError('Missing ID of document to update.', httpStatus.BAD_REQUEST)\n }\n\n const accessResults = !overrideAccess\n ? await executeAccess(\n {\n id: lifecycleOperation === 'create' ? undefined : id,\n slug: collectionConfig.slug,\n data,\n req,\n },\n collectionConfig.access[lifecycleOperation],\n )\n : true\n const hasWherePolicy = lifecycleOperation !== 'create' && hasWhereAccessResult(accessResults)\n const where = { id: { equals: id } }\n let fullWhere = hasWherePolicy ? combineQueries(where, accessResults) : where\n const isTrashAttempt =\n collectionConfig.trash &&\n typeof data === 'object' &&\n data !== null &&\n 'deletedAt' in data &&\n data.deletedAt != null\n\n if (isTrashAttempt && !overrideAccess) {\n const deleteAccessResult = await executeAccess(\n { id, slug: collectionConfig.slug, data, req },\n collectionConfig.access.delete,\n )\n\n fullWhere = combineQueries(fullWhere, deleteAccessResult)\n }\n\n fullWhere = appendNonTrashedFilter({\n enableTrash: collectionConfig.trash,\n trash,\n where: fullWhere,\n })\n\n const docWithLocales = await readUpdateDocument<TSlug>({\n id,\n collectionConfig,\n hasWherePolicy,\n locale,\n req: storageReq ?? req,\n where: fullWhere,\n })\n\n return { docWithLocales, hasWherePolicy, where: fullWhere }\n}\n\nconst readUpdateDocument = async <TSlug extends CollectionSlug>({\n id,\n collectionConfig,\n hasWherePolicy,\n locale,\n req,\n where,\n}: {\n collectionConfig: Collection['config']\n hasWherePolicy: boolean\n id: number | string\n locale: string\n req: PayloadRequest\n where: Where\n}): Promise<RequiredDataFromCollectionSlug<TSlug> & TypeWithID> => {\n const findOneArgs: FindOneArgs = {\n collection: collectionConfig.slug,\n locale,\n req,\n where,\n }\n const docWithLocales = await getLatestCollectionVersion<\n RequiredDataFromCollectionSlug<TSlug> & TypeWithID\n >({\n id,\n config: collectionConfig,\n payload: req.payload,\n query: findOneArgs,\n req,\n })\n\n if (!docWithLocales) {\n if (hasWherePolicy) {\n throw new Forbidden(req.t)\n }\n\n throw new NotFound(req.t)\n }\n\n return docWithLocales\n}\n"],"names":["executeAccess","hasWhereAccessResult","retryConcurrentShadowOperation","forkDocument","assertBranchMergeValidationWriteAllowed","refreshRequestDataLoader","resetBranchState","resolveBranch","branchField","MAIN_BRANCH","combineQueries","APIError","Forbidden","NotFound","deepCopyObjectSimple","runCloudFileUpdate","abortFileOperationScope","beginFileOperationScope","completeFileOperationScope","withLegacyCloudUploadFileData","generateFileData","getLocalizedUploadProperties","getUploadDestination","mergeUploadDataWithDocument","sanitizeUploadData","unlinkTempFiles","cleanupUploadFileRollbacks","rollbackUploadFiles","appendNonTrashedFilter","assertNoValidationWrite","commitTransaction","shouldRollbackTransactionArtifacts","hasLocalizeStatusEnabled","httpStatus","initTransaction","killTransaction","resolveSelect","sanitizeSelect","beginDeferredCleanupScope","clearDeferredCleanupScope","flushDeferredCleanupScopeAfterOperation","hasActiveDeferredCleanupScope","getAllLocalesPublicationStatus","normalizeAllLocalesPublicationStatus","reconcileAllLocalesPublicationStatus","validateAllLocalesPublicationFlags","getLatestCollectionVersion","buildAfterOperation","buildBeforeOperation","commitOperationRetryRequestContext","createOperationRetryRequest","shouldRetryOperationRequest","updateDocument","branchMergeUploadDataContextKey","Symbol","updateByIDOperation","incomingArgs","updateByIDOperationWithLifecycle","lifecycleOperation","updateByIDOperationForBranchMerge","trustedUploadData","data","req","reqContext","context","pendingBranchMergeUploadData","branchMergeUploadDataToTrust","undefined","id","collectionSlug","collection","config","slug","hasCallerTransaction","Boolean","transactionID","pristineData","shouldIsolateTempFile","file","tempFilePath","payload","upload","useTempFiles","uploadReference","_payloadClientUploadTempFile","didOwnAttemptTransaction","didReachFinalCommit","isRetrySafe","operation","shouldReuseParentRequest","disableTransaction","retryRequest","copyFileTempPath","attemptArgs","result","updateByIDOperationWithLifecycleAttempt","reportFinalCommit","reportTransactionOwnership","isOperationTransaction","shouldRetry","error","collectionConfig","catch","unlinkError","logger","err","msg","args","cleanupScope","didResolveBranchFork","shouldCommit","uploadFileRollbacks","Map","hasFileOperationScope","overrideAccess","objectKey","prefix","_objectKey","publishAllLocales","unpublishAllLocales","initialCollectionConfig","initialAllLocalesPublicationStatus","hasLocalizedStatus","localization","draft","locale","initialAllLocalesPublicationIntent","status","autosave","branchMergeStorageReq","depth","draftArg","overrideLock","overwriteExistingFiles","populate","publishAllLocalesArg","fallbackLocale","select","incomingSelect","showHiddenFields","trash","unpublishAllLocalesArg","BAD_REQUEST","requestedAllLocalesPublicationStatus","allLocalesPublicationStatus","intent","publicationIntentSurvivedBeforeOperation","authorizedDocument","readAuthorizedUpdateDocument","storageReq","docWithLocales","branch","isBranchingDocument","branching","branchableCollections","has","isExistingBranchDocument","CONFLICT","useAmbientTransaction","readUpdateDocument","hasWherePolicy","where","storedDocWithLocales","fileOperations","doc","trustedUploadDataForDocument","defaultLocale","localizedProperties","flattenedFields","newFileData","files","filesToUpload","originalDoc","throwOnMissingFile","fields","updateArgs","databaseReq","shouldManageLocalFiles","disableLocalStorage","write","current","auth","scope","rollbacks","shouldRollbackArtifacts","accessResults","access","equals","fullWhere","isTrashAttempt","deletedAt","deleteAccessResult","delete","enableTrash","findOneArgs","query","t"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/collections/operations/updateByID.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport type { FindOneArgs } from '../../database/types.js'\nimport type {\n PayloadRequest,\n PopulateType,\n SelectType,\n TransformCollectionWithSelect,\n Where,\n} from '../../types/index.js'\nimport type { UploadFileRollbacks } from '../../uploads/uploadFileRollback.js'\nimport type { DeferredCleanupScope } from '../../utilities/transactionCallbacks.js'\nimport type {\n Collection,\n RequiredDataFromCollectionSlug,\n SelectFromCollectionSlug,\n TypeWithID,\n} from '../config/types.js'\n\nimport { executeAccess } from '../../auth/executeAccess.js'\nimport { hasWhereAccessResult } from '../../auth/types.js'\nimport { retryConcurrentShadowOperation } from '../../branching/createShadowRow.js'\nimport { forkDocument } from '../../branching/forkDocument.js'\nimport { assertBranchMergeValidationWriteAllowed } from '../../branching/mergeWriteGuard.js'\nimport {\n refreshRequestDataLoader,\n resetBranchState,\n resolveBranch,\n} from '../../branching/resolveBranch.js'\nimport { branchField, MAIN_BRANCH } from '../../branching/types.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { APIError, Forbidden, NotFound } from '../../errors/index.js'\nimport { type CollectionSlug, deepCopyObjectSimple, type FindOptions } from '../../index.js'\nimport { runCloudFileUpdate } from '../../uploads/fileVersioning/cloudStorage.js'\nimport {\n abortFileOperationScope,\n beginFileOperationScope,\n completeFileOperationScope,\n} from '../../uploads/fileVersioning/fileOperationManager.js'\nimport { withLegacyCloudUploadFileData } from '../../uploads/fileVersioning/storedFiles.js'\nimport { generateFileData } from '../../uploads/generateFileData.js'\nimport {\n getLocalizedUploadProperties,\n getUploadDestination,\n mergeUploadDataWithDocument,\n sanitizeUploadData,\n} from '../../uploads/sanitizeUploadData.js'\nimport { unlinkTempFiles } from '../../uploads/unlinkTempFiles.js'\nimport {\n cleanupUploadFileRollbacks,\n rollbackUploadFiles,\n} from '../../uploads/uploadFileRollback.js'\nimport { appendNonTrashedFilter } from '../../utilities/appendNonTrashedFilter.js'\nimport { assertNoValidationWrite } from '../../utilities/assertNoValidationWrite.js'\nimport {\n commitTransaction,\n shouldRollbackTransactionArtifacts,\n} from '../../utilities/commitTransaction.js'\nimport { hasLocalizeStatusEnabled } from '../../utilities/getVersionsConfig.js'\nimport { httpStatus } from '../../utilities/httpStatus.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { resolveSelect } from '../../utilities/resolveSelect.js'\nimport { sanitizeSelect } from '../../utilities/sanitizeSelect.js'\nimport {\n beginDeferredCleanupScope,\n clearDeferredCleanupScope,\n flushDeferredCleanupScopeAfterOperation,\n hasActiveDeferredCleanupScope,\n} from '../../utilities/transactionCallbacks.js'\nimport {\n getAllLocalesPublicationStatus,\n normalizeAllLocalesPublicationStatus,\n reconcileAllLocalesPublicationStatus,\n validateAllLocalesPublicationFlags,\n} from '../../versions/allLocalesPublicationStatus.js'\nimport { getLatestCollectionVersion } from '../../versions/getLatestCollectionVersion.js'\nimport { buildAfterOperation } from './utilities/buildAfterOperation.js'\nimport { buildBeforeOperation } from './utilities/buildBeforeOperation.js'\nimport {\n commitOperationRetryRequestContext,\n createOperationRetryRequest,\n shouldRetryOperationRequest,\n} from './utilities/createOperationRetryRequest.js'\nimport { updateDocument } from './utilities/update.js'\n\nexport const branchMergeUploadDataContextKey = Symbol('branchMergeUploadData')\n\nexport type BranchMergeUploadDataContext = {\n collectionSlug: string\n data: unknown\n id: number | string\n}\n\nexport type Arguments<TSlug extends CollectionSlug> = {\n autosave?: boolean\n /** @internal Storage request for an in-place branch-created row promotion. */\n branchMergeStorageReq?: PayloadRequest\n collection: Collection\n data: DeepPartial<RequiredDataFromCollectionSlug<TSlug>>\n depth?: number\n disableTransaction?: boolean\n disableVerificationEmail?: boolean\n draft?: boolean\n id: number | string\n overrideAccess?: boolean\n overrideLock?: boolean\n overwriteExistingFiles?: boolean\n populate?: PopulateType\n publishAllLocales?: boolean\n req: PayloadRequest\n showHiddenFields?: boolean\n trash?: boolean\n unpublishAllLocales?: boolean\n} & Pick<FindOptions<TSlug, SelectType>, 'select'>\n\nexport const updateByIDOperation = <\n TSlug extends CollectionSlug,\n TSelect extends SelectFromCollectionSlug<TSlug> = SelectType,\n>(\n incomingArgs: Arguments<TSlug>,\n): Promise<TransformCollectionWithSelect<TSlug, TSelect>> =>\n updateByIDOperationWithLifecycle<TSlug, TSelect>({\n incomingArgs,\n lifecycleOperation: 'update',\n })\n\n/**\n * Promotes a branch-created row while applying create access and lifecycle hooks.\n * This module is not a package export; external callers use `updateByIDOperation`.\n *\n * @internal\n */\nexport const updateByIDOperationForBranchMerge = <\n TSlug extends CollectionSlug,\n TSelect extends SelectFromCollectionSlug<TSlug> = SelectType,\n>(\n incomingArgs: Arguments<TSlug>,\n): Promise<TransformCollectionWithSelect<TSlug, TSelect>> =>\n updateByIDOperationWithLifecycle<TSlug, TSelect>({\n incomingArgs,\n lifecycleOperation: 'create',\n trustedUploadData: incomingArgs.data,\n })\n\nconst updateByIDOperationWithLifecycle = async <\n TSlug extends CollectionSlug,\n TSelect extends SelectFromCollectionSlug<TSlug> = SelectType,\n>({\n incomingArgs,\n lifecycleOperation,\n trustedUploadData,\n}: {\n incomingArgs: Arguments<TSlug>\n lifecycleOperation: 'create' | 'update'\n trustedUploadData?: unknown\n}): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n assertNoValidationWrite(incomingArgs.req)\n\n const reqContext = incomingArgs.req.context as Record<PropertyKey, unknown> | undefined\n const pendingBranchMergeUploadData = reqContext?.[branchMergeUploadDataContextKey] as\n | BranchMergeUploadDataContext\n | undefined\n let branchMergeUploadDataToTrust: BranchMergeUploadDataContext | undefined =\n trustedUploadData === undefined\n ? undefined\n : {\n id: incomingArgs.id,\n collectionSlug: incomingArgs.collection.config.slug,\n data: trustedUploadData,\n }\n\n if (\n pendingBranchMergeUploadData?.collectionSlug === incomingArgs.collection.config.slug &&\n pendingBranchMergeUploadData.id === incomingArgs.id\n ) {\n branchMergeUploadDataToTrust ??= pendingBranchMergeUploadData\n delete reqContext![branchMergeUploadDataContextKey]\n }\n\n const hasCallerTransaction = Boolean(await incomingArgs.req.transactionID)\n const pristineData = deepCopyObjectSimple(incomingArgs.data)\n const shouldIsolateTempFile = Boolean(\n !hasCallerTransaction &&\n incomingArgs.req.file?.tempFilePath &&\n (incomingArgs.req.payload.config.upload?.useTempFiles ||\n incomingArgs.req.file.uploadReference ||\n incomingArgs.req.context?._payloadClientUploadTempFile),\n )\n let didOwnAttemptTransaction = false\n let didReachFinalCommit = false\n let isRetrySafe = false\n\n try {\n return await retryConcurrentShadowOperation({\n operation: async () => {\n didOwnAttemptTransaction = false\n didReachFinalCommit = false\n isRetrySafe = false\n\n const shouldReuseParentRequest =\n incomingArgs.disableTransaction &&\n hasActiveDeferredCleanupScope({ req: incomingArgs.req })\n const retryRequest =\n hasCallerTransaction || shouldReuseParentRequest\n ? undefined\n : await createOperationRetryRequest({\n copyFileTempPath: shouldIsolateTempFile,\n req: incomingArgs.req,\n })\n\n isRetrySafe = retryRequest?.isRetrySafe ?? false\n const attemptArgs = retryRequest\n ? {\n ...incomingArgs,\n data: deepCopyObjectSimple(pristineData),\n req: retryRequest.req,\n }\n : incomingArgs\n\n const result = await updateByIDOperationWithLifecycleAttempt<TSlug, TSelect>({\n branchMergeUploadDataToTrust,\n hasCallerTransaction,\n incomingArgs: attemptArgs,\n lifecycleOperation,\n reportFinalCommit: () => {\n didReachFinalCommit = true\n },\n reportTransactionOwnership: ({ isOperationTransaction }) => {\n didOwnAttemptTransaction = isOperationTransaction\n },\n })\n\n if (retryRequest?.isRetrySafe) {\n commitOperationRetryRequestContext({ req: attemptArgs.req })\n }\n\n return result\n },\n shouldRetry: ({ error }) =>\n shouldRetryOperationRequest({\n didOwnAttemptTransaction,\n didReachFinalCommit,\n error,\n hasCallerTransaction,\n isRetrySafe,\n }),\n })\n } finally {\n if (shouldIsolateTempFile) {\n await unlinkTempFiles({\n collectionConfig: incomingArgs.collection.config,\n config: incomingArgs.req.payload.config,\n req: incomingArgs.req,\n }).catch((unlinkError) => {\n incomingArgs.req.payload.logger.error({\n err: unlinkError,\n msg: 'Failed to remove temp file',\n })\n })\n }\n }\n}\n\nconst updateByIDOperationWithLifecycleAttempt = async <\n TSlug extends CollectionSlug,\n TSelect extends SelectFromCollectionSlug<TSlug> = SelectType,\n>({\n branchMergeUploadDataToTrust,\n hasCallerTransaction,\n incomingArgs,\n lifecycleOperation,\n reportFinalCommit,\n reportTransactionOwnership,\n}: {\n branchMergeUploadDataToTrust?: BranchMergeUploadDataContext\n hasCallerTransaction: boolean\n incomingArgs: Arguments<TSlug>\n lifecycleOperation: 'create' | 'update'\n reportFinalCommit: () => void\n reportTransactionOwnership: (args: { isOperationTransaction: boolean }) => void\n}): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n let args = incomingArgs\n let cleanupScope: DeferredCleanupScope | null = null\n let didResolveBranchFork = false\n let shouldCommit = false\n const uploadFileRollbacks: UploadFileRollbacks = new Map()\n const hasFileOperationScope = Boolean(args.collection.config.upload)\n\n assertBranchMergeValidationWriteAllowed({ req: args.req })\n\n if (hasFileOperationScope) {\n beginFileOperationScope({ req: args.req })\n }\n\n try {\n shouldCommit = !args.disableTransaction && (await initTransaction(args.req))\n reportTransactionOwnership({ isOperationTransaction: shouldCommit })\n cleanupScope = await beginDeferredCleanupScope({ req: args.req })\n\n if (args.collection.config.upload && !args.overrideAccess) {\n const { objectKey, prefix } = getUploadDestination({ data: args.data, file: args.req.file })\n const data = sanitizeUploadData(args.data, 'update')\n\n args = {\n ...args,\n data:\n typeof data === 'object' && data !== null\n ? {\n ...data,\n ...(prefix !== undefined ? { prefix } : {}),\n ...(objectKey !== undefined ? { _objectKey: objectKey } : {}),\n }\n : data,\n }\n }\n\n validateAllLocalesPublicationFlags({\n publishAllLocales: args.publishAllLocales,\n unpublishAllLocales: args.unpublishAllLocales,\n })\n\n const initialCollectionConfig = args.collection.config\n const initialAllLocalesPublicationStatus = getAllLocalesPublicationStatus({\n hasLocalizedStatus: Boolean(\n args.req.payload.config.localization && hasLocalizeStatusEnabled(initialCollectionConfig),\n ),\n publishAllLocales:\n !args.draft &&\n (args.publishAllLocales ??\n (hasLocalizeStatusEnabled(initialCollectionConfig) && args.req.locale !== 'all'\n ? false\n : true)),\n unpublishAllLocales: Boolean(args.unpublishAllLocales),\n })\n\n const initialAllLocalesPublicationIntent = normalizeAllLocalesPublicationStatus({\n data: args.data,\n status: initialAllLocalesPublicationStatus,\n })\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n args = await buildBeforeOperation({\n args,\n collection: args.collection.config,\n operation: 'update',\n overrideAccess: args.overrideAccess!,\n })\n\n const {\n id,\n autosave = false,\n branchMergeStorageReq,\n collection: { config: collectionConfig },\n collection,\n depth,\n draft: draftArg = false,\n overrideAccess,\n overrideLock,\n overwriteExistingFiles = false,\n populate,\n publishAllLocales: publishAllLocalesArg,\n req: {\n fallbackLocale,\n locale,\n payload: { config },\n payload,\n },\n req,\n select: incomingSelect,\n showHiddenFields,\n trash = false,\n unpublishAllLocales: unpublishAllLocalesArg,\n } = args\n\n if (!id) {\n throw new APIError('Missing ID of document to update.', httpStatus.BAD_REQUEST)\n }\n\n let { data } = args\n\n validateAllLocalesPublicationFlags({\n publishAllLocales: publishAllLocalesArg,\n unpublishAllLocales: unpublishAllLocalesArg,\n })\n\n const requestedAllLocalesPublicationStatus = getAllLocalesPublicationStatus({\n hasLocalizedStatus: Boolean(\n config.localization && hasLocalizeStatusEnabled(collectionConfig),\n ),\n publishAllLocales:\n !draftArg &&\n (publishAllLocalesArg ?? !(hasLocalizeStatusEnabled(collectionConfig) && locale !== 'all')),\n unpublishAllLocales: Boolean(unpublishAllLocalesArg),\n })\n const allLocalesPublicationStatus = reconcileAllLocalesPublicationStatus({\n data,\n intent: initialAllLocalesPublicationIntent,\n status: requestedAllLocalesPublicationStatus,\n })\n const publicationIntentSurvivedBeforeOperation =\n !requestedAllLocalesPublicationStatus || Boolean(allLocalesPublicationStatus)\n const publishAllLocales = publicationIntentSurvivedBeforeOperation\n ? publishAllLocalesArg\n : false\n const unpublishAllLocales = publicationIntentSurvivedBeforeOperation\n ? unpublishAllLocalesArg\n : false\n\n const authorizedDocument = await readAuthorizedUpdateDocument<TSlug>({\n id,\n collectionConfig,\n data,\n lifecycleOperation,\n locale: locale!,\n overrideAccess: overrideAccess!,\n req,\n storageReq: branchMergeStorageReq,\n trash,\n })\n let { docWithLocales } = authorizedDocument\n const branch = resolveBranch(req)\n const isBranchingDocument =\n branch !== MAIN_BRANCH &&\n req.payload.config.branching?.branchableCollections.has(collectionConfig.slug)\n\n if (isBranchingDocument) {\n const isExistingBranchDocument = docWithLocales[branchField] === branch\n\n if (hasCallerTransaction && !isExistingBranchDocument) {\n throw new APIError(\n 'Cannot update an untouched branch document within an existing transaction.',\n httpStatus.CONFLICT,\n )\n }\n\n await forkDocument({\n id,\n collectionSlug: collectionConfig.slug,\n req,\n // Without an operation-owned transaction, retain the isolated race-recovery path. An\n // adapter with transactions disabled or unavailable cannot roll back a later hook failure.\n useAmbientTransaction: shouldCommit,\n })\n didResolveBranchFork = true\n\n if (!isExistingBranchDocument) {\n docWithLocales = await readUpdateDocument<TSlug>({\n id,\n collectionConfig,\n hasWherePolicy: authorizedDocument.hasWherePolicy,\n locale: locale!,\n req,\n where: authorizedDocument.where,\n })\n }\n }\n\n const storedDocWithLocales = docWithLocales\n if (collectionConfig.upload.fileOperations) {\n docWithLocales = await withLegacyCloudUploadFileData({\n collection: collectionConfig,\n doc: docWithLocales,\n req,\n })\n }\n\n if (collectionConfig.upload && !overrideAccess) {\n const trustedUploadDataForDocument =\n branchMergeUploadDataToTrust?.collectionSlug === collectionConfig.slug &&\n branchMergeUploadDataToTrust.id === id\n ? branchMergeUploadDataToTrust.data\n : docWithLocales\n\n data = mergeUploadDataWithDocument(data, trustedUploadDataForDocument, {\n locale:\n locale === 'all' || !locale\n ? config.localization\n ? config.localization.defaultLocale\n : undefined\n : locale,\n localizedProperties: getLocalizedUploadProperties(collectionConfig.flattenedFields),\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: 'update',\n originalDoc: docWithLocales,\n overwriteExistingFiles,\n req,\n throwOnMissingFile: false,\n })\n\n const select = sanitizeSelect({\n fields: collectionConfig.flattenedFields,\n select: resolveSelect({\n config: collectionConfig.select,\n operation: 'update',\n req,\n select: incomingSelect,\n }),\n })\n\n // ///////////////////////////////////////////////\n // Update document, runs all document level hooks\n // ///////////////////////////////////////////////\n\n const updateArgs = {\n id,\n autosave,\n collectionConfig,\n config,\n data: deepCopyObjectSimple(newFileData),\n databaseReq: branchMergeStorageReq,\n depth: depth!,\n docWithLocales,\n draftArg,\n fallbackLocale: fallbackLocale!,\n filesToUpload,\n locale: locale!,\n operation: lifecycleOperation,\n overrideAccess: overrideAccess!,\n overrideLock: overrideLock!,\n payload,\n populate,\n publishAllLocales,\n req,\n select: select!,\n shouldManageLocalFiles: true,\n showHiddenFields: showHiddenFields!,\n unpublishAllLocales,\n uploadFileRollbacks:\n shouldCommit && collectionConfig.upload && !collectionConfig.upload.disableLocalStorage\n ? uploadFileRollbacks\n : undefined,\n } as const\n\n const write = () => updateDocument<TSlug, TSelect>(updateArgs)\n let result = collectionConfig.upload.fileOperations\n ? await runCloudFileUpdate({\n id,\n collection: collectionConfig,\n current: storedDocWithLocales,\n data: updateArgs.data,\n files: filesToUpload,\n req,\n write,\n })\n : await write()\n\n // /////////////////////////////////////\n // Add collection property for auth collections\n // /////////////////////////////////////\n\n if (collectionConfig.auth) {\n result = { ...result, collection: collectionConfig.slug }\n }\n\n await unlinkTempFiles({\n collectionConfig,\n config,\n req,\n }).catch((unlinkError) => {\n req.payload.logger.error({ err: unlinkError, msg: 'Failed to remove temp file' })\n })\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = (await buildAfterOperation({\n args,\n collection: collectionConfig,\n operation: 'updateByID',\n overrideAccess,\n result,\n })) as TransformCollectionWithSelect<TSlug, TSelect>\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n if (cleanupScope) {\n await flushDeferredCleanupScopeAfterOperation({ req, scope: cleanupScope })\n }\n if (shouldCommit) {\n reportFinalCommit()\n await commitTransaction(req)\n\n await cleanupUploadFileRollbacks({ rollbacks: uploadFileRollbacks }).catch((error) => {\n args.req.payload.logger.error({\n err: error,\n msg: 'Failed to remove an upload rollback backup after committing its database write.',\n })\n })\n }\n\n if (isBranchingDocument) {\n refreshRequestDataLoader(req)\n }\n\n if (hasFileOperationScope) {\n await completeFileOperationScope({ req })\n }\n\n return result\n } catch (error: unknown) {\n const shouldRollbackArtifacts = shouldRollbackTransactionArtifacts({ error })\n\n if (cleanupScope) {\n clearDeferredCleanupScope({ req: args.req, scope: cleanupScope })\n }\n\n await unlinkTempFiles({\n collectionConfig: args.collection.config,\n config: args.req.payload.config,\n req: args.req,\n }).catch((unlinkError) => {\n args.req.payload.logger.error({ err: unlinkError, msg: 'Failed to remove temp file' })\n })\n if (shouldCommit) {\n await killTransaction(args.req)\n if (didResolveBranchFork) {\n resetBranchState(args.req)\n }\n\n if (shouldRollbackArtifacts) {\n await rollbackUploadFiles({ rollbacks: uploadFileRollbacks })\n }\n }\n\n if (hasFileOperationScope) {\n await abortFileOperationScope({ req: args.req })\n }\n throw error\n }\n}\n\nconst readAuthorizedUpdateDocument = async <TSlug extends CollectionSlug>({\n id,\n collectionConfig,\n data,\n lifecycleOperation,\n locale,\n overrideAccess,\n req,\n storageReq,\n trash,\n}: {\n collectionConfig: Collection['config']\n data: DeepPartial<RequiredDataFromCollectionSlug<TSlug>>\n id: number | string\n lifecycleOperation: 'create' | 'update'\n locale: string\n overrideAccess: boolean\n req: PayloadRequest\n storageReq?: PayloadRequest\n trash: boolean\n}): Promise<{\n docWithLocales: RequiredDataFromCollectionSlug<TSlug> & TypeWithID\n hasWherePolicy: boolean\n where: Where\n}> => {\n if (!id) {\n throw new APIError('Missing ID of document to update.', httpStatus.BAD_REQUEST)\n }\n\n const accessResults = !overrideAccess\n ? await executeAccess(\n {\n id: lifecycleOperation === 'create' ? undefined : id,\n slug: collectionConfig.slug,\n data,\n req,\n },\n collectionConfig.access[lifecycleOperation],\n )\n : true\n const hasWherePolicy = lifecycleOperation !== 'create' && hasWhereAccessResult(accessResults)\n const where = { id: { equals: id } }\n let fullWhere = hasWherePolicy ? combineQueries(where, accessResults) : where\n const isTrashAttempt =\n collectionConfig.trash &&\n typeof data === 'object' &&\n data !== null &&\n 'deletedAt' in data &&\n data.deletedAt != null\n\n if (isTrashAttempt && !overrideAccess) {\n const deleteAccessResult = await executeAccess(\n { id, slug: collectionConfig.slug, data, req },\n collectionConfig.access.delete,\n )\n\n fullWhere = combineQueries(fullWhere, deleteAccessResult)\n }\n\n fullWhere = appendNonTrashedFilter({\n enableTrash: collectionConfig.trash,\n trash,\n where: fullWhere,\n })\n\n const docWithLocales = await readUpdateDocument<TSlug>({\n id,\n collectionConfig,\n hasWherePolicy,\n locale,\n req: storageReq ?? req,\n where: fullWhere,\n })\n\n return { docWithLocales, hasWherePolicy, where: fullWhere }\n}\n\nconst readUpdateDocument = async <TSlug extends CollectionSlug>({\n id,\n collectionConfig,\n hasWherePolicy,\n locale,\n req,\n where,\n}: {\n collectionConfig: Collection['config']\n hasWherePolicy: boolean\n id: number | string\n locale: string\n req: PayloadRequest\n where: Where\n}): Promise<RequiredDataFromCollectionSlug<TSlug> & TypeWithID> => {\n const findOneArgs: FindOneArgs = {\n collection: collectionConfig.slug,\n locale,\n req,\n where,\n }\n const docWithLocales = await getLatestCollectionVersion<\n RequiredDataFromCollectionSlug<TSlug> & TypeWithID\n >({\n id,\n config: collectionConfig,\n payload: req.payload,\n query: findOneArgs,\n req,\n })\n\n if (!docWithLocales) {\n if (hasWherePolicy) {\n throw new Forbidden(req.t)\n }\n\n throw new NotFound(req.t)\n }\n\n return docWithLocales\n}\n"],"names":["executeAccess","hasWhereAccessResult","retryConcurrentShadowOperation","forkDocument","assertBranchMergeValidationWriteAllowed","refreshRequestDataLoader","resetBranchState","resolveBranch","branchField","MAIN_BRANCH","combineQueries","APIError","Forbidden","NotFound","deepCopyObjectSimple","runCloudFileUpdate","abortFileOperationScope","beginFileOperationScope","completeFileOperationScope","withLegacyCloudUploadFileData","generateFileData","getLocalizedUploadProperties","getUploadDestination","mergeUploadDataWithDocument","sanitizeUploadData","unlinkTempFiles","cleanupUploadFileRollbacks","rollbackUploadFiles","appendNonTrashedFilter","assertNoValidationWrite","commitTransaction","shouldRollbackTransactionArtifacts","hasLocalizeStatusEnabled","httpStatus","initTransaction","killTransaction","resolveSelect","sanitizeSelect","beginDeferredCleanupScope","clearDeferredCleanupScope","flushDeferredCleanupScopeAfterOperation","hasActiveDeferredCleanupScope","getAllLocalesPublicationStatus","normalizeAllLocalesPublicationStatus","reconcileAllLocalesPublicationStatus","validateAllLocalesPublicationFlags","getLatestCollectionVersion","buildAfterOperation","buildBeforeOperation","commitOperationRetryRequestContext","createOperationRetryRequest","shouldRetryOperationRequest","updateDocument","branchMergeUploadDataContextKey","Symbol","updateByIDOperation","incomingArgs","updateByIDOperationWithLifecycle","lifecycleOperation","updateByIDOperationForBranchMerge","trustedUploadData","data","req","reqContext","context","pendingBranchMergeUploadData","branchMergeUploadDataToTrust","undefined","id","collectionSlug","collection","config","slug","hasCallerTransaction","Boolean","transactionID","pristineData","shouldIsolateTempFile","file","tempFilePath","payload","upload","useTempFiles","uploadReference","_payloadClientUploadTempFile","didOwnAttemptTransaction","didReachFinalCommit","isRetrySafe","operation","shouldReuseParentRequest","disableTransaction","retryRequest","copyFileTempPath","attemptArgs","result","updateByIDOperationWithLifecycleAttempt","reportFinalCommit","reportTransactionOwnership","isOperationTransaction","shouldRetry","error","collectionConfig","catch","unlinkError","logger","err","msg","args","cleanupScope","didResolveBranchFork","shouldCommit","uploadFileRollbacks","Map","hasFileOperationScope","overrideAccess","objectKey","prefix","_objectKey","publishAllLocales","unpublishAllLocales","initialCollectionConfig","initialAllLocalesPublicationStatus","hasLocalizedStatus","localization","draft","locale","initialAllLocalesPublicationIntent","status","autosave","branchMergeStorageReq","depth","draftArg","overrideLock","overwriteExistingFiles","populate","publishAllLocalesArg","fallbackLocale","select","incomingSelect","showHiddenFields","trash","unpublishAllLocalesArg","BAD_REQUEST","requestedAllLocalesPublicationStatus","allLocalesPublicationStatus","intent","publicationIntentSurvivedBeforeOperation","authorizedDocument","readAuthorizedUpdateDocument","storageReq","docWithLocales","branch","isBranchingDocument","branching","branchableCollections","has","isExistingBranchDocument","CONFLICT","useAmbientTransaction","readUpdateDocument","hasWherePolicy","where","storedDocWithLocales","fileOperations","doc","trustedUploadDataForDocument","defaultLocale","localizedProperties","flattenedFields","newFileData","files","filesToUpload","originalDoc","throwOnMissingFile","fields","updateArgs","databaseReq","shouldManageLocalFiles","disableLocalStorage","write","current","auth","scope","rollbacks","shouldRollbackArtifacts","accessResults","access","equals","fullWhere","isTrashAttempt","deletedAt","deleteAccessResult","delete","enableTrash","findOneArgs","query","t"],"mappings":"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"}
@@ -255,7 +255,7 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
255
255
  });
256
256
  localizedPublishData = buildLocalizedPublishData({
257
257
  config,
258
- currentDoc: currentDoc,
258
+ currentDoc,
259
259
  fields: collectionConfig.fields,
260
260
  locale,
261
261
  result