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 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/collections/operations/utilities/buildBeforeOperation.ts"],"sourcesContent":["import type { CollectionSlug } from '../../../index.js'\nimport type { BeforeOperationArg, OperationArgs, OperationMap } from './types.js'\n\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../src/collections/operations/utilities/buildBeforeOperation.ts"],"sourcesContent":["import type { CollectionSlug } from '../../../index.js'\nimport type { BeforeOperationArg, OperationArgs, OperationMap } from './types.js'\n\nimport { operationToHookOperation } from './types.js'\n// Specific overloads with TArgs (these take priority over the general overload)\n// Overload for 'read' operation (deprecated, backward compatibility)\n\n/**\n * TODO V4: remove overloads and operations should be the literal operation that was called\n *\n * - `read`: replace with `find` and `findByID` in both operations\n * - `delete`: replace with `deleteByID` in deleteByID operation\n * - `update`: replace with `updateByID` in updateByID operation\n */\n\n/**\n * @deprecated\n *\n * Should use `find` or `findByID`\n */\nexport async function buildBeforeOperation<TOperationGeneric extends CollectionSlug, TArgs>(\n operationArgs: {\n args: TArgs\n operation: 'read'\n } & Omit<BeforeOperationArg<TOperationGeneric>, 'args' | 'context' | 'operation' | 'req'>,\n): Promise<TArgs>\n\n/**\n * Overload for 'readDistinct' operation\n *\n * @deprecated - use `findDistinct`\n */\nexport async function buildBeforeOperation<TOperationGeneric extends CollectionSlug, TArgs>(\n operationArgs: {\n args: TArgs\n operation: 'readDistinct'\n } & Omit<BeforeOperationArg<TOperationGeneric>, 'args' | 'context' | 'operation' | 'req'>,\n): Promise<TArgs>\n\n// Overload for 'update' operation (can be called by both update and updateByID)\nexport async function buildBeforeOperation<TOperationGeneric extends CollectionSlug, TArgs>(\n operationArgs: {\n args: TArgs\n operation: 'update'\n } & Omit<BeforeOperationArg<TOperationGeneric>, 'args' | 'context' | 'operation' | 'req'>,\n): Promise<TArgs>\n\n// Overload for 'updateByID' operation\nexport async function buildBeforeOperation<TOperationGeneric extends CollectionSlug, TArgs>(\n operationArgs: {\n args: TArgs\n operation: 'updateByID'\n } & Omit<BeforeOperationArg<TOperationGeneric>, 'args' | 'context' | 'operation' | 'req'>,\n): Promise<TArgs>\n\nexport async function buildBeforeOperation<TOperationGeneric extends CollectionSlug, TArgs>(\n operationArgs: {\n args: TArgs\n operation: 'delete'\n } & Omit<BeforeOperationArg<TOperationGeneric>, 'args' | 'context' | 'operation' | 'req'>,\n): Promise<TArgs>\n\n// Overload for 'deleteByID' operation\nexport async function buildBeforeOperation<TOperationGeneric extends CollectionSlug, TArgs>(\n operationArgs: {\n args: TArgs\n operation: 'deleteByID'\n } & Omit<BeforeOperationArg<TOperationGeneric>, 'args' | 'context' | 'operation' | 'req'>,\n): Promise<TArgs>\n\n// General overload for operations that exist in OperationMap (fallback)\nexport async function buildBeforeOperation<\n TOperationGeneric extends CollectionSlug,\n O extends keyof OperationMap<TOperationGeneric>,\n>(\n operationArgs: { operation: O } & Omit<BeforeOperationArg<TOperationGeneric>, 'context' | 'req'>,\n): Promise<OperationArgs<TOperationGeneric, O>>\n\n// Implementation\nexport async function buildBeforeOperation<TOperationGeneric extends CollectionSlug>(\n operationArgs: Omit<BeforeOperationArg<TOperationGeneric>, 'context' | 'req'>,\n): Promise<unknown> {\n const { args, collection, operation, overrideAccess } = operationArgs\n\n let newArgs = args\n\n if (args.collection.config.hooks?.beforeOperation?.length) {\n // TODO: v4 should not need this mapping\n // Map the operation to the hook operation type for backward compatibility\n const hookOperation = operationToHookOperation[operation]\n\n for (const hook of args.collection.config.hooks.beforeOperation) {\n const hookResult = await hook({\n args: newArgs,\n collection,\n context: args.req!.context,\n operation: hookOperation,\n overrideAccess,\n req: args.req!,\n } as BeforeOperationArg<TOperationGeneric>)\n\n if (hookResult !== undefined) {\n newArgs = hookResult\n }\n }\n }\n\n return newArgs\n}\n"],"names":["operationToHookOperation","buildBeforeOperation","operationArgs","args","collection","operation","overrideAccess","newArgs","config","hooks","beforeOperation","length","hookOperation","hook","hookResult","context","req","undefined"],"mappings":"AAGA,SAASA,wBAAwB,QAAQ,aAAY;AA2ErD,iBAAiB;AACjB,OAAO,eAAeC,qBACpBC,aAA6E;IAE7E,MAAM,EAAEC,IAAI,EAAEC,UAAU,EAAEC,SAAS,EAAEC,cAAc,EAAE,GAAGJ;IAExD,IAAIK,UAAUJ;IAEd,IAAIA,KAAKC,UAAU,CAACI,MAAM,CAACC,KAAK,EAAEC,iBAAiBC,QAAQ;QACzD,wCAAwC;QACxC,0EAA0E;QAC1E,MAAMC,gBAAgBZ,wBAAwB,CAACK,UAAU;QAEzD,KAAK,MAAMQ,QAAQV,KAAKC,UAAU,CAACI,MAAM,CAACC,KAAK,CAACC,eAAe,CAAE;YAC/D,MAAMI,aAAa,MAAMD,KAAK;gBAC5BV,MAAMI;gBACNH;gBACAW,SAASZ,KAAKa,GAAG,CAAED,OAAO;gBAC1BV,WAAWO;gBACXN;gBACAU,KAAKb,KAAKa,GAAG;YACf;YAEA,IAAIF,eAAeG,WAAW;gBAC5BV,UAAUO;YACZ;QACF;IACF;IAEA,OAAOP;AACT"}
|
|
@@ -2,15 +2,12 @@ import type { DeepPartial } from 'ts-essentials';
|
|
|
2
2
|
import type { CollectionSlug, FileToSave, SanitizedConfig, TypedFallbackLocale } from '../../../index.js';
|
|
3
3
|
import type { JsonObject, Payload, PayloadRequest, PopulateType, SelectType, TransformCollectionWithSelect } from '../../../types/index.js';
|
|
4
4
|
import type { SharedLocalAPIOptions } from '../../../types/operations.js';
|
|
5
|
-
import type { UploadFileRollbacks } from '../../../uploads/uploadFileRollback.js';
|
|
6
5
|
import type { DataFromCollectionSlug, SanitizedCollectionConfig, SelectFromCollectionSlug, TypeWithID } from '../../config/types.js';
|
|
7
6
|
export type SharedUpdateDocumentArgs<TSlug extends CollectionSlug> = {
|
|
8
7
|
autosave: boolean;
|
|
9
8
|
collectionConfig: SanitizedCollectionConfig;
|
|
10
9
|
config: SanitizedConfig;
|
|
11
10
|
data: DeepPartial<DataFromCollectionSlug<TSlug>>;
|
|
12
|
-
/** @internal Request used only for database reads and writes during branch promotion. */
|
|
13
|
-
databaseReq?: PayloadRequest;
|
|
14
11
|
depth: number;
|
|
15
12
|
docWithLocales: JsonObject & TypeWithID;
|
|
16
13
|
draftArg: boolean;
|
|
@@ -18,15 +15,6 @@ export type SharedUpdateDocumentArgs<TSlug extends CollectionSlug> = {
|
|
|
18
15
|
filesToUpload: FileToSave[];
|
|
19
16
|
id: number | string;
|
|
20
17
|
locale: string;
|
|
21
|
-
onBeforeDocumentWrite?: () => void;
|
|
22
|
-
/**
|
|
23
|
-
* Hook `operation` label. Merge reports a branch-created document as a
|
|
24
|
-
* `create` on main even though the row is updated in place, since deleting
|
|
25
|
-
* and recreating it would cascade away every inbound relationship.
|
|
26
|
-
*
|
|
27
|
-
* @default 'update'
|
|
28
|
-
*/
|
|
29
|
-
operation?: 'create' | 'update';
|
|
30
18
|
overrideLock: boolean;
|
|
31
19
|
payload: Payload;
|
|
32
20
|
populate?: PopulateType;
|
|
@@ -36,7 +24,6 @@ export type SharedUpdateDocumentArgs<TSlug extends CollectionSlug> = {
|
|
|
36
24
|
shouldManageLocalFiles: boolean;
|
|
37
25
|
showHiddenFields: boolean;
|
|
38
26
|
unpublishAllLocales?: boolean;
|
|
39
|
-
uploadFileRollbacks?: UploadFileRollbacks;
|
|
40
27
|
} & Pick<Required<SharedLocalAPIOptions>, 'overrideAccess'>;
|
|
41
28
|
/**
|
|
42
29
|
* This function is used to update a document in the DB and return the result.
|
|
@@ -51,5 +38,5 @@ export type SharedUpdateDocumentArgs<TSlug extends CollectionSlug> = {
|
|
|
51
38
|
* - afterChange - Fields
|
|
52
39
|
* - afterChange - Collection
|
|
53
40
|
*/
|
|
54
|
-
export declare const updateDocument: <TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug> = SelectType>({ id, autosave, collectionConfig, config, data,
|
|
41
|
+
export declare const updateDocument: <TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug> = SelectType>({ id, autosave, collectionConfig, config, data, depth, docWithLocales, draftArg, fallbackLocale, filesToUpload, locale, overrideAccess, overrideLock, payload, populate, publishAllLocales: publishAllLocalesArg, req, select, shouldManageLocalFiles, showHiddenFields, unpublishAllLocales: unpublishAllLocalesArg, }: SharedUpdateDocumentArgs<TSlug>) => Promise<TransformCollectionWithSelect<TSlug, TSelect>>;
|
|
55
42
|
//# sourceMappingURL=update.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/collections/operations/utilities/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAIhD,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EACV,eAAe,EACf,mBAAmB,EACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EACV,UAAU,EACV,OAAO,EACP,cAAc,EACd,YAAY,EACZ,UAAU,EACV,6BAA6B,EAC9B,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/collections/operations/utilities/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAIhD,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EACV,eAAe,EACf,mBAAmB,EACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EACV,UAAU,EACV,OAAO,EACP,cAAc,EACd,YAAY,EACZ,UAAU,EACV,6BAA6B,EAC9B,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,UAAU,EACX,MAAM,uBAAuB,CAAA;AA8B9B,MAAM,MAAM,wBAAwB,CAAC,KAAK,SAAS,cAAc,IAAI;IACnE,QAAQ,EAAE,OAAO,CAAA;IACjB,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,WAAW,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAA;IAChD,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,UAAU,GAAG,UAAU,CAAA;IACvC,QAAQ,EAAE,OAAO,CAAA;IACjB,cAAc,EAAE,mBAAmB,CAAA;IACnC,aAAa,EAAE,UAAU,EAAE,CAAA;IAC3B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,OAAO,CAAA;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,EAAE,UAAU,CAAA;IAClB,sBAAsB,EAAE,OAAO,CAAA;IAC/B,gBAAgB,EAAE,OAAO,CAAA;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,gBAAgB,CAAC,CAAA;AAE3D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc,GACzB,KAAK,SAAS,cAAc,EAC5B,OAAO,SAAS,wBAAwB,CAAC,KAAK,CAAC,GAAG,UAAU,2TAuB3D,wBAAwB,CAAC,KAAK,CAAC,KAAG,OAAO,CAAC,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,CA+gBzF,CAAA"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { ensureUsernameOrEmail } from '../../../auth/ensureUsernameOrEmail.js';
|
|
2
2
|
import { removeExpiredSessions } from '../../../auth/sessions.js';
|
|
3
3
|
import { generatePasswordSaltHash } from '../../../auth/strategies/local/generatePasswordSaltHash.js';
|
|
4
|
-
import { runBranchMergeWriteGuard } from '../../../branching/mergeWriteGuard.js';
|
|
5
|
-
import { branchDocIDField, branchField, MAIN_BRANCH } from '../../../branching/types.js';
|
|
6
4
|
import { ValidationError } from '../../../errors/index.js';
|
|
7
5
|
import { afterChange } from '../../../fields/hooks/afterChange/index.js';
|
|
8
6
|
import { afterRead } from '../../../fields/hooks/afterRead/index.js';
|
|
@@ -10,14 +8,12 @@ import { beforeChange } from '../../../fields/hooks/beforeChange/index.js';
|
|
|
10
8
|
import { beforeValidate } from '../../../fields/hooks/beforeValidate/index.js';
|
|
11
9
|
import { deepCopyObjectSimple, saveVersion } from '../../../index.js';
|
|
12
10
|
import { deleteAssociatedFiles } from '../../../uploads/deleteAssociatedFiles.js';
|
|
13
|
-
import { deleteUploadFilesExclusiveToDocument } from '../../../uploads/deleteUploadFilesExclusiveToDocument.js';
|
|
14
11
|
import { runLocalFileUpdate } from '../../../uploads/fileVersioning/archive.js';
|
|
15
12
|
import { uploadFiles } from '../../../uploads/uploadFiles.js';
|
|
16
13
|
import { checkDocumentLockStatus } from '../../../utilities/checkDocumentLockStatus.js';
|
|
17
14
|
import { getTopLevelFieldNames } from '../../../utilities/getTopLevelFieldNames.js';
|
|
18
15
|
import { hasDraftsEnabled, hasDraftValidationEnabled, hasLocalizeStatusEnabled } from '../../../utilities/getVersionsConfig.js';
|
|
19
16
|
import { resolvePublishAllLocales } from '../../../utilities/resolvePublishAllLocales.js';
|
|
20
|
-
import { markTransactionWrite } from '../../../utilities/transactionMutationTracker.js';
|
|
21
17
|
import { buildAllLocalesPublicationHookDoc, getAllLocalesPublicationStatus, hasAuthorizedAllLocalesPublicationStatus, validateAllLocalesPublicationFlags } from '../../../versions/allLocalesPublicationStatus.js';
|
|
22
18
|
import { buildLocalizedPublishData } from '../../../versions/buildSingleLocalePublishData.js';
|
|
23
19
|
import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
|
|
@@ -33,8 +29,7 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
|
|
|
33
29
|
* - afterRead - Collection
|
|
34
30
|
* - afterChange - Fields
|
|
35
31
|
* - afterChange - Collection
|
|
36
|
-
*/ export const updateDocument = async ({ id, autosave, collectionConfig, config, data,
|
|
37
|
-
const databaseRequest = databaseReq ?? req;
|
|
32
|
+
*/ export const updateDocument = async ({ id, autosave, collectionConfig, config, data, depth, docWithLocales, draftArg, fallbackLocale, filesToUpload, locale, overrideAccess, overrideLock, payload, populate, publishAllLocales: publishAllLocalesArg, req, select, shouldManageLocalFiles, showHiddenFields, unpublishAllLocales: unpublishAllLocalesArg })=>{
|
|
38
33
|
const nextFileData = collectionConfig.upload && shouldManageLocalFiles && !collectionConfig.upload.fileOperations ? deepCopyObjectSimple(data) : undefined;
|
|
39
34
|
validateAllLocalesPublicationFlags({
|
|
40
35
|
publishAllLocales: publishAllLocalesArg,
|
|
@@ -64,8 +59,7 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
|
|
|
64
59
|
collectionSlug: collectionConfig.slug,
|
|
65
60
|
lockErrorMessage: `Document with ID ${id} is currently locked by another user and cannot be updated.`,
|
|
66
61
|
overrideLock,
|
|
67
|
-
req
|
|
68
|
-
shouldDeleteLock: false
|
|
62
|
+
req
|
|
69
63
|
});
|
|
70
64
|
const originalDoc = await afterRead({
|
|
71
65
|
collection: collectionConfig,
|
|
@@ -122,7 +116,7 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
|
|
|
122
116
|
statusFieldAccess = accessResult;
|
|
123
117
|
}
|
|
124
118
|
},
|
|
125
|
-
operation,
|
|
119
|
+
operation: 'update',
|
|
126
120
|
overrideAccess,
|
|
127
121
|
req
|
|
128
122
|
});
|
|
@@ -142,7 +136,7 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
|
|
|
142
136
|
collection: collectionConfig,
|
|
143
137
|
context: req.context,
|
|
144
138
|
data,
|
|
145
|
-
operation,
|
|
139
|
+
operation: 'update',
|
|
146
140
|
originalDoc: publicationHookDoc,
|
|
147
141
|
req
|
|
148
142
|
}) || data;
|
|
@@ -157,7 +151,7 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
|
|
|
157
151
|
collection: collectionConfig,
|
|
158
152
|
context: req.context,
|
|
159
153
|
data,
|
|
160
|
-
operation,
|
|
154
|
+
operation: 'update',
|
|
161
155
|
originalDoc: publicationHookDoc,
|
|
162
156
|
req
|
|
163
157
|
}) || data;
|
|
@@ -181,7 +175,7 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
|
|
|
181
175
|
docWithLocales,
|
|
182
176
|
fieldsToValidate: submittedTopLevelFieldNames,
|
|
183
177
|
global: null,
|
|
184
|
-
operation,
|
|
178
|
+
operation: 'update',
|
|
185
179
|
overrideAccess,
|
|
186
180
|
req,
|
|
187
181
|
// only skip validation for drafts when draft validation is false
|
|
@@ -246,7 +240,7 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
|
|
|
246
240
|
const currentDoc = await payload.db.findOne({
|
|
247
241
|
collection: collectionConfig.slug,
|
|
248
242
|
locale: 'all',
|
|
249
|
-
req
|
|
243
|
+
req,
|
|
250
244
|
where: {
|
|
251
245
|
id: {
|
|
252
246
|
equals: id
|
|
@@ -255,7 +249,7 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
|
|
|
255
249
|
});
|
|
256
250
|
localizedPublishData = buildLocalizedPublishData({
|
|
257
251
|
config,
|
|
258
|
-
currentDoc
|
|
252
|
+
currentDoc,
|
|
259
253
|
fields: collectionConfig.fields,
|
|
260
254
|
locale,
|
|
261
255
|
result
|
|
@@ -295,53 +289,17 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
|
|
|
295
289
|
// File deletion and writes must occur after the final publish validation. Validation failures
|
|
296
290
|
// leave both the persisted upload and local files untouched.
|
|
297
291
|
if (!isDraftOverPublished && !hasManagedLocalUpload) {
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
req,
|
|
307
|
-
where: {
|
|
308
|
-
and: [
|
|
309
|
-
{
|
|
310
|
-
[branchField]: {
|
|
311
|
-
equals: MAIN_BRANCH
|
|
312
|
-
}
|
|
313
|
-
},
|
|
314
|
-
{
|
|
315
|
-
id: {
|
|
316
|
-
equals: canonicalDocumentID
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
]
|
|
320
|
-
}
|
|
321
|
-
}) : null;
|
|
322
|
-
await deleteUploadFilesExclusiveToDocument({
|
|
323
|
-
collectionConfig,
|
|
324
|
-
config,
|
|
325
|
-
deleteFromAdapter: false,
|
|
326
|
-
req,
|
|
327
|
-
retainedDoc,
|
|
328
|
-
sourceDoc: docWithLocales
|
|
329
|
-
});
|
|
330
|
-
} else {
|
|
331
|
-
await deleteAssociatedFiles({
|
|
332
|
-
collectionConfig,
|
|
333
|
-
config,
|
|
334
|
-
doc: docWithLocales,
|
|
335
|
-
files: filesToUpload,
|
|
336
|
-
overrideDelete: false,
|
|
337
|
-
req
|
|
338
|
-
});
|
|
339
|
-
}
|
|
292
|
+
await deleteAssociatedFiles({
|
|
293
|
+
collectionConfig,
|
|
294
|
+
config,
|
|
295
|
+
doc: docWithLocales,
|
|
296
|
+
files: filesToUpload,
|
|
297
|
+
overrideDelete: false,
|
|
298
|
+
req
|
|
299
|
+
});
|
|
340
300
|
}
|
|
341
301
|
if (!collectionConfig.upload.disableLocalStorage && !hasManagedLocalUpload) {
|
|
342
|
-
await uploadFiles(payload, filesToUpload, req
|
|
343
|
-
uploadFileRollbacks
|
|
344
|
-
});
|
|
302
|
+
await uploadFiles(payload, filesToUpload, req);
|
|
345
303
|
}
|
|
346
304
|
const writeDocument = async ()=>{
|
|
347
305
|
const dataToUpdate = {
|
|
@@ -366,25 +324,6 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
|
|
|
366
324
|
dataToUpdate.sessions = currentSid ? existingSessions.filter((session)=>session.id === currentSid) : [];
|
|
367
325
|
}
|
|
368
326
|
}
|
|
369
|
-
await runBranchMergeWriteGuard({
|
|
370
|
-
collectionSlug: collectionConfig.slug,
|
|
371
|
-
data: dataToUpdate,
|
|
372
|
-
req
|
|
373
|
-
});
|
|
374
|
-
if (localizedPublishData) {
|
|
375
|
-
await runBranchMergeWriteGuard({
|
|
376
|
-
collectionSlug: collectionConfig.slug,
|
|
377
|
-
data: result,
|
|
378
|
-
req
|
|
379
|
-
});
|
|
380
|
-
}
|
|
381
|
-
await checkDocumentLockStatus({
|
|
382
|
-
id,
|
|
383
|
-
collectionSlug: collectionConfig.slug,
|
|
384
|
-
lockErrorMessage: `Document with ID ${id} is currently locked by another user and cannot be updated.`,
|
|
385
|
-
overrideLock,
|
|
386
|
-
req
|
|
387
|
-
});
|
|
388
327
|
// /////////////////////////////////////
|
|
389
328
|
// Update
|
|
390
329
|
// /////////////////////////////////////
|
|
@@ -392,7 +331,6 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
|
|
|
392
331
|
if (!isSavingDraft) {
|
|
393
332
|
// Ensure updatedAt date is always updated
|
|
394
333
|
dataToUpdate.updatedAt = new Date().toISOString();
|
|
395
|
-
onBeforeDocumentWrite?.();
|
|
396
334
|
if (localizedPublishData) {
|
|
397
335
|
// Single-locale publish: save filtered data to main doc but keep full locale data for
|
|
398
336
|
// the version so draft fetches (replaceWithDraftIfAvailable) return complete data.
|
|
@@ -401,9 +339,6 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
|
|
|
401
339
|
collection: collectionConfig.slug,
|
|
402
340
|
data: dataToUpdate,
|
|
403
341
|
locale,
|
|
404
|
-
req: databaseRequest
|
|
405
|
-
});
|
|
406
|
-
markTransactionWrite({
|
|
407
342
|
req
|
|
408
343
|
});
|
|
409
344
|
resultWithLocales = {
|
|
@@ -416,9 +351,6 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
|
|
|
416
351
|
collection: collectionConfig.slug,
|
|
417
352
|
data: dataToUpdate,
|
|
418
353
|
locale,
|
|
419
|
-
req: databaseRequest
|
|
420
|
-
});
|
|
421
|
-
markTransactionWrite({
|
|
422
354
|
req
|
|
423
355
|
});
|
|
424
356
|
}
|
|
@@ -427,7 +359,6 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
|
|
|
427
359
|
// Create version
|
|
428
360
|
// /////////////////////////////////////
|
|
429
361
|
if (collectionConfig.versions) {
|
|
430
|
-
onBeforeDocumentWrite?.();
|
|
431
362
|
resultWithLocales = await saveVersion({
|
|
432
363
|
id,
|
|
433
364
|
autosave,
|
|
@@ -436,12 +367,9 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
|
|
|
436
367
|
draft: isSavingDraft,
|
|
437
368
|
operation: 'update',
|
|
438
369
|
payload,
|
|
439
|
-
req
|
|
370
|
+
req,
|
|
440
371
|
unpublish: unpublishAllLocales
|
|
441
372
|
});
|
|
442
|
-
markTransactionWrite({
|
|
443
|
-
req
|
|
444
|
-
});
|
|
445
373
|
}
|
|
446
374
|
// /////////////////////////////////////
|
|
447
375
|
// afterRead - Fields
|
|
@@ -484,7 +412,7 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
|
|
|
484
412
|
data,
|
|
485
413
|
doc: result,
|
|
486
414
|
global: null,
|
|
487
|
-
operation,
|
|
415
|
+
operation: 'update',
|
|
488
416
|
previousDoc: originalDoc,
|
|
489
417
|
req
|
|
490
418
|
});
|
|
@@ -498,7 +426,7 @@ import { validateLocalWithLocaleKeyedData } from '../local/validate.js';
|
|
|
498
426
|
context: req.context,
|
|
499
427
|
data,
|
|
500
428
|
doc: result,
|
|
501
|
-
operation,
|
|
429
|
+
operation: 'update',
|
|
502
430
|
overrideAccess,
|
|
503
431
|
previousDoc: originalDoc,
|
|
504
432
|
req,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/collections/operations/utilities/update.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport type { UserSession } from '../../../auth/types.js'\nimport type { Args } from '../../../fields/hooks/beforeChange/index.js'\nimport type {\n CollectionSlug,\n FileToSave,\n SanitizedConfig,\n TypedFallbackLocale,\n} from '../../../index.js'\nimport type {\n JsonObject,\n Payload,\n PayloadRequest,\n PopulateType,\n SelectType,\n TransformCollectionWithSelect,\n} from '../../../types/index.js'\nimport type { SharedLocalAPIOptions } from '../../../types/operations.js'\nimport type { UploadFileRollbacks } from '../../../uploads/uploadFileRollback.js'\nimport type {\n DataFromCollectionSlug,\n SanitizedCollectionConfig,\n SelectFromCollectionSlug,\n TypeWithID,\n} from '../../config/types.js'\n\nimport { ensureUsernameOrEmail } from '../../../auth/ensureUsernameOrEmail.js'\nimport { removeExpiredSessions } from '../../../auth/sessions.js'\nimport { generatePasswordSaltHash } from '../../../auth/strategies/local/generatePasswordSaltHash.js'\nimport { runBranchMergeWriteGuard } from '../../../branching/mergeWriteGuard.js'\nimport { branchDocIDField, branchField, MAIN_BRANCH } from '../../../branching/types.js'\nimport { ValidationError } from '../../../errors/index.js'\nimport { afterChange } from '../../../fields/hooks/afterChange/index.js'\nimport { afterRead } from '../../../fields/hooks/afterRead/index.js'\nimport { beforeChange } from '../../../fields/hooks/beforeChange/index.js'\nimport { beforeValidate } from '../../../fields/hooks/beforeValidate/index.js'\nimport { deepCopyObjectSimple, saveVersion } from '../../../index.js'\nimport { deleteAssociatedFiles } from '../../../uploads/deleteAssociatedFiles.js'\nimport { deleteUploadFilesExclusiveToDocument } from '../../../uploads/deleteUploadFilesExclusiveToDocument.js'\nimport { runLocalFileUpdate } from '../../../uploads/fileVersioning/archive.js'\nimport { uploadFiles } from '../../../uploads/uploadFiles.js'\nimport { checkDocumentLockStatus } from '../../../utilities/checkDocumentLockStatus.js'\nimport { getTopLevelFieldNames } from '../../../utilities/getTopLevelFieldNames.js'\nimport {\n hasDraftsEnabled,\n hasDraftValidationEnabled,\n hasLocalizeStatusEnabled,\n} from '../../../utilities/getVersionsConfig.js'\nimport { resolvePublishAllLocales } from '../../../utilities/resolvePublishAllLocales.js'\nimport { markTransactionWrite } from '../../../utilities/transactionMutationTracker.js'\nimport {\n buildAllLocalesPublicationHookDoc,\n getAllLocalesPublicationStatus,\n hasAuthorizedAllLocalesPublicationStatus,\n validateAllLocalesPublicationFlags,\n} from '../../../versions/allLocalesPublicationStatus.js'\nimport { buildLocalizedPublishData } from '../../../versions/buildSingleLocalePublishData.js'\nimport { validateLocalWithLocaleKeyedData } from '../local/validate.js'\nexport type SharedUpdateDocumentArgs<TSlug extends CollectionSlug> = {\n autosave: boolean\n collectionConfig: SanitizedCollectionConfig\n config: SanitizedConfig\n data: DeepPartial<DataFromCollectionSlug<TSlug>>\n /** @internal Request used only for database reads and writes during branch promotion. */\n databaseReq?: PayloadRequest\n depth: number\n docWithLocales: JsonObject & TypeWithID\n draftArg: boolean\n fallbackLocale: TypedFallbackLocale\n filesToUpload: FileToSave[]\n id: number | string\n locale: string\n onBeforeDocumentWrite?: () => void\n /**\n * Hook `operation` label. Merge reports a branch-created document as a\n * `create` on main even though the row is updated in place, since deleting\n * and recreating it would cascade away every inbound relationship.\n *\n * @default 'update'\n */\n operation?: 'create' | 'update'\n overrideLock: boolean\n payload: Payload\n populate?: PopulateType\n publishAllLocales?: boolean\n req: PayloadRequest\n select: SelectType\n shouldManageLocalFiles: boolean\n showHiddenFields: boolean\n unpublishAllLocales?: boolean\n uploadFileRollbacks?: UploadFileRollbacks\n} & Pick<Required<SharedLocalAPIOptions>, 'overrideAccess'>\n\n/**\n * This function is used to update a document in the DB and return the result.\n *\n * It runs the following hooks in order:\n * - beforeValidate - Fields\n * - beforeValidate - Collection\n * - beforeChange - Collection\n * - beforeChange - Fields\n * - afterRead - Fields\n * - afterRead - Collection\n * - afterChange - Fields\n * - afterChange - Collection\n */\nexport const updateDocument = async <\n TSlug extends CollectionSlug,\n TSelect extends SelectFromCollectionSlug<TSlug> = SelectType,\n>({\n id,\n autosave,\n collectionConfig,\n config,\n data,\n databaseReq,\n depth,\n docWithLocales,\n draftArg,\n fallbackLocale,\n filesToUpload,\n locale,\n onBeforeDocumentWrite,\n operation = 'update',\n overrideAccess,\n overrideLock,\n payload,\n populate,\n publishAllLocales: publishAllLocalesArg,\n req,\n select,\n shouldManageLocalFiles,\n showHiddenFields,\n unpublishAllLocales: unpublishAllLocalesArg,\n uploadFileRollbacks,\n}: SharedUpdateDocumentArgs<TSlug>): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n const databaseRequest = databaseReq ?? req\n const nextFileData =\n collectionConfig.upload && shouldManageLocalFiles && !collectionConfig.upload.fileOperations\n ? deepCopyObjectSimple(data)\n : undefined\n\n validateAllLocalesPublicationFlags({\n publishAllLocales: publishAllLocalesArg,\n unpublishAllLocales: unpublishAllLocalesArg,\n })\n\n const publishAllLocales = resolvePublishAllLocales({\n draft: draftArg,\n hasLocalizeStatusEnabled: hasLocalizeStatusEnabled(collectionConfig),\n locale,\n publishAllLocalesArg,\n })\n const unpublishAllLocales =\n typeof unpublishAllLocalesArg === 'string'\n ? unpublishAllLocalesArg === 'true'\n : !!unpublishAllLocalesArg\n const allLocalesPublicationStatus = getAllLocalesPublicationStatus({\n hasLocalizedStatus: Boolean(config.localization && hasLocalizeStatusEnabled(collectionConfig)),\n publishAllLocales,\n unpublishAllLocales,\n })\n const isSavingDraft =\n Boolean(draftArg && hasDraftsEnabled(collectionConfig)) &&\n data._status !== 'published' &&\n !publishAllLocales\n if (allLocalesPublicationStatus || isSavingDraft) {\n data._status = allLocalesPublicationStatus ?? 'draft'\n }\n\n // /////////////////////////////////////\n // Handle potentially locked documents\n // /////////////////////////////////////\n\n await checkDocumentLockStatus({\n id,\n collectionSlug: collectionConfig.slug,\n lockErrorMessage: `Document with ID ${id} is currently locked by another user and cannot be updated.`,\n overrideLock,\n req,\n shouldDeleteLock: false,\n })\n\n const originalDoc = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth: 0,\n doc: deepCopyObjectSimple(docWithLocales),\n draft: draftArg,\n fallbackLocale: id ? null : fallbackLocale,\n global: null,\n locale,\n overrideAccess: true,\n req,\n showHiddenFields: true,\n })\n const isRestoringDraftFromTrash = Boolean(originalDoc?.deletedAt) && data?._status !== 'published'\n const shouldLimitValidationToSubmittedFields =\n (collectionConfig.trash && (Boolean(data?.deletedAt) || isRestoringDraftFromTrash)) ||\n unpublishAllLocales\n const submittedTopLevelFieldNames = shouldLimitValidationToSubmittedFields\n ? getTopLevelFieldNames(data)\n : undefined\n\n if (collectionConfig.auth) {\n ensureUsernameOrEmail<TSlug>({\n authOptions: collectionConfig.auth,\n collectionSlug: collectionConfig.slug,\n data,\n operation: 'update',\n originalDoc,\n req,\n })\n }\n\n // When saving a draft on a document whose latest version is published, the file\n // referenced by docWithLocales is still actively used by the published main document.\n // Deleting it during the update would break the published document's file even though no publish\n // is happening. Only skip deletion in this case; when the latest version is already a\n // draft, it is safe to delete the old draft file as it is being replaced.\n const isDraftOverPublished = isSavingDraft && docWithLocales._status === 'published'\n\n const hasManagedLocalUpload =\n filesToUpload.length > 0 &&\n Boolean(data.original) &&\n !collectionConfig.upload.disableLocalStorage\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n let statusFieldAccess = false\n const publicationFieldPolicyDoc = buildAllLocalesPublicationHookDoc({\n doc: originalDoc,\n docWithLocales,\n status: data._status === allLocalesPublicationStatus ? allLocalesPublicationStatus : undefined,\n })\n\n data = await beforeValidate<DeepPartial<DataFromCollectionSlug<TSlug>>>({\n id,\n collection: collectionConfig,\n context: req.context,\n data,\n doc: originalDoc,\n docForHooks: publicationFieldPolicyDoc,\n global: null,\n onFieldAccess: ({ accessResult, path }) => {\n if (path === '_status') {\n statusFieldAccess = accessResult\n }\n },\n operation,\n overrideAccess,\n req,\n })\n\n const password = data?.password\n const shouldSavePassword = Boolean(\n password &&\n collectionConfig.auth &&\n (!collectionConfig.auth.disableLocalStrategy ||\n (typeof collectionConfig.auth.disableLocalStrategy === 'object' &&\n collectionConfig.auth.disableLocalStrategy.enableFields)) &&\n !isSavingDraft,\n )\n\n const publicationHookDoc = buildAllLocalesPublicationHookDoc({\n doc: originalDoc,\n docWithLocales,\n status:\n statusFieldAccess && data._status === allLocalesPublicationStatus\n ? allLocalesPublicationStatus\n : undefined,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.beforeValidate?.length) {\n for (const hook of collectionConfig.hooks.beforeValidate) {\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation,\n originalDoc: publicationHookDoc,\n req,\n })) || data\n }\n }\n\n // /////////////////////////////////////\n // beforeChange - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.beforeChange?.length) {\n for (const hook of collectionConfig.hooks.beforeChange) {\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation,\n originalDoc: publicationHookDoc,\n req,\n })) || data\n }\n }\n\n const publicationData = { ...data }\n\n // /////////////////////////////////////\n // beforeChange - Fields\n // /////////////////////////////////////\n\n const beforeChangeArgs: Args<DataFromCollectionSlug<TSlug>> = {\n id,\n collection: collectionConfig,\n context: req.context,\n data: { ...data, id },\n doc: publicationHookDoc,\n docWithLocales,\n fieldsToValidate: submittedTopLevelFieldNames,\n global: null,\n operation,\n overrideAccess,\n req,\n // only skip validation for drafts when draft validation is false\n skipValidation: isSavingDraft && !hasDraftValidationEnabled(collectionConfig),\n }\n\n // /////////////////////////////////////\n // Handle Localized Data Merging\n // /////////////////////////////////////\n\n let statusFieldValue: unknown\n\n let result: JsonObject = await beforeChange({\n ...beforeChangeArgs,\n onDataProcessed: (processedData) => {\n statusFieldValue = processedData._status\n },\n })\n\n const hasAuthorizedPublicationStatus = hasAuthorizedAllLocalesPublicationStatus({\n data: publicationData,\n fieldAccessDenied: !statusFieldAccess,\n fieldValue: statusFieldValue,\n status: allLocalesPublicationStatus,\n })\n\n if (\n allLocalesPublicationStatus &&\n !hasAuthorizedPublicationStatus &&\n typeof statusFieldValue === 'undefined' &&\n typeof docWithLocales._status === 'object' &&\n docWithLocales._status !== null\n ) {\n result._status = { ...docWithLocales._status }\n }\n\n if (\n config.localization &&\n hasLocalizeStatusEnabled(collectionConfig) &&\n typeof result._status === 'string'\n ) {\n const statusStr = result._status\n\n if (\n hasAuthorizedPublicationStatus &&\n typeof docWithLocales._status === 'object' &&\n docWithLocales._status !== null\n ) {\n result._status = { ...docWithLocales._status }\n } else {\n result._status = {}\n }\n\n if (!hasAuthorizedPublicationStatus) {\n for (const localeCode of config.localization.localeCodes) {\n ;(result._status as Record<string, unknown>)[localeCode] = statusStr\n }\n }\n }\n\n let localizedPublishData: JsonObject | null = null\n\n if (config.localization && collectionConfig.versions) {\n if (hasLocalizeStatusEnabled(collectionConfig)) {\n if (hasAuthorizedPublicationStatus) {\n let accessibleLocaleCodes = config.localization.localeCodes\n\n if (config.localization.filterAvailableLocales) {\n const filteredLocales = await config.localization.filterAvailableLocales({\n locales: config.localization.locales,\n req,\n })\n accessibleLocaleCodes = filteredLocales.map((locale) =>\n typeof locale === 'string' ? locale : locale.code,\n )\n }\n\n if (typeof result._status !== 'object' || result._status === null) {\n result._status = {}\n }\n\n for (const localeCode of accessibleLocaleCodes) {\n result._status[localeCode] = unpublishAllLocales ? 'draft' : 'published'\n }\n } else if (\n !isSavingDraft &&\n result._status &&\n typeof result._status === 'object' &&\n !Array.isArray(result._status) &&\n (result._status as Record<string, unknown>)[locale] === 'published'\n ) {\n const currentDoc = await payload.db.findOne<DataFromCollectionSlug<TSlug>>({\n collection: collectionConfig.slug,\n locale: 'all',\n req: databaseRequest,\n where: { id: { equals: id } },\n })\n\n localizedPublishData = buildLocalizedPublishData({\n config,\n currentDoc: currentDoc as JsonObject,\n fields: collectionConfig.fields,\n locale,\n result,\n })\n }\n }\n }\n\n if (\n config.localization &&\n hasDraftsEnabled(collectionConfig) &&\n publishAllLocales &&\n !unpublishAllLocales &&\n (!hasLocalizeStatusEnabled(collectionConfig) || hasAuthorizedPublicationStatus)\n ) {\n const validationResult = await validateLocalWithLocaleKeyedData({\n operation: 'update',\n options: {\n id,\n collection: collectionConfig.slug,\n data: result,\n draft: true,\n locale: 'all',\n overrideAccess,\n req,\n },\n payload,\n sourceData: {\n docWithLocales,\n originalDoc: publicationHookDoc,\n originalLocale: locale,\n },\n trash: Boolean(originalDoc?.deletedAt),\n })\n\n if (!validationResult.valid) {\n throw new ValidationError(\n {\n id,\n collection: collectionConfig.slug,\n errors: validationResult.errors,\n req,\n },\n req.t,\n )\n }\n }\n\n // File deletion and writes must occur after the final publish validation. Validation failures\n // leave both the persisted upload and local files untouched.\n if (!isDraftOverPublished && !hasManagedLocalUpload) {\n const documentBranch = docWithLocales[branchField]\n const isBranchUploadReplacement =\n filesToUpload.length > 0 &&\n typeof documentBranch === 'string' &&\n documentBranch !== MAIN_BRANCH\n\n if (isBranchUploadReplacement) {\n const canonicalDocument = docWithLocales[branchDocIDField]\n const canonicalDocumentID =\n canonicalDocument && typeof canonicalDocument === 'object' && 'value' in canonicalDocument\n ? canonicalDocument.value\n : canonicalDocument\n const retainedDoc =\n typeof canonicalDocumentID === 'number' || typeof canonicalDocumentID === 'string'\n ? ((await payload.db.findOne({\n branch: false,\n collection: collectionConfig.slug,\n req,\n where: {\n and: [\n { [branchField]: { equals: MAIN_BRANCH } },\n { id: { equals: canonicalDocumentID } },\n ],\n },\n })) as null | Record<string, unknown>)\n : null\n\n await deleteUploadFilesExclusiveToDocument({\n collectionConfig,\n config,\n deleteFromAdapter: false,\n req,\n retainedDoc,\n sourceDoc: docWithLocales,\n })\n } else {\n await deleteAssociatedFiles({\n collectionConfig,\n config,\n doc: docWithLocales,\n files: filesToUpload,\n overrideDelete: false,\n req,\n })\n }\n }\n\n if (!collectionConfig.upload.disableLocalStorage && !hasManagedLocalUpload) {\n await uploadFiles(payload, filesToUpload, req, { uploadFileRollbacks })\n }\n\n const writeDocument = async (): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n const dataToUpdate: JsonObject = { ...(localizedPublishData ?? result) }\n\n // /////////////////////////////////////\n // Handle potential password update\n // /////////////////////////////////////\n\n if (shouldSavePassword && typeof password === 'string') {\n const { hash, salt } = await generatePasswordSaltHash({\n collection: collectionConfig,\n password,\n req,\n })\n dataToUpdate.salt = salt\n dataToUpdate.hash = hash\n delete dataToUpdate.password\n delete data.password\n\n if (collectionConfig.auth?.useSessions) {\n const currentSid =\n req.user?.collection === collectionConfig.slug && String(req.user.id) === String(id)\n ? req.user._sid\n : undefined\n const existingSessions = removeExpiredSessions(\n (docWithLocales.sessions as undefined | UserSession[]) ?? [],\n )\n\n dataToUpdate.sessions = currentSid\n ? existingSessions.filter((session) => session.id === currentSid)\n : []\n }\n }\n\n await runBranchMergeWriteGuard({\n collectionSlug: collectionConfig.slug,\n data: dataToUpdate,\n req,\n })\n\n if (localizedPublishData) {\n await runBranchMergeWriteGuard({\n collectionSlug: collectionConfig.slug,\n data: result,\n req,\n })\n }\n\n await checkDocumentLockStatus({\n id,\n collectionSlug: collectionConfig.slug,\n lockErrorMessage: `Document with ID ${id} is currently locked by another user and cannot be updated.`,\n overrideLock,\n req,\n })\n\n // /////////////////////////////////////\n // Update\n // /////////////////////////////////////\n\n let resultWithLocales: JsonObject = result\n\n if (!isSavingDraft) {\n // Ensure updatedAt date is always updated\n dataToUpdate.updatedAt = new Date().toISOString()\n onBeforeDocumentWrite?.()\n if (localizedPublishData) {\n // Single-locale publish: save filtered data to main doc but keep full locale data for\n // the version so draft fetches (replaceWithDraftIfAvailable) return complete data.\n await req.payload.db.updateOne({\n id,\n collection: collectionConfig.slug,\n data: dataToUpdate,\n locale,\n req: databaseRequest,\n })\n markTransactionWrite({ req })\n resultWithLocales = { ...result, updatedAt: dataToUpdate.updatedAt }\n } else {\n resultWithLocales = await req.payload.db.updateOne({\n id,\n collection: collectionConfig.slug,\n data: dataToUpdate,\n locale,\n req: databaseRequest,\n })\n markTransactionWrite({ req })\n }\n }\n\n // /////////////////////////////////////\n // Create version\n // /////////////////////////////////////\n\n if (collectionConfig.versions) {\n onBeforeDocumentWrite?.()\n resultWithLocales = await saveVersion({\n id,\n autosave,\n collection: collectionConfig,\n docWithLocales: resultWithLocales,\n draft: isSavingDraft,\n operation: 'update',\n payload,\n req: databaseRequest,\n unpublish: unpublishAllLocales,\n })\n markTransactionWrite({ req })\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth,\n doc: resultWithLocales,\n draft: draftArg,\n fallbackLocale,\n global: null,\n locale,\n overrideAccess,\n populate,\n req,\n select,\n showHiddenFields,\n })\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterRead?.length) {\n for (const hook of collectionConfig.hooks.afterRead) {\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n overrideAccess,\n req,\n })) || result\n }\n }\n\n // /////////////////////////////////////\n // afterChange - Fields\n // /////////////////////////////////////\n\n result = await afterChange({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: result,\n global: null,\n operation,\n previousDoc: originalDoc,\n req,\n })\n\n // /////////////////////////////////////\n // afterChange - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterChange?.length) {\n for (const hook of collectionConfig.hooks.afterChange) {\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: result,\n operation,\n overrideAccess,\n previousDoc: originalDoc,\n req,\n select,\n })) || result\n }\n }\n\n return result as TransformCollectionWithSelect<TSlug, TSelect>\n }\n\n if (!nextFileData) {\n return writeDocument()\n }\n\n return runLocalFileUpdate({\n id,\n collection: collectionConfig,\n current: docWithLocales,\n files: hasManagedLocalUpload ? filesToUpload : [],\n next: nextFileData as JsonObject,\n req,\n write: writeDocument,\n })\n}\n"],"names":["ensureUsernameOrEmail","removeExpiredSessions","generatePasswordSaltHash","runBranchMergeWriteGuard","branchDocIDField","branchField","MAIN_BRANCH","ValidationError","afterChange","afterRead","beforeChange","beforeValidate","deepCopyObjectSimple","saveVersion","deleteAssociatedFiles","deleteUploadFilesExclusiveToDocument","runLocalFileUpdate","uploadFiles","checkDocumentLockStatus","getTopLevelFieldNames","hasDraftsEnabled","hasDraftValidationEnabled","hasLocalizeStatusEnabled","resolvePublishAllLocales","markTransactionWrite","buildAllLocalesPublicationHookDoc","getAllLocalesPublicationStatus","hasAuthorizedAllLocalesPublicationStatus","validateAllLocalesPublicationFlags","buildLocalizedPublishData","validateLocalWithLocaleKeyedData","updateDocument","id","autosave","collectionConfig","config","data","databaseReq","depth","docWithLocales","draftArg","fallbackLocale","filesToUpload","locale","onBeforeDocumentWrite","operation","overrideAccess","overrideLock","payload","populate","publishAllLocales","publishAllLocalesArg","req","select","shouldManageLocalFiles","showHiddenFields","unpublishAllLocales","unpublishAllLocalesArg","uploadFileRollbacks","databaseRequest","nextFileData","upload","fileOperations","undefined","draft","allLocalesPublicationStatus","hasLocalizedStatus","Boolean","localization","isSavingDraft","_status","collectionSlug","slug","lockErrorMessage","shouldDeleteLock","originalDoc","collection","context","doc","global","isRestoringDraftFromTrash","deletedAt","shouldLimitValidationToSubmittedFields","trash","submittedTopLevelFieldNames","auth","authOptions","isDraftOverPublished","hasManagedLocalUpload","length","original","disableLocalStorage","statusFieldAccess","publicationFieldPolicyDoc","status","docForHooks","onFieldAccess","accessResult","path","password","shouldSavePassword","disableLocalStrategy","enableFields","publicationHookDoc","hooks","hook","publicationData","beforeChangeArgs","fieldsToValidate","skipValidation","statusFieldValue","result","onDataProcessed","processedData","hasAuthorizedPublicationStatus","fieldAccessDenied","fieldValue","statusStr","localeCode","localeCodes","localizedPublishData","versions","accessibleLocaleCodes","filterAvailableLocales","filteredLocales","locales","map","code","Array","isArray","currentDoc","db","findOne","where","equals","fields","validationResult","options","sourceData","originalLocale","valid","errors","t","documentBranch","isBranchUploadReplacement","canonicalDocument","canonicalDocumentID","value","retainedDoc","branch","and","deleteFromAdapter","sourceDoc","files","overrideDelete","writeDocument","dataToUpdate","hash","salt","useSessions","currentSid","user","String","_sid","existingSessions","sessions","filter","session","resultWithLocales","updatedAt","Date","toISOString","updateOne","unpublish","previousDoc","current","next","write"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/collections/operations/utilities/update.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport type { UserSession } from '../../../auth/types.js'\nimport type { Args } from '../../../fields/hooks/beforeChange/index.js'\nimport type {\n CollectionSlug,\n FileToSave,\n SanitizedConfig,\n TypedFallbackLocale,\n} from '../../../index.js'\nimport type {\n JsonObject,\n Payload,\n PayloadRequest,\n PopulateType,\n SelectType,\n TransformCollectionWithSelect,\n} from '../../../types/index.js'\nimport type { SharedLocalAPIOptions } from '../../../types/operations.js'\nimport type {\n DataFromCollectionSlug,\n SanitizedCollectionConfig,\n SelectFromCollectionSlug,\n TypeWithID,\n} from '../../config/types.js'\n\nimport { ensureUsernameOrEmail } from '../../../auth/ensureUsernameOrEmail.js'\nimport { removeExpiredSessions } from '../../../auth/sessions.js'\nimport { generatePasswordSaltHash } from '../../../auth/strategies/local/generatePasswordSaltHash.js'\nimport { ValidationError } from '../../../errors/index.js'\nimport { afterChange } from '../../../fields/hooks/afterChange/index.js'\nimport { afterRead } from '../../../fields/hooks/afterRead/index.js'\nimport { beforeChange } from '../../../fields/hooks/beforeChange/index.js'\nimport { beforeValidate } from '../../../fields/hooks/beforeValidate/index.js'\nimport { deepCopyObjectSimple, saveVersion } from '../../../index.js'\nimport { deleteAssociatedFiles } from '../../../uploads/deleteAssociatedFiles.js'\nimport { runLocalFileUpdate } from '../../../uploads/fileVersioning/archive.js'\nimport { uploadFiles } from '../../../uploads/uploadFiles.js'\nimport { checkDocumentLockStatus } from '../../../utilities/checkDocumentLockStatus.js'\nimport { getTopLevelFieldNames } from '../../../utilities/getTopLevelFieldNames.js'\nimport {\n hasDraftsEnabled,\n hasDraftValidationEnabled,\n hasLocalizeStatusEnabled,\n} from '../../../utilities/getVersionsConfig.js'\nimport { resolvePublishAllLocales } from '../../../utilities/resolvePublishAllLocales.js'\nimport {\n buildAllLocalesPublicationHookDoc,\n getAllLocalesPublicationStatus,\n hasAuthorizedAllLocalesPublicationStatus,\n validateAllLocalesPublicationFlags,\n} from '../../../versions/allLocalesPublicationStatus.js'\nimport { buildLocalizedPublishData } from '../../../versions/buildSingleLocalePublishData.js'\nimport { validateLocalWithLocaleKeyedData } from '../local/validate.js'\nexport type SharedUpdateDocumentArgs<TSlug extends CollectionSlug> = {\n autosave: boolean\n collectionConfig: SanitizedCollectionConfig\n config: SanitizedConfig\n data: DeepPartial<DataFromCollectionSlug<TSlug>>\n depth: number\n docWithLocales: JsonObject & TypeWithID\n draftArg: boolean\n fallbackLocale: TypedFallbackLocale\n filesToUpload: FileToSave[]\n id: number | string\n locale: string\n overrideLock: boolean\n payload: Payload\n populate?: PopulateType\n publishAllLocales?: boolean\n req: PayloadRequest\n select: SelectType\n shouldManageLocalFiles: boolean\n showHiddenFields: boolean\n unpublishAllLocales?: boolean\n} & Pick<Required<SharedLocalAPIOptions>, 'overrideAccess'>\n\n/**\n * This function is used to update a document in the DB and return the result.\n *\n * It runs the following hooks in order:\n * - beforeValidate - Fields\n * - beforeValidate - Collection\n * - beforeChange - Collection\n * - beforeChange - Fields\n * - afterRead - Fields\n * - afterRead - Collection\n * - afterChange - Fields\n * - afterChange - Collection\n */\nexport const updateDocument = async <\n TSlug extends CollectionSlug,\n TSelect extends SelectFromCollectionSlug<TSlug> = SelectType,\n>({\n id,\n autosave,\n collectionConfig,\n config,\n data,\n depth,\n docWithLocales,\n draftArg,\n fallbackLocale,\n filesToUpload,\n locale,\n overrideAccess,\n overrideLock,\n payload,\n populate,\n publishAllLocales: publishAllLocalesArg,\n req,\n select,\n shouldManageLocalFiles,\n showHiddenFields,\n unpublishAllLocales: unpublishAllLocalesArg,\n}: SharedUpdateDocumentArgs<TSlug>): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n const nextFileData =\n collectionConfig.upload && shouldManageLocalFiles && !collectionConfig.upload.fileOperations\n ? deepCopyObjectSimple(data)\n : undefined\n\n validateAllLocalesPublicationFlags({\n publishAllLocales: publishAllLocalesArg,\n unpublishAllLocales: unpublishAllLocalesArg,\n })\n\n const publishAllLocales = resolvePublishAllLocales({\n draft: draftArg,\n hasLocalizeStatusEnabled: hasLocalizeStatusEnabled(collectionConfig),\n locale,\n publishAllLocalesArg,\n })\n const unpublishAllLocales =\n typeof unpublishAllLocalesArg === 'string'\n ? unpublishAllLocalesArg === 'true'\n : !!unpublishAllLocalesArg\n const allLocalesPublicationStatus = getAllLocalesPublicationStatus({\n hasLocalizedStatus: Boolean(config.localization && hasLocalizeStatusEnabled(collectionConfig)),\n publishAllLocales,\n unpublishAllLocales,\n })\n const isSavingDraft =\n Boolean(draftArg && hasDraftsEnabled(collectionConfig)) &&\n data._status !== 'published' &&\n !publishAllLocales\n if (allLocalesPublicationStatus || isSavingDraft) {\n data._status = allLocalesPublicationStatus ?? 'draft'\n }\n\n // /////////////////////////////////////\n // Handle potentially locked documents\n // /////////////////////////////////////\n\n await checkDocumentLockStatus({\n id,\n collectionSlug: collectionConfig.slug,\n lockErrorMessage: `Document with ID ${id} is currently locked by another user and cannot be updated.`,\n overrideLock,\n req,\n })\n\n const originalDoc = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth: 0,\n doc: deepCopyObjectSimple(docWithLocales),\n draft: draftArg,\n fallbackLocale: id ? null : fallbackLocale,\n global: null,\n locale,\n overrideAccess: true,\n req,\n showHiddenFields: true,\n })\n const isRestoringDraftFromTrash = Boolean(originalDoc?.deletedAt) && data?._status !== 'published'\n const shouldLimitValidationToSubmittedFields =\n (collectionConfig.trash && (Boolean(data?.deletedAt) || isRestoringDraftFromTrash)) ||\n unpublishAllLocales\n const submittedTopLevelFieldNames = shouldLimitValidationToSubmittedFields\n ? getTopLevelFieldNames(data)\n : undefined\n\n if (collectionConfig.auth) {\n ensureUsernameOrEmail<TSlug>({\n authOptions: collectionConfig.auth,\n collectionSlug: collectionConfig.slug,\n data,\n operation: 'update',\n originalDoc,\n req,\n })\n }\n\n // When saving a draft on a document whose latest version is published, the file\n // referenced by docWithLocales is still actively used by the published main document.\n // Deleting it during the update would break the published document's file even though no publish\n // is happening. Only skip deletion in this case; when the latest version is already a\n // draft, it is safe to delete the old draft file as it is being replaced.\n const isDraftOverPublished = isSavingDraft && docWithLocales._status === 'published'\n\n const hasManagedLocalUpload =\n filesToUpload.length > 0 &&\n Boolean(data.original) &&\n !collectionConfig.upload.disableLocalStorage\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n let statusFieldAccess = false\n const publicationFieldPolicyDoc = buildAllLocalesPublicationHookDoc({\n doc: originalDoc,\n docWithLocales,\n status: data._status === allLocalesPublicationStatus ? allLocalesPublicationStatus : undefined,\n })\n\n data = await beforeValidate<DeepPartial<DataFromCollectionSlug<TSlug>>>({\n id,\n collection: collectionConfig,\n context: req.context,\n data,\n doc: originalDoc,\n docForHooks: publicationFieldPolicyDoc,\n global: null,\n onFieldAccess: ({ accessResult, path }) => {\n if (path === '_status') {\n statusFieldAccess = accessResult\n }\n },\n operation: 'update',\n overrideAccess,\n req,\n })\n\n const password = data?.password\n const shouldSavePassword = Boolean(\n password &&\n collectionConfig.auth &&\n (!collectionConfig.auth.disableLocalStrategy ||\n (typeof collectionConfig.auth.disableLocalStrategy === 'object' &&\n collectionConfig.auth.disableLocalStrategy.enableFields)) &&\n !isSavingDraft,\n )\n\n const publicationHookDoc = buildAllLocalesPublicationHookDoc({\n doc: originalDoc,\n docWithLocales,\n status:\n statusFieldAccess && data._status === allLocalesPublicationStatus\n ? allLocalesPublicationStatus\n : undefined,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.beforeValidate?.length) {\n for (const hook of collectionConfig.hooks.beforeValidate) {\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'update',\n originalDoc: publicationHookDoc,\n req,\n })) || data\n }\n }\n\n // /////////////////////////////////////\n // beforeChange - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.beforeChange?.length) {\n for (const hook of collectionConfig.hooks.beforeChange) {\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'update',\n originalDoc: publicationHookDoc,\n req,\n })) || data\n }\n }\n\n const publicationData = { ...data }\n\n // /////////////////////////////////////\n // beforeChange - Fields\n // /////////////////////////////////////\n\n const beforeChangeArgs: Args<DataFromCollectionSlug<TSlug>> = {\n id,\n collection: collectionConfig,\n context: req.context,\n data: { ...data, id },\n doc: publicationHookDoc,\n docWithLocales,\n fieldsToValidate: submittedTopLevelFieldNames,\n global: null,\n operation: 'update',\n overrideAccess,\n req,\n // only skip validation for drafts when draft validation is false\n skipValidation: isSavingDraft && !hasDraftValidationEnabled(collectionConfig),\n }\n\n // /////////////////////////////////////\n // Handle Localized Data Merging\n // /////////////////////////////////////\n\n let statusFieldValue: unknown\n\n let result: JsonObject = await beforeChange({\n ...beforeChangeArgs,\n onDataProcessed: (processedData) => {\n statusFieldValue = processedData._status\n },\n })\n\n const hasAuthorizedPublicationStatus = hasAuthorizedAllLocalesPublicationStatus({\n data: publicationData,\n fieldAccessDenied: !statusFieldAccess,\n fieldValue: statusFieldValue,\n status: allLocalesPublicationStatus,\n })\n\n if (\n allLocalesPublicationStatus &&\n !hasAuthorizedPublicationStatus &&\n typeof statusFieldValue === 'undefined' &&\n typeof docWithLocales._status === 'object' &&\n docWithLocales._status !== null\n ) {\n result._status = { ...docWithLocales._status }\n }\n\n if (\n config.localization &&\n hasLocalizeStatusEnabled(collectionConfig) &&\n typeof result._status === 'string'\n ) {\n const statusStr = result._status\n\n if (\n hasAuthorizedPublicationStatus &&\n typeof docWithLocales._status === 'object' &&\n docWithLocales._status !== null\n ) {\n result._status = { ...docWithLocales._status }\n } else {\n result._status = {}\n }\n\n if (!hasAuthorizedPublicationStatus) {\n for (const localeCode of config.localization.localeCodes) {\n ;(result._status as Record<string, unknown>)[localeCode] = statusStr\n }\n }\n }\n\n let localizedPublishData: JsonObject | null = null\n\n if (config.localization && collectionConfig.versions) {\n if (hasLocalizeStatusEnabled(collectionConfig)) {\n if (hasAuthorizedPublicationStatus) {\n let accessibleLocaleCodes = config.localization.localeCodes\n\n if (config.localization.filterAvailableLocales) {\n const filteredLocales = await config.localization.filterAvailableLocales({\n locales: config.localization.locales,\n req,\n })\n accessibleLocaleCodes = filteredLocales.map((locale) =>\n typeof locale === 'string' ? locale : locale.code,\n )\n }\n\n if (typeof result._status !== 'object' || result._status === null) {\n result._status = {}\n }\n\n for (const localeCode of accessibleLocaleCodes) {\n result._status[localeCode] = unpublishAllLocales ? 'draft' : 'published'\n }\n } else if (\n !isSavingDraft &&\n result._status &&\n typeof result._status === 'object' &&\n !Array.isArray(result._status) &&\n (result._status as Record<string, unknown>)[locale] === 'published'\n ) {\n const currentDoc = await payload.db.findOne<DataFromCollectionSlug<TSlug>>({\n collection: collectionConfig.slug,\n locale: 'all',\n req,\n where: { id: { equals: id } },\n })\n\n localizedPublishData = buildLocalizedPublishData({\n config,\n currentDoc,\n fields: collectionConfig.fields,\n locale,\n result,\n })\n }\n }\n }\n\n if (\n config.localization &&\n hasDraftsEnabled(collectionConfig) &&\n publishAllLocales &&\n !unpublishAllLocales &&\n (!hasLocalizeStatusEnabled(collectionConfig) || hasAuthorizedPublicationStatus)\n ) {\n const validationResult = await validateLocalWithLocaleKeyedData({\n operation: 'update',\n options: {\n id,\n collection: collectionConfig.slug,\n data: result,\n draft: true,\n locale: 'all',\n overrideAccess,\n req,\n },\n payload,\n sourceData: {\n docWithLocales,\n originalDoc: publicationHookDoc,\n originalLocale: locale,\n },\n trash: Boolean(originalDoc?.deletedAt),\n })\n\n if (!validationResult.valid) {\n throw new ValidationError(\n {\n id,\n collection: collectionConfig.slug,\n errors: validationResult.errors,\n req,\n },\n req.t,\n )\n }\n }\n\n // File deletion and writes must occur after the final publish validation. Validation failures\n // leave both the persisted upload and local files untouched.\n if (!isDraftOverPublished && !hasManagedLocalUpload) {\n await deleteAssociatedFiles({\n collectionConfig,\n config,\n doc: docWithLocales,\n files: filesToUpload,\n overrideDelete: false,\n req,\n })\n }\n\n if (!collectionConfig.upload.disableLocalStorage && !hasManagedLocalUpload) {\n await uploadFiles(payload, filesToUpload, req)\n }\n\n const writeDocument = async (): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n const dataToUpdate: JsonObject = { ...(localizedPublishData ?? result) }\n\n // /////////////////////////////////////\n // Handle potential password update\n // /////////////////////////////////////\n\n if (shouldSavePassword && typeof password === 'string') {\n const { hash, salt } = await generatePasswordSaltHash({\n collection: collectionConfig,\n password,\n req,\n })\n dataToUpdate.salt = salt\n dataToUpdate.hash = hash\n delete dataToUpdate.password\n delete data.password\n\n if (collectionConfig.auth?.useSessions) {\n const currentSid =\n req.user?.collection === collectionConfig.slug && String(req.user.id) === String(id)\n ? req.user._sid\n : undefined\n const existingSessions = removeExpiredSessions(\n (docWithLocales.sessions as undefined | UserSession[]) ?? [],\n )\n\n dataToUpdate.sessions = currentSid\n ? existingSessions.filter((session) => session.id === currentSid)\n : []\n }\n }\n\n // /////////////////////////////////////\n // Update\n // /////////////////////////////////////\n\n let resultWithLocales: JsonObject = result\n\n if (!isSavingDraft) {\n // Ensure updatedAt date is always updated\n dataToUpdate.updatedAt = new Date().toISOString()\n if (localizedPublishData) {\n // Single-locale publish: save filtered data to main doc but keep full locale data for\n // the version so draft fetches (replaceWithDraftIfAvailable) return complete data.\n await req.payload.db.updateOne({\n id,\n collection: collectionConfig.slug,\n data: dataToUpdate,\n locale,\n req,\n })\n resultWithLocales = { ...result, updatedAt: dataToUpdate.updatedAt }\n } else {\n resultWithLocales = await req.payload.db.updateOne({\n id,\n collection: collectionConfig.slug,\n data: dataToUpdate,\n locale,\n req,\n })\n }\n }\n\n // /////////////////////////////////////\n // Create version\n // /////////////////////////////////////\n\n if (collectionConfig.versions) {\n resultWithLocales = await saveVersion({\n id,\n autosave,\n collection: collectionConfig,\n docWithLocales: resultWithLocales,\n draft: isSavingDraft,\n operation: 'update',\n payload,\n req,\n unpublish: unpublishAllLocales,\n })\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth,\n doc: resultWithLocales,\n draft: draftArg,\n fallbackLocale,\n global: null,\n locale,\n overrideAccess,\n populate,\n req,\n select,\n showHiddenFields,\n })\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterRead?.length) {\n for (const hook of collectionConfig.hooks.afterRead) {\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n overrideAccess,\n req,\n })) || result\n }\n }\n\n // /////////////////////////////////////\n // afterChange - Fields\n // /////////////////////////////////////\n\n result = await afterChange({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: result,\n global: null,\n operation: 'update',\n previousDoc: originalDoc,\n req,\n })\n\n // /////////////////////////////////////\n // afterChange - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterChange?.length) {\n for (const hook of collectionConfig.hooks.afterChange) {\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: result,\n operation: 'update',\n overrideAccess,\n previousDoc: originalDoc,\n req,\n select,\n })) || result\n }\n }\n\n return result as TransformCollectionWithSelect<TSlug, TSelect>\n }\n\n if (!nextFileData) {\n return writeDocument()\n }\n\n return runLocalFileUpdate({\n id,\n collection: collectionConfig,\n current: docWithLocales,\n files: hasManagedLocalUpload ? filesToUpload : [],\n next: nextFileData,\n req,\n write: writeDocument,\n })\n}\n"],"names":["ensureUsernameOrEmail","removeExpiredSessions","generatePasswordSaltHash","ValidationError","afterChange","afterRead","beforeChange","beforeValidate","deepCopyObjectSimple","saveVersion","deleteAssociatedFiles","runLocalFileUpdate","uploadFiles","checkDocumentLockStatus","getTopLevelFieldNames","hasDraftsEnabled","hasDraftValidationEnabled","hasLocalizeStatusEnabled","resolvePublishAllLocales","buildAllLocalesPublicationHookDoc","getAllLocalesPublicationStatus","hasAuthorizedAllLocalesPublicationStatus","validateAllLocalesPublicationFlags","buildLocalizedPublishData","validateLocalWithLocaleKeyedData","updateDocument","id","autosave","collectionConfig","config","data","depth","docWithLocales","draftArg","fallbackLocale","filesToUpload","locale","overrideAccess","overrideLock","payload","populate","publishAllLocales","publishAllLocalesArg","req","select","shouldManageLocalFiles","showHiddenFields","unpublishAllLocales","unpublishAllLocalesArg","nextFileData","upload","fileOperations","undefined","draft","allLocalesPublicationStatus","hasLocalizedStatus","Boolean","localization","isSavingDraft","_status","collectionSlug","slug","lockErrorMessage","originalDoc","collection","context","doc","global","isRestoringDraftFromTrash","deletedAt","shouldLimitValidationToSubmittedFields","trash","submittedTopLevelFieldNames","auth","authOptions","operation","isDraftOverPublished","hasManagedLocalUpload","length","original","disableLocalStorage","statusFieldAccess","publicationFieldPolicyDoc","status","docForHooks","onFieldAccess","accessResult","path","password","shouldSavePassword","disableLocalStrategy","enableFields","publicationHookDoc","hooks","hook","publicationData","beforeChangeArgs","fieldsToValidate","skipValidation","statusFieldValue","result","onDataProcessed","processedData","hasAuthorizedPublicationStatus","fieldAccessDenied","fieldValue","statusStr","localeCode","localeCodes","localizedPublishData","versions","accessibleLocaleCodes","filterAvailableLocales","filteredLocales","locales","map","code","Array","isArray","currentDoc","db","findOne","where","equals","fields","validationResult","options","sourceData","originalLocale","valid","errors","t","files","overrideDelete","writeDocument","dataToUpdate","hash","salt","useSessions","currentSid","user","String","_sid","existingSessions","sessions","filter","session","resultWithLocales","updatedAt","Date","toISOString","updateOne","unpublish","previousDoc","current","next","write"],"mappings":"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"}
|
|
@@ -128,7 +128,7 @@ async function validateOperationWithScopedRequest({ id, collection, data: incomi
|
|
|
128
128
|
ensureUsernameOrEmail({
|
|
129
129
|
authOptions: collectionConfig.auth,
|
|
130
130
|
collectionSlug: collectionConfig.slug,
|
|
131
|
-
data
|
|
131
|
+
data,
|
|
132
132
|
operation: 'create',
|
|
133
133
|
req
|
|
134
134
|
});
|
|
@@ -136,9 +136,9 @@ async function validateOperationWithScopedRequest({ id, collection, data: incomi
|
|
|
136
136
|
ensureUsernameOrEmail({
|
|
137
137
|
authOptions: collectionConfig.auth,
|
|
138
138
|
collectionSlug: collectionConfig.slug,
|
|
139
|
-
data
|
|
139
|
+
data,
|
|
140
140
|
operation: 'update',
|
|
141
|
-
originalDoc
|
|
141
|
+
originalDoc,
|
|
142
142
|
req
|
|
143
143
|
});
|
|
144
144
|
}
|
|
@@ -146,7 +146,7 @@ async function validateOperationWithScopedRequest({ id, collection, data: incomi
|
|
|
146
146
|
collection: collectionConfig,
|
|
147
147
|
docWithLocales,
|
|
148
148
|
global: null,
|
|
149
|
-
incomingData
|
|
149
|
+
incomingData,
|
|
150
150
|
onValidationData,
|
|
151
151
|
originalDoc,
|
|
152
152
|
overrideAccess,
|