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
|
@@ -14,7 +14,7 @@ import { virtualFieldPopulationPromise } from './virtualFieldPopulationPromise.j
|
|
|
14
14
|
// - Execute field hooks
|
|
15
15
|
// - Execute read access control
|
|
16
16
|
// - Populate relationships
|
|
17
|
-
export const promise = async ({ blockData, collection, context, currentDepth, depth, doc, draft, fallbackLocale, field, fieldDepth, fieldIndex, fieldPromises, findMany, flattenLocales, global, locale, overrideAccess, parentIndexPath, parentIsLocalized, parentPath, parentSchemaPath, populate, populationPromises, req, select, selectMode, showHiddenFields, siblingDoc, siblingFields, triggerAccessControl = true,
|
|
17
|
+
export const promise = async ({ blockData, collection, context, currentDepth, depth, doc, draft, fallbackLocale, field, fieldDepth, fieldIndex, fieldPromises, findMany, flattenLocales, global, locale, overrideAccess, parentIndexPath, parentIsLocalized, parentPath, parentSchemaPath, populate, populationPromises, req, select, selectMode, showHiddenFields, siblingDoc, siblingFields, triggerAccessControl = true, triggerHooks = true })=>{
|
|
18
18
|
const { indexPath, path, schemaPath } = getFieldPaths({
|
|
19
19
|
field,
|
|
20
20
|
index: fieldIndex,
|
|
@@ -206,7 +206,7 @@ export const promise = async ({ blockData, collection, context, currentDepth, de
|
|
|
206
206
|
}
|
|
207
207
|
}
|
|
208
208
|
}
|
|
209
|
-
if (
|
|
209
|
+
if ('virtual' in field && typeof field.virtual === 'string' && (!field.hidden || showHiddenFields)) {
|
|
210
210
|
populationPromises.push(virtualFieldPopulationPromise({
|
|
211
211
|
name: field.name,
|
|
212
212
|
draft,
|
|
@@ -248,7 +248,7 @@ export const promise = async ({ blockData, collection, context, currentDepth, de
|
|
|
248
248
|
}
|
|
249
249
|
// Set defaultValue on the field for globals being returned without being first created
|
|
250
250
|
// or collection documents created prior to having a default.
|
|
251
|
-
if (
|
|
251
|
+
if (!removedFieldValue && allowDefaultValue && typeof siblingDoc[field.name] === 'undefined' && typeof field.defaultValue !== 'undefined') {
|
|
252
252
|
siblingDoc[field.name] = await getDefaultValue({
|
|
253
253
|
defaultValue: field.defaultValue,
|
|
254
254
|
locale: locale,
|
|
@@ -257,7 +257,7 @@ export const promise = async ({ blockData, collection, context, currentDepth, de
|
|
|
257
257
|
value: siblingDoc[field.name]
|
|
258
258
|
});
|
|
259
259
|
}
|
|
260
|
-
if (
|
|
260
|
+
if (field.type === 'relationship' || field.type === 'upload' || field.type === 'join') {
|
|
261
261
|
populationPromises.push(relationshipPopulationPromise({
|
|
262
262
|
currentDepth,
|
|
263
263
|
depth,
|
|
@@ -316,9 +316,7 @@ export const promise = async ({ blockData, collection, context, currentDepth, de
|
|
|
316
316
|
showHiddenFields,
|
|
317
317
|
siblingDoc: row || {},
|
|
318
318
|
triggerAccessControl,
|
|
319
|
-
|
|
320
|
-
triggerHooks,
|
|
321
|
-
triggerPopulation
|
|
319
|
+
triggerHooks
|
|
322
320
|
});
|
|
323
321
|
});
|
|
324
322
|
} else if (!shouldHoistLocalizedValue && typeof rows === 'object' && rows !== null) {
|
|
@@ -352,9 +350,7 @@ export const promise = async ({ blockData, collection, context, currentDepth, de
|
|
|
352
350
|
showHiddenFields,
|
|
353
351
|
siblingDoc: row || {},
|
|
354
352
|
triggerAccessControl,
|
|
355
|
-
|
|
356
|
-
triggerHooks,
|
|
357
|
-
triggerPopulation
|
|
353
|
+
triggerHooks
|
|
358
354
|
});
|
|
359
355
|
});
|
|
360
356
|
}
|
|
@@ -410,9 +406,7 @@ export const promise = async ({ blockData, collection, context, currentDepth, de
|
|
|
410
406
|
showHiddenFields,
|
|
411
407
|
siblingDoc: row || {},
|
|
412
408
|
triggerAccessControl,
|
|
413
|
-
|
|
414
|
-
triggerHooks,
|
|
415
|
-
triggerPopulation
|
|
409
|
+
triggerHooks
|
|
416
410
|
});
|
|
417
411
|
}
|
|
418
412
|
});
|
|
@@ -450,9 +444,7 @@ export const promise = async ({ blockData, collection, context, currentDepth, de
|
|
|
450
444
|
showHiddenFields,
|
|
451
445
|
siblingDoc: row || {},
|
|
452
446
|
triggerAccessControl,
|
|
453
|
-
|
|
454
|
-
triggerHooks,
|
|
455
|
-
triggerPopulation
|
|
447
|
+
triggerHooks
|
|
456
448
|
});
|
|
457
449
|
}
|
|
458
450
|
});
|
|
@@ -497,9 +489,7 @@ export const promise = async ({ blockData, collection, context, currentDepth, de
|
|
|
497
489
|
showHiddenFields,
|
|
498
490
|
siblingDoc,
|
|
499
491
|
triggerAccessControl,
|
|
500
|
-
|
|
501
|
-
triggerHooks,
|
|
502
|
-
triggerPopulation
|
|
492
|
+
triggerHooks
|
|
503
493
|
});
|
|
504
494
|
break;
|
|
505
495
|
}
|
|
@@ -538,9 +528,7 @@ export const promise = async ({ blockData, collection, context, currentDepth, de
|
|
|
538
528
|
showHiddenFields,
|
|
539
529
|
siblingDoc: localizedData || {},
|
|
540
530
|
triggerAccessControl,
|
|
541
|
-
|
|
542
|
-
triggerHooks,
|
|
543
|
-
triggerPopulation
|
|
531
|
+
triggerHooks
|
|
544
532
|
});
|
|
545
533
|
});
|
|
546
534
|
} else {
|
|
@@ -573,9 +561,7 @@ export const promise = async ({ blockData, collection, context, currentDepth, de
|
|
|
573
561
|
showHiddenFields,
|
|
574
562
|
siblingDoc: typeof siblingDoc[field.name] !== 'object' ? {} : siblingDoc[field.name],
|
|
575
563
|
triggerAccessControl,
|
|
576
|
-
|
|
577
|
-
triggerHooks,
|
|
578
|
-
triggerPopulation
|
|
564
|
+
triggerHooks
|
|
579
565
|
});
|
|
580
566
|
}
|
|
581
567
|
} else {
|
|
@@ -608,9 +594,7 @@ export const promise = async ({ blockData, collection, context, currentDepth, de
|
|
|
608
594
|
showHiddenFields,
|
|
609
595
|
siblingDoc,
|
|
610
596
|
triggerAccessControl,
|
|
611
|
-
|
|
612
|
-
triggerHooks,
|
|
613
|
-
triggerPopulation
|
|
597
|
+
triggerHooks
|
|
614
598
|
});
|
|
615
599
|
}
|
|
616
600
|
break;
|
|
@@ -625,7 +609,7 @@ export const promise = async ({ blockData, collection, context, currentDepth, de
|
|
|
625
609
|
throw new Error('Attempted to access unsanitized rich text editor.');
|
|
626
610
|
}
|
|
627
611
|
const editor = field?.editor;
|
|
628
|
-
if (
|
|
612
|
+
if (editor?.hooks?.afterRead?.length) {
|
|
629
613
|
for (const hook of editor.hooks.afterRead){
|
|
630
614
|
if (shouldRunHookOnAllLocales) {
|
|
631
615
|
const localesAndValues = Object.entries(siblingDoc[field.name]);
|
|
@@ -740,9 +724,7 @@ export const promise = async ({ blockData, collection, context, currentDepth, de
|
|
|
740
724
|
showHiddenFields,
|
|
741
725
|
siblingDoc: localizedData || {},
|
|
742
726
|
triggerAccessControl,
|
|
743
|
-
|
|
744
|
-
triggerHooks,
|
|
745
|
-
triggerPopulation
|
|
727
|
+
triggerHooks
|
|
746
728
|
});
|
|
747
729
|
});
|
|
748
730
|
} else {
|
|
@@ -775,9 +757,7 @@ export const promise = async ({ blockData, collection, context, currentDepth, de
|
|
|
775
757
|
showHiddenFields,
|
|
776
758
|
siblingDoc: typeof siblingDoc[field.name] !== 'object' ? {} : siblingDoc[field.name],
|
|
777
759
|
triggerAccessControl,
|
|
778
|
-
|
|
779
|
-
triggerHooks,
|
|
780
|
-
triggerPopulation
|
|
760
|
+
triggerHooks
|
|
781
761
|
});
|
|
782
762
|
}
|
|
783
763
|
} else {
|
|
@@ -810,9 +790,7 @@ export const promise = async ({ blockData, collection, context, currentDepth, de
|
|
|
810
790
|
showHiddenFields,
|
|
811
791
|
siblingDoc: tabDoc,
|
|
812
792
|
triggerAccessControl,
|
|
813
|
-
|
|
814
|
-
triggerHooks,
|
|
815
|
-
triggerPopulation
|
|
793
|
+
triggerHooks
|
|
816
794
|
});
|
|
817
795
|
}
|
|
818
796
|
break;
|
|
@@ -851,9 +829,7 @@ export const promise = async ({ blockData, collection, context, currentDepth, de
|
|
|
851
829
|
showHiddenFields,
|
|
852
830
|
siblingDoc,
|
|
853
831
|
triggerAccessControl,
|
|
854
|
-
|
|
855
|
-
triggerHooks,
|
|
856
|
-
triggerPopulation
|
|
832
|
+
triggerHooks
|
|
857
833
|
});
|
|
858
834
|
break;
|
|
859
835
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/fields/hooks/afterRead/promise.ts"],"sourcesContent":["import type { RichTextAdapter } from '../../../admin/RichText.js'\nimport type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../../globals/config/types.js'\nimport type { RequestContext, TypedFallbackLocale } from '../../../index.js'\nimport type {\n JsonObject,\n PayloadRequest,\n PopulateType,\n SelectMode,\n SelectType,\n} from '../../../types/index.js'\nimport type { Block, Field, TabAsField } from '../../config/types.js'\nimport type { AfterReadArgs } from './index.js'\n\nimport { MissingEditorProp } from '../../../errors/index.js'\nimport { getBlockSelect } from '../../../utilities/getBlockSelect.js'\nimport { stripUnselectedFields } from '../../../utilities/stripUnselectedFields.js'\nimport { fieldAffectsData, fieldShouldBeLocalized, tabHasName } from '../../config/types.js'\nimport { getDefaultValue } from '../../getDefaultValue.js'\nimport { getFieldPaths } from '../../getFieldPaths.js'\nimport { relationshipPopulationPromise } from './relationshipPopulationPromise.js'\nimport { traverseFields } from './traverseFields.js'\nimport { virtualFieldPopulationPromise } from './virtualFieldPopulationPromise.js'\n\ntype Args = {\n /**\n * Data of the nearest parent block. If no parent block exists, this will be the `undefined`\n */\n blockData?: JsonObject\n collection: null | SanitizedCollectionConfig\n context: RequestContext\n currentDepth: number\n depth: number\n doc: JsonObject\n draft: boolean\n fallbackLocale: TypedFallbackLocale\n field: Field | TabAsField\n /**\n * The depth of the current field being processed.\n * Fields without names (i.e. rows, collapsibles, unnamed groups)\n * simply pass this value through\n *\n * @default 0\n */\n fieldDepth: number\n fieldIndex: number\n /**\n * fieldPromises are used for things like field hooks. They should be awaited before awaiting populationPromises\n */\n fieldPromises: Promise<void>[]\n findMany: boolean\n global: null | SanitizedGlobalConfig\n locale: null | string\n overrideAccess: boolean\n parentIndexPath: string\n /**\n * @todo make required in v4.0\n */\n parentIsLocalized?: boolean\n parentPath: string\n parentSchemaPath: string\n populate?: PopulateType\n populationPromises: Promise<void>[]\n req: PayloadRequest\n select?: SelectType\n selectMode?: SelectMode\n showHiddenFields: boolean\n siblingDoc: JsonObject\n siblingFields?: (Field | TabAsField)[]\n triggerAccessControl?: boolean\n triggerDefaultValue?: boolean\n triggerHooks?: boolean\n triggerPopulation?: boolean\n} & Required<Pick<AfterReadArgs<JsonObject>, 'flattenLocales'>>\n\n// This function is responsible for the following actions, in order:\n// - Remove hidden fields from response\n// - Flatten locales into requested locale\n// - Sanitize outgoing data (point field, etc.)\n// - Execute field hooks\n// - Execute read access control\n// - Populate relationships\n\nexport const promise = async ({\n blockData,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n field,\n fieldDepth,\n fieldIndex,\n fieldPromises,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath,\n parentIsLocalized,\n parentPath,\n parentSchemaPath,\n populate,\n populationPromises,\n req,\n select,\n selectMode,\n showHiddenFields,\n siblingDoc,\n siblingFields,\n triggerAccessControl = true,\n triggerDefaultValue = true,\n triggerHooks = true,\n triggerPopulation = true,\n}: Args): Promise<void> => {\n const { indexPath, path, schemaPath } = getFieldPaths({\n field,\n index: fieldIndex,\n parentIndexPath,\n parentPath,\n parentSchemaPath,\n })\n\n const fieldAffectsDataResult = fieldAffectsData(field)\n const pathSegments = path ? path.split('.') : []\n const schemaPathSegments = schemaPath ? schemaPath.split('.') : []\n const indexPathSegments = indexPath ? indexPath.split('-').filter(Boolean)?.map(Number) : []\n let removedFieldValue = false\n\n const isTopLevelIDField = fieldAffectsDataResult && field.name === 'id' && fieldDepth === 0\n\n if (\n fieldAffectsDataResult &&\n field.hidden &&\n typeof siblingDoc[field.name!] !== 'undefined' &&\n !showHiddenFields &&\n !isTopLevelIDField\n ) {\n removedFieldValue = true\n delete siblingDoc[field.name!]\n }\n\n if (path !== 'id') {\n const shouldContinue = stripUnselectedFields({\n field,\n select: select!,\n selectMode: selectMode!,\n siblingDoc,\n })\n\n if (!shouldContinue) {\n return\n }\n }\n\n const shouldLocalizeField = fieldShouldBeLocalized({\n field,\n parentIsLocalized: parentIsLocalized!,\n })\n\n const shouldHoistLocalizedValue: boolean = Boolean(\n flattenLocales &&\n fieldAffectsDataResult &&\n typeof siblingDoc[field.name!] === 'object' &&\n siblingDoc[field.name!] !== null &&\n shouldLocalizeField &&\n locale !== 'all' &&\n req.payload.config.localization,\n )\n\n if (fieldAffectsDataResult && shouldHoistLocalizedValue) {\n // replace actual value with localized value before sanitizing\n // { [locale]: fields } -> fields\n const value = siblingDoc[field.name!][locale!]\n\n let hoistedValue = value\n\n if (fallbackLocale && fallbackLocale !== locale) {\n let fallbackValue\n const isNullOrUndefined = typeof value === 'undefined' || value === null\n\n if (Array.isArray(fallbackLocale)) {\n for (const locale of fallbackLocale) {\n const val = siblingDoc[field.name!]?.[locale]\n if (val !== undefined && val !== null && val !== '') {\n fallbackValue = val\n break\n }\n }\n } else {\n fallbackValue = siblingDoc[field.name!][fallbackLocale]\n }\n\n if (fallbackValue) {\n switch (field.type) {\n case 'slug':\n case 'text':\n case 'textarea': {\n if (value === '' || isNullOrUndefined) {\n hoistedValue = fallbackValue\n }\n break\n }\n\n default: {\n if (isNullOrUndefined) {\n hoistedValue = fallbackValue\n }\n break\n }\n }\n }\n }\n\n siblingDoc[field.name!] = hoistedValue\n }\n\n // Sanitize outgoing field value\n switch (field.type) {\n case 'group': {\n // Fill groups with empty objects so fields with hooks within groups can populate\n // themselves virtually as necessary\n if (fieldAffectsDataResult && typeof siblingDoc[field.name] === 'undefined') {\n siblingDoc[field.name] = {}\n }\n\n break\n }\n case 'point': {\n const pointDoc = siblingDoc[field.name] as Record<string, unknown>\n if (Array.isArray(pointDoc?.coordinates) && pointDoc.coordinates.length === 2) {\n siblingDoc[field.name] = pointDoc.coordinates\n } else {\n siblingDoc[field.name] = undefined\n }\n\n break\n }\n\n case 'richText': {\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n if (typeof field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n // Rich Text fields should use afterRead hooks to do population. The previous editor.populationPromises have been renamed to editor.graphQLPopulationPromises\n break\n }\n\n case 'tabs': {\n field.tabs.forEach((tab) => {\n if (\n tabHasName(tab) &&\n (typeof siblingDoc[tab.name] === 'undefined' || siblingDoc[tab.name] === null)\n ) {\n siblingDoc[tab.name] = {}\n }\n })\n\n break\n }\n\n default: {\n break\n }\n }\n\n // If locale is `all`, siblingDoc[field.name] will be an object mapping locales to values - locales won't be flattened.\n // In this case, run the hook for each locale and value pair\n const shouldRunHookOnAllLocales =\n locale === 'all' &&\n 'name' in field &&\n typeof field.name === 'string' &&\n // If localized values were hoisted, siblingDoc[field.name] will not be an object mapping locales to values\n // => Object.entries(siblingDoc[field.name]) will be the value of a single locale, not all locales\n // => do not run the hook for each locale\n !shouldHoistLocalizedValue &&\n shouldLocalizeField &&\n typeof siblingDoc[field.name] === 'object'\n\n if (fieldAffectsDataResult) {\n // Execute hooks\n if (triggerHooks && 'hooks' in field && field.hooks?.afterRead) {\n for (const hook of field.hooks.afterRead) {\n if (shouldRunHookOnAllLocales) {\n const localesAndValues = Object.entries(siblingDoc[field.name])\n await Promise.all(\n localesAndValues.map(async ([localeKey, value]) => {\n const hookedValue = await hook({\n blockData,\n collection,\n context,\n currentDepth,\n data: doc,\n depth,\n draft,\n field,\n findMany,\n global,\n indexPath: indexPathSegments,\n operation: 'read',\n originalDoc: doc,\n overrideAccess,\n path: pathSegments,\n req,\n schemaPath: schemaPathSegments,\n showHiddenFields,\n siblingData: siblingDoc,\n siblingFields: siblingFields!,\n value,\n })\n\n if (hookedValue !== undefined) {\n siblingDoc[field.name][localeKey] = hookedValue\n }\n }),\n )\n } else {\n const hookedValue = await hook({\n blockData,\n collection,\n context,\n currentDepth,\n data: doc,\n depth,\n draft,\n field,\n findMany,\n global,\n indexPath: indexPathSegments,\n operation: 'read',\n originalDoc: doc,\n overrideAccess,\n path: pathSegments,\n req,\n schemaPath: schemaPathSegments,\n showHiddenFields,\n siblingData: siblingDoc,\n siblingFields: siblingFields!,\n value: siblingDoc[field.name],\n })\n\n if (hookedValue !== undefined) {\n siblingDoc[field.name] = hookedValue\n }\n }\n }\n }\n\n if (\n triggerPopulation &&\n 'virtual' in field &&\n typeof field.virtual === 'string' &&\n (!field.hidden || showHiddenFields)\n ) {\n populationPromises.push(\n virtualFieldPopulationPromise({\n name: field.name,\n draft,\n fallbackLocale: fallbackLocale!,\n fields: (collection || global)!.flattenedFields,\n locale: locale!,\n overrideAccess,\n ref: doc,\n req,\n segments: field.virtual.split('.'),\n showHiddenFields,\n siblingDoc,\n }),\n )\n }\n\n // Execute access control\n let allowDefaultValue = true\n if (triggerAccessControl && field.access && field.access.read) {\n const canReadField = overrideAccess\n ? true\n : await field.access.read(\n collection\n ? {\n id: doc.id as number | string,\n blockData,\n collection,\n data: doc,\n doc,\n req,\n siblingData: siblingDoc,\n }\n : {\n id: doc.id as number | string,\n blockData,\n data: doc,\n doc,\n global: global!,\n req,\n siblingData: siblingDoc,\n },\n )\n\n if (!canReadField) {\n allowDefaultValue = false\n delete siblingDoc[field.name!]\n }\n }\n\n // Set defaultValue on the field for globals being returned without being first created\n // or collection documents created prior to having a default.\n if (\n triggerDefaultValue &&\n !removedFieldValue &&\n allowDefaultValue &&\n typeof siblingDoc[field.name!] === 'undefined' &&\n typeof field.defaultValue !== 'undefined'\n ) {\n siblingDoc[field.name!] = await getDefaultValue({\n defaultValue: field.defaultValue,\n locale: locale!,\n req,\n user: req.user,\n value: siblingDoc[field.name!],\n })\n }\n\n if (\n triggerPopulation &&\n (field.type === 'relationship' || field.type === 'upload' || field.type === 'join')\n ) {\n populationPromises.push(\n relationshipPopulationPromise({\n currentDepth,\n depth,\n draft,\n fallbackLocale,\n field,\n locale,\n overrideAccess,\n parentIsLocalized: parentIsLocalized!,\n populate,\n req,\n showHiddenFields,\n siblingDoc,\n }),\n )\n }\n }\n\n switch (field.type) {\n case 'array': {\n const rows = siblingDoc[field.name] as JsonObject\n\n let arraySelect = select?.[field.name]\n\n if (selectMode === 'include' && typeof arraySelect === 'object') {\n arraySelect = {\n ...arraySelect,\n id: true,\n }\n }\n\n if (Array.isArray(rows) && rows.length > 0) {\n rows.forEach((row, rowIndex) => {\n traverseFields({\n blockData,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldDepth: fieldDepth + 1,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath: '',\n parentIsLocalized: parentIsLocalized || field.localized,\n parentPath: path + '.' + rowIndex,\n parentSchemaPath: schemaPath,\n populate,\n populationPromises,\n req,\n select: typeof arraySelect === 'object' ? arraySelect : undefined,\n selectMode,\n showHiddenFields,\n siblingDoc: row || {},\n triggerAccessControl,\n triggerDefaultValue,\n triggerHooks,\n triggerPopulation,\n })\n })\n } else if (!shouldHoistLocalizedValue && typeof rows === 'object' && rows !== null) {\n Object.values(rows).forEach((localeRows) => {\n if (Array.isArray(localeRows)) {\n localeRows.forEach((row, rowIndex) => {\n traverseFields({\n blockData,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldDepth: fieldDepth + 1,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath: '',\n parentIsLocalized: parentIsLocalized || field.localized,\n parentPath: path + '.' + rowIndex,\n parentSchemaPath: schemaPath,\n populate,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc: (row as JsonObject) || {},\n triggerAccessControl,\n triggerDefaultValue,\n triggerHooks,\n triggerPopulation,\n })\n })\n }\n })\n } else if (shouldHoistLocalizedValue && (!rows || rows.length === 0)) {\n siblingDoc[field.name] = null\n } else if (field.hidden !== true || showHiddenFields === true) {\n siblingDoc[field.name] = []\n }\n break\n }\n\n case 'blocks': {\n const rows = siblingDoc[field.name]\n\n if (Array.isArray(rows) && rows.length > 0) {\n rows.forEach((row, rowIndex) => {\n const blockTypeToMatch = (row as JsonObject).blockType\n\n const block: Block | undefined =\n req.payload.blocks[blockTypeToMatch] ??\n (field.blocks.find(\n (curBlock) => typeof curBlock !== 'string' && curBlock.slug === blockTypeToMatch,\n ) as Block | undefined)\n\n const { blockSelect, blockSelectMode } = getBlockSelect({\n block: block!,\n // TODO: fix this\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n select: select?.[field.name]!,\n selectMode: selectMode!,\n })\n\n if (block) {\n traverseFields({\n blockData: row,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldDepth: fieldDepth + 1,\n fieldPromises,\n fields: block.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath: '',\n parentIsLocalized: parentIsLocalized || field.localized,\n parentPath: path + '.' + rowIndex,\n parentSchemaPath: schemaPath + '.' + block.slug,\n populate,\n populationPromises,\n req,\n select: typeof blockSelect === 'object' ? blockSelect : undefined,\n selectMode: blockSelectMode,\n showHiddenFields,\n siblingDoc: (row as JsonObject) || {},\n triggerAccessControl,\n triggerDefaultValue,\n triggerHooks,\n triggerPopulation,\n })\n }\n })\n } else if (!shouldHoistLocalizedValue && typeof rows === 'object' && rows !== null) {\n Object.values(rows).forEach((localeRows) => {\n if (Array.isArray(localeRows)) {\n localeRows.forEach((row, rowIndex) => {\n const blockTypeToMatch = row.blockType\n\n const block: Block | undefined =\n req.payload.blocks[blockTypeToMatch] ??\n (field.blocks.find(\n (curBlock) => typeof curBlock !== 'string' && curBlock.slug === blockTypeToMatch,\n ) as Block | undefined)\n\n if (block) {\n traverseFields({\n blockData: row,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldDepth: fieldDepth + 1,\n fieldPromises,\n fields: block.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath: '',\n parentIsLocalized: parentIsLocalized || field.localized,\n parentPath: path + '.' + rowIndex,\n parentSchemaPath: schemaPath + '.' + block.slug,\n populate,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc: (row as JsonObject) || {},\n triggerAccessControl,\n triggerDefaultValue,\n triggerHooks,\n triggerPopulation,\n })\n }\n })\n }\n })\n } else if (shouldHoistLocalizedValue && (!rows || rows.length === 0)) {\n siblingDoc[field.name] = null\n } else if (field.hidden !== true || showHiddenFields === true) {\n siblingDoc[field.name] = []\n }\n\n break\n }\n\n case 'collapsible':\n case 'row': {\n traverseFields({\n blockData,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldDepth,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath: indexPath,\n parentIsLocalized,\n parentPath,\n parentSchemaPath: schemaPath,\n populate,\n populationPromises,\n req,\n select,\n selectMode,\n showHiddenFields,\n siblingDoc,\n triggerAccessControl,\n triggerDefaultValue,\n triggerHooks,\n triggerPopulation,\n })\n\n break\n }\n\n case 'group': {\n if (fieldAffectsDataResult) {\n const groupSelect =\n typeof select?.[field.name] === 'object'\n ? (select?.[field.name] as SelectType)\n : undefined\n\n if (shouldLocalizeField && !shouldHoistLocalizedValue) {\n Object.values(siblingDoc[field.name] || {}).forEach((localizedData) => {\n traverseFields({\n blockData,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldDepth: fieldDepth + 1,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath: '',\n parentIsLocalized: parentIsLocalized || field.localized,\n parentPath: path,\n parentSchemaPath: schemaPath,\n populate,\n populationPromises,\n req,\n select: groupSelect,\n selectMode,\n showHiddenFields,\n siblingDoc: localizedData || {},\n triggerAccessControl,\n triggerDefaultValue,\n triggerHooks,\n triggerPopulation,\n })\n })\n } else {\n traverseFields({\n blockData,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldDepth: fieldDepth + 1,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath: '',\n parentIsLocalized: parentIsLocalized || field.localized,\n parentPath: path,\n parentSchemaPath: schemaPath,\n populate,\n populationPromises,\n req,\n select: groupSelect,\n selectMode,\n showHiddenFields,\n siblingDoc: typeof siblingDoc[field.name] !== 'object' ? {} : siblingDoc[field.name],\n triggerAccessControl,\n triggerDefaultValue,\n triggerHooks,\n triggerPopulation,\n })\n }\n } else {\n traverseFields({\n blockData,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldDepth,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath: indexPath,\n parentIsLocalized,\n parentPath,\n parentSchemaPath: schemaPath,\n populate,\n populationPromises,\n req,\n select,\n selectMode,\n showHiddenFields,\n siblingDoc,\n triggerAccessControl,\n triggerDefaultValue,\n triggerHooks,\n triggerPopulation,\n })\n }\n\n break\n }\n\n case 'richText': {\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n const editor: RichTextAdapter = field?.editor\n\n if (triggerHooks && editor?.hooks?.afterRead?.length) {\n for (const hook of editor.hooks.afterRead) {\n if (shouldRunHookOnAllLocales) {\n const localesAndValues = Object.entries(siblingDoc[field.name])\n\n await Promise.all(\n localesAndValues.map(async ([locale, value]) => {\n const hookedValue = await hook({\n collection,\n context,\n currentDepth,\n data: doc,\n depth,\n draft,\n fallbackLocale: fallbackLocale!,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n global,\n indexPath: indexPathSegments,\n locale,\n operation: 'read',\n originalDoc: doc,\n overrideAccess,\n parentIsLocalized: parentIsLocalized!,\n path: pathSegments,\n populate,\n populationPromises,\n req,\n schemaPath: schemaPathSegments,\n showHiddenFields,\n siblingData: siblingDoc,\n triggerAccessControl,\n triggerHooks,\n value,\n })\n\n if (hookedValue !== undefined) {\n siblingDoc[field.name][locale] = hookedValue\n }\n }),\n )\n } else {\n const hookedValue = await hook({\n collection,\n context,\n currentDepth,\n data: doc,\n depth,\n draft,\n fallbackLocale: fallbackLocale!,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n global,\n indexPath: indexPathSegments,\n locale: locale!,\n operation: 'read',\n originalDoc: doc,\n overrideAccess,\n parentIsLocalized: parentIsLocalized!,\n path: pathSegments,\n populate,\n populationPromises,\n req,\n schemaPath: schemaPathSegments,\n showHiddenFields,\n siblingData: siblingDoc,\n triggerAccessControl,\n triggerHooks,\n value: siblingDoc[field.name],\n })\n\n if (hookedValue !== undefined) {\n siblingDoc[field.name] = hookedValue\n }\n }\n }\n }\n break\n }\n\n case 'tab': {\n const tabDoc = siblingDoc\n\n const isNamedTab = tabHasName(field)\n\n if (isNamedTab) {\n const tabSelect: SelectType | undefined =\n typeof select?.[field.name] === 'object'\n ? (select?.[field.name] as SelectType)\n : undefined\n if (shouldLocalizeField && !shouldHoistLocalizedValue) {\n Object.values(siblingDoc[field.name] || {}).forEach((localizedData) => {\n traverseFields({\n blockData,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldDepth: fieldDepth + 1,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath: '',\n parentIsLocalized: parentIsLocalized || field.localized,\n parentPath: path,\n parentSchemaPath: schemaPath,\n populate,\n populationPromises,\n req,\n select: tabSelect,\n selectMode,\n showHiddenFields,\n siblingDoc: localizedData || {},\n triggerAccessControl,\n triggerDefaultValue,\n triggerHooks,\n triggerPopulation,\n })\n })\n } else {\n traverseFields({\n blockData,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldDepth: fieldDepth + 1,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath: '',\n parentIsLocalized: parentIsLocalized || field.localized,\n parentPath: path,\n parentSchemaPath: schemaPath,\n populate,\n populationPromises,\n req,\n select: tabSelect,\n selectMode,\n showHiddenFields,\n siblingDoc: typeof siblingDoc[field.name] !== 'object' ? {} : siblingDoc[field.name],\n triggerAccessControl,\n triggerDefaultValue,\n triggerHooks,\n triggerPopulation,\n })\n }\n } else {\n traverseFields({\n blockData,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldDepth,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath: isNamedTab ? '' : indexPath,\n parentIsLocalized: parentIsLocalized || field.localized,\n parentPath: isNamedTab ? path : parentPath,\n parentSchemaPath: schemaPath,\n populate,\n populationPromises,\n req,\n select,\n selectMode,\n showHiddenFields,\n siblingDoc: tabDoc,\n triggerAccessControl,\n triggerDefaultValue,\n triggerHooks,\n triggerPopulation,\n })\n }\n\n break\n }\n\n case 'tabs': {\n traverseFields({\n blockData,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldDepth,\n fieldPromises,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath: indexPath,\n parentIsLocalized,\n parentPath: path,\n parentSchemaPath: schemaPath,\n populate,\n populationPromises,\n req,\n select,\n selectMode,\n showHiddenFields,\n siblingDoc,\n triggerAccessControl,\n triggerDefaultValue,\n triggerHooks,\n triggerPopulation,\n })\n\n break\n }\n default: {\n break\n }\n }\n}\n"],"names":["MissingEditorProp","getBlockSelect","stripUnselectedFields","fieldAffectsData","fieldShouldBeLocalized","tabHasName","getDefaultValue","getFieldPaths","relationshipPopulationPromise","traverseFields","virtualFieldPopulationPromise","promise","blockData","collection","context","currentDepth","depth","doc","draft","fallbackLocale","field","fieldDepth","fieldIndex","fieldPromises","findMany","flattenLocales","global","locale","overrideAccess","parentIndexPath","parentIsLocalized","parentPath","parentSchemaPath","populate","populationPromises","req","select","selectMode","showHiddenFields","siblingDoc","siblingFields","triggerAccessControl","triggerDefaultValue","triggerHooks","triggerPopulation","indexPath","path","schemaPath","index","fieldAffectsDataResult","pathSegments","split","schemaPathSegments","indexPathSegments","filter","Boolean","map","Number","removedFieldValue","isTopLevelIDField","name","hidden","shouldContinue","shouldLocalizeField","shouldHoistLocalizedValue","payload","config","localization","value","hoistedValue","fallbackValue","isNullOrUndefined","Array","isArray","val","undefined","type","pointDoc","coordinates","length","editor","Error","tabs","forEach","tab","shouldRunHookOnAllLocales","hooks","afterRead","hook","localesAndValues","Object","entries","Promise","all","localeKey","hookedValue","data","operation","originalDoc","siblingData","virtual","push","fields","flattenedFields","ref","segments","allowDefaultValue","access","read","canReadField","id","defaultValue","user","rows","arraySelect","row","rowIndex","localized","values","localeRows","blockTypeToMatch","blockType","block","blocks","find","curBlock","slug","blockSelect","blockSelectMode","groupSelect","localizedData","tabDoc","isNamedTab","tabSelect"],"mappings":"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CACAC;4BACF;wBACF;oBACF,OAAO;wBACLnC,eAAe;4BACbG;4BACAC;4BACAC;4BACAC;4BACAC;4BACAC;4BACAC;4BACAC;4BACAE,YAAYA,aAAa;4BACzBE;4BACA+E,QAAQlF,MAAMkF,MAAM;4BACpB9E;4BACAC;4BACAC;4BACAC;4BACAC;4BACAC,iBAAiB;4BACjBC,mBAAmBA,qBAAqBV,MAAMiG,SAAS;4BACvDtF,YAAYe;4BACZd,kBAAkBe;4BAClBd;4BACAC;4BACAC;4BACAC,QAAQiG;4BACRhG;4BACAC;4BACAC,YAAY,OAAOA,UAAU,CAACnB,MAAMwC,IAAI,CAAC,KAAK,WAAW,CAAC,IAAIrB,UAAU,CAACnB,MAAMwC,IAAI,CAAC;4BACpFnB;4BACAC;4BACAC;4BACAC;wBACF;oBACF;gBACF,OAAO;oBACLnC,eAAe;wBACbG;wBACAC;wBACAC;wBACAC;wBACAC;wBACAC;wBACAC;wBACAC;wBACAE;wBACAE;wBACA+E,QAAQlF,MAAMkF,MAAM;wBACpB9E;wBACAC;wBACAC;wBACAC;wBACAC;wBACAC,iBAAiBuG,aAAa,KAAKvF;wBACnCf,mBAAmBA,qBAAqBV,MAAMiG,SAAS;wBACvDtF,YAAYqG,aAAatF,OAAOf;wBAChCC,kBAAkBe;wBAClBd;wBACAC;wBACAC;wBACAC;wBACAC;wBACAC;wBACAC,YAAY4F;wBACZ1F;wBACAC;wBACAC;wBACAC;oBACF;gBACF;gBAEA;YACF;QAEA,KAAK;YAAQ;gBACXnC,eAAe;oBACbG;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC;oBACAE;oBACAE;oBACA+E,QAAQlF,MAAM8D,IAAI,CAAC1B,GAAG,CAAC,CAAC4B,MAAS,CAAA;4BAAE,GAAGA,GAAG;4BAAER,MAAM;wBAAM,CAAA;oBACvDpD;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC,iBAAiBgB;oBACjBf;oBACAC,YAAYe;oBACZd,kBAAkBe;oBAClBd;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC;oBACAC;oBACAE;oBACAC;oBACAC;oBACAC;gBACF;gBAEA;YACF;QACA;YAAS;gBACP;YACF;IACF;AACF,EAAC"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/fields/hooks/afterRead/promise.ts"],"sourcesContent":["import type { RichTextAdapter } from '../../../admin/RichText.js'\nimport type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../../globals/config/types.js'\nimport type { RequestContext, TypedFallbackLocale } from '../../../index.js'\nimport type {\n JsonObject,\n PayloadRequest,\n PopulateType,\n SelectMode,\n SelectType,\n} from '../../../types/index.js'\nimport type { Block, Field, TabAsField } from '../../config/types.js'\nimport type { AfterReadArgs } from './index.js'\n\nimport { MissingEditorProp } from '../../../errors/index.js'\nimport { getBlockSelect } from '../../../utilities/getBlockSelect.js'\nimport { stripUnselectedFields } from '../../../utilities/stripUnselectedFields.js'\nimport { fieldAffectsData, fieldShouldBeLocalized, tabHasName } from '../../config/types.js'\nimport { getDefaultValue } from '../../getDefaultValue.js'\nimport { getFieldPaths } from '../../getFieldPaths.js'\nimport { relationshipPopulationPromise } from './relationshipPopulationPromise.js'\nimport { traverseFields } from './traverseFields.js'\nimport { virtualFieldPopulationPromise } from './virtualFieldPopulationPromise.js'\n\ntype Args = {\n /**\n * Data of the nearest parent block. If no parent block exists, this will be the `undefined`\n */\n blockData?: JsonObject\n collection: null | SanitizedCollectionConfig\n context: RequestContext\n currentDepth: number\n depth: number\n doc: JsonObject\n draft: boolean\n fallbackLocale: TypedFallbackLocale\n field: Field | TabAsField\n /**\n * The depth of the current field being processed.\n * Fields without names (i.e. rows, collapsibles, unnamed groups)\n * simply pass this value through\n *\n * @default 0\n */\n fieldDepth: number\n fieldIndex: number\n /**\n * fieldPromises are used for things like field hooks. They should be awaited before awaiting populationPromises\n */\n fieldPromises: Promise<void>[]\n findMany: boolean\n global: null | SanitizedGlobalConfig\n locale: null | string\n overrideAccess: boolean\n parentIndexPath: string\n /**\n * @todo make required in v4.0\n */\n parentIsLocalized?: boolean\n parentPath: string\n parentSchemaPath: string\n populate?: PopulateType\n populationPromises: Promise<void>[]\n req: PayloadRequest\n select?: SelectType\n selectMode?: SelectMode\n showHiddenFields: boolean\n siblingDoc: JsonObject\n siblingFields?: (Field | TabAsField)[]\n triggerAccessControl?: boolean\n triggerHooks?: boolean\n} & Required<Pick<AfterReadArgs<JsonObject>, 'flattenLocales'>>\n\n// This function is responsible for the following actions, in order:\n// - Remove hidden fields from response\n// - Flatten locales into requested locale\n// - Sanitize outgoing data (point field, etc.)\n// - Execute field hooks\n// - Execute read access control\n// - Populate relationships\n\nexport const promise = async ({\n blockData,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n field,\n fieldDepth,\n fieldIndex,\n fieldPromises,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath,\n parentIsLocalized,\n parentPath,\n parentSchemaPath,\n populate,\n populationPromises,\n req,\n select,\n selectMode,\n showHiddenFields,\n siblingDoc,\n siblingFields,\n triggerAccessControl = true,\n triggerHooks = true,\n}: Args): Promise<void> => {\n const { indexPath, path, schemaPath } = getFieldPaths({\n field,\n index: fieldIndex,\n parentIndexPath,\n parentPath,\n parentSchemaPath,\n })\n\n const fieldAffectsDataResult = fieldAffectsData(field)\n const pathSegments = path ? path.split('.') : []\n const schemaPathSegments = schemaPath ? schemaPath.split('.') : []\n const indexPathSegments = indexPath ? indexPath.split('-').filter(Boolean)?.map(Number) : []\n let removedFieldValue = false\n\n const isTopLevelIDField = fieldAffectsDataResult && field.name === 'id' && fieldDepth === 0\n\n if (\n fieldAffectsDataResult &&\n field.hidden &&\n typeof siblingDoc[field.name!] !== 'undefined' &&\n !showHiddenFields &&\n !isTopLevelIDField\n ) {\n removedFieldValue = true\n delete siblingDoc[field.name!]\n }\n\n if (path !== 'id') {\n const shouldContinue = stripUnselectedFields({\n field,\n select: select!,\n selectMode: selectMode!,\n siblingDoc,\n })\n\n if (!shouldContinue) {\n return\n }\n }\n\n const shouldLocalizeField = fieldShouldBeLocalized({\n field,\n parentIsLocalized: parentIsLocalized!,\n })\n\n const shouldHoistLocalizedValue: boolean = Boolean(\n flattenLocales &&\n fieldAffectsDataResult &&\n typeof siblingDoc[field.name!] === 'object' &&\n siblingDoc[field.name!] !== null &&\n shouldLocalizeField &&\n locale !== 'all' &&\n req.payload.config.localization,\n )\n\n if (fieldAffectsDataResult && shouldHoistLocalizedValue) {\n // replace actual value with localized value before sanitizing\n // { [locale]: fields } -> fields\n const value = siblingDoc[field.name!][locale!]\n\n let hoistedValue = value\n\n if (fallbackLocale && fallbackLocale !== locale) {\n let fallbackValue\n const isNullOrUndefined = typeof value === 'undefined' || value === null\n\n if (Array.isArray(fallbackLocale)) {\n for (const locale of fallbackLocale) {\n const val = siblingDoc[field.name!]?.[locale]\n if (val !== undefined && val !== null && val !== '') {\n fallbackValue = val\n break\n }\n }\n } else {\n fallbackValue = siblingDoc[field.name!][fallbackLocale]\n }\n\n if (fallbackValue) {\n switch (field.type) {\n case 'slug':\n case 'text':\n case 'textarea': {\n if (value === '' || isNullOrUndefined) {\n hoistedValue = fallbackValue\n }\n break\n }\n\n default: {\n if (isNullOrUndefined) {\n hoistedValue = fallbackValue\n }\n break\n }\n }\n }\n }\n\n siblingDoc[field.name!] = hoistedValue\n }\n\n // Sanitize outgoing field value\n switch (field.type) {\n case 'group': {\n // Fill groups with empty objects so fields with hooks within groups can populate\n // themselves virtually as necessary\n if (fieldAffectsDataResult && typeof siblingDoc[field.name] === 'undefined') {\n siblingDoc[field.name] = {}\n }\n\n break\n }\n case 'point': {\n const pointDoc = siblingDoc[field.name] as Record<string, unknown>\n if (Array.isArray(pointDoc?.coordinates) && pointDoc.coordinates.length === 2) {\n siblingDoc[field.name] = pointDoc.coordinates\n } else {\n siblingDoc[field.name] = undefined\n }\n\n break\n }\n\n case 'richText': {\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n if (typeof field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n // Rich Text fields should use afterRead hooks to do population. The previous editor.populationPromises have been renamed to editor.graphQLPopulationPromises\n break\n }\n\n case 'tabs': {\n field.tabs.forEach((tab) => {\n if (\n tabHasName(tab) &&\n (typeof siblingDoc[tab.name] === 'undefined' || siblingDoc[tab.name] === null)\n ) {\n siblingDoc[tab.name] = {}\n }\n })\n\n break\n }\n\n default: {\n break\n }\n }\n\n // If locale is `all`, siblingDoc[field.name] will be an object mapping locales to values - locales won't be flattened.\n // In this case, run the hook for each locale and value pair\n const shouldRunHookOnAllLocales =\n locale === 'all' &&\n 'name' in field &&\n typeof field.name === 'string' &&\n // If localized values were hoisted, siblingDoc[field.name] will not be an object mapping locales to values\n // => Object.entries(siblingDoc[field.name]) will be the value of a single locale, not all locales\n // => do not run the hook for each locale\n !shouldHoistLocalizedValue &&\n shouldLocalizeField &&\n typeof siblingDoc[field.name] === 'object'\n\n if (fieldAffectsDataResult) {\n // Execute hooks\n if (triggerHooks && 'hooks' in field && field.hooks?.afterRead) {\n for (const hook of field.hooks.afterRead) {\n if (shouldRunHookOnAllLocales) {\n const localesAndValues = Object.entries(siblingDoc[field.name])\n await Promise.all(\n localesAndValues.map(async ([localeKey, value]) => {\n const hookedValue = await hook({\n blockData,\n collection,\n context,\n currentDepth,\n data: doc,\n depth,\n draft,\n field,\n findMany,\n global,\n indexPath: indexPathSegments,\n operation: 'read',\n originalDoc: doc,\n overrideAccess,\n path: pathSegments,\n req,\n schemaPath: schemaPathSegments,\n showHiddenFields,\n siblingData: siblingDoc,\n siblingFields: siblingFields!,\n value,\n })\n\n if (hookedValue !== undefined) {\n siblingDoc[field.name][localeKey] = hookedValue\n }\n }),\n )\n } else {\n const hookedValue = await hook({\n blockData,\n collection,\n context,\n currentDepth,\n data: doc,\n depth,\n draft,\n field,\n findMany,\n global,\n indexPath: indexPathSegments,\n operation: 'read',\n originalDoc: doc,\n overrideAccess,\n path: pathSegments,\n req,\n schemaPath: schemaPathSegments,\n showHiddenFields,\n siblingData: siblingDoc,\n siblingFields: siblingFields!,\n value: siblingDoc[field.name],\n })\n\n if (hookedValue !== undefined) {\n siblingDoc[field.name] = hookedValue\n }\n }\n }\n }\n\n if (\n 'virtual' in field &&\n typeof field.virtual === 'string' &&\n (!field.hidden || showHiddenFields)\n ) {\n populationPromises.push(\n virtualFieldPopulationPromise({\n name: field.name,\n draft,\n fallbackLocale: fallbackLocale!,\n fields: (collection || global)!.flattenedFields,\n locale: locale!,\n overrideAccess,\n ref: doc,\n req,\n segments: field.virtual.split('.'),\n showHiddenFields,\n siblingDoc,\n }),\n )\n }\n\n // Execute access control\n let allowDefaultValue = true\n if (triggerAccessControl && field.access && field.access.read) {\n const canReadField = overrideAccess\n ? true\n : await field.access.read(\n collection\n ? {\n id: doc.id as number | string,\n blockData,\n collection,\n data: doc,\n doc,\n req,\n siblingData: siblingDoc,\n }\n : {\n id: doc.id as number | string,\n blockData,\n data: doc,\n doc,\n global: global!,\n req,\n siblingData: siblingDoc,\n },\n )\n\n if (!canReadField) {\n allowDefaultValue = false\n delete siblingDoc[field.name!]\n }\n }\n\n // Set defaultValue on the field for globals being returned without being first created\n // or collection documents created prior to having a default.\n if (\n !removedFieldValue &&\n allowDefaultValue &&\n typeof siblingDoc[field.name!] === 'undefined' &&\n typeof field.defaultValue !== 'undefined'\n ) {\n siblingDoc[field.name!] = await getDefaultValue({\n defaultValue: field.defaultValue,\n locale: locale!,\n req,\n user: req.user,\n value: siblingDoc[field.name!],\n })\n }\n\n if (field.type === 'relationship' || field.type === 'upload' || field.type === 'join') {\n populationPromises.push(\n relationshipPopulationPromise({\n currentDepth,\n depth,\n draft,\n fallbackLocale,\n field,\n locale,\n overrideAccess,\n parentIsLocalized: parentIsLocalized!,\n populate,\n req,\n showHiddenFields,\n siblingDoc,\n }),\n )\n }\n }\n\n switch (field.type) {\n case 'array': {\n const rows = siblingDoc[field.name] as JsonObject\n\n let arraySelect = select?.[field.name]\n\n if (selectMode === 'include' && typeof arraySelect === 'object') {\n arraySelect = {\n ...arraySelect,\n id: true,\n }\n }\n\n if (Array.isArray(rows) && rows.length > 0) {\n rows.forEach((row, rowIndex) => {\n traverseFields({\n blockData,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldDepth: fieldDepth + 1,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath: '',\n parentIsLocalized: parentIsLocalized || field.localized,\n parentPath: path + '.' + rowIndex,\n parentSchemaPath: schemaPath,\n populate,\n populationPromises,\n req,\n select: typeof arraySelect === 'object' ? arraySelect : undefined,\n selectMode,\n showHiddenFields,\n siblingDoc: row || {},\n triggerAccessControl,\n triggerHooks,\n })\n })\n } else if (!shouldHoistLocalizedValue && typeof rows === 'object' && rows !== null) {\n Object.values(rows).forEach((localeRows) => {\n if (Array.isArray(localeRows)) {\n localeRows.forEach((row, rowIndex) => {\n traverseFields({\n blockData,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldDepth: fieldDepth + 1,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath: '',\n parentIsLocalized: parentIsLocalized || field.localized,\n parentPath: path + '.' + rowIndex,\n parentSchemaPath: schemaPath,\n populate,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc: (row as JsonObject) || {},\n triggerAccessControl,\n triggerHooks,\n })\n })\n }\n })\n } else if (shouldHoistLocalizedValue && (!rows || rows.length === 0)) {\n siblingDoc[field.name] = null\n } else if (field.hidden !== true || showHiddenFields === true) {\n siblingDoc[field.name] = []\n }\n break\n }\n\n case 'blocks': {\n const rows = siblingDoc[field.name]\n\n if (Array.isArray(rows) && rows.length > 0) {\n rows.forEach((row, rowIndex) => {\n const blockTypeToMatch = (row as JsonObject).blockType\n\n const block: Block | undefined =\n req.payload.blocks[blockTypeToMatch] ??\n (field.blocks.find(\n (curBlock) => typeof curBlock !== 'string' && curBlock.slug === blockTypeToMatch,\n ) as Block | undefined)\n\n const { blockSelect, blockSelectMode } = getBlockSelect({\n block: block!,\n // TODO: fix this\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n select: select?.[field.name]!,\n selectMode: selectMode!,\n })\n\n if (block) {\n traverseFields({\n blockData: row,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldDepth: fieldDepth + 1,\n fieldPromises,\n fields: block.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath: '',\n parentIsLocalized: parentIsLocalized || field.localized,\n parentPath: path + '.' + rowIndex,\n parentSchemaPath: schemaPath + '.' + block.slug,\n populate,\n populationPromises,\n req,\n select: typeof blockSelect === 'object' ? blockSelect : undefined,\n selectMode: blockSelectMode,\n showHiddenFields,\n siblingDoc: (row as JsonObject) || {},\n triggerAccessControl,\n triggerHooks,\n })\n }\n })\n } else if (!shouldHoistLocalizedValue && typeof rows === 'object' && rows !== null) {\n Object.values(rows).forEach((localeRows) => {\n if (Array.isArray(localeRows)) {\n localeRows.forEach((row, rowIndex) => {\n const blockTypeToMatch = row.blockType\n\n const block: Block | undefined =\n req.payload.blocks[blockTypeToMatch] ??\n (field.blocks.find(\n (curBlock) => typeof curBlock !== 'string' && curBlock.slug === blockTypeToMatch,\n ) as Block | undefined)\n\n if (block) {\n traverseFields({\n blockData: row,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldDepth: fieldDepth + 1,\n fieldPromises,\n fields: block.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath: '',\n parentIsLocalized: parentIsLocalized || field.localized,\n parentPath: path + '.' + rowIndex,\n parentSchemaPath: schemaPath + '.' + block.slug,\n populate,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc: (row as JsonObject) || {},\n triggerAccessControl,\n triggerHooks,\n })\n }\n })\n }\n })\n } else if (shouldHoistLocalizedValue && (!rows || rows.length === 0)) {\n siblingDoc[field.name] = null\n } else if (field.hidden !== true || showHiddenFields === true) {\n siblingDoc[field.name] = []\n }\n\n break\n }\n\n case 'collapsible':\n case 'row': {\n traverseFields({\n blockData,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldDepth,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath: indexPath,\n parentIsLocalized,\n parentPath,\n parentSchemaPath: schemaPath,\n populate,\n populationPromises,\n req,\n select,\n selectMode,\n showHiddenFields,\n siblingDoc,\n triggerAccessControl,\n triggerHooks,\n })\n\n break\n }\n\n case 'group': {\n if (fieldAffectsDataResult) {\n const groupSelect =\n typeof select?.[field.name] === 'object'\n ? (select?.[field.name] as SelectType)\n : undefined\n\n if (shouldLocalizeField && !shouldHoistLocalizedValue) {\n Object.values(siblingDoc[field.name] || {}).forEach((localizedData) => {\n traverseFields({\n blockData,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldDepth: fieldDepth + 1,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath: '',\n parentIsLocalized: parentIsLocalized || field.localized,\n parentPath: path,\n parentSchemaPath: schemaPath,\n populate,\n populationPromises,\n req,\n select: groupSelect,\n selectMode,\n showHiddenFields,\n siblingDoc: localizedData || {},\n triggerAccessControl,\n triggerHooks,\n })\n })\n } else {\n traverseFields({\n blockData,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldDepth: fieldDepth + 1,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath: '',\n parentIsLocalized: parentIsLocalized || field.localized,\n parentPath: path,\n parentSchemaPath: schemaPath,\n populate,\n populationPromises,\n req,\n select: groupSelect,\n selectMode,\n showHiddenFields,\n siblingDoc: typeof siblingDoc[field.name] !== 'object' ? {} : siblingDoc[field.name],\n triggerAccessControl,\n triggerHooks,\n })\n }\n } else {\n traverseFields({\n blockData,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldDepth,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath: indexPath,\n parentIsLocalized,\n parentPath,\n parentSchemaPath: schemaPath,\n populate,\n populationPromises,\n req,\n select,\n selectMode,\n showHiddenFields,\n siblingDoc,\n triggerAccessControl,\n triggerHooks,\n })\n }\n\n break\n }\n\n case 'richText': {\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n const editor: RichTextAdapter = field?.editor\n\n if (editor?.hooks?.afterRead?.length) {\n for (const hook of editor.hooks.afterRead) {\n if (shouldRunHookOnAllLocales) {\n const localesAndValues = Object.entries(siblingDoc[field.name])\n\n await Promise.all(\n localesAndValues.map(async ([locale, value]) => {\n const hookedValue = await hook({\n collection,\n context,\n currentDepth,\n data: doc,\n depth,\n draft,\n fallbackLocale: fallbackLocale!,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n global,\n indexPath: indexPathSegments,\n locale,\n operation: 'read',\n originalDoc: doc,\n overrideAccess,\n parentIsLocalized: parentIsLocalized!,\n path: pathSegments,\n populate,\n populationPromises,\n req,\n schemaPath: schemaPathSegments,\n showHiddenFields,\n siblingData: siblingDoc,\n triggerAccessControl,\n triggerHooks,\n value,\n })\n\n if (hookedValue !== undefined) {\n siblingDoc[field.name][locale] = hookedValue\n }\n }),\n )\n } else {\n const hookedValue = await hook({\n collection,\n context,\n currentDepth,\n data: doc,\n depth,\n draft,\n fallbackLocale: fallbackLocale!,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n global,\n indexPath: indexPathSegments,\n locale: locale!,\n operation: 'read',\n originalDoc: doc,\n overrideAccess,\n parentIsLocalized: parentIsLocalized!,\n path: pathSegments,\n populate,\n populationPromises,\n req,\n schemaPath: schemaPathSegments,\n showHiddenFields,\n siblingData: siblingDoc,\n triggerAccessControl,\n triggerHooks,\n value: siblingDoc[field.name],\n })\n\n if (hookedValue !== undefined) {\n siblingDoc[field.name] = hookedValue\n }\n }\n }\n }\n break\n }\n\n case 'tab': {\n const tabDoc = siblingDoc\n\n const isNamedTab = tabHasName(field)\n\n if (isNamedTab) {\n const tabSelect: SelectType | undefined =\n typeof select?.[field.name] === 'object'\n ? (select?.[field.name] as SelectType)\n : undefined\n if (shouldLocalizeField && !shouldHoistLocalizedValue) {\n Object.values(siblingDoc[field.name] || {}).forEach((localizedData) => {\n traverseFields({\n blockData,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldDepth: fieldDepth + 1,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath: '',\n parentIsLocalized: parentIsLocalized || field.localized,\n parentPath: path,\n parentSchemaPath: schemaPath,\n populate,\n populationPromises,\n req,\n select: tabSelect,\n selectMode,\n showHiddenFields,\n siblingDoc: localizedData || {},\n triggerAccessControl,\n triggerHooks,\n })\n })\n } else {\n traverseFields({\n blockData,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldDepth: fieldDepth + 1,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath: '',\n parentIsLocalized: parentIsLocalized || field.localized,\n parentPath: path,\n parentSchemaPath: schemaPath,\n populate,\n populationPromises,\n req,\n select: tabSelect,\n selectMode,\n showHiddenFields,\n siblingDoc: typeof siblingDoc[field.name] !== 'object' ? {} : siblingDoc[field.name],\n triggerAccessControl,\n triggerHooks,\n })\n }\n } else {\n traverseFields({\n blockData,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldDepth,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath: isNamedTab ? '' : indexPath,\n parentIsLocalized: parentIsLocalized || field.localized,\n parentPath: isNamedTab ? path : parentPath,\n parentSchemaPath: schemaPath,\n populate,\n populationPromises,\n req,\n select,\n selectMode,\n showHiddenFields,\n siblingDoc: tabDoc,\n triggerAccessControl,\n triggerHooks,\n })\n }\n\n break\n }\n\n case 'tabs': {\n traverseFields({\n blockData,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldDepth,\n fieldPromises,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath: indexPath,\n parentIsLocalized,\n parentPath: path,\n parentSchemaPath: schemaPath,\n populate,\n populationPromises,\n req,\n select,\n selectMode,\n showHiddenFields,\n siblingDoc,\n triggerAccessControl,\n triggerHooks,\n })\n\n break\n }\n default: {\n break\n }\n }\n}\n"],"names":["MissingEditorProp","getBlockSelect","stripUnselectedFields","fieldAffectsData","fieldShouldBeLocalized","tabHasName","getDefaultValue","getFieldPaths","relationshipPopulationPromise","traverseFields","virtualFieldPopulationPromise","promise","blockData","collection","context","currentDepth","depth","doc","draft","fallbackLocale","field","fieldDepth","fieldIndex","fieldPromises","findMany","flattenLocales","global","locale","overrideAccess","parentIndexPath","parentIsLocalized","parentPath","parentSchemaPath","populate","populationPromises","req","select","selectMode","showHiddenFields","siblingDoc","siblingFields","triggerAccessControl","triggerHooks","indexPath","path","schemaPath","index","fieldAffectsDataResult","pathSegments","split","schemaPathSegments","indexPathSegments","filter","Boolean","map","Number","removedFieldValue","isTopLevelIDField","name","hidden","shouldContinue","shouldLocalizeField","shouldHoistLocalizedValue","payload","config","localization","value","hoistedValue","fallbackValue","isNullOrUndefined","Array","isArray","val","undefined","type","pointDoc","coordinates","length","editor","Error","tabs","forEach","tab","shouldRunHookOnAllLocales","hooks","afterRead","hook","localesAndValues","Object","entries","Promise","all","localeKey","hookedValue","data","operation","originalDoc","siblingData","virtual","push","fields","flattenedFields","ref","segments","allowDefaultValue","access","read","canReadField","id","defaultValue","user","rows","arraySelect","row","rowIndex","localized","values","localeRows","blockTypeToMatch","blockType","block","blocks","find","curBlock","slug","blockSelect","blockSelectMode","groupSelect","localizedData","tabDoc","isNamedTab","tabSelect"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationshipPopulationPromise.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/afterRead/relationshipPopulationPromise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"relationshipPopulationPromise.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/afterRead/relationshipPopulationPromise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAwItF,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,EAAE,mBAAmB,CAAA;IACnC,KAAK,EAAE,SAAS,GAAG,iBAAiB,GAAG,WAAW,CAAA;IAClD,MAAM,EAAE,IAAI,GAAG,MAAM,CAAA;IACrB,cAAc,EAAE,OAAO,CAAA;IACvB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,EAAE,OAAO,CAAA;IACzB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,6BAA6B,gKAavC,WAAW,KAAG,OAAO,CAAC,IAAI,CAyI5B,CAAA"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { resolveBranch } from '../../../branching/resolveBranch.js';
|
|
2
1
|
import { createDataloaderCacheKey } from '../../../collections/dataloader.js';
|
|
3
2
|
import { fieldHasMaxDepth, fieldShouldBeLocalized, fieldSupportsMany } from '../../config/types.js';
|
|
4
3
|
// TODO: this function is mess, refactor logic
|
|
@@ -27,7 +26,6 @@ const populate = async ({ currentDepth, data, dataReference, depth, draft, fallb
|
|
|
27
26
|
}
|
|
28
27
|
if (shouldPopulate) {
|
|
29
28
|
relationshipValue = await req.payloadDataLoader.load(createDataloaderCacheKey({
|
|
30
|
-
branch: resolveBranch(req),
|
|
31
29
|
collectionSlug: relatedCollection.config.slug,
|
|
32
30
|
currentDepth: currentDepth + 1,
|
|
33
31
|
depth,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/fields/hooks/afterRead/relationshipPopulationPromise.ts"],"sourcesContent":["import type { TypedFallbackLocale } from '../../../index.js'\nimport type { PayloadRequest, PopulateType } from '../../../types/index.js'\nimport type { JoinField, RelationshipField, UploadField } from '../../config/types.js'\n\nimport { resolveBranch } from '../../../branching/resolveBranch.js'\nimport { createDataloaderCacheKey } from '../../../collections/dataloader.js'\nimport { fieldHasMaxDepth, fieldShouldBeLocalized, fieldSupportsMany } from '../../config/types.js'\n\ntype PopulateArgs = {\n currentDepth: number\n data: Record<string, unknown>\n dataReference: Record<string, any>\n depth: number\n draft: boolean\n fallbackLocale: TypedFallbackLocale\n field: JoinField | RelationshipField | UploadField\n index?: number\n key?: string\n locale: null | string\n overrideAccess: boolean\n populateArg?: PopulateType\n req: PayloadRequest\n showHiddenFields: boolean\n}\n\n// TODO: this function is mess, refactor logic\nconst populate = async ({\n currentDepth,\n data,\n dataReference,\n depth,\n draft,\n fallbackLocale,\n field,\n index,\n key,\n locale,\n overrideAccess,\n populateArg,\n req,\n showHiddenFields,\n}: PopulateArgs) => {\n const dataToUpdate = dataReference\n let relation\n if (field.type === 'join') {\n relation = Array.isArray(field.collection) ? data.relationTo : field.collection\n } else {\n relation = Array.isArray(field.relationTo) ? (data.relationTo as string) : field.relationTo\n }\n\n const relatedCollection =\n req.payload.collections[relation as keyof typeof req.payload.collections]\n\n if (relatedCollection) {\n let id: unknown\n\n if (field.type === 'join' && Array.isArray(field.collection)) {\n id = data.value\n } else if (field.type !== 'join' && Array.isArray(field.relationTo)) {\n id = data.value\n } else {\n id = data\n }\n\n let relationshipValue\n const shouldPopulate = depth && currentDepth <= depth\n\n if (\n typeof id !== 'string' &&\n typeof id !== 'number' &&\n typeof id?.toString === 'function' &&\n typeof id !== 'object'\n ) {\n id = id.toString()\n }\n\n if (shouldPopulate) {\n relationshipValue = await req.payloadDataLoader.load(\n createDataloaderCacheKey({\n branch: resolveBranch(req),\n collectionSlug: relatedCollection.config.slug,\n currentDepth: currentDepth + 1,\n depth,\n docID: id as string,\n draft,\n fallbackLocale: fallbackLocale!,\n locale: locale!,\n overrideAccess,\n populate: populateArg,\n select:\n populateArg?.[relatedCollection.config.slug] ??\n relatedCollection.config.defaultPopulate,\n showHiddenFields,\n transactionID: req.transactionID!,\n }),\n )\n }\n\n if (relatedCollection.config.trash && relationshipValue) {\n if ((relationshipValue as Record<string, unknown>).deletedAt) {\n relationshipValue = null\n }\n } else if (!relationshipValue) {\n // ids are visible regardless of access controls\n relationshipValue = id\n }\n if (typeof index === 'number' && typeof key === 'string') {\n if (field.type !== 'join' && Array.isArray(field.relationTo)) {\n dataToUpdate[field.name][key][index].value = relationshipValue\n } else {\n if (field.type === 'join' && Array.isArray(field.collection)) {\n dataToUpdate[field.name][key][index].value = relationshipValue\n } else {\n dataToUpdate[field.name][key][index] = relationshipValue\n }\n }\n } else if (typeof index === 'number' || typeof key === 'string') {\n if (field.type === 'join') {\n if (!Array.isArray(field.collection)) {\n dataToUpdate[field.name].docs[index ?? key!] = relationshipValue\n } else {\n dataToUpdate[field.name].docs[index ?? key!].value = relationshipValue\n }\n } else if (Array.isArray(field.relationTo)) {\n dataToUpdate[field.name][index ?? key!].value = relationshipValue\n } else {\n dataToUpdate[field.name][index ?? key!] = relationshipValue\n }\n } else if (field.type !== 'join' && Array.isArray(field.relationTo)) {\n dataToUpdate[field.name].value = relationshipValue\n } else {\n if (field.type === 'join' && Array.isArray(field.collection)) {\n dataToUpdate[field.name].value = relationshipValue\n } else {\n dataToUpdate[field.name] = relationshipValue\n }\n }\n }\n}\n\ntype PromiseArgs = {\n currentDepth: number\n depth: number\n draft: boolean\n fallbackLocale: TypedFallbackLocale\n field: JoinField | RelationshipField | UploadField\n locale: null | string\n overrideAccess: boolean\n parentIsLocalized: boolean\n populate?: PopulateType\n req: PayloadRequest\n showHiddenFields: boolean\n siblingDoc: Record<string, any>\n}\n\nexport const relationshipPopulationPromise = async ({\n currentDepth,\n depth,\n draft,\n fallbackLocale,\n field,\n locale,\n overrideAccess,\n parentIsLocalized,\n populate: populateArg,\n req,\n showHiddenFields,\n siblingDoc,\n}: PromiseArgs): Promise<void> => {\n const resultingDoc = siblingDoc\n const populateDepth = fieldHasMaxDepth(field) && field.maxDepth! < depth ? field.maxDepth : depth\n const rowPromises: Promise<void>[] = []\n\n if (field.type === 'join' || (fieldSupportsMany(field) && field.hasMany)) {\n if (\n fieldShouldBeLocalized({ field, parentIsLocalized }) &&\n locale === 'all' &&\n typeof siblingDoc[field.name] === 'object' &&\n siblingDoc[field.name] !== null\n ) {\n Object.keys(siblingDoc[field.name]).forEach((localeKey) => {\n if (Array.isArray(siblingDoc[field.name][localeKey])) {\n siblingDoc[field.name][localeKey].forEach((_relatedDoc: any, index: number) => {\n const rowPromise = async () => {\n await populate({\n currentDepth,\n data: siblingDoc[field.name][localeKey][index],\n dataReference: resultingDoc,\n depth: populateDepth!,\n draft,\n fallbackLocale,\n field,\n index,\n key: localeKey,\n locale,\n overrideAccess,\n populateArg,\n req,\n showHiddenFields,\n })\n }\n rowPromises.push(rowPromise())\n })\n }\n })\n } else if (\n Array.isArray(siblingDoc[field.name]) ||\n Array.isArray(siblingDoc[field.name]?.docs)\n ) {\n ;(Array.isArray(siblingDoc[field.name])\n ? siblingDoc[field.name]\n : siblingDoc[field.name].docs\n ).forEach((relatedDoc: any, index: number) => {\n const rowPromise = async () => {\n if (relatedDoc) {\n await populate({\n currentDepth,\n data:\n !(field.type === 'join' && Array.isArray(field.collection)) && relatedDoc?.id\n ? relatedDoc.id\n : relatedDoc,\n dataReference: resultingDoc,\n depth: populateDepth!,\n draft,\n fallbackLocale,\n field,\n index,\n locale,\n overrideAccess,\n populateArg,\n req,\n showHiddenFields,\n })\n }\n }\n\n rowPromises.push(rowPromise())\n })\n }\n } else if (\n field.localized &&\n locale === 'all' &&\n typeof siblingDoc[field.name] === 'object' &&\n siblingDoc[field.name] !== null\n ) {\n Object.keys(siblingDoc[field.name]).forEach((localeKey) => {\n const rowPromise = async () => {\n await populate({\n currentDepth,\n data: siblingDoc[field.name][localeKey],\n dataReference: resultingDoc,\n depth: populateDepth!,\n draft,\n fallbackLocale,\n field,\n key: localeKey,\n locale,\n overrideAccess,\n populateArg,\n req,\n showHiddenFields,\n })\n }\n rowPromises.push(rowPromise())\n })\n\n await Promise.all(rowPromises)\n } else if (siblingDoc[field.name]) {\n await populate({\n currentDepth,\n data: siblingDoc[field.name],\n dataReference: resultingDoc,\n depth: populateDepth!,\n draft,\n fallbackLocale,\n field,\n locale,\n overrideAccess,\n populateArg,\n req,\n showHiddenFields,\n })\n }\n await Promise.all(rowPromises)\n\n if (field.type !== 'join' && fieldSupportsMany(field) && field.hasMany) {\n const notNull = Array.isArray(field.relationTo)\n ? (v: unknown) => v !== null && (v as Record<string, unknown>)?.value !== null\n : (v: unknown) => v !== null\n\n if (\n fieldShouldBeLocalized({ field, parentIsLocalized }) &&\n locale === 'all' &&\n typeof resultingDoc[field.name] === 'object' &&\n resultingDoc[field.name] !== null\n ) {\n for (const localeKey of Object.keys(resultingDoc[field.name])) {\n if (Array.isArray(resultingDoc[field.name][localeKey])) {\n resultingDoc[field.name][localeKey] = resultingDoc[field.name][localeKey].filter(notNull)\n }\n }\n } else if (Array.isArray(resultingDoc[field.name])) {\n resultingDoc[field.name] = (resultingDoc[field.name] as unknown[]).filter(notNull)\n }\n }\n}\n"],"names":["resolveBranch","createDataloaderCacheKey","fieldHasMaxDepth","fieldShouldBeLocalized","fieldSupportsMany","populate","currentDepth","data","dataReference","depth","draft","fallbackLocale","field","index","key","locale","overrideAccess","populateArg","req","showHiddenFields","dataToUpdate","relation","type","Array","isArray","collection","relationTo","relatedCollection","payload","collections","id","value","relationshipValue","shouldPopulate","toString","payloadDataLoader","load","branch","collectionSlug","config","slug","docID","select","defaultPopulate","transactionID","trash","deletedAt","name","docs","relationshipPopulationPromise","parentIsLocalized","siblingDoc","resultingDoc","populateDepth","maxDepth","rowPromises","hasMany","Object","keys","forEach","localeKey","_relatedDoc","rowPromise","push","relatedDoc","localized","Promise","all","notNull","v","filter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/fields/hooks/afterRead/relationshipPopulationPromise.ts"],"sourcesContent":["import type { TypedFallbackLocale } from '../../../index.js'\nimport type { PayloadRequest, PopulateType } from '../../../types/index.js'\nimport type { JoinField, RelationshipField, UploadField } from '../../config/types.js'\n\nimport { createDataloaderCacheKey } from '../../../collections/dataloader.js'\nimport { fieldHasMaxDepth, fieldShouldBeLocalized, fieldSupportsMany } from '../../config/types.js'\n\ntype PopulateArgs = {\n currentDepth: number\n data: Record<string, unknown>\n dataReference: Record<string, any>\n depth: number\n draft: boolean\n fallbackLocale: TypedFallbackLocale\n field: JoinField | RelationshipField | UploadField\n index?: number\n key?: string\n locale: null | string\n overrideAccess: boolean\n populateArg?: PopulateType\n req: PayloadRequest\n showHiddenFields: boolean\n}\n\n// TODO: this function is mess, refactor logic\nconst populate = async ({\n currentDepth,\n data,\n dataReference,\n depth,\n draft,\n fallbackLocale,\n field,\n index,\n key,\n locale,\n overrideAccess,\n populateArg,\n req,\n showHiddenFields,\n}: PopulateArgs) => {\n const dataToUpdate = dataReference\n let relation\n if (field.type === 'join') {\n relation = Array.isArray(field.collection) ? data.relationTo : field.collection\n } else {\n relation = Array.isArray(field.relationTo) ? (data.relationTo as string) : field.relationTo\n }\n\n const relatedCollection =\n req.payload.collections[relation as keyof typeof req.payload.collections]\n\n if (relatedCollection) {\n let id: unknown\n\n if (field.type === 'join' && Array.isArray(field.collection)) {\n id = data.value\n } else if (field.type !== 'join' && Array.isArray(field.relationTo)) {\n id = data.value\n } else {\n id = data\n }\n\n let relationshipValue\n const shouldPopulate = depth && currentDepth <= depth\n\n if (\n typeof id !== 'string' &&\n typeof id !== 'number' &&\n typeof id?.toString === 'function' &&\n typeof id !== 'object'\n ) {\n id = id.toString()\n }\n\n if (shouldPopulate) {\n relationshipValue = await req.payloadDataLoader.load(\n createDataloaderCacheKey({\n collectionSlug: relatedCollection.config.slug,\n currentDepth: currentDepth + 1,\n depth,\n docID: id as string,\n draft,\n fallbackLocale: fallbackLocale!,\n locale: locale!,\n overrideAccess,\n populate: populateArg,\n select:\n populateArg?.[relatedCollection.config.slug] ??\n relatedCollection.config.defaultPopulate,\n showHiddenFields,\n transactionID: req.transactionID!,\n }),\n )\n }\n\n if (relatedCollection.config.trash && relationshipValue) {\n if ((relationshipValue as Record<string, unknown>).deletedAt) {\n relationshipValue = null\n }\n } else if (!relationshipValue) {\n // ids are visible regardless of access controls\n relationshipValue = id\n }\n if (typeof index === 'number' && typeof key === 'string') {\n if (field.type !== 'join' && Array.isArray(field.relationTo)) {\n dataToUpdate[field.name][key][index].value = relationshipValue\n } else {\n if (field.type === 'join' && Array.isArray(field.collection)) {\n dataToUpdate[field.name][key][index].value = relationshipValue\n } else {\n dataToUpdate[field.name][key][index] = relationshipValue\n }\n }\n } else if (typeof index === 'number' || typeof key === 'string') {\n if (field.type === 'join') {\n if (!Array.isArray(field.collection)) {\n dataToUpdate[field.name].docs[index ?? key!] = relationshipValue\n } else {\n dataToUpdate[field.name].docs[index ?? key!].value = relationshipValue\n }\n } else if (Array.isArray(field.relationTo)) {\n dataToUpdate[field.name][index ?? key!].value = relationshipValue\n } else {\n dataToUpdate[field.name][index ?? key!] = relationshipValue\n }\n } else if (field.type !== 'join' && Array.isArray(field.relationTo)) {\n dataToUpdate[field.name].value = relationshipValue\n } else {\n if (field.type === 'join' && Array.isArray(field.collection)) {\n dataToUpdate[field.name].value = relationshipValue\n } else {\n dataToUpdate[field.name] = relationshipValue\n }\n }\n }\n}\n\ntype PromiseArgs = {\n currentDepth: number\n depth: number\n draft: boolean\n fallbackLocale: TypedFallbackLocale\n field: JoinField | RelationshipField | UploadField\n locale: null | string\n overrideAccess: boolean\n parentIsLocalized: boolean\n populate?: PopulateType\n req: PayloadRequest\n showHiddenFields: boolean\n siblingDoc: Record<string, any>\n}\n\nexport const relationshipPopulationPromise = async ({\n currentDepth,\n depth,\n draft,\n fallbackLocale,\n field,\n locale,\n overrideAccess,\n parentIsLocalized,\n populate: populateArg,\n req,\n showHiddenFields,\n siblingDoc,\n}: PromiseArgs): Promise<void> => {\n const resultingDoc = siblingDoc\n const populateDepth = fieldHasMaxDepth(field) && field.maxDepth! < depth ? field.maxDepth : depth\n const rowPromises: Promise<void>[] = []\n\n if (field.type === 'join' || (fieldSupportsMany(field) && field.hasMany)) {\n if (\n fieldShouldBeLocalized({ field, parentIsLocalized }) &&\n locale === 'all' &&\n typeof siblingDoc[field.name] === 'object' &&\n siblingDoc[field.name] !== null\n ) {\n Object.keys(siblingDoc[field.name]).forEach((localeKey) => {\n if (Array.isArray(siblingDoc[field.name][localeKey])) {\n siblingDoc[field.name][localeKey].forEach((_relatedDoc: any, index: number) => {\n const rowPromise = async () => {\n await populate({\n currentDepth,\n data: siblingDoc[field.name][localeKey][index],\n dataReference: resultingDoc,\n depth: populateDepth!,\n draft,\n fallbackLocale,\n field,\n index,\n key: localeKey,\n locale,\n overrideAccess,\n populateArg,\n req,\n showHiddenFields,\n })\n }\n rowPromises.push(rowPromise())\n })\n }\n })\n } else if (\n Array.isArray(siblingDoc[field.name]) ||\n Array.isArray(siblingDoc[field.name]?.docs)\n ) {\n ;(Array.isArray(siblingDoc[field.name])\n ? siblingDoc[field.name]\n : siblingDoc[field.name].docs\n ).forEach((relatedDoc: any, index: number) => {\n const rowPromise = async () => {\n if (relatedDoc) {\n await populate({\n currentDepth,\n data:\n !(field.type === 'join' && Array.isArray(field.collection)) && relatedDoc?.id\n ? relatedDoc.id\n : relatedDoc,\n dataReference: resultingDoc,\n depth: populateDepth!,\n draft,\n fallbackLocale,\n field,\n index,\n locale,\n overrideAccess,\n populateArg,\n req,\n showHiddenFields,\n })\n }\n }\n\n rowPromises.push(rowPromise())\n })\n }\n } else if (\n field.localized &&\n locale === 'all' &&\n typeof siblingDoc[field.name] === 'object' &&\n siblingDoc[field.name] !== null\n ) {\n Object.keys(siblingDoc[field.name]).forEach((localeKey) => {\n const rowPromise = async () => {\n await populate({\n currentDepth,\n data: siblingDoc[field.name][localeKey],\n dataReference: resultingDoc,\n depth: populateDepth!,\n draft,\n fallbackLocale,\n field,\n key: localeKey,\n locale,\n overrideAccess,\n populateArg,\n req,\n showHiddenFields,\n })\n }\n rowPromises.push(rowPromise())\n })\n\n await Promise.all(rowPromises)\n } else if (siblingDoc[field.name]) {\n await populate({\n currentDepth,\n data: siblingDoc[field.name],\n dataReference: resultingDoc,\n depth: populateDepth!,\n draft,\n fallbackLocale,\n field,\n locale,\n overrideAccess,\n populateArg,\n req,\n showHiddenFields,\n })\n }\n await Promise.all(rowPromises)\n\n if (field.type !== 'join' && fieldSupportsMany(field) && field.hasMany) {\n const notNull = Array.isArray(field.relationTo)\n ? (v: unknown) => v !== null && (v as Record<string, unknown>)?.value !== null\n : (v: unknown) => v !== null\n\n if (\n fieldShouldBeLocalized({ field, parentIsLocalized }) &&\n locale === 'all' &&\n typeof resultingDoc[field.name] === 'object' &&\n resultingDoc[field.name] !== null\n ) {\n for (const localeKey of Object.keys(resultingDoc[field.name])) {\n if (Array.isArray(resultingDoc[field.name][localeKey])) {\n resultingDoc[field.name][localeKey] = resultingDoc[field.name][localeKey].filter(notNull)\n }\n }\n } else if (Array.isArray(resultingDoc[field.name])) {\n resultingDoc[field.name] = (resultingDoc[field.name] as unknown[]).filter(notNull)\n }\n }\n}\n"],"names":["createDataloaderCacheKey","fieldHasMaxDepth","fieldShouldBeLocalized","fieldSupportsMany","populate","currentDepth","data","dataReference","depth","draft","fallbackLocale","field","index","key","locale","overrideAccess","populateArg","req","showHiddenFields","dataToUpdate","relation","type","Array","isArray","collection","relationTo","relatedCollection","payload","collections","id","value","relationshipValue","shouldPopulate","toString","payloadDataLoader","load","collectionSlug","config","slug","docID","select","defaultPopulate","transactionID","trash","deletedAt","name","docs","relationshipPopulationPromise","parentIsLocalized","siblingDoc","resultingDoc","populateDepth","maxDepth","rowPromises","hasMany","Object","keys","forEach","localeKey","_relatedDoc","rowPromise","push","relatedDoc","localized","Promise","all","notNull","v","filter"],"mappings":"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"}
|
|
@@ -48,10 +48,8 @@ type Args = {
|
|
|
48
48
|
showHiddenFields: boolean;
|
|
49
49
|
siblingDoc: JsonObject;
|
|
50
50
|
triggerAccessControl?: boolean;
|
|
51
|
-
triggerDefaultValue?: boolean;
|
|
52
51
|
triggerHooks?: boolean;
|
|
53
|
-
triggerPopulation?: boolean;
|
|
54
52
|
};
|
|
55
|
-
export declare const traverseFields: ({ blockData, collection, context, currentDepth, depth, doc, draft, fallbackLocale, fieldDepth, fieldPromises, fields, findMany, flattenLocales, global, locale, overrideAccess, parentIndexPath, parentIsLocalized, parentPath, parentSchemaPath, populate, populationPromises, req, select, selectMode, showHiddenFields, siblingDoc, triggerAccessControl,
|
|
53
|
+
export declare const traverseFields: ({ blockData, collection, context, currentDepth, depth, doc, draft, fallbackLocale, fieldDepth, fieldPromises, fields, findMany, flattenLocales, global, locale, overrideAccess, parentIndexPath, parentIsLocalized, parentPath, parentSchemaPath, populate, populationPromises, req, select, selectMode, showHiddenFields, siblingDoc, triggerAccessControl, triggerHooks, }: Args) => void;
|
|
56
54
|
export {};
|
|
57
55
|
//# sourceMappingURL=traverseFields.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/afterRead/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,UAAU,EACV,UAAU,EACX,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAI9D,KAAK,IAAI,GAAG;IACV;;OAEG;IACH,SAAS,CAAC,EAAE,UAAU,CAAA;IACtB,UAAU,EAAE,IAAI,GAAG,yBAAyB,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,UAAU,CAAA;IACf,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,EAAE,mBAAmB,CAAA;IACnC;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;IAC9B,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B,QAAQ,EAAE,OAAO,CAAA;IACjB,cAAc,EAAE,OAAO,CAAA;IACvB,MAAM,EAAE,IAAI,GAAG,qBAAqB,CAAA;IACpC,MAAM,EAAE,IAAI,GAAG,MAAM,CAAA;IACrB,cAAc,EAAE,OAAO,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;IACvB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;IACnC,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,gBAAgB,EAAE,OAAO,CAAA;IACzB,UAAU,EAAE,UAAU,CAAA;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,
|
|
1
|
+
{"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/afterRead/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,UAAU,EACV,UAAU,EACX,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAI9D,KAAK,IAAI,GAAG;IACV;;OAEG;IACH,SAAS,CAAC,EAAE,UAAU,CAAA;IACtB,UAAU,EAAE,IAAI,GAAG,yBAAyB,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,UAAU,CAAA;IACf,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,EAAE,mBAAmB,CAAA;IACnC;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;IAC9B,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B,QAAQ,EAAE,OAAO,CAAA;IACjB,cAAc,EAAE,OAAO,CAAA;IACvB,MAAM,EAAE,IAAI,GAAG,qBAAqB,CAAA;IACpC,MAAM,EAAE,IAAI,GAAG,MAAM,CAAA;IACrB,cAAc,EAAE,OAAO,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;IACvB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;IACnC,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,gBAAgB,EAAE,OAAO,CAAA;IACzB,UAAU,EAAE,UAAU,CAAA;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,cAAc,iXA8BxB,IAAI,KAAG,IAsCT,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { promise } from './promise.js';
|
|
2
|
-
export const traverseFields = ({ blockData, collection, context, currentDepth, depth, doc, draft, fallbackLocale, fieldDepth = 0, fieldPromises, fields, findMany, flattenLocales, global, locale, overrideAccess, parentIndexPath, parentIsLocalized, parentPath, parentSchemaPath, populate, populationPromises, req, select, selectMode, showHiddenFields, siblingDoc, triggerAccessControl = true,
|
|
2
|
+
export const traverseFields = ({ blockData, collection, context, currentDepth, depth, doc, draft, fallbackLocale, fieldDepth = 0, fieldPromises, fields, findMany, flattenLocales, global, locale, overrideAccess, parentIndexPath, parentIsLocalized, parentPath, parentSchemaPath, populate, populationPromises, req, select, selectMode, showHiddenFields, siblingDoc, triggerAccessControl = true, triggerHooks = true })=>{
|
|
3
3
|
fields.forEach((field, fieldIndex)=>{
|
|
4
4
|
fieldPromises.push(promise({
|
|
5
5
|
blockData,
|
|
@@ -32,9 +32,7 @@ export const traverseFields = ({ blockData, collection, context, currentDepth, d
|
|
|
32
32
|
siblingDoc,
|
|
33
33
|
siblingFields: fields,
|
|
34
34
|
triggerAccessControl,
|
|
35
|
-
|
|
36
|
-
triggerHooks,
|
|
37
|
-
triggerPopulation
|
|
35
|
+
triggerHooks
|
|
38
36
|
}));
|
|
39
37
|
});
|
|
40
38
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/fields/hooks/afterRead/traverseFields.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../../globals/config/types.js'\nimport type { RequestContext, TypedFallbackLocale } from '../../../index.js'\nimport type {\n JsonObject,\n PayloadRequest,\n PopulateType,\n SelectMode,\n SelectType,\n} from '../../../types/index.js'\nimport type { Field, TabAsField } from '../../config/types.js'\n\nimport { promise } from './promise.js'\n\ntype Args = {\n /**\n * Data of the nearest parent block. If no parent block exists, this will be the `undefined`\n */\n blockData?: JsonObject\n collection: null | SanitizedCollectionConfig\n context: RequestContext\n currentDepth: number\n depth: number\n doc: JsonObject\n draft: boolean\n fallbackLocale: TypedFallbackLocale\n /**\n * The depth of the current field being processed.\n * Fields without names (i.e. rows, collapsibles, unnamed groups)\n * simply pass this value through\n *\n * @default 0\n */\n fieldDepth?: number\n /**\n * fieldPromises are used for things like field hooks. They should be awaited before awaiting populationPromises\n */\n fieldPromises: Promise<void>[]\n fields: (Field | TabAsField)[]\n findMany: boolean\n flattenLocales: boolean\n global: null | SanitizedGlobalConfig\n locale: null | string\n overrideAccess: boolean\n parentIndexPath: string\n /**\n * @todo make required in v4.0\n */\n parentIsLocalized?: boolean\n parentPath: string\n parentSchemaPath: string\n populate?: PopulateType\n populationPromises: Promise<void>[]\n req: PayloadRequest\n select?: SelectType\n selectMode?: SelectMode\n showHiddenFields: boolean\n siblingDoc: JsonObject\n triggerAccessControl?: boolean\n
|
|
1
|
+
{"version":3,"sources":["../../../../src/fields/hooks/afterRead/traverseFields.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../../globals/config/types.js'\nimport type { RequestContext, TypedFallbackLocale } from '../../../index.js'\nimport type {\n JsonObject,\n PayloadRequest,\n PopulateType,\n SelectMode,\n SelectType,\n} from '../../../types/index.js'\nimport type { Field, TabAsField } from '../../config/types.js'\n\nimport { promise } from './promise.js'\n\ntype Args = {\n /**\n * Data of the nearest parent block. If no parent block exists, this will be the `undefined`\n */\n blockData?: JsonObject\n collection: null | SanitizedCollectionConfig\n context: RequestContext\n currentDepth: number\n depth: number\n doc: JsonObject\n draft: boolean\n fallbackLocale: TypedFallbackLocale\n /**\n * The depth of the current field being processed.\n * Fields without names (i.e. rows, collapsibles, unnamed groups)\n * simply pass this value through\n *\n * @default 0\n */\n fieldDepth?: number\n /**\n * fieldPromises are used for things like field hooks. They should be awaited before awaiting populationPromises\n */\n fieldPromises: Promise<void>[]\n fields: (Field | TabAsField)[]\n findMany: boolean\n flattenLocales: boolean\n global: null | SanitizedGlobalConfig\n locale: null | string\n overrideAccess: boolean\n parentIndexPath: string\n /**\n * @todo make required in v4.0\n */\n parentIsLocalized?: boolean\n parentPath: string\n parentSchemaPath: string\n populate?: PopulateType\n populationPromises: Promise<void>[]\n req: PayloadRequest\n select?: SelectType\n selectMode?: SelectMode\n showHiddenFields: boolean\n siblingDoc: JsonObject\n triggerAccessControl?: boolean\n triggerHooks?: boolean\n}\n\nexport const traverseFields = ({\n blockData,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldDepth = 0,\n fieldPromises,\n fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath,\n parentIsLocalized,\n parentPath,\n parentSchemaPath,\n populate,\n populationPromises,\n req,\n select,\n selectMode,\n showHiddenFields,\n siblingDoc,\n triggerAccessControl = true,\n triggerHooks = true,\n}: Args): void => {\n fields.forEach((field, fieldIndex) => {\n fieldPromises.push(\n promise({\n blockData,\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n field,\n fieldDepth,\n fieldIndex,\n fieldPromises,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentIndexPath,\n parentIsLocalized,\n parentPath,\n parentSchemaPath,\n populate,\n populationPromises,\n req,\n select,\n selectMode,\n showHiddenFields,\n siblingDoc,\n siblingFields: fields,\n triggerAccessControl,\n triggerHooks,\n }),\n )\n })\n}\n"],"names":["promise","traverseFields","blockData","collection","context","currentDepth","depth","doc","draft","fallbackLocale","fieldDepth","fieldPromises","fields","findMany","flattenLocales","global","locale","overrideAccess","parentIndexPath","parentIsLocalized","parentPath","parentSchemaPath","populate","populationPromises","req","select","selectMode","showHiddenFields","siblingDoc","triggerAccessControl","triggerHooks","forEach","field","fieldIndex","push","siblingFields"],"mappings":"AAYA,SAASA,OAAO,QAAQ,eAAc;AAkDtC,OAAO,MAAMC,iBAAiB,CAAC,EAC7BC,SAAS,EACTC,UAAU,EACVC,OAAO,EACPC,YAAY,EACZC,KAAK,EACLC,GAAG,EACHC,KAAK,EACLC,cAAc,EACdC,aAAa,CAAC,EACdC,aAAa,EACbC,MAAM,EACNC,QAAQ,EACRC,cAAc,EACdC,MAAM,EACNC,MAAM,EACNC,cAAc,EACdC,eAAe,EACfC,iBAAiB,EACjBC,UAAU,EACVC,gBAAgB,EAChBC,QAAQ,EACRC,kBAAkB,EAClBC,GAAG,EACHC,MAAM,EACNC,UAAU,EACVC,gBAAgB,EAChBC,UAAU,EACVC,uBAAuB,IAAI,EAC3BC,eAAe,IAAI,EACd;IACLlB,OAAOmB,OAAO,CAAC,CAACC,OAAOC;QACrBtB,cAAcuB,IAAI,CAChBlC,QAAQ;YACNE;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAuB;YACAtB;YACAuB;YACAtB;YACAE;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAO,eAAevB;YACfiB;YACAC;QACF;IAEJ;AACF,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtualFieldPopulationPromise.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/afterRead/virtualFieldPopulationPromise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"virtualFieldPopulationPromise.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/afterRead/virtualFieldPopulationPromise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAI3D,eAAO,MAAM,6BAA6B,gIAavC;IACD,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,EAAE,mBAAmB,CAAA;IACnC,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,OAAO,CAAA;IACvB,GAAG,EAAE,GAAG,CAAA;IACR,GAAG,EAAE,cAAc,CAAA;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,gBAAgB,EAAE,OAAO,CAAA;IACzB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC,KAAG,OAAO,CAAC,IAAI,CAkMf,CAAA"}
|