payload 4.0.0-internal.ea6e8f8 → 4.0.0-internal.ee5d8bd
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/adapters/router.d.ts +1 -1
- package/dist/admin/adapters/router.d.ts.map +1 -1
- package/dist/admin/adapters/router.js.map +1 -1
- package/dist/admin/forms/Diff.d.ts +0 -4
- package/dist/admin/forms/Diff.d.ts.map +1 -1
- package/dist/admin/forms/Diff.js.map +1 -1
- package/dist/admin/forms/Form.d.ts +0 -2
- package/dist/admin/forms/Form.d.ts.map +1 -1
- package/dist/admin/forms/Form.js.map +1 -1
- package/dist/admin/initAdminContext.d.ts.map +1 -1
- package/dist/admin/initAdminContext.js +0 -10
- package/dist/admin/initAdminContext.js.map +1 -1
- package/dist/auth/createAuthToken.d.ts +26 -0
- package/dist/auth/createAuthToken.d.ts.map +1 -0
- package/dist/auth/createAuthToken.js +39 -0
- package/dist/auth/createAuthToken.js.map +1 -0
- package/dist/auth/endpoints/refresh.d.ts.map +1 -1
- package/dist/auth/endpoints/refresh.js +2 -1
- package/dist/auth/endpoints/refresh.js.map +1 -1
- package/dist/auth/getFieldsToSign.js.map +1 -1
- package/dist/auth/loginWithCookie.d.ts.map +1 -1
- package/dist/auth/loginWithCookie.js +1 -0
- package/dist/auth/loginWithCookie.js.map +1 -1
- package/dist/auth/operations/local/login.d.ts.map +1 -1
- package/dist/auth/operations/local/login.js +1 -0
- package/dist/auth/operations/local/login.js.map +1 -1
- package/dist/auth/operations/login.d.ts +2 -0
- package/dist/auth/operations/login.d.ts.map +1 -1
- package/dist/auth/operations/login.js +6 -19
- package/dist/auth/operations/login.js.map +1 -1
- package/dist/auth/operations/refresh.d.ts +8 -0
- package/dist/auth/operations/refresh.d.ts.map +1 -1
- package/dist/auth/operations/refresh.js +50 -19
- package/dist/auth/operations/refresh.js.map +1 -1
- package/dist/auth/operations/resetPassword.d.ts.map +1 -1
- package/dist/auth/operations/resetPassword.js +54 -20
- package/dist/auth/operations/resetPassword.js.map +1 -1
- package/dist/auth/refreshAuthToken.d.ts +32 -0
- package/dist/auth/refreshAuthToken.d.ts.map +1 -0
- package/dist/auth/refreshAuthToken.js +113 -0
- package/dist/auth/refreshAuthToken.js.map +1 -0
- package/dist/auth/serverFunctions/cookies.js.map +1 -1
- package/dist/auth/serverFunctions/login.js.map +1 -1
- package/dist/auth/sessions.d.ts +9 -2
- package/dist/auth/sessions.d.ts.map +1 -1
- package/dist/auth/sessions.js +6 -5
- package/dist/auth/sessions.js.map +1 -1
- package/dist/auth/types.d.ts +25 -1
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/auth/types.js.map +1 -1
- package/dist/cli/commands/data/utilities.d.ts +1 -1
- package/dist/cli/commands/data/utilities.d.ts.map +1 -1
- package/dist/cli/commands/data/utilities.js.map +1 -1
- package/dist/cli/defineCLICommand.js +1 -1
- package/dist/cli/defineCLICommand.js.map +1 -1
- package/dist/collections/config/client.d.ts +1 -1
- package/dist/collections/config/client.d.ts.map +1 -1
- package/dist/collections/config/client.js +0 -1
- package/dist/collections/config/client.js.map +1 -1
- package/dist/collections/config/defaults.d.ts +2 -0
- package/dist/collections/config/defaults.d.ts.map +1 -1
- package/dist/collections/config/defaults.js +4 -0
- package/dist/collections/config/defaults.js.map +1 -1
- package/dist/collections/config/sanitize.d.ts.map +1 -1
- package/dist/collections/config/sanitize.js +3 -0
- package/dist/collections/config/sanitize.js.map +1 -1
- package/dist/collections/config/sanitizeCompoundIndexes.d.ts.map +1 -1
- package/dist/collections/config/sanitizeCompoundIndexes.js +0 -9
- package/dist/collections/config/sanitizeCompoundIndexes.js.map +1 -1
- package/dist/collections/config/types.d.ts +4 -21
- package/dist/collections/config/types.d.ts.map +1 -1
- package/dist/collections/config/types.js.map +1 -1
- package/dist/collections/dataloader.d.ts +1 -10
- package/dist/collections/dataloader.d.ts.map +1 -1
- package/dist/collections/dataloader.js +6 -14
- package/dist/collections/dataloader.js.map +1 -1
- package/dist/collections/operations/create.d.ts.map +1 -1
- package/dist/collections/operations/create.js +0 -13
- package/dist/collections/operations/create.js.map +1 -1
- package/dist/collections/operations/delete.d.ts.map +1 -1
- package/dist/collections/operations/delete.js +121 -638
- package/dist/collections/operations/delete.js.map +1 -1
- package/dist/collections/operations/deleteByID.d.ts.map +1 -1
- package/dist/collections/operations/deleteByID.js +32 -238
- package/dist/collections/operations/deleteByID.js.map +1 -1
- package/dist/collections/operations/findByID.d.ts.map +1 -1
- package/dist/collections/operations/findByID.js +0 -6
- package/dist/collections/operations/findByID.js.map +1 -1
- package/dist/collections/operations/findDistinct.d.ts.map +1 -1
- package/dist/collections/operations/findDistinct.js +6 -7
- package/dist/collections/operations/findDistinct.js.map +1 -1
- package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
- package/dist/collections/operations/findVersionByID.js +7 -0
- package/dist/collections/operations/findVersionByID.js.map +1 -1
- package/dist/collections/operations/findVersions.d.ts.map +1 -1
- package/dist/collections/operations/findVersions.js +5 -0
- package/dist/collections/operations/findVersions.js.map +1 -1
- package/dist/collections/operations/local/count.d.ts +4 -9
- package/dist/collections/operations/local/count.d.ts.map +1 -1
- package/dist/collections/operations/local/count.js.map +1 -1
- package/dist/collections/operations/local/countVersions.d.ts +0 -4
- package/dist/collections/operations/local/countVersions.d.ts.map +1 -1
- package/dist/collections/operations/local/countVersions.js.map +1 -1
- package/dist/collections/operations/local/create.d.ts +4 -9
- package/dist/collections/operations/local/create.d.ts.map +1 -1
- package/dist/collections/operations/local/create.js.map +1 -1
- package/dist/collections/operations/local/delete.d.ts +4 -9
- package/dist/collections/operations/local/delete.d.ts.map +1 -1
- package/dist/collections/operations/local/delete.js.map +1 -1
- package/dist/collections/operations/local/duplicate.d.ts +0 -5
- package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
- package/dist/collections/operations/local/duplicate.js.map +1 -1
- package/dist/collections/operations/local/find.d.ts +4 -9
- package/dist/collections/operations/local/find.d.ts.map +1 -1
- package/dist/collections/operations/local/find.js.map +1 -1
- package/dist/collections/operations/local/findByID.d.ts +4 -9
- package/dist/collections/operations/local/findByID.d.ts.map +1 -1
- package/dist/collections/operations/local/findByID.js.map +1 -1
- package/dist/collections/operations/local/findDistinct.d.ts +0 -5
- package/dist/collections/operations/local/findDistinct.d.ts.map +1 -1
- package/dist/collections/operations/local/findDistinct.js.map +1 -1
- package/dist/collections/operations/local/findVersionByID.d.ts +0 -5
- package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
- package/dist/collections/operations/local/findVersionByID.js.map +1 -1
- package/dist/collections/operations/local/findVersions.d.ts +0 -5
- package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
- package/dist/collections/operations/local/findVersions.js.map +1 -1
- package/dist/collections/operations/local/restoreVersion.d.ts +0 -5
- package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
- package/dist/collections/operations/local/restoreVersion.js.map +1 -1
- package/dist/collections/operations/local/update.d.ts +4 -9
- package/dist/collections/operations/local/update.d.ts.map +1 -1
- package/dist/collections/operations/local/update.js.map +1 -1
- package/dist/collections/operations/renameFile.js +1 -1
- package/dist/collections/operations/renameFile.js.map +1 -1
- package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
- package/dist/collections/operations/restoreVersion.js +76 -157
- package/dist/collections/operations/restoreVersion.js.map +1 -1
- package/dist/collections/operations/update.d.ts.map +1 -1
- package/dist/collections/operations/update.js +171 -357
- package/dist/collections/operations/update.js.map +1 -1
- package/dist/collections/operations/updateByID.d.ts +0 -15
- package/dist/collections/operations/updateByID.d.ts.map +1 -1
- package/dist/collections/operations/updateByID.js +60 -265
- package/dist/collections/operations/updateByID.js.map +1 -1
- package/dist/collections/operations/utilities/buildBeforeOperation.d.ts.map +1 -1
- package/dist/collections/operations/utilities/buildBeforeOperation.js +0 -7
- package/dist/collections/operations/utilities/buildBeforeOperation.js.map +1 -1
- package/dist/collections/operations/utilities/update.d.ts +1 -14
- package/dist/collections/operations/utilities/update.d.ts.map +1 -1
- package/dist/collections/operations/utilities/update.js +20 -92
- package/dist/collections/operations/utilities/update.js.map +1 -1
- package/dist/collections/operations/validate.js +4 -4
- package/dist/collections/operations/validate.js.map +1 -1
- package/dist/config/client.d.ts +1 -3
- package/dist/config/client.d.ts.map +1 -1
- package/dist/config/client.js +1 -9
- package/dist/config/client.js.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +1 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/definePlugin.js.map +1 -1
- package/dist/config/sanitize.d.ts.map +1 -1
- package/dist/config/sanitize.js +2 -40
- package/dist/config/sanitize.js.map +1 -1
- package/dist/config/types.d.ts +13 -21
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js.map +1 -1
- package/dist/database/defaultCopy.d.ts.map +1 -1
- package/dist/database/defaultCopy.js +0 -1
- package/dist/database/defaultCopy.js.map +1 -1
- package/dist/database/types.d.ts +4 -75
- package/dist/database/types.d.ts.map +1 -1
- package/dist/database/types.js.map +1 -1
- package/dist/exports/build-config.d.ts +9 -0
- package/dist/exports/build-config.d.ts.map +1 -0
- package/dist/exports/build-config.js +38 -0
- package/dist/exports/build-config.js.map +1 -0
- package/dist/exports/shared.d.ts +0 -2
- package/dist/exports/shared.d.ts.map +1 -1
- package/dist/exports/shared.js +0 -2
- package/dist/exports/shared.js.map +1 -1
- package/dist/fields/baseFields/authorship/index.d.ts +1 -2
- package/dist/fields/baseFields/authorship/index.d.ts.map +1 -1
- package/dist/fields/baseFields/authorship/index.js +0 -12
- package/dist/fields/baseFields/authorship/index.js.map +1 -1
- package/dist/fields/config/client.js.map +1 -1
- package/dist/fields/config/reservedFieldNames.d.ts.map +1 -1
- package/dist/fields/config/reservedFieldNames.js.map +1 -1
- package/dist/fields/config/types.d.ts.map +1 -1
- package/dist/fields/config/types.js.map +1 -1
- package/dist/fields/hooks/afterChange/promise.js.map +1 -1
- package/dist/fields/hooks/afterRead/index.d.ts +0 -8
- package/dist/fields/hooks/afterRead/index.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/index.js +2 -6
- package/dist/fields/hooks/afterRead/index.js.map +1 -1
- package/dist/fields/hooks/afterRead/promise.d.ts +1 -3
- package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/promise.js +17 -41
- package/dist/fields/hooks/afterRead/promise.js.map +1 -1
- package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js +0 -2
- package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js.map +1 -1
- package/dist/fields/hooks/afterRead/traverseFields.d.ts +1 -3
- package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/traverseFields.js +2 -4
- package/dist/fields/hooks/afterRead/traverseFields.js.map +1 -1
- package/dist/fields/hooks/afterRead/virtualFieldPopulationPromise.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/virtualFieldPopulationPromise.js +0 -3
- package/dist/fields/hooks/afterRead/virtualFieldPopulationPromise.js.map +1 -1
- package/dist/fields/hooks/beforeChange/flattenValidationData.d.ts +14 -0
- package/dist/fields/hooks/beforeChange/flattenValidationData.d.ts.map +1 -0
- package/dist/fields/hooks/beforeChange/flattenValidationData.js +36 -0
- package/dist/fields/hooks/beforeChange/flattenValidationData.js.map +1 -0
- package/dist/fields/hooks/beforeChange/promise.d.ts +2 -1
- package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
- package/dist/fields/hooks/beforeChange/promise.js +96 -22
- package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
- package/dist/fields/hooks/beforeChange/traverseFields.d.ts +2 -1
- package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
- package/dist/fields/hooks/beforeChange/traverseFields.js +2 -1
- package/dist/fields/hooks/beforeChange/traverseFields.js.map +1 -1
- package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
- package/dist/fields/hooks/beforeValidate/promise.js +0 -8
- package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
- package/dist/fields/validations.d.ts.map +1 -1
- package/dist/fields/validations.js +4 -1
- package/dist/fields/validations.js.map +1 -1
- package/dist/globals/config/types.d.ts +2 -6
- package/dist/globals/config/types.d.ts.map +1 -1
- package/dist/globals/config/types.js.map +1 -1
- package/dist/globals/operations/countGlobalVersions.d.ts.map +1 -1
- package/dist/globals/operations/countGlobalVersions.js +0 -7
- package/dist/globals/operations/countGlobalVersions.js.map +1 -1
- package/dist/globals/operations/findOne.d.ts.map +1 -1
- package/dist/globals/operations/findOne.js +0 -7
- package/dist/globals/operations/findOne.js.map +1 -1
- package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
- package/dist/globals/operations/findVersionByID.js +6 -6
- package/dist/globals/operations/findVersionByID.js.map +1 -1
- package/dist/globals/operations/findVersions.d.ts.map +1 -1
- package/dist/globals/operations/findVersions.js +4 -6
- package/dist/globals/operations/findVersions.js.map +1 -1
- package/dist/globals/operations/local/countVersions.d.ts +0 -5
- package/dist/globals/operations/local/countVersions.d.ts.map +1 -1
- package/dist/globals/operations/local/countVersions.js.map +1 -1
- package/dist/globals/operations/local/findOne.d.ts +0 -5
- package/dist/globals/operations/local/findOne.d.ts.map +1 -1
- package/dist/globals/operations/local/findOne.js.map +1 -1
- package/dist/globals/operations/local/findVersionByID.d.ts +0 -5
- package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
- package/dist/globals/operations/local/findVersionByID.js.map +1 -1
- package/dist/globals/operations/local/findVersions.d.ts +0 -5
- package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
- package/dist/globals/operations/local/findVersions.js.map +1 -1
- package/dist/globals/operations/local/restoreVersion.d.ts +0 -5
- package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
- package/dist/globals/operations/local/restoreVersion.js.map +1 -1
- package/dist/globals/operations/local/update.d.ts +0 -5
- package/dist/globals/operations/local/update.d.ts.map +1 -1
- package/dist/globals/operations/local/update.js +18 -61
- package/dist/globals/operations/local/update.js.map +1 -1
- package/dist/globals/operations/restoreVersion.d.ts +2 -3
- package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
- package/dist/globals/operations/restoreVersion.js +24 -61
- package/dist/globals/operations/restoreVersion.js.map +1 -1
- package/dist/globals/operations/update.d.ts.map +1 -1
- package/dist/globals/operations/update.js +8 -86
- package/dist/globals/operations/update.js.map +1 -1
- package/dist/globals/operations/validate.js +1 -1
- package/dist/globals/operations/validate.js.map +1 -1
- package/dist/hierarchy/addHierarchyToCollection.d.ts.map +1 -1
- package/dist/hierarchy/addHierarchyToCollection.js +32 -21
- package/dist/hierarchy/addHierarchyToCollection.js.map +1 -1
- package/dist/hierarchy/createFolderField.js.map +1 -1
- package/dist/hierarchy/getInitialTreeData.d.ts +1 -3
- package/dist/hierarchy/getInitialTreeData.d.ts.map +1 -1
- package/dist/hierarchy/getInitialTreeData.js +1 -4
- package/dist/hierarchy/getInitialTreeData.js.map +1 -1
- package/dist/hierarchy/resolveHierarchyCollections.js +9 -3
- package/dist/hierarchy/resolveHierarchyCollections.js.map +1 -1
- package/dist/hierarchy/utils/computePaths.d.ts.map +1 -1
- package/dist/hierarchy/utils/computePaths.js.map +1 -1
- package/dist/index.bundled.d.ts +4336 -5501
- package/dist/index.d.ts +27 -51
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -37
- package/dist/index.js.map +1 -1
- package/dist/llm-instructions/getInstructionsCollection.d.ts.map +1 -1
- package/dist/llm-instructions/getInstructionsCollection.js +2 -0
- package/dist/llm-instructions/getInstructionsCollection.js.map +1 -1
- package/dist/preferences/keys.d.ts +4 -11
- package/dist/preferences/keys.d.ts.map +1 -1
- package/dist/preferences/keys.js +3 -10
- package/dist/preferences/keys.js.map +1 -1
- package/dist/preferences/types.d.ts +0 -19
- package/dist/preferences/types.d.ts.map +1 -1
- package/dist/preferences/types.js.map +1 -1
- package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js +1 -1
- package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js.map +1 -1
- package/dist/types/index.d.ts +0 -13
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/uploads/deleteAssociatedFiles.d.ts.map +1 -1
- package/dist/uploads/deleteAssociatedFiles.js +29 -108
- package/dist/uploads/deleteAssociatedFiles.js.map +1 -1
- package/dist/uploads/endpoints/getFile.d.ts.map +1 -1
- package/dist/uploads/endpoints/getFile.js +0 -5
- package/dist/uploads/endpoints/getFile.js.map +1 -1
- package/dist/uploads/fileExists.d.ts.map +1 -1
- package/dist/uploads/fileExists.js +2 -5
- package/dist/uploads/fileExists.js.map +1 -1
- package/dist/uploads/fileVersioning/archive.d.ts.map +1 -1
- package/dist/uploads/fileVersioning/archive.js +1 -15
- package/dist/uploads/fileVersioning/archive.js.map +1 -1
- package/dist/uploads/fileVersioning/cleanup.d.ts +0 -7
- package/dist/uploads/fileVersioning/cleanup.d.ts.map +1 -1
- package/dist/uploads/fileVersioning/cleanup.js +0 -12
- package/dist/uploads/fileVersioning/cleanup.js.map +1 -1
- package/dist/uploads/fileVersioning/cloudStorage.d.ts.map +1 -1
- package/dist/uploads/fileVersioning/cloudStorage.js +1 -16
- package/dist/uploads/fileVersioning/cloudStorage.js.map +1 -1
- package/dist/uploads/fileVersioning/resolveHistoricalFile.js.map +1 -1
- package/dist/uploads/formatFilesize.js +1 -1
- package/dist/uploads/formatFilesize.js.map +1 -1
- package/dist/uploads/generateFileData.d.ts +0 -5
- package/dist/uploads/generateFileData.d.ts.map +1 -1
- package/dist/uploads/generateFileData.js +2 -74
- package/dist/uploads/generateFileData.js.map +1 -1
- package/dist/uploads/getBaseFields.d.ts.map +1 -1
- package/dist/uploads/getBaseFields.js +29 -46
- package/dist/uploads/getBaseFields.js.map +1 -1
- package/dist/uploads/getFileContentRequirement.js.map +1 -1
- package/dist/uploads/getFileFromUploadInstructions.js.map +1 -1
- package/dist/uploads/getSafeFilename.d.ts.map +1 -1
- package/dist/uploads/getSafeFilename.js +3 -5
- package/dist/uploads/getSafeFilename.js.map +1 -1
- package/dist/uploads/safeFetch.js.map +1 -1
- package/dist/uploads/stagedUpload.js.map +1 -1
- package/dist/uploads/transformers/handleDynamicFileRequest.js +11 -2
- package/dist/uploads/transformers/handleDynamicFileRequest.js.map +1 -1
- package/dist/uploads/types.d.ts +0 -11
- package/dist/uploads/types.d.ts.map +1 -1
- package/dist/uploads/types.js.map +1 -1
- package/dist/uploads/uploadFiles.d.ts +1 -4
- package/dist/uploads/uploadFiles.d.ts.map +1 -1
- package/dist/uploads/uploadFiles.js +5 -29
- package/dist/uploads/uploadFiles.js.map +1 -1
- package/dist/utilities/addSelectGenericsToGeneretedTypes.d.ts.map +1 -1
- package/dist/utilities/addSelectGenericsToGeneretedTypes.js +0 -1
- package/dist/utilities/addSelectGenericsToGeneretedTypes.js.map +1 -1
- package/dist/utilities/appendDateTimezoneSelectFields.js.map +1 -1
- package/dist/utilities/assertNoValidationWrite.d.ts.map +1 -1
- package/dist/utilities/assertNoValidationWrite.js +0 -4
- package/dist/utilities/assertNoValidationWrite.js.map +1 -1
- package/dist/utilities/checkDocumentLockStatus.d.ts +6 -15
- package/dist/utilities/checkDocumentLockStatus.d.ts.map +1 -1
- package/dist/utilities/checkDocumentLockStatus.js +11 -44
- package/dist/utilities/checkDocumentLockStatus.js.map +1 -1
- package/dist/utilities/cloneValidationRequest.js.map +1 -1
- package/dist/utilities/commitTransaction.d.ts +0 -4
- package/dist/utilities/commitTransaction.d.ts.map +1 -1
- package/dist/utilities/commitTransaction.js +1 -41
- package/dist/utilities/commitTransaction.js.map +1 -1
- package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
- package/dist/utilities/configToJSONSchema.js +2 -18
- package/dist/utilities/configToJSONSchema.js.map +1 -1
- package/dist/utilities/createPayloadRequest.d.ts +0 -5
- package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
- package/dist/utilities/createPayloadRequest.js +3 -50
- package/dist/utilities/createPayloadRequest.js.map +1 -1
- package/dist/utilities/createPayloadRequestFromWebRequest.d.ts +12 -1
- package/dist/utilities/createPayloadRequestFromWebRequest.d.ts.map +1 -1
- package/dist/utilities/createPayloadRequestFromWebRequest.js +9 -5
- package/dist/utilities/createPayloadRequestFromWebRequest.js.map +1 -1
- package/dist/utilities/deepCopyObject.js.map +1 -1
- package/dist/utilities/documentMatchingWhereExists.js +1 -1
- package/dist/utilities/documentMatchingWhereExists.js.map +1 -1
- package/dist/utilities/entityInputSchema/validateEntityData.d.ts.map +1 -1
- package/dist/utilities/entityInputSchema/validateEntityData.js.map +1 -1
- package/dist/utilities/filterDataToSelectedLocales.js.map +1 -1
- package/dist/utilities/getEntityPermissions/getEntityPermissions.d.ts.map +1 -1
- package/dist/utilities/getEntityPermissions/getEntityPermissions.js +1 -0
- package/dist/utilities/getEntityPermissions/getEntityPermissions.js.map +1 -1
- package/dist/utilities/getEntityPermissions/populateFieldPermissions.js.map +1 -1
- package/dist/utilities/getVersionsConfig.d.ts +4 -0
- package/dist/utilities/getVersionsConfig.d.ts.map +1 -1
- package/dist/utilities/getVersionsConfig.js +5 -0
- package/dist/utilities/getVersionsConfig.js.map +1 -1
- package/dist/utilities/handleEndpoints.d.ts.map +1 -1
- package/dist/utilities/handleEndpoints.js +10 -9
- package/dist/utilities/handleEndpoints.js.map +1 -1
- package/dist/utilities/httpStatus.d.ts +0 -2
- package/dist/utilities/httpStatus.d.ts.map +1 -1
- package/dist/utilities/httpStatus.js +1 -3
- package/dist/utilities/httpStatus.js.map +1 -1
- package/dist/utilities/initTransaction.d.ts.map +1 -1
- package/dist/utilities/initTransaction.js +7 -35
- package/dist/utilities/initTransaction.js.map +1 -1
- package/dist/utilities/killTransaction.d.ts.map +1 -1
- package/dist/utilities/killTransaction.js +0 -27
- package/dist/utilities/killTransaction.js.map +1 -1
- package/dist/utilities/parseParams/index.js.map +1 -1
- package/dist/utilities/parseValidationLocale.js.map +1 -1
- package/dist/utilities/sanitizePopulateParam.js.map +1 -1
- package/dist/utilities/telemetry/conf/index.d.ts +4 -1
- package/dist/utilities/telemetry/conf/index.d.ts.map +1 -1
- package/dist/utilities/telemetry/conf/index.js.map +1 -1
- package/dist/utilities/telemetry/featureInfo/getFeatureInfo.js.map +1 -1
- package/dist/versions/allLocalesPublicationStatus.js.map +1 -1
- package/dist/versions/buildCollectionFields.d.ts.map +1 -1
- package/dist/versions/buildCollectionFields.js +0 -23
- package/dist/versions/buildCollectionFields.js.map +1 -1
- package/dist/versions/buildGlobalFields.d.ts.map +1 -1
- package/dist/versions/buildGlobalFields.js +0 -14
- package/dist/versions/buildGlobalFields.js.map +1 -1
- package/dist/versions/buildVersionCompoundIndexes.d.ts.map +1 -1
- package/dist/versions/buildVersionCompoundIndexes.js +2 -8
- package/dist/versions/buildVersionCompoundIndexes.js.map +1 -1
- package/dist/versions/deleteCollectionVersions.d.ts +1 -2
- package/dist/versions/deleteCollectionVersions.d.ts.map +1 -1
- package/dist/versions/deleteCollectionVersions.js +8 -37
- package/dist/versions/deleteCollectionVersions.js.map +1 -1
- package/dist/versions/deleteScheduledPublishJobs.d.ts.map +1 -1
- package/dist/versions/deleteScheduledPublishJobs.js +0 -4
- package/dist/versions/deleteScheduledPublishJobs.js.map +1 -1
- package/dist/versions/drafts/appendVersionToQueryKey.d.ts.map +1 -1
- package/dist/versions/drafts/appendVersionToQueryKey.js +1 -9
- package/dist/versions/drafts/appendVersionToQueryKey.js.map +1 -1
- package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
- package/dist/versions/drafts/replaceWithDraftIfAvailable.js +1 -8
- package/dist/versions/drafts/replaceWithDraftIfAvailable.js.map +1 -1
- package/dist/versions/enforceMaxVersions.d.ts +0 -1
- package/dist/versions/enforceMaxVersions.d.ts.map +1 -1
- package/dist/versions/enforceMaxVersions.js +6 -22
- package/dist/versions/enforceMaxVersions.js.map +1 -1
- package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
- package/dist/versions/getLatestCollectionVersion.js +2 -10
- package/dist/versions/getLatestCollectionVersion.js.map +1 -1
- package/dist/versions/getLatestGlobalVersion.d.ts +2 -6
- package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
- package/dist/versions/getLatestGlobalVersion.js +21 -65
- package/dist/versions/getLatestGlobalVersion.js.map +1 -1
- package/dist/versions/isInheritedReadVersionsAccess.js.map +1 -1
- package/dist/versions/saveVersion.d.ts +0 -7
- package/dist/versions/saveVersion.d.ts.map +1 -1
- package/dist/versions/saveVersion.js +4 -27
- package/dist/versions/saveVersion.js.map +1 -1
- package/dist/versions/updateLatestVersion.d.ts +0 -1
- package/dist/versions/updateLatestVersion.d.ts.map +1 -1
- package/dist/versions/updateLatestVersion.js +7 -24
- package/dist/versions/updateLatestVersion.js.map +1 -1
- package/package.json +30 -28
- package/skills/payload/reference/ENDPOINTS.md +3 -9
- package/skills/payload/reference/PLUGIN-DEVELOPMENT.md +4 -4
- package/dist/admin/getAdminPreferences.d.ts +0 -10
- package/dist/admin/getAdminPreferences.d.ts.map +0 -1
- package/dist/admin/getAdminPreferences.js +0 -53
- package/dist/admin/getAdminPreferences.js.map +0 -1
- package/dist/admin/getRequestBranch.d.ts +0 -6
- package/dist/admin/getRequestBranch.d.ts.map +0 -1
- package/dist/admin/getRequestBranch.js +0 -17
- package/dist/admin/getRequestBranch.js.map +0 -1
- package/dist/branching/appendBranchFilter.d.ts +0 -30
- package/dist/branching/appendBranchFilter.d.ts.map +0 -1
- package/dist/branching/appendBranchFilter.js +0 -105
- package/dist/branching/appendBranchFilter.js.map +0 -1
- package/dist/branching/assertBranchAccess.d.ts +0 -10
- package/dist/branching/assertBranchAccess.d.ts.map +0 -1
- package/dist/branching/assertBranchAccess.js +0 -36
- package/dist/branching/assertBranchAccess.js.map +0 -1
- package/dist/branching/assertBranchActionAccess.d.ts +0 -10
- package/dist/branching/assertBranchActionAccess.d.ts.map +0 -1
- package/dist/branching/assertBranchActionAccess.js +0 -15
- package/dist/branching/assertBranchActionAccess.js.map +0 -1
- package/dist/branching/assertBranchCreatedDocumentsUnreferenced.d.ts +0 -53
- package/dist/branching/assertBranchCreatedDocumentsUnreferenced.d.ts.map +0 -1
- package/dist/branching/assertBranchCreatedDocumentsUnreferenced.js +0 -833
- package/dist/branching/assertBranchCreatedDocumentsUnreferenced.js.map +0 -1
- package/dist/branching/assertBranchReadable.d.ts +0 -36
- package/dist/branching/assertBranchReadable.d.ts.map +0 -1
- package/dist/branching/assertBranchReadable.js +0 -83
- package/dist/branching/assertBranchReadable.js.map +0 -1
- package/dist/branching/assertBranchUpdateAccess.d.ts +0 -8
- package/dist/branching/assertBranchUpdateAccess.d.ts.map +0 -1
- package/dist/branching/assertBranchUpdateAccess.js +0 -12
- package/dist/branching/assertBranchUpdateAccess.js.map +0 -1
- package/dist/branching/assertBranchWritable.d.ts +0 -18
- package/dist/branching/assertBranchWritable.d.ts.map +0 -1
- package/dist/branching/assertBranchWritable.js +0 -46
- package/dist/branching/assertBranchWritable.js.map +0 -1
- package/dist/branching/branchIDs.d.ts +0 -38
- package/dist/branching/branchIDs.d.ts.map +0 -1
- package/dist/branching/branchIDs.js +0 -113
- package/dist/branching/branchIDs.js.map +0 -1
- package/dist/branching/branchSelect.d.ts +0 -42
- package/dist/branching/branchSelect.d.ts.map +0 -1
- package/dist/branching/branchSelect.js +0 -97
- package/dist/branching/branchSelect.js.map +0 -1
- package/dist/branching/checkFieldAccess.d.ts +0 -21
- package/dist/branching/checkFieldAccess.d.ts.map +0 -1
- package/dist/branching/checkFieldAccess.js +0 -238
- package/dist/branching/checkFieldAccess.js.map +0 -1
- package/dist/branching/collections.d.ts +0 -14
- package/dist/branching/collections.d.ts.map +0 -1
- package/dist/branching/collections.js +0 -713
- package/dist/branching/collections.js.map +0 -1
- package/dist/branching/combineBranchAccess.d.ts +0 -6
- package/dist/branching/combineBranchAccess.d.ts.map +0 -1
- package/dist/branching/combineBranchAccess.js +0 -22
- package/dist/branching/combineBranchAccess.js.map +0 -1
- package/dist/branching/copyUploadFilesToBranch.d.ts +0 -9
- package/dist/branching/copyUploadFilesToBranch.d.ts.map +0 -1
- package/dist/branching/copyUploadFilesToBranch.js +0 -126
- package/dist/branching/copyUploadFilesToBranch.js.map +0 -1
- package/dist/branching/createShadowRow.d.ts +0 -70
- package/dist/branching/createShadowRow.d.ts.map +0 -1
- package/dist/branching/createShadowRow.js +0 -296
- package/dist/branching/createShadowRow.js.map +0 -1
- package/dist/branching/discard.d.ts +0 -52
- package/dist/branching/discard.d.ts.map +0 -1
- package/dist/branching/discard.js +0 -428
- package/dist/branching/discard.js.map +0 -1
- package/dist/branching/effectiveOperations.d.ts +0 -55
- package/dist/branching/effectiveOperations.d.ts.map +0 -1
- package/dist/branching/effectiveOperations.js +0 -472
- package/dist/branching/effectiveOperations.js.map +0 -1
- package/dist/branching/endpoints/discard.d.ts +0 -15
- package/dist/branching/endpoints/discard.d.ts.map +0 -1
- package/dist/branching/endpoints/discard.js +0 -55
- package/dist/branching/endpoints/discard.js.map +0 -1
- package/dist/branching/endpoints/merge.d.ts +0 -34
- package/dist/branching/endpoints/merge.d.ts.map +0 -1
- package/dist/branching/endpoints/merge.js +0 -119
- package/dist/branching/endpoints/merge.js.map +0 -1
- package/dist/branching/forkDocument.d.ts +0 -20
- package/dist/branching/forkDocument.d.ts.map +0 -1
- package/dist/branching/forkDocument.js +0 -169
- package/dist/branching/forkDocument.js.map +0 -1
- package/dist/branching/globalMergeWrites.d.ts +0 -21
- package/dist/branching/globalMergeWrites.d.ts.map +0 -1
- package/dist/branching/globalMergeWrites.js +0 -146
- package/dist/branching/globalMergeWrites.js.map +0 -1
- package/dist/branching/globals.d.ts +0 -49
- package/dist/branching/globals.d.ts.map +0 -1
- package/dist/branching/globals.js +0 -197
- package/dist/branching/globals.js.map +0 -1
- package/dist/branching/hooks.d.ts +0 -24
- package/dist/branching/hooks.d.ts.map +0 -1
- package/dist/branching/hooks.js +0 -92
- package/dist/branching/hooks.js.map +0 -1
- package/dist/branching/injectBranchFields.d.ts +0 -40
- package/dist/branching/injectBranchFields.d.ts.map +0 -1
- package/dist/branching/injectBranchFields.js +0 -229
- package/dist/branching/injectBranchFields.js.map +0 -1
- package/dist/branching/merge/applyMergeChange.d.ts +0 -27
- package/dist/branching/merge/applyMergeChange.d.ts.map +0 -1
- package/dist/branching/merge/applyMergeChange.js +0 -853
- package/dist/branching/merge/applyMergeChange.js.map +0 -1
- package/dist/branching/merge/branchMergeStatus.d.ts +0 -12
- package/dist/branching/merge/branchMergeStatus.d.ts.map +0 -1
- package/dist/branching/merge/branchMergeStatus.js +0 -74
- package/dist/branching/merge/branchMergeStatus.js.map +0 -1
- package/dist/branching/merge/executeMerge.d.ts +0 -22
- package/dist/branching/merge/executeMerge.d.ts.map +0 -1
- package/dist/branching/merge/executeMerge.js +0 -600
- package/dist/branching/merge/executeMerge.js.map +0 -1
- package/dist/branching/merge/finalizeMerge.d.ts +0 -40
- package/dist/branching/merge/finalizeMerge.d.ts.map +0 -1
- package/dist/branching/merge/finalizeMerge.js +0 -237
- package/dist/branching/merge/finalizeMerge.js.map +0 -1
- package/dist/branching/merge/mergeLedger.d.ts +0 -40
- package/dist/branching/merge/mergeLedger.d.ts.map +0 -1
- package/dist/branching/merge/mergeLedger.js +0 -130
- package/dist/branching/merge/mergeLedger.js.map +0 -1
- package/dist/branching/merge/prepareMerge.d.ts +0 -41
- package/dist/branching/merge/prepareMerge.d.ts.map +0 -1
- package/dist/branching/merge/prepareMerge.js +0 -234
- package/dist/branching/merge/prepareMerge.js.map +0 -1
- package/dist/branching/merge/recoverMerge.d.ts +0 -16
- package/dist/branching/merge/recoverMerge.d.ts.map +0 -1
- package/dist/branching/merge/recoverMerge.js +0 -199
- package/dist/branching/merge/recoverMerge.js.map +0 -1
- package/dist/branching/merge/retryFailedCleanups.d.ts +0 -36
- package/dist/branching/merge/retryFailedCleanups.d.ts.map +0 -1
- package/dist/branching/merge/retryFailedCleanups.js +0 -335
- package/dist/branching/merge/retryFailedCleanups.js.map +0 -1
- package/dist/branching/merge/utilities.d.ts +0 -35
- package/dist/branching/merge/utilities.d.ts.map +0 -1
- package/dist/branching/merge/utilities.js +0 -54
- package/dist/branching/merge/utilities.js.map +0 -1
- package/dist/branching/merge.d.ts +0 -88
- package/dist/branching/merge.d.ts.map +0 -1
- package/dist/branching/merge.js +0 -163
- package/dist/branching/merge.js.map +0 -1
- package/dist/branching/mergeWriteGuard.d.ts +0 -20
- package/dist/branching/mergeWriteGuard.d.ts.map +0 -1
- package/dist/branching/mergeWriteGuard.js +0 -27
- package/dist/branching/mergeWriteGuard.js.map +0 -1
- package/dist/branching/preflight.d.ts +0 -71
- package/dist/branching/preflight.d.ts.map +0 -1
- package/dist/branching/preflight.js +0 -757
- package/dist/branching/preflight.js.map +0 -1
- package/dist/branching/readLocalizedBranchWrite.d.ts +0 -14
- package/dist/branching/readLocalizedBranchWrite.d.ts.map +0 -1
- package/dist/branching/readLocalizedBranchWrite.js +0 -90
- package/dist/branching/readLocalizedBranchWrite.js.map +0 -1
- package/dist/branching/readMergeSnapshot.d.ts +0 -18
- package/dist/branching/readMergeSnapshot.d.ts.map +0 -1
- package/dist/branching/readMergeSnapshot.js +0 -99
- package/dist/branching/readMergeSnapshot.js.map +0 -1
- package/dist/branching/resolveBranch.d.ts +0 -153
- package/dist/branching/resolveBranch.d.ts.map +0 -1
- package/dist/branching/resolveBranch.js +0 -363
- package/dist/branching/resolveBranch.js.map +0 -1
- package/dist/branching/resolveBranchActionAccess.d.ts +0 -8
- package/dist/branching/resolveBranchActionAccess.d.ts.map +0 -1
- package/dist/branching/resolveBranchActionAccess.js +0 -9
- package/dist/branching/resolveBranchActionAccess.js.map +0 -1
- package/dist/branching/resolveBranchQuery.d.ts +0 -48
- package/dist/branching/resolveBranchQuery.d.ts.map +0 -1
- package/dist/branching/resolveBranchQuery.js +0 -115
- package/dist/branching/resolveBranchQuery.js.map +0 -1
- package/dist/branching/resolveBranchRowID.d.ts +0 -22
- package/dist/branching/resolveBranchRowID.d.ts.map +0 -1
- package/dist/branching/resolveBranchRowID.js +0 -70
- package/dist/branching/resolveBranchRowID.js.map +0 -1
- package/dist/branching/sanitizeBranchingConfig.d.ts +0 -31
- package/dist/branching/sanitizeBranchingConfig.d.ts.map +0 -1
- package/dist/branching/sanitizeBranchingConfig.js +0 -110
- package/dist/branching/sanitizeBranchingConfig.js.map +0 -1
- package/dist/branching/schedule/job.d.ts +0 -51
- package/dist/branching/schedule/job.d.ts.map +0 -1
- package/dist/branching/schedule/job.js +0 -151
- package/dist/branching/schedule/job.js.map +0 -1
- package/dist/branching/selectBranchChanges.d.ts +0 -8
- package/dist/branching/selectBranchChanges.d.ts.map +0 -1
- package/dist/branching/selectBranchChanges.js +0 -9
- package/dist/branching/selectBranchChanges.js.map +0 -1
- package/dist/branching/stripBranchMergeData.d.ts +0 -11
- package/dist/branching/stripBranchMergeData.d.ts.map +0 -1
- package/dist/branching/stripBranchMergeData.js +0 -20
- package/dist/branching/stripBranchMergeData.js.map +0 -1
- package/dist/branching/tombstone.d.ts +0 -91
- package/dist/branching/tombstone.d.ts.map +0 -1
- package/dist/branching/tombstone.js +0 -546
- package/dist/branching/tombstone.js.map +0 -1
- package/dist/branching/types.d.ts +0 -158
- package/dist/branching/types.d.ts.map +0 -1
- package/dist/branching/types.js +0 -54
- package/dist/branching/types.js.map +0 -1
- package/dist/branching/validation.d.ts +0 -47
- package/dist/branching/validation.d.ts.map +0 -1
- package/dist/branching/validation.js +0 -272
- package/dist/branching/validation.js.map +0 -1
- package/dist/branching/versions.d.ts +0 -131
- package/dist/branching/versions.d.ts.map +0 -1
- package/dist/branching/versions.js +0 -572
- package/dist/branching/versions.js.map +0 -1
- package/dist/collections/operations/utilities/createOperationRetryRequest.d.ts +0 -23
- package/dist/collections/operations/utilities/createOperationRetryRequest.d.ts.map +0 -1
- package/dist/collections/operations/utilities/createOperationRetryRequest.js +0 -683
- package/dist/collections/operations/utilities/createOperationRetryRequest.js.map +0 -1
- package/dist/fields/hooks/beforeValidate/throwOnAccessDenied.d.ts +0 -3
- package/dist/fields/hooks/beforeValidate/throwOnAccessDenied.d.ts.map +0 -1
- package/dist/fields/hooks/beforeValidate/throwOnAccessDenied.js +0 -3
- package/dist/fields/hooks/beforeValidate/throwOnAccessDenied.js.map +0 -1
- package/dist/uploads/appendBranchToFileURL.d.ts +0 -6
- package/dist/uploads/appendBranchToFileURL.d.ts.map +0 -1
- package/dist/uploads/appendBranchToFileURL.js +0 -24
- package/dist/uploads/appendBranchToFileURL.js.map +0 -1
- package/dist/uploads/deleteUploadFilesExclusiveToDocument.d.ts +0 -15
- package/dist/uploads/deleteUploadFilesExclusiveToDocument.d.ts.map +0 -1
- package/dist/uploads/deleteUploadFilesExclusiveToDocument.js +0 -62
- package/dist/uploads/deleteUploadFilesExclusiveToDocument.js.map +0 -1
- package/dist/uploads/fileIdentity.d.ts +0 -24
- package/dist/uploads/fileIdentity.d.ts.map +0 -1
- package/dist/uploads/fileIdentity.js +0 -36
- package/dist/uploads/fileIdentity.js.map +0 -1
- package/dist/uploads/fileQuarantine.d.ts +0 -17
- package/dist/uploads/fileQuarantine.d.ts.map +0 -1
- package/dist/uploads/fileQuarantine.js +0 -52
- package/dist/uploads/fileQuarantine.js.map +0 -1
- package/dist/uploads/linkFileWithoutOverwrite.d.ts +0 -13
- package/dist/uploads/linkFileWithoutOverwrite.d.ts.map +0 -1
- package/dist/uploads/linkFileWithoutOverwrite.js +0 -13
- package/dist/uploads/linkFileWithoutOverwrite.js.map +0 -1
- package/dist/uploads/uploadFileRollback.d.ts +0 -31
- package/dist/uploads/uploadFileRollback.d.ts.map +0 -1
- package/dist/uploads/uploadFileRollback.js +0 -269
- package/dist/uploads/uploadFileRollback.js.map +0 -1
- package/dist/utilities/extractRelationshipID.d.ts +0 -4
- package/dist/utilities/extractRelationshipID.d.ts.map +0 -1
- package/dist/utilities/extractRelationshipID.js +0 -14
- package/dist/utilities/extractRelationshipID.js.map +0 -1
- package/dist/utilities/transactionCallbacks.d.ts +0 -77
- package/dist/utilities/transactionCallbacks.d.ts.map +0 -1
- package/dist/utilities/transactionCallbacks.js +0 -299
- package/dist/utilities/transactionCallbacks.js.map +0 -1
- package/dist/utilities/transactionMutationTracker.d.ts +0 -21
- package/dist/utilities/transactionMutationTracker.d.ts.map +0 -1
- package/dist/utilities/transactionMutationTracker.js +0 -71
- package/dist/utilities/transactionMutationTracker.js.map +0 -1
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
import { executeAccess } from '../../auth/executeAccess.js';
|
|
2
2
|
import { hasWhereAccessResult } from '../../auth/types.js';
|
|
3
|
-
import { retryConcurrentShadowOperation } from '../../branching/createShadowRow.js';
|
|
4
|
-
import { forkDocument } from '../../branching/forkDocument.js';
|
|
5
|
-
import { assertBranchMergeValidationWriteAllowed } from '../../branching/mergeWriteGuard.js';
|
|
6
|
-
import { refreshRequestDataLoader, resetBranchState, resolveBranch } from '../../branching/resolveBranch.js';
|
|
7
|
-
import { branchField, MAIN_BRANCH } from '../../branching/types.js';
|
|
8
3
|
import { combineQueries } from '../../database/combineQueries.js';
|
|
9
4
|
import { APIError, Forbidden, NotFound } from '../../errors/index.js';
|
|
10
5
|
import { deepCopyObjectSimple } from '../../index.js';
|
|
@@ -14,141 +9,31 @@ import { withLegacyCloudUploadFileData } from '../../uploads/fileVersioning/stor
|
|
|
14
9
|
import { generateFileData } from '../../uploads/generateFileData.js';
|
|
15
10
|
import { getLocalizedUploadProperties, getUploadDestination, mergeUploadDataWithDocument, sanitizeUploadData } from '../../uploads/sanitizeUploadData.js';
|
|
16
11
|
import { unlinkTempFiles } from '../../uploads/unlinkTempFiles.js';
|
|
17
|
-
import { cleanupUploadFileRollbacks, rollbackUploadFiles } from '../../uploads/uploadFileRollback.js';
|
|
18
12
|
import { appendNonTrashedFilter } from '../../utilities/appendNonTrashedFilter.js';
|
|
19
13
|
import { assertNoValidationWrite } from '../../utilities/assertNoValidationWrite.js';
|
|
20
|
-
import { commitTransaction
|
|
14
|
+
import { commitTransaction } from '../../utilities/commitTransaction.js';
|
|
21
15
|
import { hasLocalizeStatusEnabled } from '../../utilities/getVersionsConfig.js';
|
|
22
16
|
import { httpStatus } from '../../utilities/httpStatus.js';
|
|
23
17
|
import { initTransaction } from '../../utilities/initTransaction.js';
|
|
24
18
|
import { killTransaction } from '../../utilities/killTransaction.js';
|
|
25
19
|
import { resolveSelect } from '../../utilities/resolveSelect.js';
|
|
26
20
|
import { sanitizeSelect } from '../../utilities/sanitizeSelect.js';
|
|
27
|
-
import { beginDeferredCleanupScope, clearDeferredCleanupScope, flushDeferredCleanupScopeAfterOperation, hasActiveDeferredCleanupScope } from '../../utilities/transactionCallbacks.js';
|
|
28
21
|
import { getAllLocalesPublicationStatus, normalizeAllLocalesPublicationStatus, reconcileAllLocalesPublicationStatus, validateAllLocalesPublicationFlags } from '../../versions/allLocalesPublicationStatus.js';
|
|
29
22
|
import { getLatestCollectionVersion } from '../../versions/getLatestCollectionVersion.js';
|
|
30
23
|
import { buildAfterOperation } from './utilities/buildAfterOperation.js';
|
|
31
24
|
import { buildBeforeOperation } from './utilities/buildBeforeOperation.js';
|
|
32
|
-
import { commitOperationRetryRequestContext, createOperationRetryRequest, shouldRetryOperationRequest } from './utilities/createOperationRetryRequest.js';
|
|
33
25
|
import { updateDocument } from './utilities/update.js';
|
|
34
|
-
export const
|
|
35
|
-
export const updateByIDOperation = (incomingArgs)=>updateByIDOperationWithLifecycle({
|
|
36
|
-
incomingArgs,
|
|
37
|
-
lifecycleOperation: 'update'
|
|
38
|
-
});
|
|
39
|
-
/**
|
|
40
|
-
* Promotes a branch-created row while applying create access and lifecycle hooks.
|
|
41
|
-
* This module is not a package export; external callers use `updateByIDOperation`.
|
|
42
|
-
*
|
|
43
|
-
* @internal
|
|
44
|
-
*/ export const updateByIDOperationForBranchMerge = (incomingArgs)=>updateByIDOperationWithLifecycle({
|
|
45
|
-
incomingArgs,
|
|
46
|
-
lifecycleOperation: 'create',
|
|
47
|
-
trustedUploadData: incomingArgs.data
|
|
48
|
-
});
|
|
49
|
-
const updateByIDOperationWithLifecycle = async ({ incomingArgs, lifecycleOperation, trustedUploadData })=>{
|
|
50
|
-
assertNoValidationWrite(incomingArgs.req);
|
|
51
|
-
const reqContext = incomingArgs.req.context;
|
|
52
|
-
const pendingBranchMergeUploadData = reqContext?.[branchMergeUploadDataContextKey];
|
|
53
|
-
let branchMergeUploadDataToTrust = trustedUploadData === undefined ? undefined : {
|
|
54
|
-
id: incomingArgs.id,
|
|
55
|
-
collectionSlug: incomingArgs.collection.config.slug,
|
|
56
|
-
data: trustedUploadData
|
|
57
|
-
};
|
|
58
|
-
if (pendingBranchMergeUploadData?.collectionSlug === incomingArgs.collection.config.slug && pendingBranchMergeUploadData.id === incomingArgs.id) {
|
|
59
|
-
branchMergeUploadDataToTrust ??= pendingBranchMergeUploadData;
|
|
60
|
-
delete reqContext[branchMergeUploadDataContextKey];
|
|
61
|
-
}
|
|
62
|
-
const hasCallerTransaction = Boolean(await incomingArgs.req.transactionID);
|
|
63
|
-
const pristineData = deepCopyObjectSimple(incomingArgs.data);
|
|
64
|
-
const shouldIsolateTempFile = Boolean(!hasCallerTransaction && incomingArgs.req.file?.tempFilePath && (incomingArgs.req.payload.config.upload?.useTempFiles || incomingArgs.req.file.uploadReference || incomingArgs.req.context?._payloadClientUploadTempFile));
|
|
65
|
-
let didOwnAttemptTransaction = false;
|
|
66
|
-
let didReachFinalCommit = false;
|
|
67
|
-
let isRetrySafe = false;
|
|
68
|
-
try {
|
|
69
|
-
return await retryConcurrentShadowOperation({
|
|
70
|
-
operation: async ()=>{
|
|
71
|
-
didOwnAttemptTransaction = false;
|
|
72
|
-
didReachFinalCommit = false;
|
|
73
|
-
isRetrySafe = false;
|
|
74
|
-
const shouldReuseParentRequest = incomingArgs.disableTransaction && hasActiveDeferredCleanupScope({
|
|
75
|
-
req: incomingArgs.req
|
|
76
|
-
});
|
|
77
|
-
const retryRequest = hasCallerTransaction || shouldReuseParentRequest ? undefined : await createOperationRetryRequest({
|
|
78
|
-
copyFileTempPath: shouldIsolateTempFile,
|
|
79
|
-
req: incomingArgs.req
|
|
80
|
-
});
|
|
81
|
-
isRetrySafe = retryRequest?.isRetrySafe ?? false;
|
|
82
|
-
const attemptArgs = retryRequest ? {
|
|
83
|
-
...incomingArgs,
|
|
84
|
-
data: deepCopyObjectSimple(pristineData),
|
|
85
|
-
req: retryRequest.req
|
|
86
|
-
} : incomingArgs;
|
|
87
|
-
const result = await updateByIDOperationWithLifecycleAttempt({
|
|
88
|
-
branchMergeUploadDataToTrust,
|
|
89
|
-
hasCallerTransaction,
|
|
90
|
-
incomingArgs: attemptArgs,
|
|
91
|
-
lifecycleOperation,
|
|
92
|
-
reportFinalCommit: ()=>{
|
|
93
|
-
didReachFinalCommit = true;
|
|
94
|
-
},
|
|
95
|
-
reportTransactionOwnership: ({ isOperationTransaction })=>{
|
|
96
|
-
didOwnAttemptTransaction = isOperationTransaction;
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
if (retryRequest?.isRetrySafe) {
|
|
100
|
-
commitOperationRetryRequestContext({
|
|
101
|
-
req: attemptArgs.req
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
return result;
|
|
105
|
-
},
|
|
106
|
-
shouldRetry: ({ error })=>shouldRetryOperationRequest({
|
|
107
|
-
didOwnAttemptTransaction,
|
|
108
|
-
didReachFinalCommit,
|
|
109
|
-
error,
|
|
110
|
-
hasCallerTransaction,
|
|
111
|
-
isRetrySafe
|
|
112
|
-
})
|
|
113
|
-
});
|
|
114
|
-
} finally{
|
|
115
|
-
if (shouldIsolateTempFile) {
|
|
116
|
-
await unlinkTempFiles({
|
|
117
|
-
collectionConfig: incomingArgs.collection.config,
|
|
118
|
-
config: incomingArgs.req.payload.config,
|
|
119
|
-
req: incomingArgs.req
|
|
120
|
-
}).catch((unlinkError)=>{
|
|
121
|
-
incomingArgs.req.payload.logger.error({
|
|
122
|
-
err: unlinkError,
|
|
123
|
-
msg: 'Failed to remove temp file'
|
|
124
|
-
});
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
};
|
|
129
|
-
const updateByIDOperationWithLifecycleAttempt = async ({ branchMergeUploadDataToTrust, hasCallerTransaction, incomingArgs, lifecycleOperation, reportFinalCommit, reportTransactionOwnership })=>{
|
|
26
|
+
export const updateByIDOperation = async (incomingArgs)=>{
|
|
130
27
|
let args = incomingArgs;
|
|
131
|
-
let cleanupScope = null;
|
|
132
|
-
let didResolveBranchFork = false;
|
|
133
|
-
let shouldCommit = false;
|
|
134
|
-
const uploadFileRollbacks = new Map();
|
|
135
28
|
const hasFileOperationScope = Boolean(args.collection.config.upload);
|
|
136
|
-
assertBranchMergeValidationWriteAllowed({
|
|
137
|
-
req: args.req
|
|
138
|
-
});
|
|
139
29
|
if (hasFileOperationScope) {
|
|
140
30
|
beginFileOperationScope({
|
|
141
31
|
req: args.req
|
|
142
32
|
});
|
|
143
33
|
}
|
|
34
|
+
assertNoValidationWrite(args.req);
|
|
144
35
|
try {
|
|
145
|
-
shouldCommit = !args.disableTransaction && await initTransaction(args.req);
|
|
146
|
-
reportTransactionOwnership({
|
|
147
|
-
isOperationTransaction: shouldCommit
|
|
148
|
-
});
|
|
149
|
-
cleanupScope = await beginDeferredCleanupScope({
|
|
150
|
-
req: args.req
|
|
151
|
-
});
|
|
36
|
+
const shouldCommit = !args.disableTransaction && await initTransaction(args.req);
|
|
152
37
|
if (args.collection.config.upload && !args.overrideAccess) {
|
|
153
38
|
const { objectKey, prefix } = getUploadDestination({
|
|
154
39
|
data: args.data,
|
|
@@ -191,7 +76,7 @@ const updateByIDOperationWithLifecycleAttempt = async ({ branchMergeUploadDataTo
|
|
|
191
76
|
operation: 'update',
|
|
192
77
|
overrideAccess: args.overrideAccess
|
|
193
78
|
});
|
|
194
|
-
const { id, autosave = false,
|
|
79
|
+
const { id, autosave = false, collection: { config: collectionConfig }, collection, depth, draft: draftArg = false, overrideAccess, overrideLock, overwriteExistingFiles = false, populate, publishAllLocales: publishAllLocalesArg, req: { fallbackLocale, locale, payload: { config }, payload }, req, select: incomingSelect, showHiddenFields, trash = false, unpublishAllLocales: unpublishAllLocalesArg } = args;
|
|
195
80
|
if (!id) {
|
|
196
81
|
throw new APIError('Missing ID of document to update.', httpStatus.BAD_REQUEST);
|
|
197
82
|
}
|
|
@@ -213,44 +98,63 @@ const updateByIDOperationWithLifecycleAttempt = async ({ branchMergeUploadDataTo
|
|
|
213
98
|
const publicationIntentSurvivedBeforeOperation = !requestedAllLocalesPublicationStatus || Boolean(allLocalesPublicationStatus);
|
|
214
99
|
const publishAllLocales = publicationIntentSurvivedBeforeOperation ? publishAllLocalesArg : false;
|
|
215
100
|
const unpublishAllLocales = publicationIntentSurvivedBeforeOperation ? unpublishAllLocalesArg : false;
|
|
216
|
-
|
|
101
|
+
// /////////////////////////////////////
|
|
102
|
+
// Access
|
|
103
|
+
// /////////////////////////////////////
|
|
104
|
+
const accessResults = !overrideAccess ? await executeAccess({
|
|
217
105
|
id,
|
|
218
|
-
collectionConfig,
|
|
106
|
+
slug: collectionConfig.slug,
|
|
219
107
|
data,
|
|
220
|
-
|
|
108
|
+
req
|
|
109
|
+
}, collectionConfig.access.update) : true;
|
|
110
|
+
const hasWherePolicy = hasWhereAccessResult(accessResults);
|
|
111
|
+
// /////////////////////////////////////
|
|
112
|
+
// Retrieve document
|
|
113
|
+
// /////////////////////////////////////
|
|
114
|
+
const where = {
|
|
115
|
+
id: {
|
|
116
|
+
equals: id
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
let fullWhere = combineQueries(where, accessResults);
|
|
120
|
+
const isTrashAttempt = collectionConfig.trash && typeof data === 'object' && data !== null && 'deletedAt' in data && data.deletedAt != null;
|
|
121
|
+
if (isTrashAttempt && !overrideAccess) {
|
|
122
|
+
// Pass data so access function can check data.deletedAt to know it's a trash attempt
|
|
123
|
+
const deleteAccessResult = await executeAccess({
|
|
124
|
+
id,
|
|
125
|
+
slug: collectionConfig.slug,
|
|
126
|
+
data,
|
|
127
|
+
req
|
|
128
|
+
}, collectionConfig.access.delete);
|
|
129
|
+
fullWhere = combineQueries(fullWhere, deleteAccessResult);
|
|
130
|
+
}
|
|
131
|
+
// Exclude trashed documents when trash: false
|
|
132
|
+
fullWhere = appendNonTrashedFilter({
|
|
133
|
+
enableTrash: collectionConfig.trash,
|
|
134
|
+
trash,
|
|
135
|
+
where: fullWhere
|
|
136
|
+
});
|
|
137
|
+
const findOneArgs = {
|
|
138
|
+
collection: collectionConfig.slug,
|
|
221
139
|
locale: locale,
|
|
222
|
-
overrideAccess: overrideAccess,
|
|
223
140
|
req,
|
|
224
|
-
|
|
225
|
-
|
|
141
|
+
where: fullWhere
|
|
142
|
+
};
|
|
143
|
+
let docWithLocales = await getLatestCollectionVersion({
|
|
144
|
+
id,
|
|
145
|
+
config: collectionConfig,
|
|
146
|
+
payload,
|
|
147
|
+
query: findOneArgs,
|
|
148
|
+
req
|
|
226
149
|
});
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
if (
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
await forkDocument({
|
|
236
|
-
id,
|
|
237
|
-
collectionSlug: collectionConfig.slug,
|
|
238
|
-
req,
|
|
239
|
-
// Without an operation-owned transaction, retain the isolated race-recovery path. An
|
|
240
|
-
// adapter with transactions disabled or unavailable cannot roll back a later hook failure.
|
|
241
|
-
useAmbientTransaction: shouldCommit
|
|
242
|
-
});
|
|
243
|
-
didResolveBranchFork = true;
|
|
244
|
-
if (!isExistingBranchDocument) {
|
|
245
|
-
docWithLocales = await readUpdateDocument({
|
|
246
|
-
id,
|
|
247
|
-
collectionConfig,
|
|
248
|
-
hasWherePolicy: authorizedDocument.hasWherePolicy,
|
|
249
|
-
locale: locale,
|
|
250
|
-
req,
|
|
251
|
-
where: authorizedDocument.where
|
|
252
|
-
});
|
|
253
|
-
}
|
|
150
|
+
if (!docWithLocales && !hasWherePolicy) {
|
|
151
|
+
throw new NotFound(req.t);
|
|
152
|
+
}
|
|
153
|
+
if (!docWithLocales && hasWherePolicy) {
|
|
154
|
+
throw new Forbidden(req.t);
|
|
155
|
+
}
|
|
156
|
+
if (!docWithLocales) {
|
|
157
|
+
throw new NotFound(req.t);
|
|
254
158
|
}
|
|
255
159
|
const storedDocWithLocales = docWithLocales;
|
|
256
160
|
if (collectionConfig.upload.fileOperations) {
|
|
@@ -261,8 +165,7 @@ const updateByIDOperationWithLifecycleAttempt = async ({ branchMergeUploadDataTo
|
|
|
261
165
|
});
|
|
262
166
|
}
|
|
263
167
|
if (collectionConfig.upload && !overrideAccess) {
|
|
264
|
-
|
|
265
|
-
data = mergeUploadDataWithDocument(data, trustedUploadDataForDocument, {
|
|
168
|
+
data = mergeUploadDataWithDocument(data, docWithLocales, {
|
|
266
169
|
locale: locale === 'all' || !locale ? config.localization ? config.localization.defaultLocale : undefined : locale,
|
|
267
170
|
localizedProperties: getLocalizedUploadProperties(collectionConfig.flattenedFields)
|
|
268
171
|
});
|
|
@@ -298,14 +201,12 @@ const updateByIDOperationWithLifecycleAttempt = async ({ branchMergeUploadDataTo
|
|
|
298
201
|
collectionConfig,
|
|
299
202
|
config,
|
|
300
203
|
data: deepCopyObjectSimple(newFileData),
|
|
301
|
-
databaseReq: branchMergeStorageReq,
|
|
302
204
|
depth: depth,
|
|
303
205
|
docWithLocales,
|
|
304
206
|
draftArg,
|
|
305
207
|
fallbackLocale: fallbackLocale,
|
|
306
208
|
filesToUpload,
|
|
307
209
|
locale: locale,
|
|
308
|
-
operation: lifecycleOperation,
|
|
309
210
|
overrideAccess: overrideAccess,
|
|
310
211
|
overrideLock: overrideLock,
|
|
311
212
|
payload,
|
|
@@ -315,8 +216,7 @@ const updateByIDOperationWithLifecycleAttempt = async ({ branchMergeUploadDataTo
|
|
|
315
216
|
select: select,
|
|
316
217
|
shouldManageLocalFiles: true,
|
|
317
218
|
showHiddenFields: showHiddenFields,
|
|
318
|
-
unpublishAllLocales
|
|
319
|
-
uploadFileRollbacks: shouldCommit && collectionConfig.upload && !collectionConfig.upload.disableLocalStorage ? uploadFileRollbacks : undefined
|
|
219
|
+
unpublishAllLocales
|
|
320
220
|
};
|
|
321
221
|
const write = ()=>updateDocument(updateArgs);
|
|
322
222
|
let result = collectionConfig.upload.fileOperations ? await runCloudFileUpdate({
|
|
@@ -360,26 +260,8 @@ const updateByIDOperationWithLifecycleAttempt = async ({ branchMergeUploadDataTo
|
|
|
360
260
|
// /////////////////////////////////////
|
|
361
261
|
// Return results
|
|
362
262
|
// /////////////////////////////////////
|
|
363
|
-
if (cleanupScope) {
|
|
364
|
-
await flushDeferredCleanupScopeAfterOperation({
|
|
365
|
-
req,
|
|
366
|
-
scope: cleanupScope
|
|
367
|
-
});
|
|
368
|
-
}
|
|
369
263
|
if (shouldCommit) {
|
|
370
|
-
reportFinalCommit();
|
|
371
264
|
await commitTransaction(req);
|
|
372
|
-
await cleanupUploadFileRollbacks({
|
|
373
|
-
rollbacks: uploadFileRollbacks
|
|
374
|
-
}).catch((error)=>{
|
|
375
|
-
args.req.payload.logger.error({
|
|
376
|
-
err: error,
|
|
377
|
-
msg: 'Failed to remove an upload rollback backup after committing its database write.'
|
|
378
|
-
});
|
|
379
|
-
});
|
|
380
|
-
}
|
|
381
|
-
if (isBranchingDocument) {
|
|
382
|
-
refreshRequestDataLoader(req);
|
|
383
265
|
}
|
|
384
266
|
if (hasFileOperationScope) {
|
|
385
267
|
await completeFileOperationScope({
|
|
@@ -388,15 +270,6 @@ const updateByIDOperationWithLifecycleAttempt = async ({ branchMergeUploadDataTo
|
|
|
388
270
|
}
|
|
389
271
|
return result;
|
|
390
272
|
} catch (error) {
|
|
391
|
-
const shouldRollbackArtifacts = shouldRollbackTransactionArtifacts({
|
|
392
|
-
error
|
|
393
|
-
});
|
|
394
|
-
if (cleanupScope) {
|
|
395
|
-
clearDeferredCleanupScope({
|
|
396
|
-
req: args.req,
|
|
397
|
-
scope: cleanupScope
|
|
398
|
-
});
|
|
399
|
-
}
|
|
400
273
|
await unlinkTempFiles({
|
|
401
274
|
collectionConfig: args.collection.config,
|
|
402
275
|
config: args.req.payload.config,
|
|
@@ -407,17 +280,7 @@ const updateByIDOperationWithLifecycleAttempt = async ({ branchMergeUploadDataTo
|
|
|
407
280
|
msg: 'Failed to remove temp file'
|
|
408
281
|
});
|
|
409
282
|
});
|
|
410
|
-
|
|
411
|
-
await killTransaction(args.req);
|
|
412
|
-
if (didResolveBranchFork) {
|
|
413
|
-
resetBranchState(args.req);
|
|
414
|
-
}
|
|
415
|
-
if (shouldRollbackArtifacts) {
|
|
416
|
-
await rollbackUploadFiles({
|
|
417
|
-
rollbacks: uploadFileRollbacks
|
|
418
|
-
});
|
|
419
|
-
}
|
|
420
|
-
}
|
|
283
|
+
await killTransaction(args.req);
|
|
421
284
|
if (hasFileOperationScope) {
|
|
422
285
|
await abortFileOperationScope({
|
|
423
286
|
req: args.req
|
|
@@ -426,73 +289,5 @@ const updateByIDOperationWithLifecycleAttempt = async ({ branchMergeUploadDataTo
|
|
|
426
289
|
throw error;
|
|
427
290
|
}
|
|
428
291
|
};
|
|
429
|
-
const readAuthorizedUpdateDocument = async ({ id, collectionConfig, data, lifecycleOperation, locale, overrideAccess, req, storageReq, trash })=>{
|
|
430
|
-
if (!id) {
|
|
431
|
-
throw new APIError('Missing ID of document to update.', httpStatus.BAD_REQUEST);
|
|
432
|
-
}
|
|
433
|
-
const accessResults = !overrideAccess ? await executeAccess({
|
|
434
|
-
id: lifecycleOperation === 'create' ? undefined : id,
|
|
435
|
-
slug: collectionConfig.slug,
|
|
436
|
-
data,
|
|
437
|
-
req
|
|
438
|
-
}, collectionConfig.access[lifecycleOperation]) : true;
|
|
439
|
-
const hasWherePolicy = lifecycleOperation !== 'create' && hasWhereAccessResult(accessResults);
|
|
440
|
-
const where = {
|
|
441
|
-
id: {
|
|
442
|
-
equals: id
|
|
443
|
-
}
|
|
444
|
-
};
|
|
445
|
-
let fullWhere = hasWherePolicy ? combineQueries(where, accessResults) : where;
|
|
446
|
-
const isTrashAttempt = collectionConfig.trash && typeof data === 'object' && data !== null && 'deletedAt' in data && data.deletedAt != null;
|
|
447
|
-
if (isTrashAttempt && !overrideAccess) {
|
|
448
|
-
const deleteAccessResult = await executeAccess({
|
|
449
|
-
id,
|
|
450
|
-
slug: collectionConfig.slug,
|
|
451
|
-
data,
|
|
452
|
-
req
|
|
453
|
-
}, collectionConfig.access.delete);
|
|
454
|
-
fullWhere = combineQueries(fullWhere, deleteAccessResult);
|
|
455
|
-
}
|
|
456
|
-
fullWhere = appendNonTrashedFilter({
|
|
457
|
-
enableTrash: collectionConfig.trash,
|
|
458
|
-
trash,
|
|
459
|
-
where: fullWhere
|
|
460
|
-
});
|
|
461
|
-
const docWithLocales = await readUpdateDocument({
|
|
462
|
-
id,
|
|
463
|
-
collectionConfig,
|
|
464
|
-
hasWherePolicy,
|
|
465
|
-
locale,
|
|
466
|
-
req: storageReq ?? req,
|
|
467
|
-
where: fullWhere
|
|
468
|
-
});
|
|
469
|
-
return {
|
|
470
|
-
docWithLocales,
|
|
471
|
-
hasWherePolicy,
|
|
472
|
-
where: fullWhere
|
|
473
|
-
};
|
|
474
|
-
};
|
|
475
|
-
const readUpdateDocument = async ({ id, collectionConfig, hasWherePolicy, locale, req, where })=>{
|
|
476
|
-
const findOneArgs = {
|
|
477
|
-
collection: collectionConfig.slug,
|
|
478
|
-
locale,
|
|
479
|
-
req,
|
|
480
|
-
where
|
|
481
|
-
};
|
|
482
|
-
const docWithLocales = await getLatestCollectionVersion({
|
|
483
|
-
id,
|
|
484
|
-
config: collectionConfig,
|
|
485
|
-
payload: req.payload,
|
|
486
|
-
query: findOneArgs,
|
|
487
|
-
req
|
|
488
|
-
});
|
|
489
|
-
if (!docWithLocales) {
|
|
490
|
-
if (hasWherePolicy) {
|
|
491
|
-
throw new Forbidden(req.t);
|
|
492
|
-
}
|
|
493
|
-
throw new NotFound(req.t);
|
|
494
|
-
}
|
|
495
|
-
return docWithLocales;
|
|
496
|
-
};
|
|
497
292
|
|
|
498
293
|
//# sourceMappingURL=updateByID.js.map
|
|
@@ -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} from '../../types/index.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 { 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 { appendNonTrashedFilter } from '../../utilities/appendNonTrashedFilter.js'\nimport { assertNoValidationWrite } from '../../utilities/assertNoValidationWrite.js'\nimport { commitTransaction } 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 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 { 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 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 = async <\n TSlug extends CollectionSlug,\n TSelect extends SelectFromCollectionSlug<TSlug> = SelectType,\n>(\n incomingArgs: Arguments<TSlug>,\n): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n let args = incomingArgs\n const hasFileOperationScope = Boolean(args.collection.config.upload)\n\n if (hasFileOperationScope) {\n beginFileOperationScope({ req: args.req })\n }\n\n assertNoValidationWrite(args.req)\n\n try {\n const shouldCommit = !args.disableTransaction && (await initTransaction(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 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 // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n const accessResults = !overrideAccess\n ? await executeAccess(\n { id, slug: collectionConfig.slug, data, req },\n collectionConfig.access.update,\n )\n : true\n const hasWherePolicy = hasWhereAccessResult(accessResults)\n\n // /////////////////////////////////////\n // Retrieve document\n // /////////////////////////////////////\n\n const where = { id: { equals: id } }\n\n let fullWhere = combineQueries(where, accessResults)\n\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 // Pass data so access function can check data.deletedAt to know it's a trash attempt\n const deleteAccessResult = await executeAccess(\n { id, slug: collectionConfig.slug, data, 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 const findOneArgs: FindOneArgs = {\n collection: collectionConfig.slug,\n locale: locale!,\n req,\n where: fullWhere,\n }\n\n let docWithLocales = await getLatestCollectionVersion<\n RequiredDataFromCollectionSlug<TSlug> & TypeWithID\n >({\n id,\n config: collectionConfig,\n payload,\n query: findOneArgs,\n req,\n })\n\n if (!docWithLocales && !hasWherePolicy) {\n throw new NotFound(req.t)\n }\n if (!docWithLocales && hasWherePolicy) {\n throw new Forbidden(req.t)\n }\n if (!docWithLocales) {\n throw new NotFound(req.t)\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 data = mergeUploadDataWithDocument(data, docWithLocales, {\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 depth: depth!,\n docWithLocales,\n draftArg,\n fallbackLocale: fallbackLocale!,\n filesToUpload,\n locale: locale!,\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 } 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 (shouldCommit) {\n await commitTransaction(req)\n }\n\n if (hasFileOperationScope) {\n await completeFileOperationScope({ req })\n }\n\n return result\n } catch (error: unknown) {\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 await killTransaction(args.req)\n if (hasFileOperationScope) {\n await abortFileOperationScope({ req: args.req })\n }\n throw error\n }\n}\n"],"names":["executeAccess","hasWhereAccessResult","combineQueries","APIError","Forbidden","NotFound","deepCopyObjectSimple","runCloudFileUpdate","abortFileOperationScope","beginFileOperationScope","completeFileOperationScope","withLegacyCloudUploadFileData","generateFileData","getLocalizedUploadProperties","getUploadDestination","mergeUploadDataWithDocument","sanitizeUploadData","unlinkTempFiles","appendNonTrashedFilter","assertNoValidationWrite","commitTransaction","hasLocalizeStatusEnabled","httpStatus","initTransaction","killTransaction","resolveSelect","sanitizeSelect","getAllLocalesPublicationStatus","normalizeAllLocalesPublicationStatus","reconcileAllLocalesPublicationStatus","validateAllLocalesPublicationFlags","getLatestCollectionVersion","buildAfterOperation","buildBeforeOperation","updateDocument","updateByIDOperation","incomingArgs","args","hasFileOperationScope","Boolean","collection","config","upload","req","shouldCommit","disableTransaction","overrideAccess","objectKey","prefix","data","file","undefined","_objectKey","publishAllLocales","unpublishAllLocales","initialCollectionConfig","initialAllLocalesPublicationStatus","hasLocalizedStatus","payload","localization","draft","locale","initialAllLocalesPublicationIntent","status","operation","id","autosave","collectionConfig","depth","draftArg","overrideLock","overwriteExistingFiles","populate","publishAllLocalesArg","fallbackLocale","select","incomingSelect","showHiddenFields","trash","unpublishAllLocalesArg","BAD_REQUEST","requestedAllLocalesPublicationStatus","allLocalesPublicationStatus","intent","publicationIntentSurvivedBeforeOperation","accessResults","slug","access","update","hasWherePolicy","where","equals","fullWhere","isTrashAttempt","deletedAt","deleteAccessResult","delete","enableTrash","findOneArgs","docWithLocales","query","t","storedDocWithLocales","fileOperations","doc","defaultLocale","localizedProperties","flattenedFields","newFileData","files","filesToUpload","originalDoc","throwOnMissingFile","fields","updateArgs","shouldManageLocalFiles","write","result","current","auth","catch","unlinkError","logger","error","err","msg"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildBeforeOperation.d.ts","sourceRoot":"","sources":["../../../../src/collections/operations/utilities/buildBeforeOperation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"buildBeforeOperation.d.ts","sourceRoot":"","sources":["../../../../src/collections/operations/utilities/buildBeforeOperation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAMjF;;;;;;GAMG;AAEH;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,iBAAiB,SAAS,cAAc,EAAE,KAAK,EACxF,aAAa,EAAE;IACb,IAAI,EAAE,KAAK,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,KAAK,CAAC,GACxF,OAAO,CAAC,KAAK,CAAC,CAAA;AAEjB;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,iBAAiB,SAAS,cAAc,EAAE,KAAK,EACxF,aAAa,EAAE;IACb,IAAI,EAAE,KAAK,CAAA;IACX,SAAS,EAAE,cAAc,CAAA;CAC1B,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,KAAK,CAAC,GACxF,OAAO,CAAC,KAAK,CAAC,CAAA;AAGjB,wBAAsB,oBAAoB,CAAC,iBAAiB,SAAS,cAAc,EAAE,KAAK,EACxF,aAAa,EAAE;IACb,IAAI,EAAE,KAAK,CAAA;IACX,SAAS,EAAE,QAAQ,CAAA;CACpB,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,KAAK,CAAC,GACxF,OAAO,CAAC,KAAK,CAAC,CAAA;AAGjB,wBAAsB,oBAAoB,CAAC,iBAAiB,SAAS,cAAc,EAAE,KAAK,EACxF,aAAa,EAAE;IACb,IAAI,EAAE,KAAK,CAAA;IACX,SAAS,EAAE,YAAY,CAAA;CACxB,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,KAAK,CAAC,GACxF,OAAO,CAAC,KAAK,CAAC,CAAA;AAEjB,wBAAsB,oBAAoB,CAAC,iBAAiB,SAAS,cAAc,EAAE,KAAK,EACxF,aAAa,EAAE;IACb,IAAI,EAAE,KAAK,CAAA;IACX,SAAS,EAAE,QAAQ,CAAA;CACpB,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,KAAK,CAAC,GACxF,OAAO,CAAC,KAAK,CAAC,CAAA;AAGjB,wBAAsB,oBAAoB,CAAC,iBAAiB,SAAS,cAAc,EAAE,KAAK,EACxF,aAAa,EAAE;IACb,IAAI,EAAE,KAAK,CAAA;IACX,SAAS,EAAE,YAAY,CAAA;CACxB,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,KAAK,CAAC,GACxF,OAAO,CAAC,KAAK,CAAC,CAAA;AAGjB,wBAAsB,oBAAoB,CACxC,iBAAiB,SAAS,cAAc,EACxC,CAAC,SAAS,MAAM,YAAY,CAAC,iBAAiB,CAAC,EAE/C,aAAa,EAAE;IAAE,SAAS,EAAE,CAAC,CAAA;CAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,GAC/F,OAAO,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAA"}
|
|
@@ -1,15 +1,8 @@
|
|
|
1
|
-
import { assertBranchReadable } from '../../../branching/assertBranchReadable.js';
|
|
2
1
|
import { operationToHookOperation } from './types.js';
|
|
3
2
|
// Implementation
|
|
4
3
|
export async function buildBeforeOperation(operationArgs) {
|
|
5
4
|
const { args, collection, operation, overrideAccess } = operationArgs;
|
|
6
5
|
let newArgs = args;
|
|
7
|
-
if (!overrideAccess) {
|
|
8
|
-
await assertBranchReadable({
|
|
9
|
-
collectionSlug: collection.slug,
|
|
10
|
-
req: args.req
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
6
|
if (args.collection.config.hooks?.beforeOperation?.length) {
|
|
14
7
|
// TODO: v4 should not need this mapping
|
|
15
8
|
// Map the operation to the hook operation type for backward compatibility
|