payload 3.84.0 → 4.0.0-internal.38b7f1d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/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 +51 -10
- 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 +3 -38
- 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/database/migrations/config/batchTransform.d.ts +16 -0
- package/dist/database/migrations/config/batchTransform.d.ts.map +1 -0
- package/dist/database/migrations/config/batchTransform.js +17 -0
- package/dist/database/migrations/config/batchTransform.js.map +1 -0
- package/dist/database/migrations/config/batchTransform.spec.js +68 -0
- package/dist/database/migrations/config/batchTransform.spec.js.map +1 -0
- package/dist/database/migrations/config/bootstrapConfigState.d.ts +4 -0
- package/dist/database/migrations/config/bootstrapConfigState.d.ts.map +1 -0
- package/dist/database/migrations/config/bootstrapConfigState.js +10 -0
- package/dist/database/migrations/config/bootstrapConfigState.js.map +1 -0
- package/dist/database/migrations/config/configStateStore.d.ts +4 -0
- package/dist/database/migrations/config/configStateStore.d.ts.map +1 -0
- package/dist/database/migrations/config/configStateStore.js +29 -0
- package/dist/database/migrations/config/configStateStore.js.map +1 -0
- package/dist/database/migrations/config/diffConfig.d.ts +3 -0
- package/dist/database/migrations/config/diffConfig.d.ts.map +1 -0
- package/dist/database/migrations/config/diffConfig.js +123 -0
- package/dist/database/migrations/config/diffConfig.js.map +1 -0
- package/dist/database/migrations/config/diffConfig.spec.js +136 -0
- package/dist/database/migrations/config/diffConfig.spec.js.map +1 -0
- package/dist/database/migrations/config/generateDataMigrationCode.d.ts +11 -0
- package/dist/database/migrations/config/generateDataMigrationCode.d.ts.map +1 -0
- package/dist/database/migrations/config/generateDataMigrationCode.js +28 -0
- package/dist/database/migrations/config/generateDataMigrationCode.js.map +1 -0
- package/dist/database/migrations/config/generateDataMigrationCode.spec.js +52 -0
- package/dist/database/migrations/config/generateDataMigrationCode.spec.js.map +1 -0
- package/dist/database/migrations/config/index.d.ts +9 -0
- package/dist/database/migrations/config/index.d.ts.map +1 -0
- package/dist/database/migrations/config/index.js +9 -0
- package/dist/database/migrations/config/index.js.map +1 -0
- package/dist/database/migrations/config/prompts.d.ts +5 -0
- package/dist/database/migrations/config/prompts.d.ts.map +1 -0
- package/dist/database/migrations/config/prompts.js +49 -0
- package/dist/database/migrations/config/prompts.js.map +1 -0
- package/dist/database/migrations/config/serializeConfig.d.ts +4 -0
- package/dist/database/migrations/config/serializeConfig.d.ts.map +1 -0
- package/dist/database/migrations/config/serializeConfig.js +65 -0
- package/dist/database/migrations/config/serializeConfig.js.map +1 -0
- package/dist/database/migrations/config/serializeConfig.spec.js +146 -0
- package/dist/database/migrations/config/serializeConfig.spec.js.map +1 -0
- package/dist/database/migrations/config/types.d.ts +66 -0
- package/dist/database/migrations/config/types.d.ts.map +1 -0
- package/dist/database/migrations/config/types.js.map +1 -0
- package/dist/database/migrations/migrate.d.ts.map +1 -1
- package/dist/database/migrations/migrate.js +3 -0
- package/dist/database/migrations/migrate.js.map +1 -1
- package/dist/database/types.d.ts +29 -0
- package/dist/database/types.d.ts.map +1 -1
- package/dist/database/types.js.map +1 -1
- package/dist/exports/migrations.d.ts +1 -0
- package/dist/exports/migrations.d.ts.map +1 -1
- package/dist/exports/migrations.js +2 -1
- package/dist/exports/migrations.js.map +1 -1
- package/dist/exports/shared.d.ts +6 -3
- package/dist/exports/shared.d.ts.map +1 -1
- package/dist/exports/shared.js +4 -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 +12 -10
- 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.js +6 -2
- 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 +856 -558
- package/dist/index.d.ts +29 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -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/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/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.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
- /package/dist/{folders → database/migrations/config}/types.js +0 -0
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
import type { Config } from '../config/types.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Builds correct URLs for admin panel and API routing.
|
|
4
|
+
* Use this for both admin routes (`adminRoute`) and API routes (`apiRoute`).
|
|
5
|
+
*
|
|
4
6
|
* Its primary responsibilities are:
|
|
5
|
-
* 1. Read from your `routes.admin` config and appropriately handle `"/"`
|
|
7
|
+
* 1. Read from your `routes.admin` or `routes.api` config and appropriately handle `"/"` paths
|
|
6
8
|
* 2. Prepend the `basePath` from your Next.js config, if specified
|
|
7
9
|
* 3. Return relative or absolute URLs, as needed
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* // Admin route
|
|
13
|
+
* formatAdminURL({ adminRoute, path: `/collections/${slug}` })
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* // API route with query params
|
|
17
|
+
* const queryString = qs.stringify({ where, limit, page }, { addQueryPrefix: true })
|
|
18
|
+
* formatAdminURL({ apiRoute: api, path: `/${slug}${queryString}`, serverURL })
|
|
8
19
|
*/
|
|
9
20
|
type BaseFormatURLArgs = {
|
|
10
21
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatAdminURL.d.ts","sourceRoot":"","sources":["../../src/utilities/formatAdminURL.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEhD
|
|
1
|
+
{"version":3,"file":"formatAdminURL.d.ts","sourceRoot":"","sources":["../../src/utilities/formatAdminURL.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEhD;;;;;;;;;;;;;;;;;GAiBG;AACH,KAAK,iBAAiB,GAAG;IACvB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,IAAI,CAAA;IAC/B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;AAE7B,KAAK,aAAa,GACd,CAAC;IACC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IAClD,QAAQ,CAAC,EAAE,KAAK,CAAA;CACjB,GAAG,iBAAiB,CAAC,GACtB,CAAC;IACC,UAAU,CAAC,EAAE,KAAK,CAAA;IAClB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;CAC/C,GAAG,iBAAiB,CAAC,CAAA;AAE1B,eAAO,MAAM,cAAc,SAAU,aAAa,KAAG,MAyBpD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/formatAdminURL.ts"],"sourcesContent":["import type { Config } from '../config/types.js'\n\n/**\n *
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/formatAdminURL.ts"],"sourcesContent":["import type { Config } from '../config/types.js'\n\n/**\n * Builds correct URLs for admin panel and API routing.\n * Use this for both admin routes (`adminRoute`) and API routes (`apiRoute`).\n *\n * Its primary responsibilities are:\n * 1. Read from your `routes.admin` or `routes.api` config and appropriately handle `\"/\"` paths\n * 2. Prepend the `basePath` from your Next.js config, if specified\n * 3. Return relative or absolute URLs, as needed\n *\n * @example\n * // Admin route\n * formatAdminURL({ adminRoute, path: `/collections/${slug}` })\n *\n * @example\n * // API route with query params\n * const queryString = qs.stringify({ where, limit, page }, { addQueryPrefix: true })\n * formatAdminURL({ apiRoute: api, path: `/${slug}${queryString}`, serverURL })\n */\ntype BaseFormatURLArgs = {\n /**\n * The subpath of your application, if specified.\n * @see https://nextjs.org/docs/app/api-reference/config/next-config-js/basePath\n * @example '/docs'\n */\n basePath?: string\n includeBasePath?: boolean\n path?: '' | `/${string}` | null\n /**\n * Return a relative URL, e.g. ignore `serverURL`.\n * Useful for route-matching, etc.\n */\n relative?: boolean\n} & Pick<Config, 'serverURL'>\n\ntype FormatURLArgs =\n | ({\n adminRoute: NonNullable<Config['routes']>['admin']\n apiRoute?: never\n } & BaseFormatURLArgs)\n | ({\n adminRoute?: never\n apiRoute: NonNullable<Config['routes']>['api']\n } & BaseFormatURLArgs)\n\nexport const formatAdminURL = (args: FormatURLArgs): string => {\n const {\n adminRoute,\n apiRoute,\n includeBasePath: includeBasePathArg,\n path = '',\n relative = false,\n serverURL,\n } = args\n const basePath = process.env.NEXT_BASE_PATH || args.basePath || ''\n const routePath = adminRoute || apiRoute\n const segments = [routePath && routePath !== '/' && routePath, path && path].filter(Boolean)\n const pathname = segments.join('') || '/'\n const pathnameWithBase = (basePath + pathname).replace(/\\/$/, '') || '/'\n const includeBasePath = includeBasePathArg ?? (adminRoute ? false : true)\n\n if (relative || !serverURL) {\n if (includeBasePath && basePath) {\n return pathnameWithBase\n }\n return pathname\n }\n\n const serverURLObj = new URL(serverURL)\n return new URL(pathnameWithBase, serverURLObj.origin).toString()\n}\n"],"names":["formatAdminURL","args","adminRoute","apiRoute","includeBasePath","includeBasePathArg","path","relative","serverURL","basePath","process","env","NEXT_BASE_PATH","routePath","segments","filter","Boolean","pathname","join","pathnameWithBase","replace","serverURLObj","URL","origin","toString"],"mappings":"AA8CA,OAAO,MAAMA,iBAAiB,CAACC;IAC7B,MAAM,EACJC,UAAU,EACVC,QAAQ,EACRC,iBAAiBC,kBAAkB,EACnCC,OAAO,EAAE,EACTC,WAAW,KAAK,EAChBC,SAAS,EACV,GAAGP;IACJ,MAAMQ,WAAWC,QAAQC,GAAG,CAACC,cAAc,IAAIX,KAAKQ,QAAQ,IAAI;IAChE,MAAMI,YAAYX,cAAcC;IAChC,MAAMW,WAAW;QAACD,aAAaA,cAAc,OAAOA;QAAWP,QAAQA;KAAK,CAACS,MAAM,CAACC;IACpF,MAAMC,WAAWH,SAASI,IAAI,CAAC,OAAO;IACtC,MAAMC,mBAAmB,AAACV,CAAAA,WAAWQ,QAAO,EAAGG,OAAO,CAAC,OAAO,OAAO;IACrE,MAAMhB,kBAAkBC,sBAAuBH,CAAAA,aAAa,QAAQ,IAAG;IAEvE,IAAIK,YAAY,CAACC,WAAW;QAC1B,IAAIJ,mBAAmBK,UAAU;YAC/B,OAAOU;QACT;QACA,OAAOF;IACT;IAEA,MAAMI,eAAe,IAAIC,IAAId;IAC7B,OAAO,IAAIc,IAAIH,kBAAkBE,aAAaE,MAAM,EAAEC,QAAQ;AAChE,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleEndpoints.d.ts","sourceRoot":"","sources":["../../src/utilities/handleEndpoints.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA4B,eAAe,EAAE,MAAM,oBAAoB,CAAA;AA0BnF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,eAAe,kFAMzB;IACD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAA;IAClD,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,OAAO,EAAE,OAAO,CAAA;CACjB,KAAG,OAAO,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"handleEndpoints.d.ts","sourceRoot":"","sources":["../../src/utilities/handleEndpoints.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA4B,eAAe,EAAE,MAAM,oBAAoB,CAAA;AA0BnF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,eAAe,kFAMzB;IACD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAA;IAClD,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,OAAO,EAAE,OAAO,CAAA;CACjB,KAAG,OAAO,CAAC,QAAQ,CA+MnB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/handleEndpoints.ts"],"sourcesContent":["import { status as httpStatus } from 'http-status'\nimport { match } from 'path-to-regexp'\n\nimport type { Collection } from '../collections/config/types.js'\nimport type { Endpoint, PayloadHandler, SanitizedConfig } from '../config/types.js'\nimport type { APIError } from '../errors/APIError.js'\nimport type { GlobalConfig } from '../globals/config/types.js'\nimport type { PayloadRequest } from '../types/index.js'\n\nimport { createPayloadRequest } from './createPayloadRequest.js'\nimport { formatAdminURL } from './formatAdminURL.js'\nimport { headersWithCors } from './headersWithCors.js'\nimport { mergeHeaders } from './mergeHeaders.js'\nimport { routeError } from './routeError.js'\n\nconst notFoundResponse = (req: PayloadRequest, pathname?: string) => {\n return Response.json(\n {\n message: `Route not found \"${pathname ?? new URL(req.url!).pathname}\"`,\n },\n {\n headers: headersWithCors({\n headers: new Headers(),\n req,\n }),\n status: httpStatus.NOT_FOUND,\n },\n )\n}\n\n/**\n * Attaches the Payload REST API to any backend framework that uses Fetch Request/Response\n * like Next.js (app router), Remix, Bun, Hono.\n *\n * ### Example: Using Hono\n * ```ts\n * import { handleEndpoints } from 'payload';\n * import { serve } from '@hono/node-server';\n * import { loadEnv } from 'payload/node';\n *\n * const port = 3001;\n * loadEnv();\n *\n * const { default: config } = await import('@payload-config');\n *\n * const server = serve({\n * fetch: async (request) => {\n * const response = await handleEndpoints({\n * config,\n * request: request.clone(),\n * });\n *\n * return response;\n * },\n * port,\n * });\n *\n * server.on('listening', () => {\n * console.log(`API server is listening on http://localhost:${port}/api`);\n * });\n * ```\n */\nexport const handleEndpoints = async ({\n basePath = '',\n config: incomingConfig,\n path,\n payloadInstanceCacheKey,\n request,\n}: {\n basePath?: string\n config: Promise<SanitizedConfig> | SanitizedConfig\n /** Override path from the request */\n path?: string\n payloadInstanceCacheKey?: string\n request: Request\n}): Promise<Response> => {\n let handler!: PayloadHandler\n let req: PayloadRequest\n let collection!: Collection\n\n // This can be used against GET request search params size limit.\n // Instead you can do POST request with a text body as search params.\n // We use this internally for relationships querying on the frontend\n // packages/ui/src/fields/Relationship/index.tsx\n if (\n request.method.toLowerCase() === 'post' &&\n (request.headers.get('X-Payload-HTTP-Method-Override') === 'GET' ||\n request.headers.get('X-HTTP-Method-Override') === 'GET')\n ) {\n let url = request.url\n let data: any = undefined\n\n if (request.headers.get('Content-Type') === 'application/x-www-form-urlencoded') {\n const search = await request.text()\n url = `${request.url}?${search}`\n } else if (request.headers.get('Content-Type') === 'application/json') {\n // May not be supported by every endpoint\n data = await request.json()\n\n // locale and fallbackLocale is read by createPayloadRequest to populate req.locale and req.fallbackLocale\n // => add to searchParams\n if (data?.locale) {\n url += `?locale=${data.locale}`\n }\n if (data?.fallbackLocale) {\n url += `&fallbackLocale=${data.depth}`\n }\n }\n\n const req = new Request(url, {\n // @ts-expect-error // TODO: check if this is required\n cache: request.cache,\n credentials: request.credentials,\n headers: request.headers,\n method: 'GET',\n signal: request.signal,\n })\n\n if (data) {\n // @ts-expect-error attach data to request - less overhead than using urlencoded\n req.data = data\n }\n\n const response = await handleEndpoints({\n basePath,\n config: incomingConfig,\n path,\n payloadInstanceCacheKey,\n request: req,\n })\n\n return response\n }\n\n try {\n req = await createPayloadRequest({\n canSetHeaders: true,\n config: incomingConfig,\n payloadInstanceCacheKey,\n request,\n })\n\n const { payload } = req\n const { config } = payload\n\n const pathname = path ?? new URL(req.url!).pathname\n const baseAPIPath = formatAdminURL({\n apiRoute: config.routes.api,\n path: '',\n })\n\n if (!pathname.startsWith(baseAPIPath)) {\n return notFoundResponse(req, pathname)\n }\n\n // /api/posts/route -> /posts/route\n let adjustedPathname = pathname.replace(baseAPIPath, '')\n\n let isGlobals = false\n\n // /globals/header/route -> /header/route\n if (adjustedPathname.startsWith('/globals')) {\n isGlobals = true\n adjustedPathname = adjustedPathname.replace('/globals', '')\n }\n\n const segments = adjustedPathname.split('/')\n // remove empty string first element\n segments.shift()\n\n const firstParam = segments[0]\n\n let globalConfig!: GlobalConfig\n\n // first param can be a global slug or collection slug, find the relevant config\n if (firstParam) {\n if (isGlobals) {\n globalConfig = payload.globals.config.find((each) => each.slug === firstParam)!\n } else if (payload.collections[firstParam]) {\n collection = payload.collections[firstParam]\n }\n }\n\n let endpoints: Endpoint[] | false = config.endpoints\n\n if (collection) {\n endpoints = collection.config.endpoints\n // /posts/route -> /route\n adjustedPathname = adjustedPathname.replace(`/${collection.config.slug}`, '')\n } else if (globalConfig) {\n // /header/route -> /route\n adjustedPathname = adjustedPathname.replace(`/${globalConfig.slug}`, '')\n endpoints = globalConfig.endpoints!\n }\n\n // sanitize when endpoint.path is '/'\n if (adjustedPathname === '') {\n adjustedPathname = '/'\n }\n\n if (endpoints === false) {\n return Response.json(\n {\n message: `Cannot ${req.method?.toUpperCase()} ${req.url}`,\n },\n {\n headers: headersWithCors({\n headers: new Headers(),\n req,\n }),\n status: httpStatus.NOT_IMPLEMENTED,\n },\n )\n }\n\n // Find the relevant endpoint configuration\n const endpoint = endpoints?.find((endpoint) => {\n if (endpoint.method !== req.method?.toLowerCase()) {\n return false\n }\n\n const pathMatchFn = match(endpoint.path, { decode: decodeURIComponent })\n\n const matchResult = pathMatchFn(adjustedPathname)\n\n if (!matchResult) {\n return false\n }\n\n req.routeParams = matchResult.params as Record<string, unknown>\n\n // Inject to routeParams the slug as well so it can be used later\n if (collection) {\n req.routeParams.collection = collection.config.slug\n } else if (globalConfig) {\n req.routeParams.global = globalConfig.slug\n }\n\n return true\n })\n\n if (endpoint) {\n handler = endpoint.handler\n }\n\n if (!handler) {\n // If no custom handler found and this is an OPTIONS request,\n // return default CORS response for preflight requests\n if (req.method?.toLowerCase() === 'options') {\n return Response.json(\n {},\n {\n headers: headersWithCors({\n headers: new Headers(),\n req,\n }),\n status: 200,\n },\n )\n }\n\n return notFoundResponse(req, pathname)\n }\n\n const response = await handler(req)\n\n return new Response(response.body, {\n headers: headersWithCors({\n headers: mergeHeaders(req.responseHeaders ?? new Headers(), response.headers),\n req,\n }),\n status: response.status,\n statusText: response.statusText,\n })\n } catch (_err) {\n const err = _err as APIError\n return routeError({\n collection,\n config: incomingConfig,\n err,\n req: req!,\n })\n }\n}\n"],"names":["status","httpStatus","match","createPayloadRequest","formatAdminURL","headersWithCors","mergeHeaders","routeError","notFoundResponse","req","pathname","Response","json","message","URL","url","headers","Headers","NOT_FOUND","handleEndpoints","basePath","config","incomingConfig","path","payloadInstanceCacheKey","request","handler","collection","method","toLowerCase","get","data","undefined","search","text","locale","fallbackLocale","depth","Request","cache","credentials","signal","response","canSetHeaders","payload","baseAPIPath","apiRoute","routes","api","startsWith","adjustedPathname","replace","isGlobals","segments","split","shift","firstParam","globalConfig","globals","find","each","slug","collections","endpoints","toUpperCase","NOT_IMPLEMENTED","endpoint","pathMatchFn","decode","decodeURIComponent","matchResult","routeParams","params","global","body","responseHeaders","statusText","_err","err"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/handleEndpoints.ts"],"sourcesContent":["import { status as httpStatus } from 'http-status'\nimport { match } from 'path-to-regexp'\n\nimport type { Collection } from '../collections/config/types.js'\nimport type { Endpoint, PayloadHandler, SanitizedConfig } from '../config/types.js'\nimport type { APIError } from '../errors/APIError.js'\nimport type { GlobalConfig } from '../globals/config/types.js'\nimport type { PayloadRequest } from '../types/index.js'\n\nimport { createPayloadRequest } from './createPayloadRequest.js'\nimport { formatAdminURL } from './formatAdminURL.js'\nimport { headersWithCors } from './headersWithCors.js'\nimport { mergeHeaders } from './mergeHeaders.js'\nimport { routeError } from './routeError.js'\n\nconst notFoundResponse = (req: PayloadRequest, pathname?: string) => {\n return Response.json(\n {\n message: `Route not found \"${pathname ?? new URL(req.url!).pathname}\"`,\n },\n {\n headers: headersWithCors({\n headers: new Headers(),\n req,\n }),\n status: httpStatus.NOT_FOUND,\n },\n )\n}\n\n/**\n * Attaches the Payload REST API to any backend framework that uses Fetch Request/Response\n * like Next.js (app router), Remix, Bun, Hono.\n *\n * ### Example: Using Hono\n * ```ts\n * import { handleEndpoints } from 'payload';\n * import { serve } from '@hono/node-server';\n * import { loadEnv } from 'payload/node';\n *\n * const port = 3001;\n * loadEnv();\n *\n * const { default: config } = await import('@payload-config');\n *\n * const server = serve({\n * fetch: async (request) => {\n * const response = await handleEndpoints({\n * config,\n * request: request.clone(),\n * });\n *\n * return response;\n * },\n * port,\n * });\n *\n * server.on('listening', () => {\n * console.log(`API server is listening on http://localhost:${port}/api`);\n * });\n * ```\n */\nexport const handleEndpoints = async ({\n basePath = '',\n config: incomingConfig,\n path,\n payloadInstanceCacheKey,\n request,\n}: {\n basePath?: string\n config: Promise<SanitizedConfig> | SanitizedConfig\n /** Override path from the request */\n path?: string\n payloadInstanceCacheKey?: string\n request: Request\n}): Promise<Response> => {\n let handler!: PayloadHandler\n let req: PayloadRequest\n let collection!: Collection\n\n // This can be used against GET request search params size limit.\n // Instead you can do POST request with a text body as search params.\n // We use this internally for relationships querying on the frontend\n // packages/ui/src/fields/Relationship/index.tsx\n if (\n request.method.toLowerCase() === 'post' &&\n (request.headers.get('X-Payload-HTTP-Method-Override') === 'GET' ||\n request.headers.get('X-HTTP-Method-Override') === 'GET')\n ) {\n let url = request.url\n let data: any = undefined\n\n if (request.headers.get('Content-Type') === 'application/x-www-form-urlencoded') {\n const search = await request.text()\n url = `${request.url}?${search}`\n } else if (request.headers.get('Content-Type') === 'application/json') {\n // May not be supported by every endpoint\n data = await request.json()\n\n // locale and fallbackLocale is read by createPayloadRequest to populate req.locale and req.fallbackLocale\n // => add to searchParams\n if (data?.locale) {\n url += `?locale=${data.locale}`\n }\n if (data?.fallbackLocale) {\n url += `&fallbackLocale=${data.depth}`\n }\n }\n\n const req = new Request(url, {\n cache: request.cache,\n credentials: request.credentials,\n headers: request.headers,\n method: 'GET',\n signal: request.signal,\n })\n\n if (data) {\n // @ts-expect-error attach data to request - less overhead than using urlencoded\n req.data = data\n }\n\n const response = await handleEndpoints({\n basePath,\n config: incomingConfig,\n path,\n payloadInstanceCacheKey,\n request: req,\n })\n\n return response\n }\n\n try {\n req = await createPayloadRequest({\n canSetHeaders: true,\n config: incomingConfig,\n payloadInstanceCacheKey,\n request,\n })\n\n const { payload } = req\n const { config } = payload\n\n const pathname = path ?? new URL(req.url!).pathname\n const baseAPIPath = formatAdminURL({\n apiRoute: config.routes.api,\n path: '',\n })\n\n if (!pathname.startsWith(baseAPIPath)) {\n return notFoundResponse(req, pathname)\n }\n\n // /api/posts/route -> /posts/route\n let adjustedPathname = pathname.replace(baseAPIPath, '')\n\n let isGlobals = false\n\n // /globals/header/route -> /header/route\n if (adjustedPathname.startsWith('/globals')) {\n isGlobals = true\n adjustedPathname = adjustedPathname.replace('/globals', '')\n }\n\n const segments = adjustedPathname.split('/')\n // remove empty string first element\n segments.shift()\n\n const firstParam = segments[0]\n\n let globalConfig!: GlobalConfig\n\n // first param can be a global slug or collection slug, find the relevant config\n if (firstParam) {\n if (isGlobals) {\n globalConfig = payload.globals.config.find((each) => each.slug === firstParam)!\n } else if (payload.collections[firstParam]) {\n collection = payload.collections[firstParam]\n }\n }\n\n let endpoints: Endpoint[] | false = config.endpoints\n\n if (collection) {\n endpoints = collection.config.endpoints\n // /posts/route -> /route\n adjustedPathname = adjustedPathname.replace(`/${collection.config.slug}`, '')\n } else if (globalConfig) {\n // /header/route -> /route\n adjustedPathname = adjustedPathname.replace(`/${globalConfig.slug}`, '')\n endpoints = globalConfig.endpoints!\n }\n\n // sanitize when endpoint.path is '/'\n if (adjustedPathname === '') {\n adjustedPathname = '/'\n }\n\n if (endpoints === false) {\n return Response.json(\n {\n message: `Cannot ${req.method?.toUpperCase()} ${req.url}`,\n },\n {\n headers: headersWithCors({\n headers: new Headers(),\n req,\n }),\n status: httpStatus.NOT_IMPLEMENTED,\n },\n )\n }\n\n // Find the relevant endpoint configuration\n const endpoint = endpoints?.find((endpoint) => {\n if (endpoint.method !== req.method?.toLowerCase()) {\n return false\n }\n\n const pathMatchFn = match(endpoint.path, { decode: decodeURIComponent })\n\n const matchResult = pathMatchFn(adjustedPathname)\n\n if (!matchResult) {\n return false\n }\n\n req.routeParams = matchResult.params as Record<string, unknown>\n\n // Inject to routeParams the slug as well so it can be used later\n if (collection) {\n req.routeParams.collection = collection.config.slug\n } else if (globalConfig) {\n req.routeParams.global = globalConfig.slug\n }\n\n return true\n })\n\n if (endpoint) {\n handler = endpoint.handler\n }\n\n if (!handler) {\n // If no custom handler found and this is an OPTIONS request,\n // return default CORS response for preflight requests\n if (req.method?.toLowerCase() === 'options') {\n return Response.json(\n {},\n {\n headers: headersWithCors({\n headers: new Headers(),\n req,\n }),\n status: 200,\n },\n )\n }\n\n return notFoundResponse(req, pathname)\n }\n\n const response = await handler(req)\n\n return new Response(response.body, {\n headers: headersWithCors({\n headers: mergeHeaders(req.responseHeaders ?? new Headers(), response.headers),\n req,\n }),\n status: response.status,\n statusText: response.statusText,\n })\n } catch (_err) {\n const err = _err as APIError\n return routeError({\n collection,\n config: incomingConfig,\n err,\n req: req!,\n })\n }\n}\n"],"names":["status","httpStatus","match","createPayloadRequest","formatAdminURL","headersWithCors","mergeHeaders","routeError","notFoundResponse","req","pathname","Response","json","message","URL","url","headers","Headers","NOT_FOUND","handleEndpoints","basePath","config","incomingConfig","path","payloadInstanceCacheKey","request","handler","collection","method","toLowerCase","get","data","undefined","search","text","locale","fallbackLocale","depth","Request","cache","credentials","signal","response","canSetHeaders","payload","baseAPIPath","apiRoute","routes","api","startsWith","adjustedPathname","replace","isGlobals","segments","split","shift","firstParam","globalConfig","globals","find","each","slug","collections","endpoints","toUpperCase","NOT_IMPLEMENTED","endpoint","pathMatchFn","decode","decodeURIComponent","matchResult","routeParams","params","global","body","responseHeaders","statusText","_err","err"],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { PayloadRequest, SelectFn, SelectFnOperation, SelectType } from '../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Invoke an entity-level `select` config (always a function form) and return
|
|
4
|
+
* the resolved select to pass into `sanitizeSelect`.
|
|
5
|
+
*
|
|
6
|
+
* - No config → caller's `select` unchanged.
|
|
7
|
+
* - Function returning `SelectType` → replaces the caller's `select`.
|
|
8
|
+
* - Function returning `undefined` → caller's `select` unchanged.
|
|
9
|
+
*/
|
|
10
|
+
export declare const resolveSelect: <TSelect extends SelectType = SelectType>({ config, operation, req, select, }: {
|
|
11
|
+
config?: SelectFn<TSelect>;
|
|
12
|
+
operation: SelectFnOperation;
|
|
13
|
+
req: PayloadRequest;
|
|
14
|
+
select?: SelectType;
|
|
15
|
+
}) => SelectType | undefined;
|
|
16
|
+
//# sourceMappingURL=resolveSelect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveSelect.d.ts","sourceRoot":"","sources":["../../src/utilities/resolveSelect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEhG;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,SAAS,UAAU,oDAKrD;IACD,MAAM,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC1B,SAAS,EAAE,iBAAiB,CAAA;IAC5B,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;CACpB,KAAG,UAAU,GAAG,SAMhB,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Invoke an entity-level `select` config (always a function form) and return
|
|
3
|
+
* the resolved select to pass into `sanitizeSelect`.
|
|
4
|
+
*
|
|
5
|
+
* - No config → caller's `select` unchanged.
|
|
6
|
+
* - Function returning `SelectType` → replaces the caller's `select`.
|
|
7
|
+
* - Function returning `undefined` → caller's `select` unchanged.
|
|
8
|
+
*/ export const resolveSelect = ({ config, operation, req, select })=>{
|
|
9
|
+
if (typeof config !== 'function') {
|
|
10
|
+
return select;
|
|
11
|
+
}
|
|
12
|
+
return config({
|
|
13
|
+
operation,
|
|
14
|
+
req,
|
|
15
|
+
select
|
|
16
|
+
}) ?? select;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=resolveSelect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/resolveSelect.ts"],"sourcesContent":["import type { PayloadRequest, SelectFn, SelectFnOperation, SelectType } from '../types/index.js'\n\n/**\n * Invoke an entity-level `select` config (always a function form) and return\n * the resolved select to pass into `sanitizeSelect`.\n *\n * - No config → caller's `select` unchanged.\n * - Function returning `SelectType` → replaces the caller's `select`.\n * - Function returning `undefined` → caller's `select` unchanged.\n */\nexport const resolveSelect = <TSelect extends SelectType = SelectType>({\n config,\n operation,\n req,\n select,\n}: {\n config?: SelectFn<TSelect>\n operation: SelectFnOperation\n req: PayloadRequest\n select?: SelectType\n}): SelectType | undefined => {\n if (typeof config !== 'function') {\n return select\n }\n\n return config({ operation, req, select }) ?? select\n}\n"],"names":["resolveSelect","config","operation","req","select"],"mappings":"AAEA;;;;;;;CAOC,GACD,OAAO,MAAMA,gBAAgB,CAA0C,EACrEC,MAAM,EACNC,SAAS,EACTC,GAAG,EACHC,MAAM,EAMP;IACC,IAAI,OAAOH,WAAW,YAAY;QAChC,OAAOG;IACT;IAEA,OAAOH,OAAO;QAAEC;QAAWC;QAAKC;IAAO,MAAMA;AAC/C,EAAC"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type { FlattenedField } from '../fields/config/types.js';
|
|
2
2
|
import type { SelectType } from '../types/index.js';
|
|
3
|
-
export declare const sanitizeSelect: ({ fields,
|
|
3
|
+
export declare const sanitizeSelect: ({ fields, select, versions, }: {
|
|
4
4
|
fields: FlattenedField[];
|
|
5
|
-
forceSelect?: SelectType;
|
|
6
5
|
select?: SelectType;
|
|
7
6
|
versions?: boolean;
|
|
8
7
|
}) => SelectType | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitizeSelect.d.ts","sourceRoot":"","sources":["../../src/utilities/sanitizeSelect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sanitizeSelect.d.ts","sourceRoot":"","sources":["../../src/utilities/sanitizeSelect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,KAAK,EAAqB,UAAU,EAAE,MAAM,mBAAmB,CAAA;AA+GtE,eAAO,MAAM,cAAc,kCAIxB;IACD,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,KAAG,UAAU,GAAG,SAqChB,CAAA"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { deepMergeSimple } from '@payloadcms/translations/utilities';
|
|
2
1
|
import { getSelectMode } from './getSelectMode.js';
|
|
3
2
|
// Transform post.title -> post, post.category.title -> post
|
|
4
3
|
const stripVirtualPathToCurrentCollection = ({ fields, path, versions })=>{
|
|
@@ -80,7 +79,7 @@ const resolveVirtualRelationsToSelect = ({ fields, selectValue, topLevelFields,
|
|
|
80
79
|
}
|
|
81
80
|
return result;
|
|
82
81
|
};
|
|
83
|
-
export const sanitizeSelect = ({ fields,
|
|
82
|
+
export const sanitizeSelect = ({ fields, select, versions })=>{
|
|
84
83
|
if (!select) {
|
|
85
84
|
return select;
|
|
86
85
|
}
|
|
@@ -88,29 +87,24 @@ export const sanitizeSelect = ({ fields, forceSelect, select, versions })=>{
|
|
|
88
87
|
if (selectMode === 'exclude') {
|
|
89
88
|
return select;
|
|
90
89
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
currentRef[segment]
|
|
109
|
-
} else {
|
|
110
|
-
if (!(segment in currentRef)) {
|
|
111
|
-
currentRef[segment] = {};
|
|
112
|
-
currentRef = currentRef[segment];
|
|
113
|
-
}
|
|
90
|
+
const virtualRelations = resolveVirtualRelationsToSelect({
|
|
91
|
+
fields,
|
|
92
|
+
selectValue: select,
|
|
93
|
+
topLevelFields: fields,
|
|
94
|
+
versions: versions ?? false
|
|
95
|
+
});
|
|
96
|
+
for (const path of virtualRelations){
|
|
97
|
+
let currentRef = select;
|
|
98
|
+
const segments = path.split('.');
|
|
99
|
+
for(let i = 0; i < segments.length; i++){
|
|
100
|
+
const isLast = segments.length - 1 === i;
|
|
101
|
+
const segment = segments[i];
|
|
102
|
+
if (isLast) {
|
|
103
|
+
currentRef[segment] = true;
|
|
104
|
+
} else {
|
|
105
|
+
if (!(segment in currentRef)) {
|
|
106
|
+
currentRef[segment] = {};
|
|
107
|
+
currentRef = currentRef[segment];
|
|
114
108
|
}
|
|
115
109
|
}
|
|
116
110
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/sanitizeSelect.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/sanitizeSelect.ts"],"sourcesContent":["import type { FlattenedField } from '../fields/config/types.js'\nimport type { SelectIncludeType, SelectType } from '../types/index.js'\n\nimport { getSelectMode } from './getSelectMode.js'\n\n// Transform post.title -> post, post.category.title -> post\nconst stripVirtualPathToCurrentCollection = ({\n fields,\n path,\n versions,\n}: {\n fields: FlattenedField[]\n path: string\n versions: boolean\n}) => {\n const resultSegments: string[] = []\n\n if (versions) {\n resultSegments.push('version')\n const versionField = fields.find((each) => each.name === 'version')\n\n if (versionField && versionField.type === 'group') {\n fields = versionField.flattenedFields\n }\n }\n\n for (const segment of path.split('.')) {\n const field = fields.find((each) => each.name === segment)\n\n if (!field) {\n continue\n }\n\n resultSegments.push(segment)\n\n if (field.type === 'relationship' || field.type === 'upload') {\n return resultSegments.join('.')\n }\n }\n\n return resultSegments.join('.')\n}\n\nconst getAllVirtualRelations = ({ fields }: { fields: FlattenedField[] }) => {\n const result: string[] = []\n\n for (const field of fields) {\n if ('virtual' in field && typeof field.virtual === 'string') {\n result.push(field.virtual)\n } else if (field.type === 'group' || field.type === 'tab') {\n const nestedResult = getAllVirtualRelations({ fields: field.flattenedFields })\n\n for (const nestedItem of nestedResult) {\n result.push(nestedItem)\n }\n }\n }\n\n return result\n}\n\nconst resolveVirtualRelationsToSelect = ({\n fields,\n selectValue,\n topLevelFields,\n versions,\n}: {\n fields: FlattenedField[]\n selectValue: SelectIncludeType | true\n topLevelFields: FlattenedField[]\n versions: boolean\n}) => {\n const result: string[] = []\n if (selectValue === true) {\n for (const item of getAllVirtualRelations({ fields })) {\n result.push(\n stripVirtualPathToCurrentCollection({ fields: topLevelFields, path: item, versions }),\n )\n }\n } else {\n for (const fieldName in selectValue) {\n const field = fields.find((each) => each.name === fieldName)\n if (!field) {\n continue\n }\n\n if ('virtual' in field && typeof field.virtual === 'string') {\n result.push(\n stripVirtualPathToCurrentCollection({\n fields: topLevelFields,\n path: field.virtual,\n versions,\n }),\n )\n } else if (field.type === 'group' || field.type === 'tab') {\n for (const item of resolveVirtualRelationsToSelect({\n fields: field.flattenedFields,\n selectValue: selectValue[fieldName]!,\n topLevelFields,\n versions,\n })) {\n result.push(\n stripVirtualPathToCurrentCollection({ fields: topLevelFields, path: item, versions }),\n )\n }\n }\n }\n }\n\n return result\n}\n\nexport const sanitizeSelect = ({\n fields,\n select,\n versions,\n}: {\n fields: FlattenedField[]\n select?: SelectType\n versions?: boolean\n}): SelectType | undefined => {\n if (!select) {\n return select\n }\n\n const selectMode = getSelectMode(select)\n\n if (selectMode === 'exclude') {\n return select\n }\n\n const virtualRelations = resolveVirtualRelationsToSelect({\n fields,\n selectValue: select as SelectIncludeType,\n topLevelFields: fields,\n versions: versions ?? false,\n })\n\n for (const path of virtualRelations) {\n let currentRef = select\n const segments = path.split('.')\n for (let i = 0; i < segments.length; i++) {\n const isLast = segments.length - 1 === i\n const segment = segments[i]!\n\n if (isLast) {\n currentRef[segment] = true\n } else {\n if (!(segment in currentRef)) {\n currentRef[segment] = {}\n currentRef = currentRef[segment]\n }\n }\n }\n }\n\n return select\n}\n"],"names":["getSelectMode","stripVirtualPathToCurrentCollection","fields","path","versions","resultSegments","push","versionField","find","each","name","type","flattenedFields","segment","split","field","join","getAllVirtualRelations","result","virtual","nestedResult","nestedItem","resolveVirtualRelationsToSelect","selectValue","topLevelFields","item","fieldName","sanitizeSelect","select","selectMode","virtualRelations","currentRef","segments","i","length","isLast"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseFields.d.ts","sourceRoot":"","sources":["../../src/versions/baseFields.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAE7E,eAAO,MAAM,QAAQ,EAAE,MAAM,EAS5B,CAAA;AAED,eAAO,MAAM,iBAAiB,kBAAmB;IAAE,SAAS,EAAE,OAAO,CAAA;CAAE,KAAG,KAAK,EAgB9E,CAAA;AAOD,eAAO,MAAM,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"baseFields.d.ts","sourceRoot":"","sources":["../../src/versions/baseFields.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAE7E,eAAO,MAAM,QAAQ,EAAE,MAAM,EAS5B,CAAA;AAED,eAAO,MAAM,iBAAiB,kBAAmB;IAAE,SAAS,EAAE,OAAO,CAAA;CAAE,KAAG,KAAK,EAgB9E,CAAA;AAOD,eAAO,MAAM,oBAAoB,EAAE,aAOlC,CAAA"}
|
|
@@ -17,7 +17,9 @@ export const baseVersionFields = ({ localized })=>[
|
|
|
17
17
|
components: {
|
|
18
18
|
Field: false
|
|
19
19
|
},
|
|
20
|
-
|
|
20
|
+
disabled: {
|
|
21
|
+
bulkEdit: true
|
|
22
|
+
}
|
|
21
23
|
},
|
|
22
24
|
defaultValue: 'draft',
|
|
23
25
|
index: true,
|
|
@@ -35,7 +37,6 @@ export const versionSnapshotField = {
|
|
|
35
37
|
name: 'snapshot',
|
|
36
38
|
type: 'checkbox',
|
|
37
39
|
admin: {
|
|
38
|
-
disableBulkEdit: true,
|
|
39
40
|
disabled: true
|
|
40
41
|
},
|
|
41
42
|
index: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/versions/baseFields.ts"],"sourcesContent":["// @ts-strict-ignore\nimport type { CheckboxField, Field, Option } from '../fields/config/types.js'\n\nexport const statuses: Option[] = [\n {\n label: ({ t }) => t('version:draft'),\n value: 'draft',\n },\n {\n label: ({ t }) => t('version:published'),\n value: 'published',\n },\n]\n\nexport const baseVersionFields = ({ localized }: { localized: boolean }): Field[] => [\n {\n name: '_status',\n type: 'select',\n admin: {\n components: {\n Field: false,\n },\n
|
|
1
|
+
{"version":3,"sources":["../../src/versions/baseFields.ts"],"sourcesContent":["// @ts-strict-ignore\nimport type { CheckboxField, Field, Option } from '../fields/config/types.js'\n\nexport const statuses: Option[] = [\n {\n label: ({ t }) => t('version:draft'),\n value: 'draft',\n },\n {\n label: ({ t }) => t('version:published'),\n value: 'published',\n },\n]\n\nexport const baseVersionFields = ({ localized }: { localized: boolean }): Field[] => [\n {\n name: '_status',\n type: 'select',\n admin: {\n components: {\n Field: false,\n },\n disabled: { bulkEdit: true },\n },\n defaultValue: 'draft',\n index: true,\n label: ({ t }) => t('version:status'),\n localized: Boolean(localized),\n options: statuses,\n },\n]\n\n// When publishing a specific locale,\n// we need to create a new draft which acts as a\n// \"snapshot\" to retain all existing draft data.\n// This field will be used to exclude any snapshot versions\n// from the admin Versions list\nexport const versionSnapshotField: CheckboxField = {\n name: 'snapshot',\n type: 'checkbox',\n admin: {\n disabled: true,\n },\n index: true,\n}\n"],"names":["statuses","label","t","value","baseVersionFields","localized","name","type","admin","components","Field","disabled","bulkEdit","defaultValue","index","Boolean","options","versionSnapshotField"],"mappings":"AAAA,oBAAoB;AAGpB,OAAO,MAAMA,WAAqB;IAChC;QACEC,OAAO,CAAC,EAAEC,CAAC,EAAE,GAAKA,EAAE;QACpBC,OAAO;IACT;IACA;QACEF,OAAO,CAAC,EAAEC,CAAC,EAAE,GAAKA,EAAE;QACpBC,OAAO;IACT;CACD,CAAA;AAED,OAAO,MAAMC,oBAAoB,CAAC,EAAEC,SAAS,EAA0B,GAAc;QACnF;YACEC,MAAM;YACNC,MAAM;YACNC,OAAO;gBACLC,YAAY;oBACVC,OAAO;gBACT;gBACAC,UAAU;oBAAEC,UAAU;gBAAK;YAC7B;YACAC,cAAc;YACdC,OAAO;YACPb,OAAO,CAAC,EAAEC,CAAC,EAAE,GAAKA,EAAE;YACpBG,WAAWU,QAAQV;YACnBW,SAAShB;QACX;KACD,CAAA;AAED,qCAAqC;AACrC,gDAAgD;AAChD,gDAAgD;AAChD,2DAA2D;AAC3D,+BAA+B;AAC/B,OAAO,MAAMiB,uBAAsC;IACjDX,MAAM;IACNC,MAAM;IACNC,OAAO;QACLG,UAAU;IACZ;IACAG,OAAO;AACT,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildCollectionFields.d.ts","sourceRoot":"","sources":["../../src/versions/buildCollectionFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAKtE,eAAO,MAAM,4BAA4B,GAAI,CAAC,SAAS,OAAO,kBACpD,eAAe,cACX,yBAAyB,YAC3B,CAAC,KACV,IAAI,SAAS,CAAC,GAAG,cAAc,EAAE,GAAG,KAAK,
|
|
1
|
+
{"version":3,"file":"buildCollectionFields.d.ts","sourceRoot":"","sources":["../../src/versions/buildCollectionFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAKtE,eAAO,MAAM,4BAA4B,GAAI,CAAC,SAAS,OAAO,kBACpD,eAAe,cACX,yBAAyB,YAC3B,CAAC,KACV,IAAI,SAAS,CAAC,GAAG,cAAc,EAAE,GAAG,KAAK,EA0E3C,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/versions/buildCollectionFields.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../collections/config/types.js'\nimport type { SanitizedConfig } from '../config/types.js'\nimport type { Field, FlattenedField } from '../fields/config/types.js'\n\nimport { hasAutosaveEnabled, hasDraftsEnabled } from '../utilities/getVersionsConfig.js'\nimport { versionSnapshotField } from './baseFields.js'\n\nexport const buildVersionCollectionFields = <T extends boolean = false>(\n config: SanitizedConfig,\n collection: SanitizedCollectionConfig,\n flatten?: T,\n): true extends T ? FlattenedField[] : Field[] => {\n const fields: FlattenedField[] = [\n {\n name: 'parent',\n type: 'relationship',\n index: true,\n relationTo: collection.slug,\n },\n {\n name: 'version',\n type: 'group',\n fields: collection.fields.filter((field) => !('name' in field) || field.name !== 'id'),\n ...(flatten && {\n flattenedFields: collection.flattenedFields.filter((each) => each.name !== 'id'),\n })!,\n },\n {\n name: 'createdAt',\n type: 'date',\n admin: {\n disabled: true,\n },\n index: true,\n },\n {\n name: 'updatedAt',\n type: 'date',\n admin: {\n disabled: true,\n },\n index: true,\n },\n ]\n\n if (hasDraftsEnabled(collection)) {\n if (config.localization) {\n fields.push(versionSnapshotField)\n\n fields.push({\n name: 'publishedLocale',\n type: 'select',\n admin: {\n
|
|
1
|
+
{"version":3,"sources":["../../src/versions/buildCollectionFields.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../collections/config/types.js'\nimport type { SanitizedConfig } from '../config/types.js'\nimport type { Field, FlattenedField } from '../fields/config/types.js'\n\nimport { hasAutosaveEnabled, hasDraftsEnabled } from '../utilities/getVersionsConfig.js'\nimport { versionSnapshotField } from './baseFields.js'\n\nexport const buildVersionCollectionFields = <T extends boolean = false>(\n config: SanitizedConfig,\n collection: SanitizedCollectionConfig,\n flatten?: T,\n): true extends T ? FlattenedField[] : Field[] => {\n const fields: FlattenedField[] = [\n {\n name: 'parent',\n type: 'relationship',\n index: true,\n relationTo: collection.slug,\n },\n {\n name: 'version',\n type: 'group',\n fields: collection.fields.filter((field) => !('name' in field) || field.name !== 'id'),\n ...(flatten && {\n flattenedFields: collection.flattenedFields.filter((each) => each.name !== 'id'),\n })!,\n },\n {\n name: 'createdAt',\n type: 'date',\n admin: {\n disabled: true,\n },\n index: true,\n },\n {\n name: 'updatedAt',\n type: 'date',\n admin: {\n disabled: true,\n },\n index: true,\n },\n ]\n\n if (hasDraftsEnabled(collection)) {\n if (config.localization) {\n fields.push(versionSnapshotField)\n\n fields.push({\n name: 'publishedLocale',\n type: 'select',\n admin: {\n disabled: true,\n },\n index: true,\n options: config.localization.locales.map((locale) => {\n if (typeof locale === 'string') {\n return locale\n }\n\n return locale.code\n }),\n })\n }\n\n fields.push({\n name: 'latest',\n type: 'checkbox',\n admin: {\n disabled: true,\n },\n index: true,\n })\n\n if (hasAutosaveEnabled(collection)) {\n fields.push({\n name: 'autosave',\n type: 'checkbox',\n index: true,\n })\n }\n }\n\n return fields as true extends T ? FlattenedField[] : Field[]\n}\n"],"names":["hasAutosaveEnabled","hasDraftsEnabled","versionSnapshotField","buildVersionCollectionFields","config","collection","flatten","fields","name","type","index","relationTo","slug","filter","field","flattenedFields","each","admin","disabled","localization","push","options","locales","map","locale","code"],"mappings":"AAIA,SAASA,kBAAkB,EAAEC,gBAAgB,QAAQ,oCAAmC;AACxF,SAASC,oBAAoB,QAAQ,kBAAiB;AAEtD,OAAO,MAAMC,+BAA+B,CAC1CC,QACAC,YACAC;IAEA,MAAMC,SAA2B;QAC/B;YACEC,MAAM;YACNC,MAAM;YACNC,OAAO;YACPC,YAAYN,WAAWO,IAAI;QAC7B;QACA;YACEJ,MAAM;YACNC,MAAM;YACNF,QAAQF,WAAWE,MAAM,CAACM,MAAM,CAAC,CAACC,QAAU,CAAE,CAAA,UAAUA,KAAI,KAAMA,MAAMN,IAAI,KAAK;YACjF,GAAIF,WAAW;gBACbS,iBAAiBV,WAAWU,eAAe,CAACF,MAAM,CAAC,CAACG,OAASA,KAAKR,IAAI,KAAK;YAC7E,CAAC;QACH;QACA;YACEA,MAAM;YACNC,MAAM;YACNQ,OAAO;gBACLC,UAAU;YACZ;YACAR,OAAO;QACT;QACA;YACEF,MAAM;YACNC,MAAM;YACNQ,OAAO;gBACLC,UAAU;YACZ;YACAR,OAAO;QACT;KACD;IAED,IAAIT,iBAAiBI,aAAa;QAChC,IAAID,OAAOe,YAAY,EAAE;YACvBZ,OAAOa,IAAI,CAAClB;YAEZK,OAAOa,IAAI,CAAC;gBACVZ,MAAM;gBACNC,MAAM;gBACNQ,OAAO;oBACLC,UAAU;gBACZ;gBACAR,OAAO;gBACPW,SAASjB,OAAOe,YAAY,CAACG,OAAO,CAACC,GAAG,CAAC,CAACC;oBACxC,IAAI,OAAOA,WAAW,UAAU;wBAC9B,OAAOA;oBACT;oBAEA,OAAOA,OAAOC,IAAI;gBACpB;YACF;QACF;QAEAlB,OAAOa,IAAI,CAAC;YACVZ,MAAM;YACNC,MAAM;YACNQ,OAAO;gBACLC,UAAU;YACZ;YACAR,OAAO;QACT;QAEA,IAAIV,mBAAmBK,aAAa;YAClCE,OAAOa,IAAI,CAAC;gBACVZ,MAAM;gBACNC,MAAM;gBACNC,OAAO;YACT;QACF;IACF;IAEA,OAAOH;AACT,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildGlobalFields.d.ts","sourceRoot":"","sources":["../../src/versions/buildGlobalFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AACtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAKvE,eAAO,MAAM,wBAAwB,GAAI,CAAC,SAAS,OAAO,kBAChD,eAAe,UACf,qBAAqB,YACnB,CAAC,KACV,IAAI,SAAS,CAAC,GAAG,cAAc,EAAE,GAAG,KAAK,
|
|
1
|
+
{"version":3,"file":"buildGlobalFields.d.ts","sourceRoot":"","sources":["../../src/versions/buildGlobalFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AACtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAKvE,eAAO,MAAM,wBAAwB,GAAI,CAAC,SAAS,OAAO,kBAChD,eAAe,UACf,qBAAqB,YACnB,CAAC,KACV,IAAI,SAAS,CAAC,GAAG,cAAc,EAAE,GAAG,KAAK,EAoE3C,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/versions/buildGlobalFields.ts"],"sourcesContent":["import type { SanitizedConfig } from '../config/types.js'\nimport type { Field, FlattenedField } from '../fields/config/types.js'\nimport type { SanitizedGlobalConfig } from '../globals/config/types.js'\n\nimport { hasAutosaveEnabled, hasDraftsEnabled } from '../utilities/getVersionsConfig.js'\nimport { versionSnapshotField } from './baseFields.js'\n\nexport const buildVersionGlobalFields = <T extends boolean = false>(\n config: SanitizedConfig,\n global: SanitizedGlobalConfig,\n flatten?: T,\n): true extends T ? FlattenedField[] : Field[] => {\n const fields: FlattenedField[] = [\n {\n name: 'version',\n type: 'group',\n fields: global.fields,\n ...(flatten && {\n flattenedFields: global.flattenedFields,\n })!,\n },\n {\n name: 'createdAt',\n type: 'date',\n admin: {\n disabled: true,\n },\n index: true,\n },\n {\n name: 'updatedAt',\n type: 'date',\n admin: {\n disabled: true,\n },\n index: true,\n },\n ]\n\n if (hasDraftsEnabled(global)) {\n if (config.localization) {\n fields.push(versionSnapshotField)\n\n fields.push({\n name: 'publishedLocale',\n type: 'select',\n admin: {\n
|
|
1
|
+
{"version":3,"sources":["../../src/versions/buildGlobalFields.ts"],"sourcesContent":["import type { SanitizedConfig } from '../config/types.js'\nimport type { Field, FlattenedField } from '../fields/config/types.js'\nimport type { SanitizedGlobalConfig } from '../globals/config/types.js'\n\nimport { hasAutosaveEnabled, hasDraftsEnabled } from '../utilities/getVersionsConfig.js'\nimport { versionSnapshotField } from './baseFields.js'\n\nexport const buildVersionGlobalFields = <T extends boolean = false>(\n config: SanitizedConfig,\n global: SanitizedGlobalConfig,\n flatten?: T,\n): true extends T ? FlattenedField[] : Field[] => {\n const fields: FlattenedField[] = [\n {\n name: 'version',\n type: 'group',\n fields: global.fields,\n ...(flatten && {\n flattenedFields: global.flattenedFields,\n })!,\n },\n {\n name: 'createdAt',\n type: 'date',\n admin: {\n disabled: true,\n },\n index: true,\n },\n {\n name: 'updatedAt',\n type: 'date',\n admin: {\n disabled: true,\n },\n index: true,\n },\n ]\n\n if (hasDraftsEnabled(global)) {\n if (config.localization) {\n fields.push(versionSnapshotField)\n\n fields.push({\n name: 'publishedLocale',\n type: 'select',\n admin: {\n disabled: true,\n },\n index: true,\n options: config.localization.locales.map((locale) => {\n if (typeof locale === 'string') {\n return locale\n }\n\n return locale.code\n }),\n })\n }\n\n fields.push({\n name: 'latest',\n type: 'checkbox',\n admin: {\n disabled: true,\n },\n index: true,\n })\n\n if (hasAutosaveEnabled(global)) {\n fields.push({\n name: 'autosave',\n type: 'checkbox',\n index: true,\n })\n }\n }\n\n return fields as true extends T ? FlattenedField[] : Field[]\n}\n"],"names":["hasAutosaveEnabled","hasDraftsEnabled","versionSnapshotField","buildVersionGlobalFields","config","global","flatten","fields","name","type","flattenedFields","admin","disabled","index","localization","push","options","locales","map","locale","code"],"mappings":"AAIA,SAASA,kBAAkB,EAAEC,gBAAgB,QAAQ,oCAAmC;AACxF,SAASC,oBAAoB,QAAQ,kBAAiB;AAEtD,OAAO,MAAMC,2BAA2B,CACtCC,QACAC,QACAC;IAEA,MAAMC,SAA2B;QAC/B;YACEC,MAAM;YACNC,MAAM;YACNF,QAAQF,OAAOE,MAAM;YACrB,GAAID,WAAW;gBACbI,iBAAiBL,OAAOK,eAAe;YACzC,CAAC;QACH;QACA;YACEF,MAAM;YACNC,MAAM;YACNE,OAAO;gBACLC,UAAU;YACZ;YACAC,OAAO;QACT;QACA;YACEL,MAAM;YACNC,MAAM;YACNE,OAAO;gBACLC,UAAU;YACZ;YACAC,OAAO;QACT;KACD;IAED,IAAIZ,iBAAiBI,SAAS;QAC5B,IAAID,OAAOU,YAAY,EAAE;YACvBP,OAAOQ,IAAI,CAACb;YAEZK,OAAOQ,IAAI,CAAC;gBACVP,MAAM;gBACNC,MAAM;gBACNE,OAAO;oBACLC,UAAU;gBACZ;gBACAC,OAAO;gBACPG,SAASZ,OAAOU,YAAY,CAACG,OAAO,CAACC,GAAG,CAAC,CAACC;oBACxC,IAAI,OAAOA,WAAW,UAAU;wBAC9B,OAAOA;oBACT;oBAEA,OAAOA,OAAOC,IAAI;gBACpB;YACF;QACF;QAEAb,OAAOQ,IAAI,CAAC;YACVP,MAAM;YACNC,MAAM;YACNE,OAAO;gBACLC,UAAU;YACZ;YACAC,OAAO;QACT;QAEA,IAAIb,mBAAmBK,SAAS;YAC9BE,OAAOQ,IAAI,CAAC;gBACVP,MAAM;gBACNC,MAAM;gBACNI,OAAO;YACT;QACF;IACF;IAEA,OAAON;AACT,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payloadPackageList.d.ts","sourceRoot":"","sources":["../../src/versions/payloadPackageList.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"payloadPackageList.d.ts","sourceRoot":"","sources":["../../src/versions/payloadPackageList.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,UA0ChC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/versions/payloadPackageList.ts"],"sourcesContent":["export const PAYLOAD_PACKAGE_LIST = [\n 'payload',\n '@payloadcms/bundler-vite',\n '@payloadcms/bundler-webpack',\n '@payloadcms/db-d1-sqlite',\n '@payloadcms/db-mongodb',\n '@payloadcms/db-postgres',\n '@payloadcms/db-sqlite',\n '@payloadcms/db-vercel-postgres',\n '@payloadcms/drizzle',\n '@payloadcms/ecommerce',\n '@payloadcms/email-nodemailer',\n '@payloadcms/email-resend',\n '@payloadcms/graphql',\n '@payloadcms/live-preview',\n '@payloadcms/live-preview-react',\n '@payloadcms/live-preview-vue',\n '@payloadcms/kv-redis',\n '@payloadcms/next/utilities',\n '@payloadcms/payload-cloud',\n '@payloadcms/plugin-cloud-storage',\n '@payloadcms/plugin-form-builder',\n '@payloadcms/plugin-import-export',\n '@payloadcms/plugin-mcp',\n '@payloadcms/plugin-multi-tenant',\n '@payloadcms/plugin-nested-docs',\n '@payloadcms/plugin-redirects',\n '@payloadcms/plugin-search',\n '@payloadcms/plugin-seo',\n '@payloadcms/plugin-stripe',\n '@payloadcms/plugin-zapier',\n '@payloadcms/typescript-plugin',\n '@payloadcms/richtext-lexical',\n '@payloadcms/
|
|
1
|
+
{"version":3,"sources":["../../src/versions/payloadPackageList.ts"],"sourcesContent":["export const PAYLOAD_PACKAGE_LIST = [\n 'payload',\n '@payloadcms/bundler-vite',\n '@payloadcms/bundler-webpack',\n '@payloadcms/db-d1-sqlite',\n '@payloadcms/db-mongodb',\n '@payloadcms/db-postgres',\n '@payloadcms/db-sqlite',\n '@payloadcms/db-vercel-postgres',\n '@payloadcms/drizzle',\n '@payloadcms/ecommerce',\n '@payloadcms/email-nodemailer',\n '@payloadcms/email-resend',\n '@payloadcms/graphql',\n '@payloadcms/live-preview',\n '@payloadcms/live-preview-react',\n '@payloadcms/live-preview-vue',\n '@payloadcms/kv-redis',\n '@payloadcms/next/utilities',\n '@payloadcms/payload-cloud',\n '@payloadcms/plugin-cloud-storage',\n '@payloadcms/plugin-form-builder',\n '@payloadcms/plugin-import-export',\n '@payloadcms/plugin-mcp',\n '@payloadcms/plugin-multi-tenant',\n '@payloadcms/plugin-nested-docs',\n '@payloadcms/plugin-redirects',\n '@payloadcms/plugin-search',\n '@payloadcms/plugin-seo',\n '@payloadcms/plugin-stripe',\n '@payloadcms/plugin-zapier',\n '@payloadcms/typescript-plugin',\n '@payloadcms/richtext-lexical',\n '@payloadcms/sdk',\n '@payloadcms/storage-azure',\n '@payloadcms/storage-gcs',\n '@payloadcms/storage-r2',\n '@payloadcms/storage-s3',\n '@payloadcms/storage-uploadthing',\n '@payloadcms/storage-vercel-blob',\n '@payloadcms/translations',\n '@payloadcms/ui/shared',\n]\n"],"names":["PAYLOAD_PACKAGE_LIST"],"mappings":"AAAA,OAAO,MAAMA,uBAAuB;IAClC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "payload",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0-internal.38b7f1d",
|
|
4
4
|
"description": "Node, React, Headless CMS and Application Framework built on Next.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"admin panel",
|
|
@@ -113,9 +113,9 @@
|
|
|
113
113
|
"ts-essentials": "10.0.3",
|
|
114
114
|
"tsx": "4.21.0",
|
|
115
115
|
"undici": "7.24.4",
|
|
116
|
-
"uuid": "
|
|
116
|
+
"uuid": "14.0.0",
|
|
117
117
|
"ws": "^8.16.0",
|
|
118
|
-
"@payloadcms/translations": "
|
|
118
|
+
"@payloadcms/translations": "4.0.0-internal.38b7f1d"
|
|
119
119
|
},
|
|
120
120
|
"devDependencies": {
|
|
121
121
|
"@hyrious/esbuild-plugin-commonjs": "0.2.6",
|
|
@@ -141,7 +141,7 @@
|
|
|
141
141
|
"graphql": "^16.8.1"
|
|
142
142
|
},
|
|
143
143
|
"engines": {
|
|
144
|
-
"node": "
|
|
144
|
+
"node": ">=24.15.0"
|
|
145
145
|
},
|
|
146
146
|
"publishConfig": {
|
|
147
147
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import type { ServerProps } from '../../config/types.js';
|
|
2
|
-
import type { FolderBreadcrumb, FolderOrDocument, FolderSortKeys } from '../../folders/types.js';
|
|
3
|
-
import type { SanitizedCollectionConfig } from '../../index.js';
|
|
4
|
-
export type FolderListViewSlots = {
|
|
5
|
-
AfterFolderList?: React.ReactNode;
|
|
6
|
-
AfterFolderListTable?: React.ReactNode;
|
|
7
|
-
BeforeFolderList?: React.ReactNode;
|
|
8
|
-
BeforeFolderListTable?: React.ReactNode;
|
|
9
|
-
Description?: React.ReactNode;
|
|
10
|
-
listMenuItems?: React.ReactNode[];
|
|
11
|
-
};
|
|
12
|
-
export type FolderListViewServerPropsOnly = {
|
|
13
|
-
collectionConfig: SanitizedCollectionConfig;
|
|
14
|
-
documents: FolderOrDocument[];
|
|
15
|
-
subfolders: FolderOrDocument[];
|
|
16
|
-
} & ServerProps;
|
|
17
|
-
export type FolderListViewServerProps = FolderListViewClientProps & FolderListViewServerPropsOnly;
|
|
18
|
-
export type FolderListViewClientProps = {
|
|
19
|
-
activeCollectionFolderSlugs?: SanitizedCollectionConfig['slug'][];
|
|
20
|
-
allCollectionFolderSlugs: SanitizedCollectionConfig['slug'][];
|
|
21
|
-
allowCreateCollectionSlugs: SanitizedCollectionConfig['slug'][];
|
|
22
|
-
baseFolderPath: `/${string}`;
|
|
23
|
-
beforeActions?: React.ReactNode[];
|
|
24
|
-
breadcrumbs: FolderBreadcrumb[];
|
|
25
|
-
collectionSlug?: SanitizedCollectionConfig['slug'];
|
|
26
|
-
disableBulkDelete?: boolean;
|
|
27
|
-
disableBulkEdit?: boolean;
|
|
28
|
-
documents: FolderOrDocument[];
|
|
29
|
-
enableRowSelections?: boolean;
|
|
30
|
-
folderAssignedCollections?: SanitizedCollectionConfig['slug'][];
|
|
31
|
-
folderFieldName: string;
|
|
32
|
-
folderID: null | number | string;
|
|
33
|
-
FolderResultsComponent: React.ReactNode;
|
|
34
|
-
search?: string;
|
|
35
|
-
sort?: FolderSortKeys;
|
|
36
|
-
subfolders: FolderOrDocument[];
|
|
37
|
-
viewPreference: 'grid' | 'list';
|
|
38
|
-
} & FolderListViewSlots;
|
|
39
|
-
export type FolderListViewSlotSharedClientProps = {
|
|
40
|
-
collectionSlug: SanitizedCollectionConfig['slug'];
|
|
41
|
-
hasCreatePermission: boolean;
|
|
42
|
-
newDocumentURL: string;
|
|
43
|
-
};
|
|
44
|
-
export type BeforeFolderListClientProps = FolderListViewSlotSharedClientProps;
|
|
45
|
-
export type BeforeFolderListServerPropsOnly = {} & FolderListViewServerPropsOnly;
|
|
46
|
-
export type BeforeFolderListServerProps = BeforeFolderListClientProps & BeforeFolderListServerPropsOnly;
|
|
47
|
-
export type BeforeFolderListTableClientProps = FolderListViewSlotSharedClientProps;
|
|
48
|
-
export type BeforeFolderListTableServerPropsOnly = {} & FolderListViewServerPropsOnly;
|
|
49
|
-
export type BeforeFolderListTableServerProps = BeforeFolderListTableClientProps & BeforeFolderListTableServerPropsOnly;
|
|
50
|
-
export type AfterFolderListClientProps = FolderListViewSlotSharedClientProps;
|
|
51
|
-
export type AfterFolderListServerPropsOnly = {} & FolderListViewServerPropsOnly;
|
|
52
|
-
export type AfterFolderListServerProps = AfterFolderListClientProps & AfterFolderListServerPropsOnly;
|
|
53
|
-
export type AfterFolderListTableClientProps = FolderListViewSlotSharedClientProps;
|
|
54
|
-
export type AfterFolderListTableServerPropsOnly = {} & FolderListViewServerPropsOnly;
|
|
55
|
-
export type AfterFolderListTableServerProps = AfterFolderListTableClientProps & AfterFolderListTableServerPropsOnly;
|
|
56
|
-
//# sourceMappingURL=folderList.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"folderList.d.ts","sourceRoot":"","sources":["../../../src/admin/views/folderList.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/admin/views/folderList.ts"],"sourcesContent":["import type { ServerProps } from '../../config/types.js'\nimport type { FolderBreadcrumb, FolderOrDocument, FolderSortKeys } from '../../folders/types.js'\nimport type { SanitizedCollectionConfig } from '../../index.js'\nexport type FolderListViewSlots = {\n AfterFolderList?: React.ReactNode\n AfterFolderListTable?: React.ReactNode\n BeforeFolderList?: React.ReactNode\n BeforeFolderListTable?: React.ReactNode\n Description?: React.ReactNode\n listMenuItems?: React.ReactNode[]\n}\n\nexport type FolderListViewServerPropsOnly = {\n collectionConfig: SanitizedCollectionConfig\n documents: FolderOrDocument[]\n subfolders: FolderOrDocument[]\n} & ServerProps\n\nexport type FolderListViewServerProps = FolderListViewClientProps & FolderListViewServerPropsOnly\n\nexport type FolderListViewClientProps = {\n activeCollectionFolderSlugs?: SanitizedCollectionConfig['slug'][]\n allCollectionFolderSlugs: SanitizedCollectionConfig['slug'][]\n allowCreateCollectionSlugs: SanitizedCollectionConfig['slug'][]\n baseFolderPath: `/${string}`\n beforeActions?: React.ReactNode[]\n breadcrumbs: FolderBreadcrumb[]\n collectionSlug?: SanitizedCollectionConfig['slug']\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n documents: FolderOrDocument[]\n enableRowSelections?: boolean\n folderAssignedCollections?: SanitizedCollectionConfig['slug'][]\n folderFieldName: string\n folderID: null | number | string\n FolderResultsComponent: React.ReactNode\n search?: string\n sort?: FolderSortKeys\n subfolders: FolderOrDocument[]\n viewPreference: 'grid' | 'list'\n} & FolderListViewSlots\n\nexport type FolderListViewSlotSharedClientProps = {\n collectionSlug: SanitizedCollectionConfig['slug']\n hasCreatePermission: boolean\n newDocumentURL: string\n}\n\n// BeforeFolderList\nexport type BeforeFolderListClientProps = FolderListViewSlotSharedClientProps\nexport type BeforeFolderListServerPropsOnly = {} & FolderListViewServerPropsOnly\nexport type BeforeFolderListServerProps = BeforeFolderListClientProps &\n BeforeFolderListServerPropsOnly\n\n// BeforeFolderListTable\nexport type BeforeFolderListTableClientProps = FolderListViewSlotSharedClientProps\nexport type BeforeFolderListTableServerPropsOnly = {} & FolderListViewServerPropsOnly\nexport type BeforeFolderListTableServerProps = BeforeFolderListTableClientProps &\n BeforeFolderListTableServerPropsOnly\n\n// AfterFolderList\nexport type AfterFolderListClientProps = FolderListViewSlotSharedClientProps\nexport type AfterFolderListServerPropsOnly = {} & FolderListViewServerPropsOnly\nexport type AfterFolderListServerProps = AfterFolderListClientProps & AfterFolderListServerPropsOnly\n\n// AfterFolderListTable\nexport type AfterFolderListTableClientProps = FolderListViewSlotSharedClientProps\nexport type AfterFolderListTableServerPropsOnly = {} & FolderListViewServerPropsOnly\nexport type AfterFolderListTableServerProps = AfterFolderListTableClientProps &\n AfterFolderListTableServerPropsOnly\n"],"names":[],"mappings":"AAoEA,WACqC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { Config, SanitizedConfig } from '../config/types.js';
|
|
2
|
-
import type { CollectionConfig } from '../index.js';
|
|
3
|
-
export declare function addFolderCollection({ collectionSpecific, config, folderEnabledCollections, richTextSanitizationPromises, validRelationships, }: {
|
|
4
|
-
collectionSpecific: boolean;
|
|
5
|
-
config: NonNullable<Config>;
|
|
6
|
-
folderEnabledCollections: CollectionConfig[];
|
|
7
|
-
richTextSanitizationPromises?: Array<(config: SanitizedConfig) => Promise<void>>;
|
|
8
|
-
validRelationships?: string[];
|
|
9
|
-
}): Promise<void>;
|
|
10
|
-
//# sourceMappingURL=addFolderCollection.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"addFolderCollection.d.ts","sourceRoot":"","sources":["../../src/folders/addFolderCollection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAKnD,wBAAsB,mBAAmB,CAAC,EACxC,kBAAkB,EAClB,MAAM,EACN,wBAAwB,EACxB,4BAAiC,EACjC,kBAAuB,GACxB,EAAE;IACD,kBAAkB,EAAE,OAAO,CAAA;IAC3B,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAC3B,wBAAwB,EAAE,gBAAgB,EAAE,CAAA;IAC5C,4BAA4B,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IAChF,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC9B,GAAG,OAAO,CAAC,IAAI,CAAC,CAgChB"}
|