payload 3.84.1 → 4.0.0-internal.d28e9fb
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/README.md +5 -5
- package/dist/admin/elements/Nav.d.ts +13 -0
- package/dist/admin/elements/Nav.d.ts.map +1 -1
- package/dist/admin/elements/Nav.js.map +1 -1
- package/dist/admin/functions/index.d.ts +1 -38
- package/dist/admin/functions/index.d.ts.map +1 -1
- package/dist/admin/functions/index.js.map +1 -1
- package/dist/admin/types.d.ts +5 -4
- package/dist/admin/types.d.ts.map +1 -1
- package/dist/admin/types.js.map +1 -1
- package/dist/admin/views/hierarchyList.d.ts +9 -0
- package/dist/admin/views/hierarchyList.d.ts.map +1 -0
- package/dist/admin/views/hierarchyList.js +3 -0
- package/dist/admin/views/hierarchyList.js.map +1 -0
- package/dist/admin/views/index.d.ts +1 -3
- package/dist/admin/views/index.d.ts.map +1 -1
- package/dist/admin/views/index.js.map +1 -1
- package/dist/admin/views/list.d.ts +43 -2
- package/dist/admin/views/list.d.ts.map +1 -1
- package/dist/admin/views/list.js.map +1 -1
- package/dist/bin/generateImportMap/iterateCollections.d.ts.map +1 -1
- package/dist/bin/generateImportMap/iterateCollections.js +1 -0
- package/dist/bin/generateImportMap/iterateCollections.js.map +1 -1
- package/dist/bin/generateImportMap/iterateConfig.d.ts.map +1 -1
- package/dist/bin/generateImportMap/iterateConfig.js +7 -0
- package/dist/bin/generateImportMap/iterateConfig.js.map +1 -1
- package/dist/bin/generateImportMap/iterateGlobals.d.ts.map +1 -1
- package/dist/bin/generateImportMap/iterateGlobals.js +20 -8
- package/dist/bin/generateImportMap/iterateGlobals.js.map +1 -1
- package/dist/bin/index.d.ts.map +1 -1
- package/dist/bin/index.js +1 -3
- package/dist/bin/index.js.map +1 -1
- package/dist/collections/config/client.d.ts +4 -2
- package/dist/collections/config/client.d.ts.map +1 -1
- package/dist/collections/config/client.js +13 -1
- package/dist/collections/config/client.js.map +1 -1
- package/dist/collections/config/defaults.js +1 -1
- 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 +231 -184
- package/dist/collections/config/sanitize.js.map +1 -1
- package/dist/collections/config/types.d.ts +76 -91
- package/dist/collections/config/types.d.ts.map +1 -1
- package/dist/collections/config/types.js.map +1 -1
- package/dist/collections/operations/create.d.ts.map +1 -1
- package/dist/collections/operations/create.js +24 -19
- 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 +7 -2
- 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 +7 -2
- package/dist/collections/operations/deleteByID.js.map +1 -1
- package/dist/collections/operations/find.d.ts.map +1 -1
- package/dist/collections/operations/find.js +7 -2
- package/dist/collections/operations/find.js.map +1 -1
- package/dist/collections/operations/findByID.d.ts.map +1 -1
- package/dist/collections/operations/findByID.js +10 -5
- package/dist/collections/operations/findByID.js.map +1 -1
- package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
- package/dist/collections/operations/findVersionByID.js +6 -4
- 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 +6 -4
- package/dist/collections/operations/findVersions.js.map +1 -1
- package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
- package/dist/collections/operations/restoreVersion.js +7 -2
- 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 +7 -2
- package/dist/collections/operations/update.js.map +1 -1
- package/dist/collections/operations/updateByID.d.ts.map +1 -1
- package/dist/collections/operations/updateByID.js +7 -2
- package/dist/collections/operations/updateByID.js.map +1 -1
- package/dist/collections/operations/utilities/update.d.ts.map +1 -1
- package/dist/collections/operations/utilities/update.js +5 -4
- package/dist/collections/operations/utilities/update.js.map +1 -1
- package/dist/config/client.d.ts.map +1 -1
- package/dist/config/client.js +0 -10
- package/dist/config/client.js.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +0 -15
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/orderable/index.d.ts.map +1 -1
- package/dist/config/orderable/index.js +0 -4
- package/dist/config/orderable/index.js.map +1 -1
- package/dist/config/sanitize.d.ts.map +1 -1
- package/dist/config/sanitize.js +252 -266
- package/dist/config/sanitize.js.map +1 -1
- package/dist/config/types.d.ts +120 -13
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js.map +1 -1
- package/dist/exports/internal.d.ts +1 -0
- package/dist/exports/internal.d.ts.map +1 -1
- package/dist/exports/internal.js +1 -0
- package/dist/exports/internal.js.map +1 -1
- package/dist/exports/shared.d.ts +5 -3
- package/dist/exports/shared.d.ts.map +1 -1
- package/dist/exports/shared.js +3 -2
- package/dist/exports/shared.js.map +1 -1
- package/dist/fields/baseFields/slug/index.d.ts.map +1 -1
- package/dist/fields/baseFields/slug/index.js +6 -4
- package/dist/fields/baseFields/slug/index.js.map +1 -1
- package/dist/fields/config/client.d.ts.map +1 -1
- package/dist/fields/config/client.js +3 -2
- package/dist/fields/config/client.js.map +1 -1
- package/dist/fields/config/sanitize.d.ts.map +1 -1
- package/dist/fields/config/sanitize.js +335 -322
- package/dist/fields/config/sanitize.js.map +1 -1
- package/dist/fields/config/sanitizeJoinField.d.ts.map +1 -1
- package/dist/fields/config/sanitizeJoinField.js +3 -0
- package/dist/fields/config/sanitizeJoinField.js.map +1 -1
- package/dist/fields/config/types.d.ts +17 -73
- package/dist/fields/config/types.d.ts.map +1 -1
- package/dist/fields/config/types.js +11 -1
- package/dist/fields/config/types.js.map +1 -1
- package/dist/fields/isFieldDisabled.d.ts +12 -0
- package/dist/fields/isFieldDisabled.d.ts.map +1 -0
- package/dist/fields/isFieldDisabled.js +15 -0
- package/dist/fields/isFieldDisabled.js.map +1 -0
- package/dist/fields/isFieldDisabled.spec.js +134 -0
- package/dist/fields/isFieldDisabled.spec.js.map +1 -0
- package/dist/fields/validations.js +1 -1
- package/dist/fields/validations.js.map +1 -1
- package/dist/globals/config/client.d.ts +1 -1
- package/dist/globals/config/client.d.ts.map +1 -1
- package/dist/globals/config/client.js +2 -1
- package/dist/globals/config/client.js.map +1 -1
- package/dist/globals/config/sanitize.d.ts.map +1 -1
- package/dist/globals/config/sanitize.js +132 -122
- package/dist/globals/config/sanitize.js.map +1 -1
- package/dist/globals/config/types.d.ts +4 -57
- package/dist/globals/config/types.d.ts.map +1 -1
- package/dist/globals/config/types.js.map +1 -1
- package/dist/globals/operations/findOne.d.ts.map +1 -1
- package/dist/globals/operations/findOne.js +7 -2
- 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 -4
- 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 +6 -4
- package/dist/globals/operations/findVersions.js.map +1 -1
- package/dist/globals/operations/update.d.ts.map +1 -1
- package/dist/globals/operations/update.js +7 -2
- package/dist/globals/operations/update.js.map +1 -1
- package/dist/hierarchy/addHierarchyToCollection.d.ts +9 -0
- package/dist/hierarchy/addHierarchyToCollection.d.ts.map +1 -0
- package/dist/hierarchy/addHierarchyToCollection.js +76 -0
- package/dist/hierarchy/addHierarchyToCollection.js.map +1 -0
- package/dist/hierarchy/buildParentField.d.ts +11 -0
- package/dist/hierarchy/buildParentField.d.ts.map +1 -0
- package/dist/hierarchy/buildParentField.js +42 -0
- package/dist/hierarchy/buildParentField.js.map +1 -0
- package/dist/hierarchy/constants.d.ts +15 -0
- package/dist/hierarchy/constants.d.ts.map +1 -0
- package/dist/hierarchy/constants.js +11 -0
- package/dist/hierarchy/constants.js.map +1 -0
- package/dist/hierarchy/createFolderField.d.ts +39 -0
- package/dist/hierarchy/createFolderField.d.ts.map +1 -0
- package/dist/hierarchy/createFolderField.js +54 -0
- package/dist/hierarchy/createFolderField.js.map +1 -0
- package/dist/hierarchy/createTagField.d.ts +44 -0
- package/dist/hierarchy/createTagField.d.ts.map +1 -0
- package/dist/hierarchy/createTagField.js +48 -0
- package/dist/hierarchy/createTagField.js.map +1 -0
- package/dist/hierarchy/getInitialTreeData.d.ts +27 -0
- package/dist/hierarchy/getInitialTreeData.d.ts.map +1 -0
- package/dist/hierarchy/getInitialTreeData.js +125 -0
- package/dist/hierarchy/getInitialTreeData.js.map +1 -0
- package/dist/hierarchy/hooks/collectionAfterDelete.d.ts +14 -0
- package/dist/hierarchy/hooks/collectionAfterDelete.d.ts.map +1 -0
- package/dist/hierarchy/hooks/collectionAfterDelete.js +21 -0
- package/dist/hierarchy/hooks/collectionAfterDelete.js.map +1 -0
- package/dist/hierarchy/hooks/collectionAfterRead.d.ts +27 -0
- package/dist/hierarchy/hooks/collectionAfterRead.d.ts.map +1 -0
- package/dist/hierarchy/hooks/collectionAfterRead.js +72 -0
- package/dist/hierarchy/hooks/collectionAfterRead.js.map +1 -0
- package/dist/hierarchy/hooks/collectionBeforeChange.d.ts +19 -0
- package/dist/hierarchy/hooks/collectionBeforeChange.d.ts.map +1 -0
- package/dist/hierarchy/hooks/collectionBeforeChange.js +90 -0
- package/dist/hierarchy/hooks/collectionBeforeChange.js.map +1 -0
- package/dist/hierarchy/hooks/collectionBeforeDelete.d.ts +15 -0
- package/dist/hierarchy/hooks/collectionBeforeDelete.d.ts.map +1 -0
- package/dist/hierarchy/hooks/collectionBeforeDelete.js +20 -0
- package/dist/hierarchy/hooks/collectionBeforeDelete.js.map +1 -0
- package/dist/hierarchy/hooks/collectionBeforeOperation.d.ts +33 -0
- package/dist/hierarchy/hooks/collectionBeforeOperation.d.ts.map +1 -0
- package/dist/hierarchy/hooks/collectionBeforeOperation.js +66 -0
- package/dist/hierarchy/hooks/collectionBeforeOperation.js.map +1 -0
- package/dist/hierarchy/hooks/ensureSafeCollectionsChange.d.ts +8 -0
- package/dist/hierarchy/hooks/ensureSafeCollectionsChange.d.ts.map +1 -0
- package/dist/hierarchy/hooks/ensureSafeCollectionsChange.js +108 -0
- package/dist/hierarchy/hooks/ensureSafeCollectionsChange.js.map +1 -0
- package/dist/hierarchy/injectHierarchyButton.d.ts +14 -0
- package/dist/hierarchy/injectHierarchyButton.d.ts.map +1 -0
- package/dist/hierarchy/injectHierarchyButton.js +37 -0
- package/dist/hierarchy/injectHierarchyButton.js.map +1 -0
- package/dist/hierarchy/presets.d.ts +13 -0
- package/dist/hierarchy/presets.d.ts.map +1 -0
- package/dist/hierarchy/presets.js +52 -0
- package/dist/hierarchy/presets.js.map +1 -0
- package/dist/hierarchy/resolveHierarchyCollections.d.ts +23 -0
- package/dist/hierarchy/resolveHierarchyCollections.d.ts.map +1 -0
- package/dist/hierarchy/resolveHierarchyCollections.js +321 -0
- package/dist/hierarchy/resolveHierarchyCollections.js.map +1 -0
- package/dist/hierarchy/sanitizeHierarchyCollection.d.ts +14 -0
- package/dist/hierarchy/sanitizeHierarchyCollection.d.ts.map +1 -0
- package/dist/hierarchy/sanitizeHierarchyCollection.js +117 -0
- package/dist/hierarchy/sanitizeHierarchyCollection.js.map +1 -0
- package/dist/hierarchy/types.d.ts +155 -0
- package/dist/hierarchy/types.d.ts.map +1 -0
- package/dist/hierarchy/types.js +6 -0
- package/dist/hierarchy/types.js.map +1 -0
- package/dist/hierarchy/utils/buildLocalizedHierarchyPaths.d.ts +77 -0
- package/dist/hierarchy/utils/buildLocalizedHierarchyPaths.d.ts.map +1 -0
- package/dist/hierarchy/utils/buildLocalizedHierarchyPaths.js +77 -0
- package/dist/hierarchy/utils/buildLocalizedHierarchyPaths.js.map +1 -0
- package/dist/hierarchy/utils/computePaths.d.ts +31 -0
- package/dist/hierarchy/utils/computePaths.d.ts.map +1 -0
- package/dist/hierarchy/utils/computePaths.js +445 -0
- package/dist/hierarchy/utils/computePaths.js.map +1 -0
- package/dist/hierarchy/utils/findUseAsTitle.d.ts +14 -0
- package/dist/hierarchy/utils/findUseAsTitle.d.ts.map +1 -0
- package/dist/hierarchy/utils/findUseAsTitle.js +89 -0
- package/dist/hierarchy/utils/findUseAsTitle.js.map +1 -0
- package/dist/hierarchy/utils/getAncestors.d.ts +34 -0
- package/dist/hierarchy/utils/getAncestors.d.ts.map +1 -0
- package/dist/hierarchy/utils/getAncestors.js +94 -0
- package/dist/hierarchy/utils/getAncestors.js.map +1 -0
- package/dist/hierarchy/utils/getLocalizedValue.d.ts +30 -0
- package/dist/hierarchy/utils/getLocalizedValue.d.ts.map +1 -0
- package/dist/hierarchy/utils/getLocalizedValue.js +46 -0
- package/dist/hierarchy/utils/getLocalizedValue.js.map +1 -0
- package/dist/hierarchy/utils/getLocalizedValue.spec.js +250 -0
- package/dist/hierarchy/utils/getLocalizedValue.spec.js.map +1 -0
- package/dist/index.bundled.d.ts +709 -530
- package/dist/index.d.ts +28 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -8
- package/dist/index.js.map +1 -1
- package/dist/preferences/keys.d.ts +8 -4
- package/dist/preferences/keys.d.ts.map +1 -1
- package/dist/preferences/keys.js +7 -4
- package/dist/preferences/keys.js.map +1 -1
- package/dist/preferences/types.d.ts +1 -1
- package/dist/preferences/types.d.ts.map +1 -1
- package/dist/preferences/types.js.map +1 -1
- package/dist/query-presets/config.d.ts.map +1 -1
- package/dist/query-presets/config.js +5 -1
- package/dist/query-presets/config.js.map +1 -1
- package/dist/queues/config/types/index.d.ts +0 -21
- package/dist/queues/config/types/index.d.ts.map +1 -1
- package/dist/queues/config/types/index.js.map +1 -1
- package/dist/queues/config/types/taskTypes.d.ts +0 -20
- package/dist/queues/config/types/taskTypes.d.ts.map +1 -1
- package/dist/queues/config/types/taskTypes.js.map +1 -1
- package/dist/queues/errors/handleWorkflowError.d.ts.map +1 -1
- package/dist/queues/errors/handleWorkflowError.js +9 -1
- package/dist/queues/errors/handleWorkflowError.js.map +1 -1
- package/dist/queues/localAPI.d.ts.map +1 -1
- package/dist/queues/localAPI.js +26 -67
- package/dist/queues/localAPI.js.map +1 -1
- package/dist/queues/operations/handleSchedules/index.d.ts.map +1 -1
- package/dist/queues/operations/handleSchedules/index.js +1 -4
- package/dist/queues/operations/handleSchedules/index.js.map +1 -1
- package/dist/queues/operations/runJobs/index.d.ts.map +1 -1
- package/dist/queues/operations/runJobs/index.js +40 -37
- package/dist/queues/operations/runJobs/index.js.map +1 -1
- package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.d.ts.map +1 -1
- package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js +3 -22
- package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js.map +1 -1
- package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.d.ts.map +1 -1
- package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js +0 -2
- package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js.map +1 -1
- package/dist/queues/utilities/updateJob.d.ts +1 -3
- package/dist/queues/utilities/updateJob.d.ts.map +1 -1
- package/dist/queues/utilities/updateJob.js +2 -18
- package/dist/queues/utilities/updateJob.js.map +1 -1
- package/dist/types/index.d.ts +44 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/uploads/getBaseFields.d.ts.map +1 -1
- package/dist/uploads/getBaseFields.js +35 -69
- package/dist/uploads/getBaseFields.js.map +1 -1
- package/dist/uploads/getSafeFilename.d.ts +9 -4
- package/dist/uploads/getSafeFilename.d.ts.map +1 -1
- package/dist/uploads/getSafeFilename.js +5 -5
- package/dist/uploads/getSafeFilename.js.map +1 -1
- package/dist/utilities/appendDateTimezoneSelectFields.d.ts +13 -0
- package/dist/utilities/appendDateTimezoneSelectFields.d.ts.map +1 -0
- package/dist/utilities/appendDateTimezoneSelectFields.js +47 -0
- package/dist/utilities/appendDateTimezoneSelectFields.js.map +1 -0
- package/dist/utilities/appendUploadSelectFields.d.ts.map +1 -1
- package/dist/utilities/appendUploadSelectFields.js +3 -0
- package/dist/utilities/appendUploadSelectFields.js.map +1 -1
- package/dist/utilities/extractID.js +1 -1
- package/dist/utilities/extractID.js.map +1 -1
- package/dist/utilities/flattenAllFields.d.ts.map +1 -1
- package/dist/utilities/flattenAllFields.js +102 -93
- package/dist/utilities/flattenAllFields.js.map +1 -1
- package/dist/utilities/formatAdminURL.d.ts +13 -2
- package/dist/utilities/formatAdminURL.d.ts.map +1 -1
- package/dist/utilities/formatAdminURL.js.map +1 -1
- package/dist/utilities/handleEndpoints.d.ts.map +1 -1
- package/dist/utilities/handleEndpoints.js +0 -1
- package/dist/utilities/handleEndpoints.js.map +1 -1
- package/dist/utilities/resolveSelect.d.ts +16 -0
- package/dist/utilities/resolveSelect.d.ts.map +1 -0
- package/dist/utilities/resolveSelect.js +19 -0
- package/dist/utilities/resolveSelect.js.map +1 -0
- package/dist/utilities/sanitizeProfiler.d.ts +38 -0
- package/dist/utilities/sanitizeProfiler.d.ts.map +1 -0
- package/dist/utilities/sanitizeProfiler.js +101 -0
- package/dist/utilities/sanitizeProfiler.js.map +1 -0
- package/dist/utilities/sanitizeSelect.d.ts +1 -2
- package/dist/utilities/sanitizeSelect.d.ts.map +1 -1
- package/dist/utilities/sanitizeSelect.js +19 -25
- package/dist/utilities/sanitizeSelect.js.map +1 -1
- package/dist/versions/baseFields.d.ts.map +1 -1
- package/dist/versions/baseFields.js +3 -2
- package/dist/versions/baseFields.js.map +1 -1
- package/dist/versions/buildCollectionFields.d.ts.map +1 -1
- package/dist/versions/buildCollectionFields.js +0 -1
- package/dist/versions/buildCollectionFields.js.map +1 -1
- package/dist/versions/buildGlobalFields.d.ts.map +1 -1
- package/dist/versions/buildGlobalFields.js +0 -1
- package/dist/versions/buildGlobalFields.js.map +1 -1
- package/dist/versions/payloadPackageList.d.ts.map +1 -1
- package/dist/versions/payloadPackageList.js +0 -1
- package/dist/versions/payloadPackageList.js.map +1 -1
- package/package.json +4 -4
- package/dist/admin/views/folderList.d.ts +0 -56
- package/dist/admin/views/folderList.d.ts.map +0 -1
- package/dist/admin/views/folderList.js +0 -3
- package/dist/admin/views/folderList.js.map +0 -1
- package/dist/folders/addFolderCollection.d.ts +0 -10
- package/dist/folders/addFolderCollection.d.ts.map +0 -1
- package/dist/folders/addFolderCollection.js +0 -26
- package/dist/folders/addFolderCollection.js.map +0 -1
- package/dist/folders/addFolderFieldToCollection.d.ts +0 -8
- package/dist/folders/addFolderFieldToCollection.d.ts.map +0 -1
- package/dist/folders/addFolderFieldToCollection.js +0 -20
- package/dist/folders/addFolderFieldToCollection.js.map +0 -1
- package/dist/folders/buildFolderField.d.ts +0 -8
- package/dist/folders/buildFolderField.d.ts.map +0 -1
- package/dist/folders/buildFolderField.js +0 -87
- package/dist/folders/buildFolderField.js.map +0 -1
- package/dist/folders/constants.d.ts +0 -3
- package/dist/folders/constants.d.ts.map +0 -1
- package/dist/folders/constants.js +0 -4
- package/dist/folders/constants.js.map +0 -1
- package/dist/folders/createFolderCollection.d.ts +0 -11
- package/dist/folders/createFolderCollection.d.ts.map +0 -1
- package/dist/folders/createFolderCollection.js +0 -115
- package/dist/folders/createFolderCollection.js.map +0 -1
- package/dist/folders/hooks/deleteSubfoldersAfterDelete.d.ts +0 -8
- package/dist/folders/hooks/deleteSubfoldersAfterDelete.d.ts.map +0 -1
- package/dist/folders/hooks/deleteSubfoldersAfterDelete.js +0 -15
- package/dist/folders/hooks/deleteSubfoldersAfterDelete.js.map +0 -1
- package/dist/folders/hooks/dissasociateAfterDelete.d.ts +0 -8
- package/dist/folders/hooks/dissasociateAfterDelete.d.ts.map +0 -1
- package/dist/folders/hooks/dissasociateAfterDelete.js +0 -20
- package/dist/folders/hooks/dissasociateAfterDelete.js.map +0 -1
- package/dist/folders/hooks/ensureSafeCollectionsChange.d.ts +0 -5
- package/dist/folders/hooks/ensureSafeCollectionsChange.d.ts.map +0 -1
- package/dist/folders/hooks/ensureSafeCollectionsChange.js +0 -107
- package/dist/folders/hooks/ensureSafeCollectionsChange.js.map +0 -1
- package/dist/folders/hooks/reparentChildFolder.d.ts +0 -24
- package/dist/folders/hooks/reparentChildFolder.d.ts.map +0 -1
- package/dist/folders/hooks/reparentChildFolder.js +0 -72
- package/dist/folders/hooks/reparentChildFolder.js.map +0 -1
- package/dist/folders/types.d.ts +0 -118
- package/dist/folders/types.d.ts.map +0 -1
- package/dist/folders/types.js +0 -3
- package/dist/folders/types.js.map +0 -1
- package/dist/folders/utils/buildFolderWhereConstraints.d.ts +0 -13
- package/dist/folders/utils/buildFolderWhereConstraints.d.ts.map +0 -1
- package/dist/folders/utils/buildFolderWhereConstraints.js +0 -45
- package/dist/folders/utils/buildFolderWhereConstraints.js.map +0 -1
- package/dist/folders/utils/formatFolderOrDocumentItem.d.ts +0 -12
- package/dist/folders/utils/formatFolderOrDocumentItem.d.ts.map +0 -1
- package/dist/folders/utils/formatFolderOrDocumentItem.js +0 -30
- package/dist/folders/utils/formatFolderOrDocumentItem.js.map +0 -1
- package/dist/folders/utils/getFolderBreadcrumbs.d.ts +0 -14
- package/dist/folders/utils/getFolderBreadcrumbs.d.ts.map +0 -1
- package/dist/folders/utils/getFolderBreadcrumbs.js +0 -45
- package/dist/folders/utils/getFolderBreadcrumbs.js.map +0 -1
- package/dist/folders/utils/getFolderData.d.ts +0 -33
- package/dist/folders/utils/getFolderData.d.ts.map +0 -1
- package/dist/folders/utils/getFolderData.js +0 -88
- package/dist/folders/utils/getFolderData.js.map +0 -1
- package/dist/folders/utils/getFoldersAndDocumentsFromJoin.d.ts +0 -24
- package/dist/folders/utils/getFoldersAndDocumentsFromJoin.d.ts.map +0 -1
- package/dist/folders/utils/getFoldersAndDocumentsFromJoin.js +0 -66
- package/dist/folders/utils/getFoldersAndDocumentsFromJoin.js.map +0 -1
- package/dist/folders/utils/getOrphanedDocs.d.ts +0 -15
- package/dist/folders/utils/getOrphanedDocs.d.ts.map +0 -1
- package/dist/folders/utils/getOrphanedDocs.js +0 -40
- package/dist/folders/utils/getOrphanedDocs.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/globals/config/sanitize.ts"],"sourcesContent":["import type { Config, SanitizedConfig } from '../../config/types.js'\nimport type { GlobalConfig, SanitizedGlobalConfig } from './types.js'\n\nimport { defaultAccess } from '../../auth/defaultAccess.js'\nimport { sanitizeFields } from '../../fields/config/sanitize.js'\nimport { fieldAffectsData } from '../../fields/config/types.js'\nimport { mergeBaseFields } from '../../fields/mergeBaseFields.js'\nimport { flattenAllFields } from '../../utilities/flattenAllFields.js'\nimport { toWords } from '../../utilities/formatLabels.js'\nimport { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js'\nimport { baseVersionFields } from '../../versions/baseFields.js'\nimport { versionDefaults } from '../../versions/defaults.js'\nimport { defaultGlobalEndpoints } from '../endpoints/index.js'\nexport const sanitizeGlobal = async (\n config: Config,\n global: GlobalConfig,\n /**\n * If this property is set, RichText fields won't be sanitized immediately. Instead, they will be added to this array as promises\n * so that you can sanitize them together, after the config has been sanitized.\n */\n richTextSanitizationPromises?: Array<(config: SanitizedConfig) => Promise<void>>,\n _validRelationships?: string[],\n): Promise<SanitizedGlobalConfig> => {\n if (global._sanitized) {\n return global as SanitizedGlobalConfig\n }\n\n global._sanitized = true\n\n global.label = global.label || toWords(global.slug)\n\n // /////////////////////////////////\n // Ensure that collection has required object structure\n // /////////////////////////////////\n\n global.endpoints = global.endpoints ?? []\n\n if (!global.hooks) {\n global.hooks = {}\n }\n\n if (!global.access) {\n global.access = {}\n }\n\n if (!global.admin) {\n global.admin = {}\n }\n\n if (!global.access.read) {\n global.access.read = defaultAccess\n }\n\n if (!global.access.update) {\n global.access.update = defaultAccess\n }\n\n if (!global.hooks.beforeValidate) {\n global.hooks.beforeValidate = []\n }\n\n if (!global.hooks.beforeChange) {\n global.hooks.beforeChange = []\n }\n\n if (!global.hooks.afterChange) {\n global.hooks.afterChange = []\n }\n\n if (!global.hooks.beforeRead) {\n global.hooks.beforeRead = []\n }\n\n if (!global.hooks.afterRead) {\n global.hooks.afterRead = []\n }\n\n // Sanitize fields\n const validRelationships = _validRelationships ?? config.collections?.map((c) => c.slug) ?? []\n\n global.fields = await sanitizeFields({\n config,\n fields: global.fields,\n globalConfig: global,\n parentIsLocalized: false,\n richTextSanitizationPromises,\n validRelationships,\n })\n\n if (global.endpoints !== false) {\n if (!global.endpoints) {\n global.endpoints = []\n }\n\n for (const endpoint of defaultGlobalEndpoints) {\n global.endpoints.push(endpoint)\n }\n }\n\n if (global.versions) {\n if (global.versions === true) {\n global.versions = {\n drafts: false,\n max: 100,\n }\n }\n\n global.versions.max = typeof global.versions.max === 'number' ? global.versions.max : 100\n\n if (global.versions.drafts) {\n if (global.versions.drafts === true) {\n global.versions.drafts = {\n autosave: false,\n validate: false,\n }\n }\n\n const hasLocalizedFields = traverseForLocalizedFields(global.fields)\n\n if (config.localization && hasLocalizedFields) {\n if (global.versions.drafts.localizeStatus === undefined) {\n global.versions.drafts.localizeStatus = false\n }\n }\n\n global.versions.drafts.localizeStatus = config.experimental?.localizeStatus\n ? global.versions.drafts.localizeStatus\n : false\n\n if (global.versions.drafts.autosave === true) {\n global.versions.drafts.autosave = {\n interval: versionDefaults.autosaveInterval,\n }\n }\n\n if (global.versions.drafts.validate === undefined) {\n global.versions.drafts.validate = false\n }\n\n global.fields = mergeBaseFields(\n global.fields,\n baseVersionFields({\n localized: global.versions.drafts.localizeStatus ?? false,\n }),\n )\n }\n }\n\n if (!global.custom) {\n global.custom = {}\n }\n\n // /////////////////////////////////\n // Sanitize fields\n // /////////////////////////////////\n let hasUpdatedAt: boolean | null = null\n let hasCreatedAt: boolean | null = null\n global.fields.some((field) => {\n if (fieldAffectsData(field)) {\n if (field.name === 'updatedAt') {\n hasUpdatedAt = true\n }\n if (field.name === 'createdAt') {\n hasCreatedAt = true\n }\n }\n return hasCreatedAt && hasUpdatedAt\n })\n if (!hasUpdatedAt) {\n global.fields.push({\n name: 'updatedAt',\n type: 'date',\n admin: {\n disableBulkEdit: true,\n hidden: true,\n },\n label: ({ t }) => t('general:updatedAt'),\n })\n }\n if (!hasCreatedAt) {\n global.fields.push({\n name: 'createdAt',\n type: 'date',\n admin: {\n disableBulkEdit: true,\n hidden: true,\n },\n label: ({ t }) => t('general:createdAt'),\n })\n }\n\n ;(global as SanitizedGlobalConfig).flattenedFields = flattenAllFields({ fields: global.fields })\n\n return global as SanitizedGlobalConfig\n}\n"],"names":["defaultAccess","sanitizeFields","fieldAffectsData","mergeBaseFields","flattenAllFields","toWords","traverseForLocalizedFields","baseVersionFields","versionDefaults","defaultGlobalEndpoints","sanitizeGlobal","config","global","richTextSanitizationPromises","_validRelationships","_sanitized","label","slug","endpoints","hooks","access","admin","read","update","beforeValidate","beforeChange","afterChange","beforeRead","afterRead","validRelationships","collections","map","c","fields","globalConfig","parentIsLocalized","endpoint","push","versions","drafts","max","autosave","validate","hasLocalizedFields","localization","localizeStatus","undefined","experimental","interval","autosaveInterval","localized","custom","hasUpdatedAt","hasCreatedAt","some","field","name","type","disableBulkEdit","hidden","t","flattenedFields"],"mappings":"AAGA,SAASA,aAAa,QAAQ,8BAA6B;AAC3D,SAASC,cAAc,QAAQ,kCAAiC;AAChE,SAASC,gBAAgB,QAAQ,+BAA8B;AAC/D,SAASC,eAAe,QAAQ,kCAAiC;AACjE,SAASC,gBAAgB,QAAQ,sCAAqC;AACtE,SAASC,OAAO,QAAQ,kCAAiC;AACzD,SAASC,0BAA0B,QAAQ,gDAA+C;AAC1F,SAASC,iBAAiB,QAAQ,+BAA8B;AAChE,SAASC,eAAe,QAAQ,6BAA4B;AAC5D,SAASC,sBAAsB,QAAQ,wBAAuB;AAC9D,OAAO,MAAMC,iBAAiB,OAC5BC,QACAC,QACA;;;GAGC,GACDC,8BACAC;IAEA,IAAIF,OAAOG,UAAU,EAAE;QACrB,OAAOH;IACT;IAEAA,OAAOG,UAAU,GAAG;IAEpBH,OAAOI,KAAK,GAAGJ,OAAOI,KAAK,IAAIX,QAAQO,OAAOK,IAAI;IAElD,oCAAoC;IACpC,uDAAuD;IACvD,oCAAoC;IAEpCL,OAAOM,SAAS,GAAGN,OAAOM,SAAS,IAAI,EAAE;IAEzC,IAAI,CAACN,OAAOO,KAAK,EAAE;QACjBP,OAAOO,KAAK,GAAG,CAAC;IAClB;IAEA,IAAI,CAACP,OAAOQ,MAAM,EAAE;QAClBR,OAAOQ,MAAM,GAAG,CAAC;IACnB;IAEA,IAAI,CAACR,OAAOS,KAAK,EAAE;QACjBT,OAAOS,KAAK,GAAG,CAAC;IAClB;IAEA,IAAI,CAACT,OAAOQ,MAAM,CAACE,IAAI,EAAE;QACvBV,OAAOQ,MAAM,CAACE,IAAI,GAAGtB;IACvB;IAEA,IAAI,CAACY,OAAOQ,MAAM,CAACG,MAAM,EAAE;QACzBX,OAAOQ,MAAM,CAACG,MAAM,GAAGvB;IACzB;IAEA,IAAI,CAACY,OAAOO,KAAK,CAACK,cAAc,EAAE;QAChCZ,OAAOO,KAAK,CAACK,cAAc,GAAG,EAAE;IAClC;IAEA,IAAI,CAACZ,OAAOO,KAAK,CAACM,YAAY,EAAE;QAC9Bb,OAAOO,KAAK,CAACM,YAAY,GAAG,EAAE;IAChC;IAEA,IAAI,CAACb,OAAOO,KAAK,CAACO,WAAW,EAAE;QAC7Bd,OAAOO,KAAK,CAACO,WAAW,GAAG,EAAE;IAC/B;IAEA,IAAI,CAACd,OAAOO,KAAK,CAACQ,UAAU,EAAE;QAC5Bf,OAAOO,KAAK,CAACQ,UAAU,GAAG,EAAE;IAC9B;IAEA,IAAI,CAACf,OAAOO,KAAK,CAACS,SAAS,EAAE;QAC3BhB,OAAOO,KAAK,CAACS,SAAS,GAAG,EAAE;IAC7B;IAEA,kBAAkB;IAClB,MAAMC,qBAAqBf,uBAAuBH,OAAOmB,WAAW,EAAEC,IAAI,CAACC,IAAMA,EAAEf,IAAI,KAAK,EAAE;IAE9FL,OAAOqB,MAAM,GAAG,MAAMhC,eAAe;QACnCU;QACAsB,QAAQrB,OAAOqB,MAAM;QACrBC,cAActB;QACduB,mBAAmB;QACnBtB;QACAgB;IACF;IAEA,IAAIjB,OAAOM,SAAS,KAAK,OAAO;QAC9B,IAAI,CAACN,OAAOM,SAAS,EAAE;YACrBN,OAAOM,SAAS,GAAG,EAAE;QACvB;QAEA,KAAK,MAAMkB,YAAY3B,uBAAwB;YAC7CG,OAAOM,SAAS,CAACmB,IAAI,CAACD;QACxB;IACF;IAEA,IAAIxB,OAAO0B,QAAQ,EAAE;QACnB,IAAI1B,OAAO0B,QAAQ,KAAK,MAAM;YAC5B1B,OAAO0B,QAAQ,GAAG;gBAChBC,QAAQ;gBACRC,KAAK;YACP;QACF;QAEA5B,OAAO0B,QAAQ,CAACE,GAAG,GAAG,OAAO5B,OAAO0B,QAAQ,CAACE,GAAG,KAAK,WAAW5B,OAAO0B,QAAQ,CAACE,GAAG,GAAG;QAEtF,IAAI5B,OAAO0B,QAAQ,CAACC,MAAM,EAAE;YAC1B,IAAI3B,OAAO0B,QAAQ,CAACC,MAAM,KAAK,MAAM;gBACnC3B,OAAO0B,QAAQ,CAACC,MAAM,GAAG;oBACvBE,UAAU;oBACVC,UAAU;gBACZ;YACF;YAEA,MAAMC,qBAAqBrC,2BAA2BM,OAAOqB,MAAM;YAEnE,IAAItB,OAAOiC,YAAY,IAAID,oBAAoB;gBAC7C,IAAI/B,OAAO0B,QAAQ,CAACC,MAAM,CAACM,cAAc,KAAKC,WAAW;oBACvDlC,OAAO0B,QAAQ,CAACC,MAAM,CAACM,cAAc,GAAG;gBAC1C;YACF;YAEAjC,OAAO0B,QAAQ,CAACC,MAAM,CAACM,cAAc,GAAGlC,OAAOoC,YAAY,EAAEF,iBACzDjC,OAAO0B,QAAQ,CAACC,MAAM,CAACM,cAAc,GACrC;YAEJ,IAAIjC,OAAO0B,QAAQ,CAACC,MAAM,CAACE,QAAQ,KAAK,MAAM;gBAC5C7B,OAAO0B,QAAQ,CAACC,MAAM,CAACE,QAAQ,GAAG;oBAChCO,UAAUxC,gBAAgByC,gBAAgB;gBAC5C;YACF;YAEA,IAAIrC,OAAO0B,QAAQ,CAACC,MAAM,CAACG,QAAQ,KAAKI,WAAW;gBACjDlC,OAAO0B,QAAQ,CAACC,MAAM,CAACG,QAAQ,GAAG;YACpC;YAEA9B,OAAOqB,MAAM,GAAG9B,gBACdS,OAAOqB,MAAM,EACb1B,kBAAkB;gBAChB2C,WAAWtC,OAAO0B,QAAQ,CAACC,MAAM,CAACM,cAAc,IAAI;YACtD;QAEJ;IACF;IAEA,IAAI,CAACjC,OAAOuC,MAAM,EAAE;QAClBvC,OAAOuC,MAAM,GAAG,CAAC;IACnB;IAEA,oCAAoC;IACpC,kBAAkB;IAClB,oCAAoC;IACpC,IAAIC,eAA+B;IACnC,IAAIC,eAA+B;IACnCzC,OAAOqB,MAAM,CAACqB,IAAI,CAAC,CAACC;QAClB,IAAIrD,iBAAiBqD,QAAQ;YAC3B,IAAIA,MAAMC,IAAI,KAAK,aAAa;gBAC9BJ,eAAe;YACjB;YACA,IAAIG,MAAMC,IAAI,KAAK,aAAa;gBAC9BH,eAAe;YACjB;QACF;QACA,OAAOA,gBAAgBD;IACzB;IACA,IAAI,CAACA,cAAc;QACjBxC,OAAOqB,MAAM,CAACI,IAAI,CAAC;YACjBmB,MAAM;YACNC,MAAM;YACNpC,OAAO;gBACLqC,iBAAiB;gBACjBC,QAAQ;YACV;YACA3C,OAAO,CAAC,EAAE4C,CAAC,EAAE,GAAKA,EAAE;QACtB;IACF;IACA,IAAI,CAACP,cAAc;QACjBzC,OAAOqB,MAAM,CAACI,IAAI,CAAC;YACjBmB,MAAM;YACNC,MAAM;YACNpC,OAAO;gBACLqC,iBAAiB;gBACjBC,QAAQ;YACV;YACA3C,OAAO,CAAC,EAAE4C,CAAC,EAAE,GAAKA,EAAE;QACtB;IACF;;IAEEhD,OAAiCiD,eAAe,GAAGzD,iBAAiB;QAAE6B,QAAQrB,OAAOqB,MAAM;IAAC;IAE9F,OAAOrB;AACT,EAAC"}
|
|
1
|
+
{"version":3,"sources":["../../../src/globals/config/sanitize.ts"],"sourcesContent":["import type { Config, SanitizedConfig } from '../../config/types.js'\nimport type { GlobalConfig, SanitizedGlobalConfig } from './types.js'\n\nimport { defaultAccess } from '../../auth/defaultAccess.js'\nimport { sanitizeFields } from '../../fields/config/sanitize.js'\nimport { fieldAffectsData } from '../../fields/config/types.js'\nimport { mergeBaseFields } from '../../fields/mergeBaseFields.js'\nimport { flattenAllFields } from '../../utilities/flattenAllFields.js'\nimport { toWords } from '../../utilities/formatLabels.js'\nimport { endSpan, startSpan } from '../../utilities/sanitizeProfiler.js'\nimport { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js'\nimport { baseVersionFields } from '../../versions/baseFields.js'\nimport { versionDefaults } from '../../versions/defaults.js'\nimport { defaultGlobalEndpoints } from '../endpoints/index.js'\nexport const sanitizeGlobal = async (\n config: Config,\n global: GlobalConfig,\n /**\n * If this property is set, RichText fields won't be sanitized immediately. Instead, they will be added to this array as promises\n * so that you can sanitize them together, after the config has been sanitized.\n */\n richTextSanitizationPromises?: Array<(config: SanitizedConfig) => Promise<void>>,\n _validRelationships?: string[],\n): Promise<SanitizedGlobalConfig> => {\n if (global._sanitized) {\n return global as SanitizedGlobalConfig\n }\n\n const __profSpan = startSpan('sanitizeGlobal', global.slug)\n try {\n global._sanitized = true\n\n global.label = global.label || toWords(global.slug)\n\n // /////////////////////////////////\n // Ensure that collection has required object structure\n // /////////////////////////////////\n\n global.endpoints = global.endpoints ?? []\n\n if (!global.hooks) {\n global.hooks = {}\n }\n\n if (!global.access) {\n global.access = {}\n }\n\n if (!global.admin) {\n global.admin = {}\n }\n\n if (!global.access.read) {\n global.access.read = defaultAccess\n }\n\n if (!global.access.update) {\n global.access.update = defaultAccess\n }\n\n if (!global.hooks.beforeValidate) {\n global.hooks.beforeValidate = []\n }\n\n if (!global.hooks.beforeChange) {\n global.hooks.beforeChange = []\n }\n\n if (!global.hooks.afterChange) {\n global.hooks.afterChange = []\n }\n\n if (!global.hooks.beforeRead) {\n global.hooks.beforeRead = []\n }\n\n if (!global.hooks.afterRead) {\n global.hooks.afterRead = []\n }\n\n // Sanitize fields\n const validRelationships = _validRelationships ?? config.collections?.map((c) => c.slug) ?? []\n\n global.fields = await sanitizeFields({\n config,\n fields: global.fields,\n globalConfig: global,\n parentIsLocalized: false,\n richTextSanitizationPromises,\n validRelationships,\n })\n\n if (global.endpoints !== false) {\n if (!global.endpoints) {\n global.endpoints = []\n }\n\n for (const endpoint of defaultGlobalEndpoints) {\n global.endpoints.push(endpoint)\n }\n }\n\n if (global.versions) {\n if (global.versions === true) {\n global.versions = {\n drafts: false,\n max: 100,\n }\n }\n\n global.versions.max = typeof global.versions.max === 'number' ? global.versions.max : 100\n\n if (global.versions.drafts) {\n if (global.versions.drafts === true) {\n global.versions.drafts = {\n autosave: false,\n validate: false,\n }\n }\n\n const hasLocalizedFields = traverseForLocalizedFields(global.fields)\n\n if (config.localization && hasLocalizedFields) {\n if (global.versions.drafts.localizeStatus === undefined) {\n global.versions.drafts.localizeStatus = false\n }\n }\n\n global.versions.drafts.localizeStatus = config.experimental?.localizeStatus\n ? global.versions.drafts.localizeStatus\n : false\n\n if (global.versions.drafts.autosave === true) {\n global.versions.drafts.autosave = {\n interval: versionDefaults.autosaveInterval,\n }\n }\n\n if (global.versions.drafts.validate === undefined) {\n global.versions.drafts.validate = false\n }\n\n global.fields = mergeBaseFields(\n global.fields,\n baseVersionFields({\n localized: global.versions.drafts.localizeStatus ?? false,\n }),\n )\n }\n }\n\n if (!global.custom) {\n global.custom = {}\n }\n\n // /////////////////////////////////\n // Sanitize fields\n // /////////////////////////////////\n let hasUpdatedAt: boolean | null = null\n let hasCreatedAt: boolean | null = null\n global.fields.some((field) => {\n if (fieldAffectsData(field)) {\n if (field.name === 'updatedAt') {\n hasUpdatedAt = true\n }\n if (field.name === 'createdAt') {\n hasCreatedAt = true\n }\n }\n return hasCreatedAt && hasUpdatedAt\n })\n if (!hasUpdatedAt) {\n global.fields.push({\n name: 'updatedAt',\n type: 'date',\n admin: {\n disabled: { bulkEdit: true },\n hidden: true,\n },\n label: ({ t }) => t('general:updatedAt'),\n })\n }\n if (!hasCreatedAt) {\n global.fields.push({\n name: 'createdAt',\n type: 'date',\n admin: {\n disabled: { bulkEdit: true },\n hidden: true,\n },\n label: ({ t }) => t('general:createdAt'),\n })\n }\n\n ;(global as SanitizedGlobalConfig).flattenedFields = flattenAllFields({ fields: global.fields })\n\n return global as SanitizedGlobalConfig\n } finally {\n endSpan(__profSpan)\n }\n}\n"],"names":["defaultAccess","sanitizeFields","fieldAffectsData","mergeBaseFields","flattenAllFields","toWords","endSpan","startSpan","traverseForLocalizedFields","baseVersionFields","versionDefaults","defaultGlobalEndpoints","sanitizeGlobal","config","global","richTextSanitizationPromises","_validRelationships","_sanitized","__profSpan","slug","label","endpoints","hooks","access","admin","read","update","beforeValidate","beforeChange","afterChange","beforeRead","afterRead","validRelationships","collections","map","c","fields","globalConfig","parentIsLocalized","endpoint","push","versions","drafts","max","autosave","validate","hasLocalizedFields","localization","localizeStatus","undefined","experimental","interval","autosaveInterval","localized","custom","hasUpdatedAt","hasCreatedAt","some","field","name","type","disabled","bulkEdit","hidden","t","flattenedFields"],"mappings":"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"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import type { GraphQLNonNull, GraphQLObjectType } from 'graphql';
|
|
2
2
|
import type { DeepRequired, IsAny } from 'ts-essentials';
|
|
3
|
-
import type {
|
|
4
|
-
import type { Access, CustomComponent, EditConfig, Endpoint, EntityDescription, EntityDescriptionComponent, GeneratePreviewURL, LabelFunction, LivePreviewConfig, MetaConfig, PayloadComponent, StaticLabel } from '../../config/types.js';
|
|
3
|
+
import type { Access, Endpoint, EntityDescription, GeneratePreviewURL, LabelFunction, LivePreviewConfig, MetaConfig, SharedAdminComponents, StaticLabel } from '../../config/types.js';
|
|
5
4
|
import type { DBIdentifierName } from '../../database/types.js';
|
|
6
5
|
import type { Field, FlattenedField } from '../../fields/config/types.js';
|
|
7
6
|
import type { GeneratedTypes, GlobalAdminCustom, GlobalCustom, GlobalSlug, RequestContext, TypedGlobal, TypedGlobalSelect } from '../../index.js';
|
|
8
|
-
import type { PayloadRequest, SelectIncludeType, Where } from '../../types/index.js';
|
|
7
|
+
import type { PayloadRequest, SelectIncludeType, Where, WithSelectFn } from '../../types/index.js';
|
|
9
8
|
import type { IncomingGlobalVersions, SanitizedGlobalVersions } from '../../versions/types.js';
|
|
10
9
|
export type DataFromGlobalSlug<TSlug extends GlobalSlug> = TypedGlobal[TSlug];
|
|
11
10
|
export type SelectFromGlobalSlug<TSlug extends GlobalSlug> = TypedGlobalSelect[TSlug];
|
|
@@ -123,51 +122,7 @@ export type GlobalAdminOptions = {
|
|
|
123
122
|
/**
|
|
124
123
|
* Custom admin components
|
|
125
124
|
*/
|
|
126
|
-
components?:
|
|
127
|
-
elements?: {
|
|
128
|
-
/**
|
|
129
|
-
* Inject custom components before the document controls
|
|
130
|
-
*/
|
|
131
|
-
beforeDocumentControls?: CustomComponent[];
|
|
132
|
-
Description?: EntityDescriptionComponent;
|
|
133
|
-
/**
|
|
134
|
-
* Replaces the "Preview" button
|
|
135
|
-
*/
|
|
136
|
-
PreviewButton?: CustomPreviewButton;
|
|
137
|
-
/**
|
|
138
|
-
* Replaces the "Publish" button
|
|
139
|
-
* + drafts must be enabled
|
|
140
|
-
*/
|
|
141
|
-
PublishButton?: PayloadComponent<PublishButtonServerProps, PublishButtonClientProps>;
|
|
142
|
-
/**
|
|
143
|
-
* Replaces the "Save" button
|
|
144
|
-
* + drafts must be disabled
|
|
145
|
-
*/
|
|
146
|
-
SaveButton?: CustomSaveButton;
|
|
147
|
-
/**
|
|
148
|
-
* Replaces the "Save Draft" button
|
|
149
|
-
* + drafts must be enabled
|
|
150
|
-
* + autosave must be disabled
|
|
151
|
-
*/
|
|
152
|
-
SaveDraftButton?: CustomSaveDraftButton;
|
|
153
|
-
/**
|
|
154
|
-
* Replaces the "Status" section
|
|
155
|
-
*/
|
|
156
|
-
Status?: CustomStatus;
|
|
157
|
-
/**
|
|
158
|
-
* Replaces the "Unpublish" button
|
|
159
|
-
* + drafts must be enabled
|
|
160
|
-
*/
|
|
161
|
-
UnpublishButton?: PayloadComponent<UnpublishButtonServerProps, UnpublishButtonClientProps>;
|
|
162
|
-
};
|
|
163
|
-
views?: {
|
|
164
|
-
/**
|
|
165
|
-
* Set to a React component to replace the entire Edit View, including all nested routes.
|
|
166
|
-
* Set to an object to replace or modify individual nested routes, or to add new ones.
|
|
167
|
-
*/
|
|
168
|
-
edit?: EditConfig;
|
|
169
|
-
};
|
|
170
|
-
};
|
|
125
|
+
components?: SharedAdminComponents;
|
|
171
126
|
/** Extension point to add your custom data. Available in server and client. */
|
|
172
127
|
custom?: GlobalAdminCustom;
|
|
173
128
|
/**
|
|
@@ -187,10 +142,6 @@ export type GlobalAdminOptions = {
|
|
|
187
142
|
hidden?: ((args: {
|
|
188
143
|
user: PayloadRequest['user'];
|
|
189
144
|
}) => boolean) | boolean;
|
|
190
|
-
/**
|
|
191
|
-
* Hide the API URL within the Edit View
|
|
192
|
-
*/
|
|
193
|
-
hideAPIURL?: boolean;
|
|
194
145
|
/**
|
|
195
146
|
* Live preview options
|
|
196
147
|
*/
|
|
@@ -221,10 +172,6 @@ export type GlobalConfig<TSlug extends GlobalSlug = any> = {
|
|
|
221
172
|
dbName?: DBIdentifierName;
|
|
222
173
|
endpoints?: false | Omit<Endpoint, 'root'>[];
|
|
223
174
|
fields: Field[];
|
|
224
|
-
/**
|
|
225
|
-
* Specify which fields should be selected always, regardless of the `select` query which can be useful that the field exists for access control / hooks
|
|
226
|
-
*/
|
|
227
|
-
forceSelect?: IsAny<SelectFromGlobalSlug<TSlug>> extends true ? SelectIncludeType : SelectFromGlobalSlug<TSlug>;
|
|
228
175
|
graphQL?: {
|
|
229
176
|
disableMutations?: true;
|
|
230
177
|
disableQueries?: true;
|
|
@@ -257,7 +204,7 @@ export type GlobalConfig<TSlug extends GlobalSlug = any> = {
|
|
|
257
204
|
interface?: string;
|
|
258
205
|
};
|
|
259
206
|
versions?: boolean | IncomingGlobalVersions;
|
|
260
|
-
}
|
|
207
|
+
} & Pick<WithSelectFn<IsAny<SelectFromGlobalSlug<TSlug>> extends true ? SelectIncludeType : SelectFromGlobalSlug<TSlug>>, 'select'>;
|
|
261
208
|
export interface SanitizedGlobalConfig extends Omit<DeepRequired<GlobalConfig>, 'endpoints' | 'fields' | 'slug' | 'versions'> {
|
|
262
209
|
endpoints: Endpoint[] | false;
|
|
263
210
|
fields: Field[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/globals/config/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAExD,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/globals/config/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/globals/config/types.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { GraphQLNonNull, GraphQLObjectType } from 'graphql'\nimport type { DeepRequired, IsAny } from 'ts-essentials'\n\nimport type {\n
|
|
1
|
+
{"version":3,"sources":["../../../src/globals/config/types.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { GraphQLNonNull, GraphQLObjectType } from 'graphql'\nimport type { DeepRequired, IsAny } from 'ts-essentials'\n\nimport type {\n Access,\n Endpoint,\n EntityDescription,\n GeneratePreviewURL,\n LabelFunction,\n LivePreviewConfig,\n MetaConfig,\n SharedAdminComponents,\n StaticLabel,\n} from '../../config/types.js'\nimport type { DBIdentifierName } from '../../database/types.js'\nimport type { Field, FlattenedField } from '../../fields/config/types.js'\nimport type {\n GeneratedTypes,\n GlobalAdminCustom,\n GlobalCustom,\n GlobalSlug,\n RequestContext,\n TypedGlobal,\n TypedGlobalSelect,\n} from '../../index.js'\nimport type { PayloadRequest, SelectIncludeType, Where, WithSelectFn } from '../../types/index.js'\nimport type { IncomingGlobalVersions, SanitizedGlobalVersions } from '../../versions/types.js'\n\nexport type DataFromGlobalSlug<TSlug extends GlobalSlug> = TypedGlobal[TSlug]\n\nexport type SelectFromGlobalSlug<TSlug extends GlobalSlug> = TypedGlobalSelect[TSlug]\n\n/**\n * Global slugs that do not have drafts enabled.\n * Detects globals without drafts by checking for the absence of the `_status` field.\n */\nexport type GlobalsWithoutDrafts = {\n [TSlug in GlobalSlug]: DataFromGlobalSlug<TSlug> extends { _status?: any } ? never : TSlug\n}[GlobalSlug]\n\n/**\n * Conditionally allows or forbids the `draft` property based on global configuration.\n * When `strictDraftTypes` is enabled, the `draft` property is forbidden on globals without drafts.\n */\nexport type DraftFlagFromGlobalSlug<TSlug extends GlobalSlug> = GeneratedTypes extends {\n strictDraftTypes: true\n}\n ? TSlug extends GlobalsWithoutDrafts\n ? {\n /**\n * The `draft` property is not allowed because this global does not have `versions.drafts` enabled.\n */\n draft?: never\n }\n : {\n /**\n * Whether the global should be queried from the versions table/collection or not. [More](https://payloadcms.com/docs/versions/drafts#draft-api)\n */\n draft?: boolean\n }\n : {\n /**\n * Whether the global should be queried from the versions table/collection or not. [More](https://payloadcms.com/docs/versions/drafts#draft-api)\n */\n draft?: boolean\n }\n\nexport type BeforeValidateHook = (args: {\n context: RequestContext\n data?: any\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n originalDoc?: any\n /**\n * Whether access control is being overridden for this operation\n */\n overrideAccess?: boolean\n req: PayloadRequest\n}) => any\n\nexport type BeforeChangeHook = (args: {\n context: RequestContext\n data: any\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n originalDoc?: any\n /**\n * Whether access control is being overridden for this operation\n */\n overrideAccess?: boolean\n req: PayloadRequest\n}) => any\n\nexport type AfterChangeHook = (args: {\n context: RequestContext\n data: any\n doc: any\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n /**\n * Whether access control is being overridden for this operation\n */\n overrideAccess?: boolean\n previousDoc: any\n req: PayloadRequest\n}) => any\n\nexport type BeforeReadHook = (args: {\n context: RequestContext\n doc: any\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n /**\n * Whether access control is being overridden for this operation\n */\n overrideAccess?: boolean\n req: PayloadRequest\n}) => any\n\nexport type AfterReadHook = (args: {\n context: RequestContext\n doc: any\n findMany?: boolean\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n /**\n * Whether access control is being overridden for this operation\n */\n overrideAccess?: boolean\n query?: Where\n req: PayloadRequest\n}) => any\n\nexport type HookOperationType = 'countVersions' | 'read' | 'restoreVersion' | 'update'\n\nexport type BeforeOperationHook = (args: {\n args?: any\n context: RequestContext\n /**\n * The Global which this hook is being run on\n * */\n global: SanitizedGlobalConfig\n /**\n * Hook operation being performed\n */\n operation: HookOperationType\n /**\n * Whether access control is being overridden for this operation\n */\n overrideAccess?: boolean\n req: PayloadRequest\n}) => any\n\nexport type GlobalAdminOptions = {\n /**\n * Custom admin components\n */\n components?: SharedAdminComponents\n /** Extension point to add your custom data. Available in server and client. */\n custom?: GlobalAdminCustom\n /**\n * Custom description for collection\n */\n description?: EntityDescription\n /**\n * Specify a navigational group for globals in the admin sidebar.\n * - Provide a string to place the entity in a custom group.\n * - Provide a record to define localized group names.\n * - Set to `false` to exclude the entity from the sidebar / dashboard without disabling its routes.\n */\n group?: false | Record<string, string> | string\n /**\n * Exclude the global from the admin nav and routes\n */\n hidden?: ((args: { user: PayloadRequest['user'] }) => boolean) | boolean\n /**\n * Live preview options\n */\n livePreview?: LivePreviewConfig\n meta?: MetaConfig\n /**\n * Function to generate custom preview URL\n */\n preview?: GeneratePreviewURL\n}\n\nexport type GlobalConfig<TSlug extends GlobalSlug = any> = {\n /**\n * Do not set this property manually. This is set to true during sanitization, to avoid\n * sanitizing the same global multiple times.\n */\n _sanitized?: boolean\n access?: {\n read?: Access\n readVersions?: Access\n update?: Access\n }\n admin?: GlobalAdminOptions\n /** Extension point to add your custom data. Server only. */\n custom?: GlobalCustom\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n endpoints?: false | Omit<Endpoint, 'root'>[]\n fields: Field[]\n graphQL?:\n | {\n disableMutations?: true\n disableQueries?: true\n name?: string\n }\n | false\n hooks?: {\n afterChange?: AfterChangeHook[]\n afterRead?: AfterReadHook[]\n beforeChange?: BeforeChangeHook[]\n beforeOperation?: BeforeOperationHook[]\n beforeRead?: BeforeReadHook[]\n beforeValidate?: BeforeValidateHook[]\n }\n label?: LabelFunction | StaticLabel\n /**\n * Enables / Disables the ability to lock documents while editing\n * @default true\n */\n lockDocuments?:\n | {\n duration: number\n }\n | false\n slug: string\n /**\n * Options used in typescript generation\n */\n typescript?: {\n /**\n * Typescript generation name given to the interface type\n */\n interface?: string\n }\n versions?: boolean | IncomingGlobalVersions\n} & Pick<\n WithSelectFn<\n IsAny<SelectFromGlobalSlug<TSlug>> extends true\n ? SelectIncludeType\n : SelectFromGlobalSlug<TSlug>\n >,\n 'select'\n>\n\nexport interface SanitizedGlobalConfig\n extends Omit<DeepRequired<GlobalConfig>, 'endpoints' | 'fields' | 'slug' | 'versions'> {\n endpoints: Endpoint[] | false\n fields: Field[]\n /**\n * Fields in the database schema structure\n * Rows / collapsible / tabs w/o name `fields` merged to top, UIs are excluded\n */\n flattenedFields: FlattenedField[]\n slug: GlobalSlug\n versions?: SanitizedGlobalVersions\n}\n\nexport type Globals = {\n config: SanitizedGlobalConfig[]\n graphQL?:\n | {\n [slug: string]: {\n mutationInputType: GraphQLNonNull<any>\n type: GraphQLObjectType\n versionType?: GraphQLObjectType\n }\n }\n | false\n}\n"],"names":[],"mappings":"AAAA,qDAAqD,GAyQrD,WAWC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findOne.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/findOne.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAA;AAE7E,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,UAAU,EAEX,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAI/D,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,uCAAuC,CAAA;
|
|
1
|
+
{"version":3,"file":"findOne.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/findOne.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAA;AAE7E,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,UAAU,EAEX,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAI/D,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,uCAAuC,CAAA;AASrF,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,qBAAqB,CAAA;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC,GACnD,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAA;AAEjD,eAAO,MAAM,gBAAgB,GAAU,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAChE,iBAAiB,KACtB,OAAO,CAAC,CAAC,CAiPX,CAAA"}
|
|
@@ -5,6 +5,7 @@ import { lockedDocumentsCollectionSlug } from '../../locked-documents/config.js'
|
|
|
5
5
|
import { getSelectMode } from '../../utilities/getSelectMode.js';
|
|
6
6
|
import { hasDraftsEnabled } from '../../utilities/getVersionsConfig.js';
|
|
7
7
|
import { killTransaction } from '../../utilities/killTransaction.js';
|
|
8
|
+
import { resolveSelect } from '../../utilities/resolveSelect.js';
|
|
8
9
|
import { sanitizeSelect } from '../../utilities/sanitizeSelect.js';
|
|
9
10
|
import { replaceWithDraftIfAvailable } from '../../versions/drafts/replaceWithDraftIfAvailable.js';
|
|
10
11
|
export const findOneOperation = async (args)=>{
|
|
@@ -44,8 +45,12 @@ export const findOneOperation = async (args)=>{
|
|
|
44
45
|
}
|
|
45
46
|
const select = sanitizeSelect({
|
|
46
47
|
fields: globalConfig.flattenedFields,
|
|
47
|
-
|
|
48
|
-
|
|
48
|
+
select: resolveSelect({
|
|
49
|
+
config: globalConfig.select,
|
|
50
|
+
operation: 'read',
|
|
51
|
+
req,
|
|
52
|
+
select: incomingSelect
|
|
53
|
+
})
|
|
49
54
|
});
|
|
50
55
|
// /////////////////////////////////////
|
|
51
56
|
// Perform database operation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/globals/operations/findOne.ts"],"sourcesContent":["import { ar } from '@payloadcms/translations/languages/ar'\n\nimport type { FindOptions } from '../../collections/operations/local/find.js'\nimport type { AccessResult } from '../../config/types.js'\nimport type {\n JsonObject,\n PayloadRequest,\n PopulateType,\n SelectType,\n Where,\n} from '../../types/index.js'\nimport type { SanitizedGlobalConfig } from '../config/types.js'\n\nimport { executeAccess } from '../../auth/executeAccess.js'\nimport { NotFound } from '../../errors/NotFound.js'\nimport { afterRead, type AfterReadArgs } from '../../fields/hooks/afterRead/index.js'\nimport { lockedDocumentsCollectionSlug } from '../../locked-documents/config.js'\nimport { getSelectMode } from '../../utilities/getSelectMode.js'\nimport { hasDraftsEnabled } from '../../utilities/getVersionsConfig.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { sanitizeSelect } from '../../utilities/sanitizeSelect.js'\nimport { replaceWithDraftIfAvailable } from '../../versions/drafts/replaceWithDraftIfAvailable.js'\n\nexport type GlobalFindOneArgs = {\n /**\n * You may pass the document data directly which will skip the `db.findOne` database query.\n * This is useful if you want to use this endpoint solely for running hooks and populating data.\n */\n data?: Record<string, unknown>\n depth?: number\n disableErrors?: boolean\n draft?: boolean\n globalConfig: SanitizedGlobalConfig\n includeLockStatus?: boolean\n overrideAccess?: boolean\n populate?: PopulateType\n req: PayloadRequest\n showHiddenFields?: boolean\n slug: string\n} & Pick<AfterReadArgs<JsonObject>, 'flattenLocales'> &\n Pick<FindOptions<string, SelectType>, 'select'>\n\nexport const findOneOperation = async <T extends Record<string, unknown>>(\n args: GlobalFindOneArgs,\n): Promise<T> => {\n const {\n slug,\n depth,\n disableErrors,\n draft: replaceWithVersion = false,\n flattenLocales,\n globalConfig,\n includeLockStatus: includeLockStatusFromArgs,\n overrideAccess = false,\n populate,\n req: { fallbackLocale, locale },\n req,\n select: incomingSelect,\n showHiddenFields,\n } = args\n\n const includeLockStatus =\n includeLockStatusFromArgs && req.payload.collections?.[lockedDocumentsCollectionSlug]\n\n try {\n // /////////////////////////////////////\n // beforeOperation - Global\n // /////////////////////////////////////\n\n if (globalConfig.hooks?.beforeOperation?.length) {\n for (const hook of globalConfig.hooks.beforeOperation) {\n args =\n (await hook({\n args,\n context: args.req.context,\n global: globalConfig,\n operation: 'read',\n overrideAccess,\n req: args.req,\n })) || args\n }\n }\n\n // /////////////////////////////////////\n // Retrieve and execute access\n // /////////////////////////////////////\n\n let accessResult!: AccessResult\n\n if (!overrideAccess) {\n accessResult = await executeAccess({ disableErrors, req }, globalConfig.access.read)\n }\n\n if (accessResult === false) {\n if (!disableErrors) {\n throw new NotFound(req.t)\n }\n return null!\n }\n\n const select = sanitizeSelect({\n fields: globalConfig.flattenedFields,\n forceSelect: globalConfig.forceSelect,\n select: incomingSelect,\n })\n\n // /////////////////////////////////////\n // Perform database operation\n // /////////////////////////////////////\n\n let dbSelect = select\n\n if (\n globalConfig.versions?.drafts &&\n replaceWithVersion &&\n select &&\n getSelectMode(select) === 'include'\n ) {\n dbSelect = { ...select, createdAt: true, updatedAt: true }\n }\n const docFromDB = await req.payload.db.findGlobal({\n slug,\n locale: locale!,\n req,\n select: dbSelect,\n where: overrideAccess ? undefined : (accessResult as Where),\n })\n\n // Check if no document was returned (Postgres returns {} instead of null)\n const hasDoc = docFromDB && Object.keys(docFromDB).length > 0\n\n if (!hasDoc && !args.data && !overrideAccess && accessResult !== true) {\n if (!disableErrors) {\n return {} as any\n }\n return null!\n }\n\n let doc = (args.data as any) ?? (hasDoc ? docFromDB : null) ?? {}\n\n // /////////////////////////////////////\n // Include Lock Status if required\n // /////////////////////////////////////\n if (includeLockStatus && slug) {\n let lockStatus: JsonObject | null = null\n\n try {\n const lockDocumentsProp = globalConfig?.lockDocuments\n\n const lockDurationDefault = 300 // Default 5 minutes in seconds\n const lockDuration =\n typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault\n const lockDurationInMilliseconds = lockDuration * 1000\n\n const lockedDocument = await req.payload.find({\n collection: lockedDocumentsCollectionSlug,\n depth: 1,\n limit: 1,\n overrideAccess: false,\n pagination: false,\n req,\n where: {\n and: [\n {\n globalSlug: {\n equals: slug,\n },\n },\n {\n updatedAt: {\n greater_than: new Date(new Date().getTime() - lockDurationInMilliseconds),\n },\n },\n ],\n },\n })\n\n if (lockedDocument && lockedDocument.docs.length > 0) {\n lockStatus = lockedDocument.docs[0]!\n }\n } catch {\n // swallow error\n }\n\n doc._isLocked = !!lockStatus\n doc._userEditing = lockStatus?.user?.value ?? null\n }\n\n // /////////////////////////////////////\n // Replace document with draft if available\n // /////////////////////////////////////\n\n if (replaceWithVersion && hasDraftsEnabled(globalConfig)) {\n doc = await replaceWithDraftIfAvailable({\n accessResult,\n doc,\n entity: globalConfig,\n entityType: 'global',\n overrideAccess,\n req,\n select,\n })\n }\n\n // /////////////////////////////////////\n // Execute before global hook\n // /////////////////////////////////////\n\n if (globalConfig.hooks?.beforeRead?.length) {\n for (const hook of globalConfig.hooks.beforeRead) {\n doc =\n (await hook({\n context: req.context,\n doc,\n global: globalConfig,\n overrideAccess,\n req,\n })) || doc\n }\n }\n\n // /////////////////////////////////////\n // Execute globalType field if not selected\n // /////////////////////////////////////\n if (select && doc.globalType) {\n const selectMode = getSelectMode(select)\n if (\n (selectMode === 'include' && !select['globalType']) ||\n (selectMode === 'exclude' && select['globalType'] === false)\n ) {\n delete doc['globalType']\n }\n }\n\n // /////////////////////////////////////\n // Execute field-level hooks and access\n // /////////////////////////////////////\n\n doc = await afterRead({\n collection: null,\n context: req.context,\n depth: depth!,\n doc,\n draft: replaceWithVersion,\n fallbackLocale: fallbackLocale!,\n flattenLocales,\n global: globalConfig,\n locale: locale!,\n overrideAccess,\n populate,\n req,\n select,\n showHiddenFields: showHiddenFields!,\n })\n\n // /////////////////////////////////////\n // Execute after global hook\n // /////////////////////////////////////\n\n if (globalConfig.hooks?.afterRead?.length) {\n for (const hook of globalConfig.hooks.afterRead) {\n doc =\n (await hook({\n context: req.context,\n doc,\n global: globalConfig,\n overrideAccess,\n req,\n })) || doc\n }\n }\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n return doc\n } catch (error: unknown) {\n await killTransaction(req)\n throw error\n }\n}\n"],"names":["executeAccess","NotFound","afterRead","lockedDocumentsCollectionSlug","getSelectMode","hasDraftsEnabled","killTransaction","sanitizeSelect","replaceWithDraftIfAvailable","findOneOperation","args","slug","depth","disableErrors","draft","replaceWithVersion","flattenLocales","globalConfig","includeLockStatus","includeLockStatusFromArgs","overrideAccess","populate","req","fallbackLocale","locale","select","incomingSelect","showHiddenFields","payload","collections","hooks","beforeOperation","length","hook","context","global","operation","accessResult","access","read","t","fields","flattenedFields","forceSelect","dbSelect","versions","drafts","createdAt","updatedAt","docFromDB","db","findGlobal","where","undefined","hasDoc","Object","keys","data","doc","lockStatus","lockDocumentsProp","lockDocuments","lockDurationDefault","lockDuration","duration","lockDurationInMilliseconds","lockedDocument","find","collection","limit","pagination","and","globalSlug","equals","greater_than","Date","getTime","docs","_isLocked","_userEditing","user","value","entity","entityType","beforeRead","globalType","selectMode","error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/globals/operations/findOne.ts"],"sourcesContent":["import { ar } from '@payloadcms/translations/languages/ar'\n\nimport type { FindOptions } from '../../collections/operations/local/find.js'\nimport type { AccessResult } from '../../config/types.js'\nimport type {\n JsonObject,\n PayloadRequest,\n PopulateType,\n SelectType,\n Where,\n} from '../../types/index.js'\nimport type { SanitizedGlobalConfig } from '../config/types.js'\n\nimport { executeAccess } from '../../auth/executeAccess.js'\nimport { NotFound } from '../../errors/NotFound.js'\nimport { afterRead, type AfterReadArgs } from '../../fields/hooks/afterRead/index.js'\nimport { lockedDocumentsCollectionSlug } from '../../locked-documents/config.js'\nimport { getSelectMode } from '../../utilities/getSelectMode.js'\nimport { hasDraftsEnabled } from '../../utilities/getVersionsConfig.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { resolveSelect } from '../../utilities/resolveSelect.js'\nimport { sanitizeSelect } from '../../utilities/sanitizeSelect.js'\nimport { replaceWithDraftIfAvailable } from '../../versions/drafts/replaceWithDraftIfAvailable.js'\n\nexport type GlobalFindOneArgs = {\n /**\n * You may pass the document data directly which will skip the `db.findOne` database query.\n * This is useful if you want to use this endpoint solely for running hooks and populating data.\n */\n data?: Record<string, unknown>\n depth?: number\n disableErrors?: boolean\n draft?: boolean\n globalConfig: SanitizedGlobalConfig\n includeLockStatus?: boolean\n overrideAccess?: boolean\n populate?: PopulateType\n req: PayloadRequest\n showHiddenFields?: boolean\n slug: string\n} & Pick<AfterReadArgs<JsonObject>, 'flattenLocales'> &\n Pick<FindOptions<string, SelectType>, 'select'>\n\nexport const findOneOperation = async <T extends Record<string, unknown>>(\n args: GlobalFindOneArgs,\n): Promise<T> => {\n const {\n slug,\n depth,\n disableErrors,\n draft: replaceWithVersion = false,\n flattenLocales,\n globalConfig,\n includeLockStatus: includeLockStatusFromArgs,\n overrideAccess = false,\n populate,\n req: { fallbackLocale, locale },\n req,\n select: incomingSelect,\n showHiddenFields,\n } = args\n\n const includeLockStatus =\n includeLockStatusFromArgs && req.payload.collections?.[lockedDocumentsCollectionSlug]\n\n try {\n // /////////////////////////////////////\n // beforeOperation - Global\n // /////////////////////////////////////\n\n if (globalConfig.hooks?.beforeOperation?.length) {\n for (const hook of globalConfig.hooks.beforeOperation) {\n args =\n (await hook({\n args,\n context: args.req.context,\n global: globalConfig,\n operation: 'read',\n overrideAccess,\n req: args.req,\n })) || args\n }\n }\n\n // /////////////////////////////////////\n // Retrieve and execute access\n // /////////////////////////////////////\n\n let accessResult!: AccessResult\n\n if (!overrideAccess) {\n accessResult = await executeAccess({ disableErrors, req }, globalConfig.access.read)\n }\n\n if (accessResult === false) {\n if (!disableErrors) {\n throw new NotFound(req.t)\n }\n return null!\n }\n\n const select = sanitizeSelect({\n fields: globalConfig.flattenedFields,\n select: resolveSelect({\n config: globalConfig.select,\n operation: 'read',\n req,\n select: incomingSelect,\n }),\n })\n\n // /////////////////////////////////////\n // Perform database operation\n // /////////////////////////////////////\n\n let dbSelect = select\n\n if (\n globalConfig.versions?.drafts &&\n replaceWithVersion &&\n select &&\n getSelectMode(select) === 'include'\n ) {\n dbSelect = { ...select, createdAt: true, updatedAt: true }\n }\n const docFromDB = await req.payload.db.findGlobal({\n slug,\n locale: locale!,\n req,\n select: dbSelect,\n where: overrideAccess ? undefined : (accessResult as Where),\n })\n\n // Check if no document was returned (Postgres returns {} instead of null)\n const hasDoc = docFromDB && Object.keys(docFromDB).length > 0\n\n if (!hasDoc && !args.data && !overrideAccess && accessResult !== true) {\n if (!disableErrors) {\n return {} as any\n }\n return null!\n }\n\n let doc = (args.data as any) ?? (hasDoc ? docFromDB : null) ?? {}\n\n // /////////////////////////////////////\n // Include Lock Status if required\n // /////////////////////////////////////\n if (includeLockStatus && slug) {\n let lockStatus: JsonObject | null = null\n\n try {\n const lockDocumentsProp = globalConfig?.lockDocuments\n\n const lockDurationDefault = 300 // Default 5 minutes in seconds\n const lockDuration =\n typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault\n const lockDurationInMilliseconds = lockDuration * 1000\n\n const lockedDocument = await req.payload.find({\n collection: lockedDocumentsCollectionSlug,\n depth: 1,\n limit: 1,\n overrideAccess: false,\n pagination: false,\n req,\n where: {\n and: [\n {\n globalSlug: {\n equals: slug,\n },\n },\n {\n updatedAt: {\n greater_than: new Date(new Date().getTime() - lockDurationInMilliseconds),\n },\n },\n ],\n },\n })\n\n if (lockedDocument && lockedDocument.docs.length > 0) {\n lockStatus = lockedDocument.docs[0]!\n }\n } catch {\n // swallow error\n }\n\n doc._isLocked = !!lockStatus\n doc._userEditing = lockStatus?.user?.value ?? null\n }\n\n // /////////////////////////////////////\n // Replace document with draft if available\n // /////////////////////////////////////\n\n if (replaceWithVersion && hasDraftsEnabled(globalConfig)) {\n doc = await replaceWithDraftIfAvailable({\n accessResult,\n doc,\n entity: globalConfig,\n entityType: 'global',\n overrideAccess,\n req,\n select,\n })\n }\n\n // /////////////////////////////////////\n // Execute before global hook\n // /////////////////////////////////////\n\n if (globalConfig.hooks?.beforeRead?.length) {\n for (const hook of globalConfig.hooks.beforeRead) {\n doc =\n (await hook({\n context: req.context,\n doc,\n global: globalConfig,\n overrideAccess,\n req,\n })) || doc\n }\n }\n\n // /////////////////////////////////////\n // Execute globalType field if not selected\n // /////////////////////////////////////\n if (select && doc.globalType) {\n const selectMode = getSelectMode(select)\n if (\n (selectMode === 'include' && !select['globalType']) ||\n (selectMode === 'exclude' && select['globalType'] === false)\n ) {\n delete doc['globalType']\n }\n }\n\n // /////////////////////////////////////\n // Execute field-level hooks and access\n // /////////////////////////////////////\n\n doc = await afterRead({\n collection: null,\n context: req.context,\n depth: depth!,\n doc,\n draft: replaceWithVersion,\n fallbackLocale: fallbackLocale!,\n flattenLocales,\n global: globalConfig,\n locale: locale!,\n overrideAccess,\n populate,\n req,\n select,\n showHiddenFields: showHiddenFields!,\n })\n\n // /////////////////////////////////////\n // Execute after global hook\n // /////////////////////////////////////\n\n if (globalConfig.hooks?.afterRead?.length) {\n for (const hook of globalConfig.hooks.afterRead) {\n doc =\n (await hook({\n context: req.context,\n doc,\n global: globalConfig,\n overrideAccess,\n req,\n })) || doc\n }\n }\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n return doc\n } catch (error: unknown) {\n await killTransaction(req)\n throw error\n }\n}\n"],"names":["executeAccess","NotFound","afterRead","lockedDocumentsCollectionSlug","getSelectMode","hasDraftsEnabled","killTransaction","resolveSelect","sanitizeSelect","replaceWithDraftIfAvailable","findOneOperation","args","slug","depth","disableErrors","draft","replaceWithVersion","flattenLocales","globalConfig","includeLockStatus","includeLockStatusFromArgs","overrideAccess","populate","req","fallbackLocale","locale","select","incomingSelect","showHiddenFields","payload","collections","hooks","beforeOperation","length","hook","context","global","operation","accessResult","access","read","t","fields","flattenedFields","config","dbSelect","versions","drafts","createdAt","updatedAt","docFromDB","db","findGlobal","where","undefined","hasDoc","Object","keys","data","doc","lockStatus","lockDocumentsProp","lockDocuments","lockDurationDefault","lockDuration","duration","lockDurationInMilliseconds","lockedDocument","find","collection","limit","pagination","and","globalSlug","equals","greater_than","Date","getTime","docs","_isLocked","_userEditing","user","value","entity","entityType","beforeRead","globalType","selectMode","error"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findVersionByID.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/findVersionByID.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAA;AAE7E,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACpF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAY/D,MAAM,MAAM,SAAS,GAAG;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,YAAY,EAAE,qBAAqB,CAAA;IACnC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAA;AAEnD,eAAO,MAAM,wBAAwB,GAAU,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,cACnE,SAAS,KACd,OAAO,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"findVersionByID.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/findVersionByID.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAA;AAE7E,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACpF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAY/D,MAAM,MAAM,SAAS,GAAG;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,YAAY,EAAE,qBAAqB,CAAA;IACnC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAA;AAEnD,eAAO,MAAM,wBAAwB,GAAU,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,cACnE,SAAS,KACd,OAAO,CAAC,CAAC,CAgJX,CAAA"}
|
|
@@ -4,9 +4,9 @@ import { Forbidden, NotFound } from '../../errors/index.js';
|
|
|
4
4
|
import { afterRead } from '../../fields/hooks/afterRead/index.js';
|
|
5
5
|
import { deepCopyObjectSimple } from '../../utilities/deepCopyObject.js';
|
|
6
6
|
import { killTransaction } from '../../utilities/killTransaction.js';
|
|
7
|
+
import { resolveSelect } from '../../utilities/resolveSelect.js';
|
|
7
8
|
import { sanitizeSelect } from '../../utilities/sanitizeSelect.js';
|
|
8
9
|
import { buildVersionGlobalFields } from '../../versions/buildGlobalFields.js';
|
|
9
|
-
import { getQueryDraftsSelect } from '../../versions/drafts/getQueryDraftsSelect.js';
|
|
10
10
|
export const findVersionByIDOperation = async (args)=>{
|
|
11
11
|
const { id, currentDepth, depth, disableErrors, globalConfig, overrideAccess, populate, req: { fallbackLocale, locale, payload }, req, select: incomingSelect, showHiddenFields } = args;
|
|
12
12
|
try {
|
|
@@ -25,10 +25,12 @@ export const findVersionByIDOperation = async (args)=>{
|
|
|
25
25
|
const hasWhereAccess = typeof accessResults === 'object';
|
|
26
26
|
const select = sanitizeSelect({
|
|
27
27
|
fields: buildVersionGlobalFields(payload.config, globalConfig, true),
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
select: resolveSelect({
|
|
29
|
+
config: globalConfig.select,
|
|
30
|
+
operation: 'read',
|
|
31
|
+
req,
|
|
32
|
+
select: incomingSelect
|
|
30
33
|
}),
|
|
31
|
-
select: incomingSelect,
|
|
32
34
|
versions: true
|
|
33
35
|
});
|
|
34
36
|
const findGlobalVersionsArgs = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/globals/operations/findVersionByID.ts"],"sourcesContent":["import type { FindOptions } from '../../collections/operations/local/find.js'\nimport type { FindGlobalVersionsArgs } from '../../database/types.js'\nimport type { PayloadRequest, PopulateType, SelectType } from '../../types/index.js'\nimport type { TypeWithVersion } from '../../versions/types.js'\nimport type { SanitizedGlobalConfig } from '../config/types.js'\n\nimport { executeAccess } from '../../auth/executeAccess.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { Forbidden, NotFound } from '../../errors/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { deepCopyObjectSimple } from '../../utilities/deepCopyObject.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/globals/operations/findVersionByID.ts"],"sourcesContent":["import type { FindOptions } from '../../collections/operations/local/find.js'\nimport type { FindGlobalVersionsArgs } from '../../database/types.js'\nimport type { PayloadRequest, PopulateType, SelectType } from '../../types/index.js'\nimport type { TypeWithVersion } from '../../versions/types.js'\nimport type { SanitizedGlobalConfig } from '../config/types.js'\n\nimport { executeAccess } from '../../auth/executeAccess.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { Forbidden, NotFound } from '../../errors/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { deepCopyObjectSimple } from '../../utilities/deepCopyObject.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { resolveSelect } from '../../utilities/resolveSelect.js'\nimport { sanitizeSelect } from '../../utilities/sanitizeSelect.js'\nimport { buildVersionGlobalFields } from '../../versions/buildGlobalFields.js'\n\nexport type Arguments = {\n currentDepth?: number\n depth?: number\n disableErrors?: boolean\n globalConfig: SanitizedGlobalConfig\n id: number | string\n overrideAccess?: boolean\n populate?: PopulateType\n req: PayloadRequest\n showHiddenFields?: boolean\n} & Pick<FindOptions<string, SelectType>, 'select'>\n\nexport const findVersionByIDOperation = async <T extends TypeWithVersion<T> = any>(\n args: Arguments,\n): Promise<T> => {\n const {\n id,\n currentDepth,\n depth,\n disableErrors,\n globalConfig,\n overrideAccess,\n populate,\n req: { fallbackLocale, locale, payload },\n req,\n select: incomingSelect,\n showHiddenFields,\n } = args\n\n try {\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n const accessResults = !overrideAccess\n ? await executeAccess({ id, disableErrors, req }, globalConfig.access.readVersions)\n : true\n\n // If errors are disabled, and access returns false, return null\n if (accessResults === false) {\n return null!\n }\n\n const hasWhereAccess = typeof accessResults === 'object'\n\n const select = sanitizeSelect({\n fields: buildVersionGlobalFields(payload.config, globalConfig, true),\n select: resolveSelect({\n config: globalConfig.select,\n operation: 'read',\n req,\n select: incomingSelect,\n }),\n versions: true,\n })\n\n const findGlobalVersionsArgs: FindGlobalVersionsArgs = {\n global: globalConfig.slug,\n limit: 1,\n locale: locale!,\n req,\n select,\n where: combineQueries({ id: { equals: id } }, accessResults),\n }\n\n // /////////////////////////////////////\n // Find by ID\n // /////////////////////////////////////\n\n if (!findGlobalVersionsArgs.where?.and?.[0]?.id) {\n throw new NotFound(req.t)\n }\n\n const { docs: results } = await payload.db.findGlobalVersions(findGlobalVersionsArgs)\n if (!results || results?.length === 0) {\n if (!disableErrors) {\n if (!hasWhereAccess) {\n throw new NotFound(req.t)\n }\n if (hasWhereAccess) {\n throw new Forbidden(req.t)\n }\n }\n\n return null!\n }\n\n // Clone the result - it may have come back memoized\n let result: any = deepCopyObjectSimple(results[0])\n\n if (!result.version) {\n result.version = {}\n }\n\n // Patch globalType onto version doc\n result.version.globalType = globalConfig.slug\n\n // /////////////////////////////////////\n // beforeRead - Collection\n // /////////////////////////////////////\n\n if (globalConfig.hooks?.beforeRead?.length) {\n for (const hook of globalConfig.hooks.beforeRead) {\n result =\n (await hook({\n context: req.context,\n doc: result.version,\n global: globalConfig,\n overrideAccess,\n req,\n })) || result.version\n }\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result.version = await afterRead({\n collection: null,\n context: req.context,\n currentDepth,\n depth: depth!,\n doc: result.version,\n draft: undefined!,\n fallbackLocale: fallbackLocale!,\n global: globalConfig,\n locale: locale!,\n overrideAccess: overrideAccess!,\n populate,\n req,\n select: typeof select?.version === 'object' ? select.version : undefined,\n showHiddenFields: showHiddenFields!,\n })\n\n // /////////////////////////////////////\n // afterRead - Global\n // /////////////////////////////////////\n\n if (globalConfig.hooks?.afterRead?.length) {\n for (const hook of globalConfig.hooks.afterRead) {\n result.version =\n (await hook({\n context: req.context,\n doc: result.version,\n global: globalConfig,\n overrideAccess,\n query: findGlobalVersionsArgs.where,\n req,\n })) || result.version\n }\n }\n\n return result\n } catch (error: unknown) {\n await killTransaction(req)\n throw error\n }\n}\n"],"names":["executeAccess","combineQueries","Forbidden","NotFound","afterRead","deepCopyObjectSimple","killTransaction","resolveSelect","sanitizeSelect","buildVersionGlobalFields","findVersionByIDOperation","args","id","currentDepth","depth","disableErrors","globalConfig","overrideAccess","populate","req","fallbackLocale","locale","payload","select","incomingSelect","showHiddenFields","accessResults","access","readVersions","hasWhereAccess","fields","config","operation","versions","findGlobalVersionsArgs","global","slug","limit","where","equals","and","t","docs","results","db","findGlobalVersions","length","result","version","globalType","hooks","beforeRead","hook","context","doc","collection","draft","undefined","query","error"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findVersions.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/findVersions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAA;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAY/D,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,qBAAqB,CAAA;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAA;AAEnD,eAAO,MAAM,qBAAqB,GAAU,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,QAChE,SAAS,KACd,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"findVersions.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/findVersions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAA;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAY/D,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,qBAAqB,CAAA;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAA;AAEnD,eAAO,MAAM,qBAAqB,GAAU,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,QAChE,SAAS,KACd,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAqJ1B,CAAA"}
|
|
@@ -3,10 +3,10 @@ import { combineQueries } from '../../database/combineQueries.js';
|
|
|
3
3
|
import { validateQueryPaths } from '../../database/queryValidation/validateQueryPaths.js';
|
|
4
4
|
import { afterRead } from '../../fields/hooks/afterRead/index.js';
|
|
5
5
|
import { killTransaction } from '../../utilities/killTransaction.js';
|
|
6
|
+
import { resolveSelect } from '../../utilities/resolveSelect.js';
|
|
6
7
|
import { sanitizeInternalFields } from '../../utilities/sanitizeInternalFields.js';
|
|
7
8
|
import { sanitizeSelect } from '../../utilities/sanitizeSelect.js';
|
|
8
9
|
import { buildVersionGlobalFields } from '../../versions/buildGlobalFields.js';
|
|
9
|
-
import { getQueryDraftsSelect } from '../../versions/drafts/getQueryDraftsSelect.js';
|
|
10
10
|
export const findVersionsOperation = async (args)=>{
|
|
11
11
|
const { depth, globalConfig, limit, overrideAccess, page, pagination = true, populate, select: incomingSelect, showHiddenFields, sort, where } = args;
|
|
12
12
|
const req = args.req;
|
|
@@ -29,10 +29,12 @@ export const findVersionsOperation = async (args)=>{
|
|
|
29
29
|
const fullWhere = combineQueries(where, accessResults);
|
|
30
30
|
const select = sanitizeSelect({
|
|
31
31
|
fields: buildVersionGlobalFields(payload.config, globalConfig, true),
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
select: resolveSelect({
|
|
33
|
+
config: globalConfig.select,
|
|
34
|
+
operation: 'read',
|
|
35
|
+
req,
|
|
36
|
+
select: incomingSelect
|
|
34
37
|
}),
|
|
35
|
-
select: incomingSelect,
|
|
36
38
|
versions: true
|
|
37
39
|
});
|
|
38
40
|
// /////////////////////////////////////
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/globals/operations/findVersions.ts"],"sourcesContent":["import type { FindOptions } from '../../collections/operations/local/find.js'\nimport type { PaginatedDocs } from '../../database/types.js'\nimport type { PayloadRequest, PopulateType, SelectType, Sort, Where } from '../../types/index.js'\nimport type { TypeWithVersion } from '../../versions/types.js'\nimport type { SanitizedGlobalConfig } from '../config/types.js'\n\nimport { executeAccess } from '../../auth/executeAccess.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { validateQueryPaths } from '../../database/queryValidation/validateQueryPaths.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/globals/operations/findVersions.ts"],"sourcesContent":["import type { FindOptions } from '../../collections/operations/local/find.js'\nimport type { PaginatedDocs } from '../../database/types.js'\nimport type { PayloadRequest, PopulateType, SelectType, Sort, Where } from '../../types/index.js'\nimport type { TypeWithVersion } from '../../versions/types.js'\nimport type { SanitizedGlobalConfig } from '../config/types.js'\n\nimport { executeAccess } from '../../auth/executeAccess.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { validateQueryPaths } from '../../database/queryValidation/validateQueryPaths.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { resolveSelect } from '../../utilities/resolveSelect.js'\nimport { sanitizeInternalFields } from '../../utilities/sanitizeInternalFields.js'\nimport { sanitizeSelect } from '../../utilities/sanitizeSelect.js'\nimport { buildVersionGlobalFields } from '../../versions/buildGlobalFields.js'\n\nexport type Arguments = {\n depth?: number\n globalConfig: SanitizedGlobalConfig\n limit?: number\n overrideAccess?: boolean\n page?: number\n pagination?: boolean\n populate?: PopulateType\n req?: PayloadRequest\n showHiddenFields?: boolean\n sort?: Sort\n where?: Where\n} & Pick<FindOptions<string, SelectType>, 'select'>\n\nexport const findVersionsOperation = async <T extends TypeWithVersion<T>>(\n args: Arguments,\n): Promise<PaginatedDocs<T>> => {\n const {\n depth,\n globalConfig,\n limit,\n overrideAccess,\n page,\n pagination = true,\n populate,\n select: incomingSelect,\n showHiddenFields,\n sort,\n where,\n } = args\n const req = args.req!\n const { fallbackLocale, locale, payload } = req\n\n const versionFields = buildVersionGlobalFields(payload.config, globalConfig, true)\n\n try {\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n const accessResults = !overrideAccess\n ? await executeAccess({ req }, globalConfig.access.readVersions)\n : true\n\n await validateQueryPaths({\n globalConfig,\n overrideAccess: overrideAccess!,\n req,\n versionFields,\n where: where!,\n })\n\n const fullWhere = combineQueries(where!, accessResults)\n\n const select = sanitizeSelect({\n fields: buildVersionGlobalFields(payload.config, globalConfig, true),\n select: resolveSelect({\n config: globalConfig.select,\n operation: 'read',\n req,\n select: incomingSelect,\n }),\n versions: true,\n })\n\n // /////////////////////////////////////\n // Find\n // /////////////////////////////////////\n\n const usePagination = pagination && limit !== 0\n const sanitizedLimit = limit ?? (usePagination ? 10 : 0)\n const sanitizedPage = page || 1\n\n const paginatedDocs = await payload.db.findGlobalVersions<T>({\n global: globalConfig.slug,\n limit: sanitizedLimit,\n locale: locale!,\n page: sanitizedPage,\n pagination,\n req,\n select,\n sort,\n where: fullWhere,\n })\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n let result = {\n ...paginatedDocs,\n docs: await Promise.all(\n paginatedDocs.docs.map(async (data) => {\n if (!data.version) {\n // Fallback if not selected\n ;(data as any).version = {}\n }\n return {\n ...data,\n version: await afterRead<T>({\n collection: null,\n context: req.context,\n depth: depth!,\n doc: {\n ...data.version,\n // Patch globalType onto version doc\n globalType: globalConfig.slug,\n },\n draft: undefined!,\n fallbackLocale: fallbackLocale!,\n findMany: true,\n global: globalConfig,\n locale: locale!,\n overrideAccess: overrideAccess!,\n populate,\n req,\n select,\n showHiddenFields: showHiddenFields!,\n }),\n }\n }),\n ),\n } as PaginatedDocs<T>\n\n // /////////////////////////////////////\n // afterRead - Global\n // /////////////////////////////////////\n\n if (globalConfig.hooks?.afterRead?.length) {\n result.docs = await Promise.all(\n result.docs.map(async (doc) => {\n const docRef = doc\n\n for (const hook of globalConfig.hooks.afterRead) {\n docRef.version =\n (await hook({\n context: req.context,\n doc: doc.version,\n findMany: true,\n global: globalConfig,\n overrideAccess,\n query: fullWhere,\n req,\n })) || doc.version\n }\n\n return docRef\n }),\n )\n }\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n result = {\n ...result,\n docs: result.docs.map((doc) => sanitizeInternalFields<T>(doc)),\n }\n\n return result\n } catch (error: unknown) {\n await killTransaction(req)\n throw error\n }\n}\n"],"names":["executeAccess","combineQueries","validateQueryPaths","afterRead","killTransaction","resolveSelect","sanitizeInternalFields","sanitizeSelect","buildVersionGlobalFields","findVersionsOperation","args","depth","globalConfig","limit","overrideAccess","page","pagination","populate","select","incomingSelect","showHiddenFields","sort","where","req","fallbackLocale","locale","payload","versionFields","config","accessResults","access","readVersions","fullWhere","fields","operation","versions","usePagination","sanitizedLimit","sanitizedPage","paginatedDocs","db","findGlobalVersions","global","slug","result","docs","Promise","all","map","data","version","collection","context","doc","globalType","draft","undefined","findMany","hooks","length","docRef","hook","query","error"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAA;AAC7E,OAAO,KAAK,EAAE,UAAU,EAAc,MAAM,gBAAgB,CAAA;AAC5D,OAAO,KAAK,EAEV,cAAc,EACd,YAAY,EACZ,UAAU,EACV,yBAAyB,EAE1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAA;AAC7E,OAAO,KAAK,EAAE,UAAU,EAAc,MAAM,gBAAgB,CAAA;AAC5D,OAAO,KAAK,EAEV,cAAc,EACd,YAAY,EACZ,UAAU,EACV,yBAAyB,EAE1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,oBAAoB,CAAA;AAuB3B,KAAK,IAAI,CAAC,KAAK,SAAS,UAAU,IAAI;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;IACxD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,qBAAqB,CAAA;IACnC,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAA;AAEnD,eAAO,MAAM,eAAe,GAC1B,KAAK,SAAS,UAAU,EACxB,OAAO,SAAS,oBAAoB,CAAC,KAAK,CAAC,QAErC,IAAI,CAAC,KAAK,CAAC,KAChB,OAAO,CAAC,yBAAyB,CAAC,KAAK,EAAE,OAAO,CAAC,CAibnD,CAAA"}
|
|
@@ -11,6 +11,7 @@ import { hasDraftsEnabled, hasDraftValidationEnabled, hasLocalizeStatusEnabled }
|
|
|
11
11
|
import { initTransaction } from '../../utilities/initTransaction.js';
|
|
12
12
|
import { killTransaction } from '../../utilities/killTransaction.js';
|
|
13
13
|
import { mergeLocalizedData } from '../../utilities/mergeLocalizedData.js';
|
|
14
|
+
import { resolveSelect } from '../../utilities/resolveSelect.js';
|
|
14
15
|
import { sanitizeSelect } from '../../utilities/sanitizeSelect.js';
|
|
15
16
|
import { getLatestGlobalVersion } from '../../versions/getLatestGlobalVersion.js';
|
|
16
17
|
import { saveVersion } from '../../versions/saveVersion.js';
|
|
@@ -219,8 +220,12 @@ export const updateOperation = async (args)=>{
|
|
|
219
220
|
// /////////////////////////////////////
|
|
220
221
|
const select = sanitizeSelect({
|
|
221
222
|
fields: globalConfig.flattenedFields,
|
|
222
|
-
|
|
223
|
-
|
|
223
|
+
select: resolveSelect({
|
|
224
|
+
config: globalConfig.select,
|
|
225
|
+
operation: 'update',
|
|
226
|
+
req,
|
|
227
|
+
select: incomingSelect
|
|
228
|
+
})
|
|
224
229
|
});
|
|
225
230
|
if (!isSavingDraft) {
|
|
226
231
|
const now = new Date().toISOString();
|