payload 3.0.0-beta.120 → 3.0.0-beta.121
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/auth/operations/registerFirstUser.d.ts.map +1 -1
- package/dist/auth/operations/registerFirstUser.js.map +1 -1
- package/dist/auth/strategies/local/register.d.ts +3 -2
- package/dist/auth/strategies/local/register.d.ts.map +1 -1
- package/dist/auth/strategies/local/register.js +3 -2
- package/dist/auth/strategies/local/register.js.map +1 -1
- package/dist/bin/generateTypes.d.ts.map +1 -1
- package/dist/bin/generateTypes.js +4 -0
- package/dist/bin/generateTypes.js.map +1 -1
- package/dist/bin/index.d.ts +1 -1
- package/dist/bin/index.d.ts.map +1 -1
- package/dist/bin/index.js +25 -0
- package/dist/bin/index.js.map +1 -1
- package/dist/collections/config/types.d.ts +7 -5
- package/dist/collections/config/types.d.ts.map +1 -1
- package/dist/collections/config/types.js.map +1 -1
- package/dist/collections/dataloader.d.ts +3 -2
- package/dist/collections/dataloader.d.ts.map +1 -1
- package/dist/collections/dataloader.js +9 -5
- package/dist/collections/dataloader.js.map +1 -1
- package/dist/collections/operations/create.d.ts +4 -3
- package/dist/collections/operations/create.d.ts.map +1 -1
- package/dist/collections/operations/create.js +6 -3
- package/dist/collections/operations/create.js.map +1 -1
- package/dist/collections/operations/delete.d.ts +4 -9
- package/dist/collections/operations/delete.d.ts.map +1 -1
- package/dist/collections/operations/delete.js +3 -1
- package/dist/collections/operations/delete.js.map +1 -1
- package/dist/collections/operations/deleteByID.d.ts +4 -3
- package/dist/collections/operations/deleteByID.d.ts.map +1 -1
- package/dist/collections/operations/deleteByID.js +3 -1
- package/dist/collections/operations/deleteByID.js.map +1 -1
- package/dist/collections/operations/duplicate.d.ts +4 -3
- package/dist/collections/operations/duplicate.d.ts.map +1 -1
- package/dist/collections/operations/duplicate.js +7 -3
- package/dist/collections/operations/duplicate.js.map +1 -1
- package/dist/collections/operations/find.d.ts +4 -3
- package/dist/collections/operations/find.d.ts.map +1 -1
- package/dist/collections/operations/find.js +7 -1
- package/dist/collections/operations/find.js.map +1 -1
- package/dist/collections/operations/findByID.d.ts +4 -3
- package/dist/collections/operations/findByID.d.ts.map +1 -1
- package/dist/collections/operations/findByID.js +5 -2
- package/dist/collections/operations/findByID.js.map +1 -1
- package/dist/collections/operations/findVersionByID.d.ts +2 -1
- package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
- package/dist/collections/operations/findVersionByID.js +3 -1
- package/dist/collections/operations/findVersionByID.js.map +1 -1
- package/dist/collections/operations/findVersions.d.ts +2 -1
- package/dist/collections/operations/findVersions.d.ts.map +1 -1
- package/dist/collections/operations/findVersions.js +3 -1
- package/dist/collections/operations/findVersions.js.map +1 -1
- package/dist/collections/operations/local/create.d.ts +5 -4
- package/dist/collections/operations/local/create.d.ts.map +1 -1
- package/dist/collections/operations/local/create.js +2 -1
- package/dist/collections/operations/local/create.js.map +1 -1
- package/dist/collections/operations/local/delete.d.ts +12 -11
- package/dist/collections/operations/local/delete.d.ts.map +1 -1
- package/dist/collections/operations/local/delete.js +2 -1
- package/dist/collections/operations/local/delete.js.map +1 -1
- package/dist/collections/operations/local/duplicate.d.ts +5 -4
- package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
- package/dist/collections/operations/local/duplicate.js +2 -1
- package/dist/collections/operations/local/duplicate.js.map +1 -1
- package/dist/collections/operations/local/find.d.ts +5 -4
- package/dist/collections/operations/local/find.d.ts.map +1 -1
- package/dist/collections/operations/local/find.js +3 -1
- package/dist/collections/operations/local/find.js.map +1 -1
- package/dist/collections/operations/local/findByID.d.ts +7 -6
- package/dist/collections/operations/local/findByID.d.ts.map +1 -1
- package/dist/collections/operations/local/findByID.js +3 -2
- package/dist/collections/operations/local/findByID.js.map +1 -1
- package/dist/collections/operations/local/findVersionByID.d.ts +2 -1
- package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
- package/dist/collections/operations/local/findVersionByID.js +2 -1
- package/dist/collections/operations/local/findVersionByID.js.map +1 -1
- package/dist/collections/operations/local/findVersions.d.ts +2 -1
- package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
- package/dist/collections/operations/local/findVersions.js +2 -1
- package/dist/collections/operations/local/findVersions.js.map +1 -1
- package/dist/collections/operations/local/index.d.ts.map +1 -1
- package/dist/collections/operations/local/index.js +1 -1
- package/dist/collections/operations/local/index.js.map +1 -1
- package/dist/collections/operations/local/restoreVersion.d.ts +2 -1
- package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
- package/dist/collections/operations/local/restoreVersion.js +2 -1
- package/dist/collections/operations/local/restoreVersion.js.map +1 -1
- package/dist/collections/operations/local/update.d.ts +12 -11
- package/dist/collections/operations/local/update.d.ts.map +1 -1
- package/dist/collections/operations/local/update.js +2 -1
- package/dist/collections/operations/local/update.js.map +1 -1
- package/dist/collections/operations/restoreVersion.d.ts +2 -1
- package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
- package/dist/collections/operations/restoreVersion.js +4 -2
- package/dist/collections/operations/restoreVersion.js.map +1 -1
- package/dist/collections/operations/update.d.ts +4 -3
- package/dist/collections/operations/update.d.ts.map +1 -1
- package/dist/collections/operations/update.js +6 -3
- package/dist/collections/operations/update.js.map +1 -1
- package/dist/collections/operations/updateByID.d.ts +4 -3
- package/dist/collections/operations/updateByID.d.ts.map +1 -1
- package/dist/collections/operations/updateByID.js +5 -2
- package/dist/collections/operations/updateByID.js.map +1 -1
- package/dist/collections/operations/utils.d.ts +8 -8
- package/dist/collections/operations/utils.d.ts.map +1 -1
- package/dist/collections/operations/utils.js.map +1 -1
- package/dist/config/client.d.ts +2 -2
- package/dist/config/client.d.ts.map +1 -1
- package/dist/config/client.js +1 -0
- package/dist/config/client.js.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +8 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/sanitize.d.ts.map +1 -1
- package/dist/config/sanitize.js +21 -0
- package/dist/config/sanitize.js.map +1 -1
- package/dist/config/types.d.ts +6 -1
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js.map +1 -1
- package/dist/database/types.d.ts +15 -1
- package/dist/database/types.d.ts.map +1 -1
- package/dist/database/types.js.map +1 -1
- package/dist/exports/shared.d.ts +1 -0
- package/dist/exports/shared.d.ts.map +1 -1
- package/dist/exports/shared.js +1 -0
- package/dist/exports/shared.js.map +1 -1
- package/dist/fields/config/types.d.ts +2 -0
- package/dist/fields/config/types.d.ts.map +1 -1
- package/dist/fields/config/types.js.map +1 -1
- package/dist/fields/hooks/afterRead/index.d.ts +2 -1
- package/dist/fields/hooks/afterRead/index.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/index.js +4 -1
- package/dist/fields/hooks/afterRead/index.js.map +1 -1
- package/dist/fields/hooks/afterRead/promise.d.ts +4 -2
- package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/promise.js +59 -1
- package/dist/fields/hooks/afterRead/promise.js.map +1 -1
- package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js +1 -0
- package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js.map +1 -1
- package/dist/fields/hooks/afterRead/traverseFields.d.ts +4 -2
- package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/traverseFields.js +3 -1
- package/dist/fields/hooks/afterRead/traverseFields.js.map +1 -1
- package/dist/globals/config/types.d.ts +2 -1
- 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 +2 -1
- package/dist/globals/operations/findOne.d.ts.map +1 -1
- package/dist/globals/operations/findOne.js +15 -2
- package/dist/globals/operations/findOne.js.map +1 -1
- package/dist/globals/operations/findVersionByID.d.ts +2 -1
- package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
- package/dist/globals/operations/findVersionByID.js +3 -1
- package/dist/globals/operations/findVersionByID.js.map +1 -1
- package/dist/globals/operations/findVersions.d.ts +2 -1
- package/dist/globals/operations/findVersions.d.ts.map +1 -1
- package/dist/globals/operations/findVersions.js +7 -3
- package/dist/globals/operations/findVersions.js.map +1 -1
- package/dist/globals/operations/local/findOne.d.ts +5 -4
- package/dist/globals/operations/local/findOne.d.ts.map +1 -1
- package/dist/globals/operations/local/findOne.js +2 -1
- package/dist/globals/operations/local/findOne.js.map +1 -1
- package/dist/globals/operations/local/findVersionByID.d.ts +2 -1
- package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
- package/dist/globals/operations/local/findVersionByID.js +2 -1
- package/dist/globals/operations/local/findVersionByID.js.map +1 -1
- package/dist/globals/operations/local/findVersions.d.ts +2 -1
- package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
- package/dist/globals/operations/local/findVersions.js +3 -2
- package/dist/globals/operations/local/findVersions.js.map +1 -1
- package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
- package/dist/globals/operations/local/restoreVersion.js +1 -1
- package/dist/globals/operations/local/restoreVersion.js.map +1 -1
- package/dist/globals/operations/local/update.d.ts +5 -4
- package/dist/globals/operations/local/update.d.ts.map +1 -1
- package/dist/globals/operations/local/update.js +2 -1
- package/dist/globals/operations/local/update.js.map +1 -1
- package/dist/globals/operations/update.d.ts +4 -3
- package/dist/globals/operations/update.d.ts.map +1 -1
- package/dist/globals/operations/update.js +15 -2
- package/dist/globals/operations/update.js.map +1 -1
- package/dist/index.d.ts +61 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/queues/config/generateJobsJSONSchemas.d.ts +18 -0
- package/dist/queues/config/generateJobsJSONSchemas.d.ts.map +1 -0
- package/dist/queues/config/generateJobsJSONSchemas.js +125 -0
- package/dist/queues/config/generateJobsJSONSchemas.js.map +1 -0
- package/dist/queues/config/jobsCollection.d.ts +4 -0
- package/dist/queues/config/jobsCollection.d.ts.map +1 -0
- package/dist/queues/config/jobsCollection.js +211 -0
- package/dist/queues/config/jobsCollection.js.map +1 -0
- package/dist/queues/config/types/index.d.ts +45 -0
- package/dist/queues/config/types/index.d.ts.map +1 -0
- package/dist/queues/config/types/index.js +3 -0
- package/dist/queues/config/types/index.js.map +1 -0
- package/dist/queues/config/types/taskTypes.d.ts +134 -0
- package/dist/queues/config/types/taskTypes.d.ts.map +1 -0
- package/dist/queues/config/types/taskTypes.js +3 -0
- package/dist/queues/config/types/taskTypes.js.map +1 -0
- package/dist/queues/config/types/workflowJSONTypes.d.ts +29 -0
- package/dist/queues/config/types/workflowJSONTypes.d.ts.map +1 -0
- package/dist/queues/config/types/workflowJSONTypes.js +3 -0
- package/dist/queues/config/types/workflowJSONTypes.js.map +1 -0
- package/dist/queues/config/types/workflowTypes.d.ts +98 -0
- package/dist/queues/config/types/workflowTypes.d.ts.map +1 -0
- package/dist/queues/config/types/workflowTypes.js +3 -0
- package/dist/queues/config/types/workflowTypes.js.map +1 -0
- package/dist/queues/localAPI.d.ts +23 -0
- package/dist/queues/localAPI.d.ts.map +1 -0
- package/dist/queues/localAPI.js +28 -0
- package/dist/queues/localAPI.js.map +1 -0
- package/dist/queues/operations/runJobs/index.d.ts +21 -0
- package/dist/queues/operations/runJobs/index.d.ts.map +1 -0
- package/dist/queues/operations/runJobs/index.js +180 -0
- package/dist/queues/operations/runJobs/index.js.map +1 -0
- package/dist/queues/operations/runJobs/runJSONJob/index.d.ts +18 -0
- package/dist/queues/operations/runJobs/runJSONJob/index.d.ts.map +1 -0
- package/dist/queues/operations/runJobs/runJSONJob/index.js +125 -0
- package/dist/queues/operations/runJobs/runJSONJob/index.js.map +1 -0
- package/dist/queues/operations/runJobs/runJob/calculateBackoffWaitUntil.d.ts +6 -0
- package/dist/queues/operations/runJobs/runJob/calculateBackoffWaitUntil.d.ts.map +1 -0
- package/dist/queues/operations/runJobs/runJob/calculateBackoffWaitUntil.js +26 -0
- package/dist/queues/operations/runJobs/runJob/calculateBackoffWaitUntil.js.map +1 -0
- package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.d.ts +26 -0
- package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.d.ts.map +1 -0
- package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js +204 -0
- package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js.map +1 -0
- package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.d.ts +5 -0
- package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.d.ts.map +1 -0
- package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js +18 -0
- package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js.map +1 -0
- package/dist/queues/operations/runJobs/runJob/handleWorkflowError.d.ts +17 -0
- package/dist/queues/operations/runJobs/runJob/handleWorkflowError.d.ts.map +1 -0
- package/dist/queues/operations/runJobs/runJob/handleWorkflowError.js +43 -0
- package/dist/queues/operations/runJobs/runJob/handleWorkflowError.js.map +1 -0
- package/dist/queues/operations/runJobs/runJob/importHandlerPath.d.ts +2 -0
- package/dist/queues/operations/runJobs/runJob/importHandlerPath.d.ts.map +1 -0
- package/dist/queues/operations/runJobs/runJob/importHandlerPath.js +21 -0
- package/dist/queues/operations/runJobs/runJob/importHandlerPath.js.map +1 -0
- package/dist/queues/operations/runJobs/runJob/index.d.ts +17 -0
- package/dist/queues/operations/runJobs/runJob/index.d.ts.map +1 -0
- package/dist/queues/operations/runJobs/runJob/index.js +48 -0
- package/dist/queues/operations/runJobs/runJob/index.js.map +1 -0
- package/dist/queues/restEndpointRun.d.ts +3 -0
- package/dist/queues/restEndpointRun.d.ts.map +1 -0
- package/dist/queues/restEndpointRun.js +66 -0
- package/dist/queues/restEndpointRun.js.map +1 -0
- package/dist/queues/utilities/getJobTaskStatus.d.ts +9 -0
- package/dist/queues/utilities/getJobTaskStatus.d.ts.map +1 -0
- package/dist/queues/utilities/getJobTaskStatus.js +29 -0
- package/dist/queues/utilities/getJobTaskStatus.js.map +1 -0
- package/dist/types/index.d.ts +20 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utilities/addSelectGenericsToGeneratedTyoes.spec.js +562 -0
- package/dist/utilities/addSelectGenericsToGeneratedTyoes.spec.js.map +1 -0
- package/dist/utilities/addSelectGenericsToGeneretedTypes.d.ts +4 -0
- package/dist/utilities/addSelectGenericsToGeneretedTypes.d.ts.map +1 -0
- package/dist/utilities/addSelectGenericsToGeneretedTypes.js +41 -0
- package/dist/utilities/addSelectGenericsToGeneretedTypes.js.map +1 -0
- package/dist/utilities/configToJSONSchema.d.ts +6 -1
- package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
- package/dist/utilities/configToJSONSchema.js +171 -15
- package/dist/utilities/configToJSONSchema.js.map +1 -1
- package/dist/utilities/getSelectMode.d.ts +3 -0
- package/dist/utilities/getSelectMode.d.ts.map +1 -0
- package/dist/utilities/getSelectMode.js +14 -0
- package/dist/utilities/getSelectMode.js.map +1 -0
- package/dist/utilities/traverseFields.d.ts.map +1 -1
- package/dist/utilities/traverseFields.js +51 -8
- package/dist/utilities/traverseFields.js.map +1 -1
- package/dist/versions/drafts/getQueryDraftsSelect.d.ts +5 -0
- package/dist/versions/drafts/getQueryDraftsSelect.d.ts.map +1 -0
- package/dist/versions/drafts/getQueryDraftsSelect.js +18 -0
- package/dist/versions/drafts/getQueryDraftsSelect.js.map +1 -0
- package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts +3 -2
- package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
- package/dist/versions/drafts/replaceWithDraftIfAvailable.js +11 -7
- package/dist/versions/drafts/replaceWithDraftIfAvailable.js.map +1 -1
- package/dist/versions/saveVersion.d.ts +3 -2
- package/dist/versions/saveVersion.d.ts.map +1 -1
- package/dist/versions/saveVersion.js +5 -1
- package/dist/versions/saveVersion.js.map +1 -1
- package/package.json +3 -2
|
@@ -40,7 +40,7 @@ export const updateByIDOperation = async (incomingArgs)=>{
|
|
|
40
40
|
if (args.publishSpecificLocale) {
|
|
41
41
|
args.req.locale = args.publishSpecificLocale;
|
|
42
42
|
}
|
|
43
|
-
const { id, autosave = false, collection: { config: collectionConfig }, collection, depth, draft: draftArg = false, overrideAccess, overrideLock, overwriteExistingFiles = false, publishSpecificLocale, req: { fallbackLocale, locale, payload: { config }, payload }, req, showHiddenFields } = args;
|
|
43
|
+
const { id, autosave = false, collection: { config: collectionConfig }, collection, depth, draft: draftArg = false, overrideAccess, overrideLock, overwriteExistingFiles = false, publishSpecificLocale, req: { fallbackLocale, locale, payload: { config }, payload }, req, select, showHiddenFields } = args;
|
|
44
44
|
if (!id) {
|
|
45
45
|
throw new APIError('Missing ID of document to update.', httpStatus.BAD_REQUEST);
|
|
46
46
|
}
|
|
@@ -252,7 +252,8 @@ export const updateByIDOperation = async (incomingArgs)=>{
|
|
|
252
252
|
collection: collectionConfig.slug,
|
|
253
253
|
data: dataToUpdate,
|
|
254
254
|
locale,
|
|
255
|
-
req
|
|
255
|
+
req,
|
|
256
|
+
select
|
|
256
257
|
});
|
|
257
258
|
}
|
|
258
259
|
// /////////////////////////////////////
|
|
@@ -268,6 +269,7 @@ export const updateByIDOperation = async (incomingArgs)=>{
|
|
|
268
269
|
payload,
|
|
269
270
|
publishSpecificLocale,
|
|
270
271
|
req,
|
|
272
|
+
select,
|
|
271
273
|
snapshot: versionSnapshotResult
|
|
272
274
|
});
|
|
273
275
|
}
|
|
@@ -285,6 +287,7 @@ export const updateByIDOperation = async (incomingArgs)=>{
|
|
|
285
287
|
locale,
|
|
286
288
|
overrideAccess,
|
|
287
289
|
req,
|
|
290
|
+
select,
|
|
288
291
|
showHiddenFields
|
|
289
292
|
});
|
|
290
293
|
// /////////////////////////////////////
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/collections/operations/updateByID.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport httpStatus from 'http-status'\n\nimport type { FindOneArgs } from '../../database/types.js'\nimport type { Args } from '../../fields/hooks/beforeChange/index.js'\nimport type { CollectionSlug } from '../../index.js'\nimport type { PayloadRequest } from '../../types/index.js'\nimport type {\n Collection,\n DataFromCollectionSlug,\n RequiredDataFromCollectionSlug,\n} from '../config/types.js'\n\nimport { ensureUsernameOrEmail } from '../../auth/ensureUsernameOrEmail.js'\nimport executeAccess from '../../auth/executeAccess.js'\nimport { generatePasswordSaltHash } from '../../auth/strategies/local/generatePasswordSaltHash.js'\nimport { hasWhereAccessResult } from '../../auth/types.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { APIError, Forbidden, NotFound } from '../../errors/index.js'\nimport { afterChange } from '../../fields/hooks/afterChange/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { beforeChange } from '../../fields/hooks/beforeChange/index.js'\nimport { beforeValidate } from '../../fields/hooks/beforeValidate/index.js'\nimport { deleteAssociatedFiles } from '../../uploads/deleteAssociatedFiles.js'\nimport { generateFileData } from '../../uploads/generateFileData.js'\nimport { unlinkTempFiles } from '../../uploads/unlinkTempFiles.js'\nimport { uploadFiles } from '../../uploads/uploadFiles.js'\nimport { checkDocumentLockStatus } from '../../utilities/checkDocumentLockStatus.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { getLatestCollectionVersion } from '../../versions/getLatestCollectionVersion.js'\nimport { saveVersion } from '../../versions/saveVersion.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type Arguments<TSlug extends CollectionSlug> = {\n autosave?: boolean\n collection: Collection\n data: DeepPartial<RequiredDataFromCollectionSlug<TSlug>>\n depth?: number\n disableTransaction?: boolean\n disableVerificationEmail?: boolean\n draft?: boolean\n id: number | string\n overrideAccess?: boolean\n overrideLock?: boolean\n overwriteExistingFiles?: boolean\n publishSpecificLocale?: string\n req: PayloadRequest\n showHiddenFields?: boolean\n}\n\nexport const updateByIDOperation = async <TSlug extends CollectionSlug>(\n incomingArgs: Arguments<TSlug>,\n): Promise<DataFromCollectionSlug<TSlug>> => {\n let args = incomingArgs\n\n try {\n const shouldCommit = !args.disableTransaction && (await initTransaction(args.req))\n\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n await args.collection.config.hooks.beforeOperation.reduce(async (priorHook, hook) => {\n await priorHook\n\n args =\n (await hook({\n args,\n collection: args.collection.config,\n context: args.req.context,\n operation: 'update',\n req: args.req,\n })) || args\n }, Promise.resolve())\n\n if (args.publishSpecificLocale) {\n args.req.locale = args.publishSpecificLocale\n }\n\n const {\n id,\n autosave = false,\n collection: { config: collectionConfig },\n collection,\n depth,\n draft: draftArg = false,\n overrideAccess,\n overrideLock,\n overwriteExistingFiles = false,\n publishSpecificLocale,\n req: {\n fallbackLocale,\n locale,\n payload: { config },\n payload,\n },\n req,\n showHiddenFields,\n } = args\n\n if (!id) {\n throw new APIError('Missing ID of document to update.', httpStatus.BAD_REQUEST)\n }\n\n let { data } = args\n const password = data?.password\n const shouldSaveDraft = Boolean(draftArg && collectionConfig.versions.drafts)\n const shouldSavePassword = Boolean(password && collectionConfig.auth && !shouldSaveDraft)\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n const accessResults = !overrideAccess\n ? await executeAccess({ id, data, req }, collectionConfig.access.update)\n : true\n const hasWherePolicy = hasWhereAccessResult(accessResults)\n\n // /////////////////////////////////////\n // Retrieve document\n // /////////////////////////////////////\n\n const findOneArgs: FindOneArgs = {\n collection: collectionConfig.slug,\n locale,\n req,\n where: combineQueries({ id: { equals: id } }, accessResults),\n }\n\n const docWithLocales = await getLatestCollectionVersion({\n id,\n config: collectionConfig,\n payload,\n query: findOneArgs,\n req,\n })\n\n if (!docWithLocales && !hasWherePolicy) {\n throw new NotFound(req.t)\n }\n if (!docWithLocales && hasWherePolicy) {\n throw new Forbidden(req.t)\n }\n\n // /////////////////////////////////////\n // Handle potentially locked documents\n // /////////////////////////////////////\n\n await checkDocumentLockStatus({\n id,\n collectionSlug: collectionConfig.slug,\n lockErrorMessage: `Document with ID ${id} is currently locked by another user and cannot be updated.`,\n overrideLock,\n req,\n })\n\n const originalDoc = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth: 0,\n doc: docWithLocales,\n draft: draftArg,\n fallbackLocale: null,\n global: null,\n locale,\n overrideAccess: true,\n req,\n showHiddenFields: true,\n })\n\n if (args.collection.config.auth) {\n ensureUsernameOrEmail<TSlug>({\n authOptions: args.collection.config.auth,\n collectionSlug: args.collection.config.slug,\n data: args.data,\n operation: 'update',\n originalDoc,\n req: args.req,\n })\n }\n\n // /////////////////////////////////////\n // Generate data for all files and sizes\n // /////////////////////////////////////\n\n const { data: newFileData, files: filesToUpload } = await generateFileData({\n collection,\n config,\n data,\n operation: 'update',\n overwriteExistingFiles,\n req,\n throwOnMissingFile: false,\n })\n\n data = newFileData\n\n // /////////////////////////////////////\n // Delete any associated files\n // /////////////////////////////////////\n\n await deleteAssociatedFiles({\n collectionConfig,\n config,\n doc: docWithLocales,\n files: filesToUpload,\n overrideDelete: false,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n data = await beforeValidate<DeepPartial<DataFromCollectionSlug<TSlug>>>({\n id,\n collection: collectionConfig,\n context: req.context,\n data,\n doc: originalDoc,\n global: null,\n operation: 'update',\n overrideAccess,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.beforeValidate.reduce(async (priorHook, hook) => {\n await priorHook\n\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'update',\n originalDoc,\n req,\n })) || data\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // Write files to local storage\n // /////////////////////////////////////\n\n if (!collectionConfig.upload.disableLocalStorage) {\n await uploadFiles(payload, filesToUpload, req)\n }\n\n // /////////////////////////////////////\n // beforeChange - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.beforeChange.reduce(async (priorHook, hook) => {\n await priorHook\n\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'update',\n originalDoc,\n req,\n })) || data\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // beforeChange - Fields\n // /////////////////////////////////////\n\n let publishedDocWithLocales = docWithLocales\n let versionSnapshotResult\n\n const beforeChangeArgs: Args<DataFromCollectionSlug<TSlug>> = {\n id,\n collection: collectionConfig,\n context: req.context,\n data: { ...data, id },\n doc: originalDoc,\n docWithLocales: undefined,\n global: null,\n operation: 'update',\n req,\n skipValidation:\n shouldSaveDraft &&\n collectionConfig.versions.drafts &&\n !collectionConfig.versions.drafts.validate &&\n data._status !== 'published',\n }\n\n if (publishSpecificLocale) {\n publishedDocWithLocales = await getLatestCollectionVersion({\n id,\n config: collectionConfig,\n payload,\n published: true,\n query: findOneArgs,\n req,\n })\n\n versionSnapshotResult = await beforeChange({\n ...beforeChangeArgs,\n docWithLocales,\n })\n }\n\n let result = await beforeChange({\n ...beforeChangeArgs,\n docWithLocales: publishedDocWithLocales,\n })\n\n // /////////////////////////////////////\n // Handle potential password update\n // /////////////////////////////////////\n\n const dataToUpdate: Record<string, unknown> = { ...result }\n\n if (shouldSavePassword && typeof password === 'string') {\n const { hash, salt } = await generatePasswordSaltHash({\n collection: collectionConfig,\n password,\n req,\n })\n dataToUpdate.salt = salt\n dataToUpdate.hash = hash\n delete dataToUpdate.password\n delete data.password\n }\n\n // /////////////////////////////////////\n // Update\n // /////////////////////////////////////\n\n if (!shouldSaveDraft || data._status === 'published') {\n result = await req.payload.db.updateOne({\n id,\n collection: collectionConfig.slug,\n data: dataToUpdate,\n locale,\n req,\n })\n }\n\n // /////////////////////////////////////\n // Create version\n // /////////////////////////////////////\n\n if (collectionConfig.versions) {\n result = await saveVersion({\n id,\n autosave,\n collection: collectionConfig,\n docWithLocales: result,\n draft: shouldSaveDraft,\n payload,\n publishSpecificLocale,\n req,\n snapshot: versionSnapshotResult,\n })\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth,\n doc: result,\n draft: draftArg,\n fallbackLocale,\n global: null,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n })\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterChange - Fields\n // /////////////////////////////////////\n\n result = await afterChange({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: result,\n global: null,\n operation: 'update',\n previousDoc: originalDoc,\n req,\n })\n\n // /////////////////////////////////////\n // afterChange - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterChange.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n operation: 'update',\n previousDoc: originalDoc,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation({\n args,\n collection: collectionConfig,\n operation: 'updateByID',\n result,\n })\n\n await unlinkTempFiles({\n collectionConfig,\n config,\n req,\n })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n if (shouldCommit) {\n await commitTransaction(req)\n }\n\n return result\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["httpStatus","ensureUsernameOrEmail","executeAccess","generatePasswordSaltHash","hasWhereAccessResult","combineQueries","APIError","Forbidden","NotFound","afterChange","afterRead","beforeChange","beforeValidate","deleteAssociatedFiles","generateFileData","unlinkTempFiles","uploadFiles","checkDocumentLockStatus","commitTransaction","initTransaction","killTransaction","getLatestCollectionVersion","saveVersion","buildAfterOperation","updateByIDOperation","incomingArgs","args","shouldCommit","disableTransaction","req","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","operation","Promise","resolve","publishSpecificLocale","locale","id","autosave","collectionConfig","depth","draft","draftArg","overrideAccess","overrideLock","overwriteExistingFiles","fallbackLocale","payload","showHiddenFields","BAD_REQUEST","data","password","shouldSaveDraft","Boolean","versions","drafts","shouldSavePassword","auth","accessResults","access","update","hasWherePolicy","findOneArgs","slug","where","equals","docWithLocales","query","t","collectionSlug","lockErrorMessage","originalDoc","doc","global","authOptions","newFileData","files","filesToUpload","throwOnMissingFile","overrideDelete","upload","disableLocalStorage","publishedDocWithLocales","versionSnapshotResult","beforeChangeArgs","undefined","skipValidation","validate","_status","published","result","dataToUpdate","hash","salt","db","updateOne","snapshot","previousDoc","error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/collections/operations/updateByID.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport httpStatus from 'http-status'\n\nimport type { FindOneArgs } from '../../database/types.js'\nimport type { Args } from '../../fields/hooks/beforeChange/index.js'\nimport type { CollectionSlug } from '../../index.js'\nimport type {\n PayloadRequest,\n SelectType,\n TransformCollectionWithSelect,\n} from '../../types/index.js'\nimport type {\n Collection,\n DataFromCollectionSlug,\n RequiredDataFromCollectionSlug,\n SelectFromCollectionSlug,\n} from '../config/types.js'\n\nimport { ensureUsernameOrEmail } from '../../auth/ensureUsernameOrEmail.js'\nimport executeAccess from '../../auth/executeAccess.js'\nimport { generatePasswordSaltHash } from '../../auth/strategies/local/generatePasswordSaltHash.js'\nimport { hasWhereAccessResult } from '../../auth/types.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { APIError, Forbidden, NotFound } from '../../errors/index.js'\nimport { afterChange } from '../../fields/hooks/afterChange/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { beforeChange } from '../../fields/hooks/beforeChange/index.js'\nimport { beforeValidate } from '../../fields/hooks/beforeValidate/index.js'\nimport { deleteAssociatedFiles } from '../../uploads/deleteAssociatedFiles.js'\nimport { generateFileData } from '../../uploads/generateFileData.js'\nimport { unlinkTempFiles } from '../../uploads/unlinkTempFiles.js'\nimport { uploadFiles } from '../../uploads/uploadFiles.js'\nimport { checkDocumentLockStatus } from '../../utilities/checkDocumentLockStatus.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { getLatestCollectionVersion } from '../../versions/getLatestCollectionVersion.js'\nimport { saveVersion } from '../../versions/saveVersion.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type Arguments<TSlug extends CollectionSlug> = {\n autosave?: boolean\n collection: Collection\n data: DeepPartial<RequiredDataFromCollectionSlug<TSlug>>\n depth?: number\n disableTransaction?: boolean\n disableVerificationEmail?: boolean\n draft?: boolean\n id: number | string\n overrideAccess?: boolean\n overrideLock?: boolean\n overwriteExistingFiles?: boolean\n publishSpecificLocale?: string\n req: PayloadRequest\n select?: SelectType\n showHiddenFields?: boolean\n}\n\nexport const updateByIDOperation = async <\n TSlug extends CollectionSlug,\n TSelect extends SelectFromCollectionSlug<TSlug> = SelectType,\n>(\n incomingArgs: Arguments<TSlug>,\n): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n let args = incomingArgs\n\n try {\n const shouldCommit = !args.disableTransaction && (await initTransaction(args.req))\n\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n await args.collection.config.hooks.beforeOperation.reduce(async (priorHook, hook) => {\n await priorHook\n\n args =\n (await hook({\n args,\n collection: args.collection.config,\n context: args.req.context,\n operation: 'update',\n req: args.req,\n })) || args\n }, Promise.resolve())\n\n if (args.publishSpecificLocale) {\n args.req.locale = args.publishSpecificLocale\n }\n\n const {\n id,\n autosave = false,\n collection: { config: collectionConfig },\n collection,\n depth,\n draft: draftArg = false,\n overrideAccess,\n overrideLock,\n overwriteExistingFiles = false,\n publishSpecificLocale,\n req: {\n fallbackLocale,\n locale,\n payload: { config },\n payload,\n },\n req,\n select,\n showHiddenFields,\n } = args\n\n if (!id) {\n throw new APIError('Missing ID of document to update.', httpStatus.BAD_REQUEST)\n }\n\n let { data } = args\n const password = data?.password\n const shouldSaveDraft = Boolean(draftArg && collectionConfig.versions.drafts)\n const shouldSavePassword = Boolean(password && collectionConfig.auth && !shouldSaveDraft)\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n const accessResults = !overrideAccess\n ? await executeAccess({ id, data, req }, collectionConfig.access.update)\n : true\n const hasWherePolicy = hasWhereAccessResult(accessResults)\n\n // /////////////////////////////////////\n // Retrieve document\n // /////////////////////////////////////\n\n const findOneArgs: FindOneArgs = {\n collection: collectionConfig.slug,\n locale,\n req,\n where: combineQueries({ id: { equals: id } }, accessResults),\n }\n\n const docWithLocales = await getLatestCollectionVersion({\n id,\n config: collectionConfig,\n payload,\n query: findOneArgs,\n req,\n })\n\n if (!docWithLocales && !hasWherePolicy) {\n throw new NotFound(req.t)\n }\n if (!docWithLocales && hasWherePolicy) {\n throw new Forbidden(req.t)\n }\n\n // /////////////////////////////////////\n // Handle potentially locked documents\n // /////////////////////////////////////\n\n await checkDocumentLockStatus({\n id,\n collectionSlug: collectionConfig.slug,\n lockErrorMessage: `Document with ID ${id} is currently locked by another user and cannot be updated.`,\n overrideLock,\n req,\n })\n\n const originalDoc = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth: 0,\n doc: docWithLocales,\n draft: draftArg,\n fallbackLocale: null,\n global: null,\n locale,\n overrideAccess: true,\n req,\n showHiddenFields: true,\n })\n\n if (args.collection.config.auth) {\n ensureUsernameOrEmail<TSlug>({\n authOptions: args.collection.config.auth,\n collectionSlug: args.collection.config.slug,\n data: args.data,\n operation: 'update',\n originalDoc,\n req: args.req,\n })\n }\n\n // /////////////////////////////////////\n // Generate data for all files and sizes\n // /////////////////////////////////////\n\n const { data: newFileData, files: filesToUpload } = await generateFileData({\n collection,\n config,\n data,\n operation: 'update',\n overwriteExistingFiles,\n req,\n throwOnMissingFile: false,\n })\n\n data = newFileData\n\n // /////////////////////////////////////\n // Delete any associated files\n // /////////////////////////////////////\n\n await deleteAssociatedFiles({\n collectionConfig,\n config,\n doc: docWithLocales,\n files: filesToUpload,\n overrideDelete: false,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n data = await beforeValidate<DeepPartial<DataFromCollectionSlug<TSlug>>>({\n id,\n collection: collectionConfig,\n context: req.context,\n data,\n doc: originalDoc,\n global: null,\n operation: 'update',\n overrideAccess,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.beforeValidate.reduce(async (priorHook, hook) => {\n await priorHook\n\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'update',\n originalDoc,\n req,\n })) || data\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // Write files to local storage\n // /////////////////////////////////////\n\n if (!collectionConfig.upload.disableLocalStorage) {\n await uploadFiles(payload, filesToUpload, req)\n }\n\n // /////////////////////////////////////\n // beforeChange - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.beforeChange.reduce(async (priorHook, hook) => {\n await priorHook\n\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'update',\n originalDoc,\n req,\n })) || data\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // beforeChange - Fields\n // /////////////////////////////////////\n\n let publishedDocWithLocales = docWithLocales\n let versionSnapshotResult\n\n const beforeChangeArgs: Args<DataFromCollectionSlug<TSlug>> = {\n id,\n collection: collectionConfig,\n context: req.context,\n data: { ...data, id },\n doc: originalDoc,\n docWithLocales: undefined,\n global: null,\n operation: 'update',\n req,\n skipValidation:\n shouldSaveDraft &&\n collectionConfig.versions.drafts &&\n !collectionConfig.versions.drafts.validate &&\n data._status !== 'published',\n }\n\n if (publishSpecificLocale) {\n publishedDocWithLocales = await getLatestCollectionVersion({\n id,\n config: collectionConfig,\n payload,\n published: true,\n query: findOneArgs,\n req,\n })\n\n versionSnapshotResult = await beforeChange({\n ...beforeChangeArgs,\n docWithLocales,\n })\n }\n\n let result = await beforeChange({\n ...beforeChangeArgs,\n docWithLocales: publishedDocWithLocales,\n })\n\n // /////////////////////////////////////\n // Handle potential password update\n // /////////////////////////////////////\n\n const dataToUpdate: Record<string, unknown> = { ...result }\n\n if (shouldSavePassword && typeof password === 'string') {\n const { hash, salt } = await generatePasswordSaltHash({\n collection: collectionConfig,\n password,\n req,\n })\n dataToUpdate.salt = salt\n dataToUpdate.hash = hash\n delete dataToUpdate.password\n delete data.password\n }\n\n // /////////////////////////////////////\n // Update\n // /////////////////////////////////////\n\n if (!shouldSaveDraft || data._status === 'published') {\n result = await req.payload.db.updateOne({\n id,\n collection: collectionConfig.slug,\n data: dataToUpdate,\n locale,\n req,\n select,\n })\n }\n\n // /////////////////////////////////////\n // Create version\n // /////////////////////////////////////\n\n if (collectionConfig.versions) {\n result = await saveVersion({\n id,\n autosave,\n collection: collectionConfig,\n docWithLocales: result,\n draft: shouldSaveDraft,\n payload,\n publishSpecificLocale,\n req,\n select,\n snapshot: versionSnapshotResult,\n })\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth,\n doc: result,\n draft: draftArg,\n fallbackLocale,\n global: null,\n locale,\n overrideAccess,\n req,\n select,\n showHiddenFields,\n })\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterChange - Fields\n // /////////////////////////////////////\n\n result = await afterChange({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: result,\n global: null,\n operation: 'update',\n previousDoc: originalDoc,\n req,\n })\n\n // /////////////////////////////////////\n // afterChange - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterChange.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n operation: 'update',\n previousDoc: originalDoc,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation({\n args,\n collection: collectionConfig,\n operation: 'updateByID',\n result,\n })\n\n await unlinkTempFiles({\n collectionConfig,\n config,\n req,\n })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n if (shouldCommit) {\n await commitTransaction(req)\n }\n\n return result as TransformCollectionWithSelect<TSlug, TSelect>\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["httpStatus","ensureUsernameOrEmail","executeAccess","generatePasswordSaltHash","hasWhereAccessResult","combineQueries","APIError","Forbidden","NotFound","afterChange","afterRead","beforeChange","beforeValidate","deleteAssociatedFiles","generateFileData","unlinkTempFiles","uploadFiles","checkDocumentLockStatus","commitTransaction","initTransaction","killTransaction","getLatestCollectionVersion","saveVersion","buildAfterOperation","updateByIDOperation","incomingArgs","args","shouldCommit","disableTransaction","req","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","operation","Promise","resolve","publishSpecificLocale","locale","id","autosave","collectionConfig","depth","draft","draftArg","overrideAccess","overrideLock","overwriteExistingFiles","fallbackLocale","payload","select","showHiddenFields","BAD_REQUEST","data","password","shouldSaveDraft","Boolean","versions","drafts","shouldSavePassword","auth","accessResults","access","update","hasWherePolicy","findOneArgs","slug","where","equals","docWithLocales","query","t","collectionSlug","lockErrorMessage","originalDoc","doc","global","authOptions","newFileData","files","filesToUpload","throwOnMissingFile","overrideDelete","upload","disableLocalStorage","publishedDocWithLocales","versionSnapshotResult","beforeChangeArgs","undefined","skipValidation","validate","_status","published","result","dataToUpdate","hash","salt","db","updateOne","snapshot","previousDoc","error"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import type { loginOperation } from '../../auth/operations/login.js';
|
|
|
3
3
|
import type { refreshOperation } from '../../auth/operations/refresh.js';
|
|
4
4
|
import type { CollectionSlug } from '../../index.js';
|
|
5
5
|
import type { PayloadRequest } from '../../types/index.js';
|
|
6
|
-
import type { SanitizedCollectionConfig } from '../config/types.js';
|
|
6
|
+
import type { SanitizedCollectionConfig, SelectFromCollectionSlug } from '../config/types.js';
|
|
7
7
|
import type { countOperation } from './count.js';
|
|
8
8
|
import type { createOperation } from './create.js';
|
|
9
9
|
import type { deleteOperation } from './delete.js';
|
|
@@ -14,16 +14,16 @@ import type { updateOperation } from './update.js';
|
|
|
14
14
|
import type { updateByIDOperation } from './updateByID.js';
|
|
15
15
|
export type AfterOperationMap<TOperationGeneric extends CollectionSlug> = {
|
|
16
16
|
count: typeof countOperation<TOperationGeneric>;
|
|
17
|
-
create: typeof createOperation<TOperationGeneric
|
|
18
|
-
delete: typeof deleteOperation<TOperationGeneric
|
|
19
|
-
deleteByID: typeof deleteByIDOperation<TOperationGeneric
|
|
20
|
-
find: typeof findOperation<TOperationGeneric
|
|
21
|
-
findByID: typeof findByIDOperation<TOperationGeneric
|
|
17
|
+
create: typeof createOperation<TOperationGeneric, SelectFromCollectionSlug<TOperationGeneric>>;
|
|
18
|
+
delete: typeof deleteOperation<TOperationGeneric, SelectFromCollectionSlug<TOperationGeneric>>;
|
|
19
|
+
deleteByID: typeof deleteByIDOperation<TOperationGeneric, SelectFromCollectionSlug<TOperationGeneric>>;
|
|
20
|
+
find: typeof findOperation<TOperationGeneric, SelectFromCollectionSlug<TOperationGeneric>>;
|
|
21
|
+
findByID: typeof findByIDOperation<TOperationGeneric, boolean, SelectFromCollectionSlug<TOperationGeneric>>;
|
|
22
22
|
forgotPassword: typeof forgotPasswordOperation;
|
|
23
23
|
login: typeof loginOperation<TOperationGeneric>;
|
|
24
24
|
refresh: typeof refreshOperation;
|
|
25
|
-
update: typeof updateOperation<TOperationGeneric
|
|
26
|
-
updateByID: typeof updateByIDOperation<TOperationGeneric
|
|
25
|
+
update: typeof updateOperation<TOperationGeneric, SelectFromCollectionSlug<TOperationGeneric>>;
|
|
26
|
+
updateByID: typeof updateByIDOperation<TOperationGeneric, SelectFromCollectionSlug<TOperationGeneric>>;
|
|
27
27
|
};
|
|
28
28
|
export type AfterOperationArg<TOperationGeneric extends CollectionSlug> = {
|
|
29
29
|
/** The collection which this hook is being run on */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAA;AACtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/collections/operations/utils.ts"],"sourcesContent":["import type { forgotPasswordOperation } from '../../auth/operations/forgotPassword.js'\nimport type { loginOperation } from '../../auth/operations/login.js'\nimport type { refreshOperation } from '../../auth/operations/refresh.js'\nimport type { CollectionSlug } from '../../index.js'\nimport type { PayloadRequest } from '../../types/index.js'\nimport type {
|
|
1
|
+
{"version":3,"sources":["../../../src/collections/operations/utils.ts"],"sourcesContent":["import type { forgotPasswordOperation } from '../../auth/operations/forgotPassword.js'\nimport type { loginOperation } from '../../auth/operations/login.js'\nimport type { refreshOperation } from '../../auth/operations/refresh.js'\nimport type { CollectionSlug } from '../../index.js'\nimport type { PayloadRequest } from '../../types/index.js'\nimport type {\n AfterOperationHook,\n SanitizedCollectionConfig,\n SelectFromCollectionSlug,\n} from '../config/types.js'\nimport type { countOperation } from './count.js'\nimport type { createOperation } from './create.js'\nimport type { deleteOperation } from './delete.js'\nimport type { deleteByIDOperation } from './deleteByID.js'\nimport type { findOperation } from './find.js'\nimport type { findByIDOperation } from './findByID.js'\nimport type { updateOperation } from './update.js'\nimport type { updateByIDOperation } from './updateByID.js'\n\nexport type AfterOperationMap<TOperationGeneric extends CollectionSlug> = {\n count: typeof countOperation<TOperationGeneric>\n create: typeof createOperation<TOperationGeneric, SelectFromCollectionSlug<TOperationGeneric>>\n delete: typeof deleteOperation<TOperationGeneric, SelectFromCollectionSlug<TOperationGeneric>>\n deleteByID: typeof deleteByIDOperation<\n TOperationGeneric,\n SelectFromCollectionSlug<TOperationGeneric>\n >\n find: typeof findOperation<TOperationGeneric, SelectFromCollectionSlug<TOperationGeneric>>\n findByID: typeof findByIDOperation<\n TOperationGeneric,\n boolean,\n SelectFromCollectionSlug<TOperationGeneric>\n >\n forgotPassword: typeof forgotPasswordOperation\n login: typeof loginOperation<TOperationGeneric>\n refresh: typeof refreshOperation\n update: typeof updateOperation<TOperationGeneric, SelectFromCollectionSlug<TOperationGeneric>>\n updateByID: typeof updateByIDOperation<\n TOperationGeneric,\n SelectFromCollectionSlug<TOperationGeneric>\n >\n}\n\nexport type AfterOperationArg<TOperationGeneric extends CollectionSlug> = {\n /** The collection which this hook is being run on */\n collection: SanitizedCollectionConfig\n req: PayloadRequest\n} & (\n | {\n args: Parameters<AfterOperationMap<TOperationGeneric>['count']>[0]\n operation: 'count'\n result: Awaited<ReturnType<AfterOperationMap<TOperationGeneric>['count']>>\n }\n | {\n args: Parameters<AfterOperationMap<TOperationGeneric>['create']>[0]\n operation: 'create'\n result: Awaited<ReturnType<AfterOperationMap<TOperationGeneric>['create']>>\n }\n | {\n args: Parameters<AfterOperationMap<TOperationGeneric>['delete']>[0]\n operation: 'delete'\n result: Awaited<ReturnType<AfterOperationMap<TOperationGeneric>['delete']>>\n }\n | {\n args: Parameters<AfterOperationMap<TOperationGeneric>['deleteByID']>[0]\n operation: 'deleteByID'\n result: Awaited<ReturnType<AfterOperationMap<TOperationGeneric>['deleteByID']>>\n }\n | {\n args: Parameters<AfterOperationMap<TOperationGeneric>['find']>[0]\n operation: 'find'\n result: Awaited<ReturnType<AfterOperationMap<TOperationGeneric>['find']>>\n }\n | {\n args: Parameters<AfterOperationMap<TOperationGeneric>['findByID']>[0]\n operation: 'findByID'\n result: Awaited<ReturnType<AfterOperationMap<TOperationGeneric>['findByID']>>\n }\n | {\n args: Parameters<AfterOperationMap<TOperationGeneric>['forgotPassword']>[0]\n operation: 'forgotPassword'\n result: Awaited<ReturnType<AfterOperationMap<TOperationGeneric>['forgotPassword']>>\n }\n | {\n args: Parameters<AfterOperationMap<TOperationGeneric>['login']>[0]\n operation: 'login'\n result: Awaited<ReturnType<AfterOperationMap<TOperationGeneric>['login']>>\n }\n | {\n args: Parameters<AfterOperationMap<TOperationGeneric>['refresh']>[0]\n operation: 'refresh'\n result: Awaited<ReturnType<AfterOperationMap<TOperationGeneric>['refresh']>>\n }\n | {\n args: Parameters<AfterOperationMap<TOperationGeneric>['update']>[0]\n operation: 'update'\n result: Awaited<ReturnType<AfterOperationMap<TOperationGeneric>['update']>>\n }\n | {\n args: Parameters<AfterOperationMap<TOperationGeneric>['updateByID']>[0]\n operation: 'updateByID'\n result: Awaited<ReturnType<AfterOperationMap<TOperationGeneric>['updateByID']>>\n }\n)\n\ntype OperationResult<\n TOperationGeneric extends CollectionSlug,\n O extends keyof AfterOperationMap<TOperationGeneric>,\n> = Awaited<ReturnType<AfterOperationMap<TOperationGeneric>[O]>>\n\nexport const buildAfterOperation = async <\n TOperationGeneric extends CollectionSlug,\n O extends keyof AfterOperationMap<TOperationGeneric> = keyof AfterOperationMap<TOperationGeneric>,\n>(\n operationArgs: { operation: O } & Omit<AfterOperationArg<TOperationGeneric>, 'req'>,\n): Promise<any | OperationResult<TOperationGeneric, O>> => {\n const { args, collection, operation, result } = operationArgs\n\n let newResult = result as OperationResult<TOperationGeneric, O>\n\n await args.collection.config.hooks.afterOperation.reduce(\n async (priorHook, hook: AfterOperationHook<TOperationGeneric>) => {\n await priorHook\n\n const hookResult = await hook({\n args,\n collection,\n operation,\n req: args.req,\n result: newResult,\n } as AfterOperationArg<TOperationGeneric>)\n\n if (hookResult !== undefined) {\n newResult = hookResult as OperationResult<TOperationGeneric, O>\n }\n },\n Promise.resolve(),\n )\n\n return newResult\n}\n"],"names":["buildAfterOperation","operationArgs","args","collection","operation","result","newResult","config","hooks","afterOperation","reduce","priorHook","hook","hookResult","req","undefined","Promise","resolve"],"mappings":"AA8GA,OAAO,MAAMA,sBAAsB,OAIjCC;IAEA,MAAM,EAAEC,IAAI,EAAEC,UAAU,EAAEC,SAAS,EAAEC,MAAM,EAAE,GAAGJ;IAEhD,IAAIK,YAAYD;IAEhB,MAAMH,KAAKC,UAAU,CAACI,MAAM,CAACC,KAAK,CAACC,cAAc,CAACC,MAAM,CACtD,OAAOC,WAAWC;QAChB,MAAMD;QAEN,MAAME,aAAa,MAAMD,KAAK;YAC5BV;YACAC;YACAC;YACAU,KAAKZ,KAAKY,GAAG;YACbT,QAAQC;QACV;QAEA,IAAIO,eAAeE,WAAW;YAC5BT,YAAYO;QACd;IACF,GACAG,QAAQC,OAAO;IAGjB,OAAOX;AACT,EAAC"}
|
package/dist/config/client.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { MappedComponent } from '../admin/types.js';
|
|
|
2
2
|
import type { ClientCollectionConfig } from '../collections/config/client.js';
|
|
3
3
|
import type { ClientGlobalConfig } from '../globals/config/client.js';
|
|
4
4
|
import type { LivePreviewConfig, SanitizedConfig, ServerOnlyLivePreviewProperties } from './types.js';
|
|
5
|
-
export type ServerOnlyRootProperties = keyof Pick<SanitizedConfig, 'bin' | 'cors' | 'csrf' | 'custom' | 'db' | 'editor' | 'email' | 'endpoints' | 'graphQL' | 'hooks' | 'logger' | 'onInit' | 'plugins' | 'secret' | 'sharp' | 'typescript'>;
|
|
5
|
+
export type ServerOnlyRootProperties = keyof Pick<SanitizedConfig, 'bin' | 'cors' | 'csrf' | 'custom' | 'db' | 'editor' | 'email' | 'endpoints' | 'graphQL' | 'hooks' | 'jobs' | 'logger' | 'onInit' | 'plugins' | 'secret' | 'sharp' | 'typescript'>;
|
|
6
6
|
export type ServerOnlyRootAdminProperties = keyof Pick<SanitizedConfig['admin'], 'components'>;
|
|
7
7
|
export type ClientConfig = {
|
|
8
8
|
admin: {
|
|
@@ -14,7 +14,7 @@ export type ClientConfig = {
|
|
|
14
14
|
Logo: MappedComponent;
|
|
15
15
|
};
|
|
16
16
|
LogoutButton?: MappedComponent;
|
|
17
|
-
}
|
|
17
|
+
} & Pick<SanitizedConfig['admin']['components'], 'views'>;
|
|
18
18
|
dependencies?: Record<string, MappedComponent>;
|
|
19
19
|
livePreview?: Omit<LivePreviewConfig, ServerOnlyLivePreviewProperties>;
|
|
20
20
|
} & Omit<SanitizedConfig['admin'], 'components' | 'dependencies' | 'livePreview'>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/config/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,+BAA+B,EAChC,MAAM,YAAY,CAAA;AAEnB,MAAM,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAC/C,eAAe,EACb,KAAK,GACL,MAAM,GACN,MAAM,GACN,QAAQ,GACR,IAAI,GACJ,QAAQ,GACR,OAAO,GACP,WAAW,GACX,SAAS,GACT,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,OAAO,GACP,YAAY,CACf,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAAA;AAE9F,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE;QACL,UAAU,EAAE;YACV,OAAO,CAAC,EAAE,eAAe,EAAE,CAAA;YAC3B,MAAM,EAAE,eAAe,CAAA;YACvB,QAAQ,EAAE;gBACR,IAAI,EAAE,eAAe,CAAA;gBACrB,IAAI,EAAE,eAAe,CAAA;aACtB,CAAA;YACD,YAAY,CAAC,EAAE,eAAe,CAAA;SAC/B,CAAA;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/config/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,+BAA+B,EAChC,MAAM,YAAY,CAAA;AAEnB,MAAM,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAC/C,eAAe,EACb,KAAK,GACL,MAAM,GACN,MAAM,GACN,QAAQ,GACR,IAAI,GACJ,QAAQ,GACR,OAAO,GACP,WAAW,GACX,SAAS,GACT,OAAO,GACP,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,OAAO,GACP,YAAY,CACf,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAAA;AAE9F,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE;QACL,UAAU,EAAE;YACV,OAAO,CAAC,EAAE,eAAe,EAAE,CAAA;YAC3B,MAAM,EAAE,eAAe,CAAA;YACvB,QAAQ,EAAE;gBACR,IAAI,EAAE,eAAe,CAAA;gBACrB,IAAI,EAAE,eAAe,CAAA;aACtB,CAAA;YACD,YAAY,CAAC,EAAE,eAAe,CAAA;SAC/B,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,CAAA;QACzD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;QAC9C,WAAW,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,+BAA+B,CAAC,CAAA;KACvE,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,cAAc,GAAG,aAAa,CAAC,CAAA;IACjF,WAAW,EAAE,sBAAsB,EAAE,CAAA;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5B,OAAO,EAAE,kBAAkB,EAAE,CAAA;CAC9B,GAAG,IAAI,CAAC,eAAe,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS,GAAG,wBAAwB,CAAC,CAAA;AAEzF,eAAO,MAAM,0BAA0B,EAAE,SAAS,OAAO,CAAC,wBAAwB,CAAC,EAmBlF,CAAA"}
|
package/dist/config/client.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/config/client.ts"],"sourcesContent":["import type { MappedComponent } from '../admin/types.js'\nimport type { ClientCollectionConfig } from '../collections/config/client.js'\nimport type { ClientGlobalConfig } from '../globals/config/client.js'\nimport type {\n LivePreviewConfig,\n SanitizedConfig,\n ServerOnlyLivePreviewProperties,\n} from './types.js'\n\nexport type ServerOnlyRootProperties = keyof Pick<\n SanitizedConfig,\n | 'bin'\n | 'cors'\n | 'csrf'\n | 'custom'\n | 'db'\n | 'editor'\n | 'email'\n | 'endpoints'\n | 'graphQL'\n | 'hooks'\n | 'logger'\n | 'onInit'\n | 'plugins'\n | 'secret'\n | 'sharp'\n | 'typescript'\n>\n\nexport type ServerOnlyRootAdminProperties = keyof Pick<SanitizedConfig['admin'], 'components'>\n\nexport type ClientConfig = {\n admin: {\n components: {\n actions?: MappedComponent[]\n Avatar: MappedComponent\n graphics: {\n Icon: MappedComponent\n Logo: MappedComponent\n }\n LogoutButton?: MappedComponent\n }
|
|
1
|
+
{"version":3,"sources":["../../src/config/client.ts"],"sourcesContent":["import type { MappedComponent } from '../admin/types.js'\nimport type { ClientCollectionConfig } from '../collections/config/client.js'\nimport type { ClientGlobalConfig } from '../globals/config/client.js'\nimport type {\n LivePreviewConfig,\n SanitizedConfig,\n ServerOnlyLivePreviewProperties,\n} from './types.js'\n\nexport type ServerOnlyRootProperties = keyof Pick<\n SanitizedConfig,\n | 'bin'\n | 'cors'\n | 'csrf'\n | 'custom'\n | 'db'\n | 'editor'\n | 'email'\n | 'endpoints'\n | 'graphQL'\n | 'hooks'\n | 'jobs'\n | 'logger'\n | 'onInit'\n | 'plugins'\n | 'secret'\n | 'sharp'\n | 'typescript'\n>\n\nexport type ServerOnlyRootAdminProperties = keyof Pick<SanitizedConfig['admin'], 'components'>\n\nexport type ClientConfig = {\n admin: {\n components: {\n actions?: MappedComponent[]\n Avatar: MappedComponent\n graphics: {\n Icon: MappedComponent\n Logo: MappedComponent\n }\n LogoutButton?: MappedComponent\n } & Pick<SanitizedConfig['admin']['components'], 'views'>\n dependencies?: Record<string, MappedComponent>\n livePreview?: Omit<LivePreviewConfig, ServerOnlyLivePreviewProperties>\n } & Omit<SanitizedConfig['admin'], 'components' | 'dependencies' | 'livePreview'>\n collections: ClientCollectionConfig[]\n custom?: Record<string, any>\n globals: ClientGlobalConfig[]\n} & Omit<SanitizedConfig, 'admin' | 'collections' | 'globals' | ServerOnlyRootProperties>\n\nexport const serverOnlyConfigProperties: readonly Partial<ServerOnlyRootProperties>[] = [\n 'endpoints',\n 'db',\n 'editor',\n 'plugins',\n 'sharp',\n 'onInit',\n 'secret',\n 'hooks',\n 'bin',\n 'typescript',\n 'cors',\n 'csrf',\n 'email',\n 'custom',\n 'graphQL',\n 'jobs',\n 'logger',\n // `admin`, `onInit`, `localization`, `collections`, and `globals` are all handled separately\n]\n"],"names":["serverOnlyConfigProperties"],"mappings":"AAmDA,OAAO,MAAMA,6BAA2E;IACtF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CAED,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAIxC,eAAO,MAAM,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,QAAQ,GAAG,QAAQ,CAkE7D,CAAA"}
|
package/dist/config/defaults.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import defaultAccess from '../auth/defaultAccess.js';
|
|
1
2
|
export const defaults = {
|
|
2
3
|
admin: {
|
|
3
4
|
avatar: 'gravatar',
|
|
@@ -42,6 +43,13 @@ export const defaults = {
|
|
|
42
43
|
},
|
|
43
44
|
hooks: {},
|
|
44
45
|
i18n: {},
|
|
46
|
+
jobs: {
|
|
47
|
+
access: {
|
|
48
|
+
run: defaultAccess
|
|
49
|
+
},
|
|
50
|
+
deleteJobOnComplete: true,
|
|
51
|
+
depth: 0
|
|
52
|
+
},
|
|
45
53
|
localization: false,
|
|
46
54
|
maxDepth: 10,
|
|
47
55
|
routes: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/config/defaults.ts"],"sourcesContent":["import type { Config } from './types.js'\n\nexport const defaults: Omit<Config, 'db' | 'editor' | 'secret'> = {\n admin: {\n avatar: 'gravatar',\n components: {},\n custom: {},\n dateFormat: 'MMMM do yyyy, h:mm a',\n dependencies: {},\n disable: false,\n importMap: {\n baseDir: `${typeof process?.cwd === 'function' ? process.cwd() : ''}`,\n },\n meta: {\n defaultOGImageType: 'dynamic',\n titleSuffix: '- Payload',\n },\n routes: {\n account: '/account',\n createFirstUser: '/create-first-user',\n forgot: '/forgot',\n inactivity: '/logout-inactivity',\n login: '/login',\n logout: '/logout',\n reset: '/reset',\n unauthorized: '/unauthorized',\n },\n theme: 'all',\n },\n bin: [],\n collections: [],\n cookiePrefix: 'payload',\n cors: [],\n csrf: [],\n custom: {},\n defaultDepth: 2,\n defaultMaxTextLength: 40000,\n endpoints: [],\n globals: [],\n graphQL: {\n disablePlaygroundInProduction: true,\n maxComplexity: 1000,\n schemaOutputFile: `${typeof process?.cwd === 'function' ? process.cwd() : ''}/schema.graphql`,\n },\n hooks: {},\n i18n: {},\n localization: false,\n maxDepth: 10,\n routes: {\n admin: '/admin',\n api: '/api',\n graphQL: '/graphql',\n graphQLPlayground: '/graphql-playground',\n },\n serverURL: '',\n telemetry: true,\n typescript: {\n autoGenerate: true,\n outputFile: `${typeof process?.cwd === 'function' ? process.cwd() : ''}/payload-types.ts`,\n },\n upload: {},\n}\n"],"names":["defaults","admin","avatar","components","custom","dateFormat","dependencies","disable","importMap","baseDir","process","cwd","meta","defaultOGImageType","titleSuffix","routes","account","createFirstUser","forgot","inactivity","login","logout","reset","unauthorized","theme","bin","collections","cookiePrefix","cors","csrf","defaultDepth","defaultMaxTextLength","endpoints","globals","graphQL","disablePlaygroundInProduction","maxComplexity","schemaOutputFile","hooks","i18n","localization","maxDepth","api","graphQLPlayground","serverURL","telemetry","typescript","autoGenerate","outputFile","upload"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/config/defaults.ts"],"sourcesContent":["import type { JobsConfig } from '../queues/config/types/index.js'\nimport type { Config } from './types.js'\n\nimport defaultAccess from '../auth/defaultAccess.js'\n\nexport const defaults: Omit<Config, 'db' | 'editor' | 'secret'> = {\n admin: {\n avatar: 'gravatar',\n components: {},\n custom: {},\n dateFormat: 'MMMM do yyyy, h:mm a',\n dependencies: {},\n disable: false,\n importMap: {\n baseDir: `${typeof process?.cwd === 'function' ? process.cwd() : ''}`,\n },\n meta: {\n defaultOGImageType: 'dynamic',\n titleSuffix: '- Payload',\n },\n routes: {\n account: '/account',\n createFirstUser: '/create-first-user',\n forgot: '/forgot',\n inactivity: '/logout-inactivity',\n login: '/login',\n logout: '/logout',\n reset: '/reset',\n unauthorized: '/unauthorized',\n },\n theme: 'all',\n },\n bin: [],\n collections: [],\n cookiePrefix: 'payload',\n cors: [],\n csrf: [],\n custom: {},\n defaultDepth: 2,\n defaultMaxTextLength: 40000,\n endpoints: [],\n globals: [],\n graphQL: {\n disablePlaygroundInProduction: true,\n maxComplexity: 1000,\n schemaOutputFile: `${typeof process?.cwd === 'function' ? process.cwd() : ''}/schema.graphql`,\n },\n hooks: {},\n i18n: {},\n jobs: {\n access: {\n run: defaultAccess,\n },\n deleteJobOnComplete: true,\n depth: 0,\n } as JobsConfig,\n localization: false,\n maxDepth: 10,\n routes: {\n admin: '/admin',\n api: '/api',\n graphQL: '/graphql',\n graphQLPlayground: '/graphql-playground',\n },\n serverURL: '',\n telemetry: true,\n typescript: {\n autoGenerate: true,\n outputFile: `${typeof process?.cwd === 'function' ? process.cwd() : ''}/payload-types.ts`,\n },\n upload: {},\n}\n"],"names":["defaultAccess","defaults","admin","avatar","components","custom","dateFormat","dependencies","disable","importMap","baseDir","process","cwd","meta","defaultOGImageType","titleSuffix","routes","account","createFirstUser","forgot","inactivity","login","logout","reset","unauthorized","theme","bin","collections","cookiePrefix","cors","csrf","defaultDepth","defaultMaxTextLength","endpoints","globals","graphQL","disablePlaygroundInProduction","maxComplexity","schemaOutputFile","hooks","i18n","jobs","access","run","deleteJobOnComplete","depth","localization","maxDepth","api","graphQLPlayground","serverURL","telemetry","typescript","autoGenerate","outputFile","upload"],"mappings":"AAGA,OAAOA,mBAAmB,2BAA0B;AAEpD,OAAO,MAAMC,WAAqD;IAChEC,OAAO;QACLC,QAAQ;QACRC,YAAY,CAAC;QACbC,QAAQ,CAAC;QACTC,YAAY;QACZC,cAAc,CAAC;QACfC,SAAS;QACTC,WAAW;YACTC,SAAS,CAAC,EAAE,OAAOC,SAASC,QAAQ,aAAaD,QAAQC,GAAG,KAAK,GAAG,CAAC;QACvE;QACAC,MAAM;YACJC,oBAAoB;YACpBC,aAAa;QACf;QACAC,QAAQ;YACNC,SAAS;YACTC,iBAAiB;YACjBC,QAAQ;YACRC,YAAY;YACZC,OAAO;YACPC,QAAQ;YACRC,OAAO;YACPC,cAAc;QAChB;QACAC,OAAO;IACT;IACAC,KAAK,EAAE;IACPC,aAAa,EAAE;IACfC,cAAc;IACdC,MAAM,EAAE;IACRC,MAAM,EAAE;IACRzB,QAAQ,CAAC;IACT0B,cAAc;IACdC,sBAAsB;IACtBC,WAAW,EAAE;IACbC,SAAS,EAAE;IACXC,SAAS;QACPC,+BAA+B;QAC/BC,eAAe;QACfC,kBAAkB,CAAC,EAAE,OAAO3B,SAASC,QAAQ,aAAaD,QAAQC,GAAG,KAAK,GAAG,eAAe,CAAC;IAC/F;IACA2B,OAAO,CAAC;IACRC,MAAM,CAAC;IACPC,MAAM;QACJC,QAAQ;YACNC,KAAK3C;QACP;QACA4C,qBAAqB;QACrBC,OAAO;IACT;IACAC,cAAc;IACdC,UAAU;IACV/B,QAAQ;QACNd,OAAO;QACP8C,KAAK;QACLb,SAAS;QACTc,mBAAmB;IACrB;IACAC,WAAW;IACXC,WAAW;IACXC,YAAY;QACVC,cAAc;QACdC,YAAY,CAAC,EAAE,OAAO3C,SAASC,QAAQ,aAAaD,QAAQC,GAAG,KAAK,GAAG,iBAAiB,CAAC;IAC3F;IACA2C,QAAQ,CAAC;AACX,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/config/sanitize.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,MAAM,EAGN,eAAe,EAChB,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/config/sanitize.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,MAAM,EAGN,eAAe,EAChB,MAAM,YAAY,CAAA;AAuCnB,eAAO,MAAM,cAAc,mBAA0B,MAAM,KAAG,OAAO,CAAC,eAAe,CAwLpF,CAAA"}
|
package/dist/config/sanitize.js
CHANGED
|
@@ -7,6 +7,7 @@ import { InvalidConfiguration } from '../errors/index.js';
|
|
|
7
7
|
import { sanitizeGlobals } from '../globals/config/sanitize.js';
|
|
8
8
|
import { getLockedDocumentsCollection } from '../lockedDocuments/lockedDocumentsCollection.js';
|
|
9
9
|
import getPreferencesCollection from '../preferences/preferencesCollection.js';
|
|
10
|
+
import { getDefaultJobsCollection } from '../queues/config/jobsCollection.js';
|
|
10
11
|
import checkDuplicateCollections from '../utilities/checkDuplicateCollections.js';
|
|
11
12
|
import { defaults } from './defaults.js';
|
|
12
13
|
const sanitizeAdminConfig = (configToSanitize)=>{
|
|
@@ -49,6 +50,16 @@ export const sanitizeConfig = async (incomingConfig)=>{
|
|
|
49
50
|
...defaults.graphQL,
|
|
50
51
|
...incomingConfig?.graphQL
|
|
51
52
|
},
|
|
53
|
+
jobs: {
|
|
54
|
+
...defaults.jobs,
|
|
55
|
+
...incomingConfig?.jobs,
|
|
56
|
+
access: {
|
|
57
|
+
...defaults.jobs.access,
|
|
58
|
+
...incomingConfig?.jobs?.access
|
|
59
|
+
},
|
|
60
|
+
tasks: incomingConfig?.jobs?.tasks || [],
|
|
61
|
+
workflows: incomingConfig?.jobs?.workflows || []
|
|
62
|
+
},
|
|
52
63
|
routes: {
|
|
53
64
|
...defaults.routes,
|
|
54
65
|
...incomingConfig?.routes
|
|
@@ -109,6 +120,16 @@ export const sanitizeConfig = async (incomingConfig)=>{
|
|
|
109
120
|
i18nConfig.translations = incomingConfig.i18n?.translations || i18nConfig.translations;
|
|
110
121
|
}
|
|
111
122
|
config.i18n = i18nConfig;
|
|
123
|
+
// Need to add default jobs collection before locked documents collections
|
|
124
|
+
if (Array.isArray(configWithDefaults.jobs?.tasks) && configWithDefaults.jobs.tasks.length > 0) {
|
|
125
|
+
let defaultJobsCollection = getDefaultJobsCollection(config);
|
|
126
|
+
if (typeof configWithDefaults.jobs.jobsCollectionOverrides === 'function') {
|
|
127
|
+
defaultJobsCollection = configWithDefaults.jobs.jobsCollectionOverrides({
|
|
128
|
+
defaultJobsCollection
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
configWithDefaults.collections.push(defaultJobsCollection);
|
|
132
|
+
}
|
|
112
133
|
configWithDefaults.collections.push(getLockedDocumentsCollection(config));
|
|
113
134
|
configWithDefaults.collections.push(getPreferencesCollection(config));
|
|
114
135
|
configWithDefaults.collections.push(migrationsCollection);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/config/sanitize.ts"],"sourcesContent":["import type { AcceptedLanguages } from '@payloadcms/translations'\n\nimport { en } from '@payloadcms/translations/languages/en'\nimport { deepMergeSimple } from '@payloadcms/translations/utilities'\n\nimport type {\n Config,\n LocalizationConfigWithLabels,\n LocalizationConfigWithNoLabels,\n SanitizedConfig,\n} from './types.js'\n\nimport { defaultUserCollection } from '../auth/defaultUser.js'\nimport { sanitizeCollection } from '../collections/config/sanitize.js'\nimport { migrationsCollection } from '../database/migrations/migrationsCollection.js'\nimport { InvalidConfiguration } from '../errors/index.js'\nimport { sanitizeGlobals } from '../globals/config/sanitize.js'\nimport { getLockedDocumentsCollection } from '../lockedDocuments/lockedDocumentsCollection.js'\nimport getPreferencesCollection from '../preferences/preferencesCollection.js'\nimport checkDuplicateCollections from '../utilities/checkDuplicateCollections.js'\nimport { defaults } from './defaults.js'\n\nconst sanitizeAdminConfig = (configToSanitize: Config): Partial<SanitizedConfig> => {\n const sanitizedConfig = { ...configToSanitize }\n\n // add default user collection if none provided\n if (!sanitizedConfig?.admin?.user) {\n const firstCollectionWithAuth = sanitizedConfig.collections.find(({ auth }) => Boolean(auth))\n if (firstCollectionWithAuth) {\n sanitizedConfig.admin.user = firstCollectionWithAuth.slug\n } else {\n sanitizedConfig.admin.user = defaultUserCollection.slug\n sanitizedConfig.collections.push(defaultUserCollection)\n }\n }\n\n const userCollection = sanitizedConfig.collections.find(\n ({ slug }) => slug === sanitizedConfig.admin.user,\n )\n if (!userCollection || !userCollection.auth) {\n throw new InvalidConfiguration(\n `${sanitizedConfig.admin.user} is not a valid admin user collection`,\n )\n }\n\n return sanitizedConfig as unknown as Partial<SanitizedConfig>\n}\n\nexport const sanitizeConfig = async (incomingConfig: Config): Promise<SanitizedConfig> => {\n const configWithDefaults = {\n ...defaults,\n ...incomingConfig,\n admin: {\n ...defaults.admin,\n ...incomingConfig?.admin,\n meta: {\n ...defaults.admin.meta,\n ...incomingConfig?.admin?.meta,\n },\n routes: {\n ...defaults.admin.routes,\n ...incomingConfig?.admin?.routes,\n },\n },\n graphQL: {\n ...defaults.graphQL,\n ...incomingConfig?.graphQL,\n },\n routes: {\n ...defaults.routes,\n ...incomingConfig?.routes,\n },\n typescript: {\n ...defaults.typescript,\n ...incomingConfig?.typescript,\n },\n }\n\n if (!configWithDefaults?.serverURL) {\n configWithDefaults.serverURL = ''\n }\n\n if (process.env.NEXT_BASE_PATH) {\n if (!incomingConfig?.routes?.api) {\n // check for incomingConfig, as configWithDefaults will always have a default value for routes.api\n configWithDefaults.routes.api = process.env.NEXT_BASE_PATH + '/api'\n }\n }\n\n const config: Partial<SanitizedConfig> = sanitizeAdminConfig(configWithDefaults)\n\n if (config.localization && config.localization.locales?.length > 0) {\n // clone localization config so to not break everything\n const firstLocale = config.localization.locales[0]\n if (typeof firstLocale === 'string') {\n config.localization.localeCodes = [\n ...(config.localization as unknown as LocalizationConfigWithNoLabels).locales,\n ]\n\n // is string[], so convert to Locale[]\n config.localization.locales = (\n config.localization as unknown as LocalizationConfigWithNoLabels\n ).locales.map((locale) => ({\n code: locale,\n label: locale,\n rtl: false,\n toString: () => locale,\n }))\n } else {\n // is Locale[], so convert to string[] for localeCodes\n config.localization.localeCodes = config.localization.locales.reduce((locales, locale) => {\n locales.push(locale.code)\n return locales\n }, [] as string[])\n\n config.localization.locales = (\n config.localization as LocalizationConfigWithLabels\n ).locales.map((locale) => ({\n ...locale,\n toString: () => locale.code,\n }))\n }\n }\n\n const i18nConfig: SanitizedConfig['i18n'] = {\n fallbackLanguage: 'en',\n supportedLanguages: {\n en,\n },\n translations: {},\n }\n\n if (incomingConfig?.i18n) {\n i18nConfig.supportedLanguages =\n incomingConfig.i18n?.supportedLanguages || i18nConfig.supportedLanguages\n\n const supportedLangKeys = <AcceptedLanguages[]>Object.keys(i18nConfig.supportedLanguages)\n const fallbackLang = incomingConfig.i18n?.fallbackLanguage || i18nConfig.fallbackLanguage\n\n i18nConfig.fallbackLanguage = supportedLangKeys.includes(fallbackLang)\n ? fallbackLang\n : supportedLangKeys[0]\n i18nConfig.translations =\n (incomingConfig.i18n?.translations as SanitizedConfig['i18n']['translations']) ||\n i18nConfig.translations\n }\n\n config.i18n = i18nConfig\n\n configWithDefaults.collections.push(getLockedDocumentsCollection(config as unknown as Config))\n configWithDefaults.collections.push(getPreferencesCollection(config as unknown as Config))\n configWithDefaults.collections.push(migrationsCollection)\n\n const richTextSanitizationPromises: Array<(config: SanitizedConfig) => Promise<void>> = []\n for (let i = 0; i < config.collections.length; i++) {\n config.collections[i] = await sanitizeCollection(\n config as unknown as Config,\n config.collections[i],\n richTextSanitizationPromises,\n )\n }\n\n checkDuplicateCollections(config.collections)\n\n if (config.globals.length > 0) {\n config.globals = await sanitizeGlobals(\n config as unknown as Config,\n richTextSanitizationPromises,\n )\n }\n\n if (config.serverURL !== '') {\n config.csrf.push(config.serverURL)\n }\n\n // Get deduped list of upload adapters\n if (!config.upload) {\n config.upload = { adapters: [] }\n }\n config.upload.adapters = Array.from(\n new Set(config.collections.map((c) => c.upload?.adapter).filter(Boolean)),\n )\n\n // Pass through the email config as is so adapters don't break\n if (incomingConfig.email) {\n config.email = incomingConfig.email\n }\n\n /*\n Execute richText sanitization\n */\n if (typeof incomingConfig.editor === 'function') {\n config.editor = await incomingConfig.editor({\n config: config as SanitizedConfig,\n isRoot: true,\n parentIsLocalized: false,\n })\n if (config.editor.i18n && Object.keys(config.editor.i18n).length >= 0) {\n config.i18n.translations = deepMergeSimple(config.i18n.translations, config.editor.i18n)\n }\n }\n\n const promises: Promise<void>[] = []\n for (const sanitizeFunction of richTextSanitizationPromises) {\n promises.push(sanitizeFunction(config as SanitizedConfig))\n }\n await Promise.all(promises)\n\n return config as SanitizedConfig\n}\n"],"names":["en","deepMergeSimple","defaultUserCollection","sanitizeCollection","migrationsCollection","InvalidConfiguration","sanitizeGlobals","getLockedDocumentsCollection","getPreferencesCollection","checkDuplicateCollections","defaults","sanitizeAdminConfig","configToSanitize","sanitizedConfig","admin","user","firstCollectionWithAuth","collections","find","auth","Boolean","slug","push","userCollection","sanitizeConfig","incomingConfig","configWithDefaults","meta","routes","graphQL","typescript","serverURL","process","env","NEXT_BASE_PATH","api","config","localization","locales","length","firstLocale","localeCodes","map","locale","code","label","rtl","toString","reduce","i18nConfig","fallbackLanguage","supportedLanguages","translations","i18n","supportedLangKeys","Object","keys","fallbackLang","includes","richTextSanitizationPromises","i","globals","csrf","upload","adapters","Array","from","Set","c","adapter","filter","email","editor","isRoot","parentIsLocalized","promises","sanitizeFunction","Promise","all"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/config/sanitize.ts"],"sourcesContent":["import type { AcceptedLanguages } from '@payloadcms/translations'\n\nimport { en } from '@payloadcms/translations/languages/en'\nimport { deepMergeSimple } from '@payloadcms/translations/utilities'\n\nimport type {\n Config,\n LocalizationConfigWithLabels,\n LocalizationConfigWithNoLabels,\n SanitizedConfig,\n} from './types.js'\n\nimport { defaultUserCollection } from '../auth/defaultUser.js'\nimport { sanitizeCollection } from '../collections/config/sanitize.js'\nimport { migrationsCollection } from '../database/migrations/migrationsCollection.js'\nimport { InvalidConfiguration } from '../errors/index.js'\nimport { sanitizeGlobals } from '../globals/config/sanitize.js'\nimport { getLockedDocumentsCollection } from '../lockedDocuments/lockedDocumentsCollection.js'\nimport getPreferencesCollection from '../preferences/preferencesCollection.js'\nimport { getDefaultJobsCollection } from '../queues/config/jobsCollection.js'\nimport checkDuplicateCollections from '../utilities/checkDuplicateCollections.js'\nimport { defaults } from './defaults.js'\n\nconst sanitizeAdminConfig = (configToSanitize: Config): Partial<SanitizedConfig> => {\n const sanitizedConfig = { ...configToSanitize }\n\n // add default user collection if none provided\n if (!sanitizedConfig?.admin?.user) {\n const firstCollectionWithAuth = sanitizedConfig.collections.find(({ auth }) => Boolean(auth))\n if (firstCollectionWithAuth) {\n sanitizedConfig.admin.user = firstCollectionWithAuth.slug\n } else {\n sanitizedConfig.admin.user = defaultUserCollection.slug\n sanitizedConfig.collections.push(defaultUserCollection)\n }\n }\n\n const userCollection = sanitizedConfig.collections.find(\n ({ slug }) => slug === sanitizedConfig.admin.user,\n )\n if (!userCollection || !userCollection.auth) {\n throw new InvalidConfiguration(\n `${sanitizedConfig.admin.user} is not a valid admin user collection`,\n )\n }\n\n return sanitizedConfig as unknown as Partial<SanitizedConfig>\n}\n\nexport const sanitizeConfig = async (incomingConfig: Config): Promise<SanitizedConfig> => {\n const configWithDefaults = {\n ...defaults,\n ...incomingConfig,\n admin: {\n ...defaults.admin,\n ...incomingConfig?.admin,\n meta: {\n ...defaults.admin.meta,\n ...incomingConfig?.admin?.meta,\n },\n routes: {\n ...defaults.admin.routes,\n ...incomingConfig?.admin?.routes,\n },\n },\n graphQL: {\n ...defaults.graphQL,\n ...incomingConfig?.graphQL,\n },\n jobs: {\n ...defaults.jobs,\n ...incomingConfig?.jobs,\n access: {\n ...defaults.jobs.access,\n ...incomingConfig?.jobs?.access,\n },\n tasks: incomingConfig?.jobs?.tasks || [],\n workflows: incomingConfig?.jobs?.workflows || [],\n },\n routes: {\n ...defaults.routes,\n ...incomingConfig?.routes,\n },\n typescript: {\n ...defaults.typescript,\n ...incomingConfig?.typescript,\n },\n }\n\n if (!configWithDefaults?.serverURL) {\n configWithDefaults.serverURL = ''\n }\n\n if (process.env.NEXT_BASE_PATH) {\n if (!incomingConfig?.routes?.api) {\n // check for incomingConfig, as configWithDefaults will always have a default value for routes.api\n configWithDefaults.routes.api = process.env.NEXT_BASE_PATH + '/api'\n }\n }\n\n const config: Partial<SanitizedConfig> = sanitizeAdminConfig(configWithDefaults)\n\n if (config.localization && config.localization.locales?.length > 0) {\n // clone localization config so to not break everything\n const firstLocale = config.localization.locales[0]\n if (typeof firstLocale === 'string') {\n config.localization.localeCodes = [\n ...(config.localization as unknown as LocalizationConfigWithNoLabels).locales,\n ]\n\n // is string[], so convert to Locale[]\n config.localization.locales = (\n config.localization as unknown as LocalizationConfigWithNoLabels\n ).locales.map((locale) => ({\n code: locale,\n label: locale,\n rtl: false,\n toString: () => locale,\n }))\n } else {\n // is Locale[], so convert to string[] for localeCodes\n config.localization.localeCodes = config.localization.locales.reduce((locales, locale) => {\n locales.push(locale.code)\n return locales\n }, [] as string[])\n\n config.localization.locales = (\n config.localization as LocalizationConfigWithLabels\n ).locales.map((locale) => ({\n ...locale,\n toString: () => locale.code,\n }))\n }\n }\n\n const i18nConfig: SanitizedConfig['i18n'] = {\n fallbackLanguage: 'en',\n supportedLanguages: {\n en,\n },\n translations: {},\n }\n\n if (incomingConfig?.i18n) {\n i18nConfig.supportedLanguages =\n incomingConfig.i18n?.supportedLanguages || i18nConfig.supportedLanguages\n\n const supportedLangKeys = <AcceptedLanguages[]>Object.keys(i18nConfig.supportedLanguages)\n const fallbackLang = incomingConfig.i18n?.fallbackLanguage || i18nConfig.fallbackLanguage\n\n i18nConfig.fallbackLanguage = supportedLangKeys.includes(fallbackLang)\n ? fallbackLang\n : supportedLangKeys[0]\n i18nConfig.translations =\n (incomingConfig.i18n?.translations as SanitizedConfig['i18n']['translations']) ||\n i18nConfig.translations\n }\n\n config.i18n = i18nConfig\n\n // Need to add default jobs collection before locked documents collections\n if (Array.isArray(configWithDefaults.jobs?.tasks) && configWithDefaults.jobs.tasks.length > 0) {\n let defaultJobsCollection = getDefaultJobsCollection(config as unknown as Config)\n\n if (typeof configWithDefaults.jobs.jobsCollectionOverrides === 'function') {\n defaultJobsCollection = configWithDefaults.jobs.jobsCollectionOverrides({\n defaultJobsCollection,\n })\n }\n\n configWithDefaults.collections.push(defaultJobsCollection)\n }\n\n configWithDefaults.collections.push(getLockedDocumentsCollection(config as unknown as Config))\n configWithDefaults.collections.push(getPreferencesCollection(config as unknown as Config))\n configWithDefaults.collections.push(migrationsCollection)\n\n const richTextSanitizationPromises: Array<(config: SanitizedConfig) => Promise<void>> = []\n for (let i = 0; i < config.collections.length; i++) {\n config.collections[i] = await sanitizeCollection(\n config as unknown as Config,\n config.collections[i],\n richTextSanitizationPromises,\n )\n }\n\n checkDuplicateCollections(config.collections)\n\n if (config.globals.length > 0) {\n config.globals = await sanitizeGlobals(\n config as unknown as Config,\n richTextSanitizationPromises,\n )\n }\n\n if (config.serverURL !== '') {\n config.csrf.push(config.serverURL)\n }\n\n // Get deduped list of upload adapters\n if (!config.upload) {\n config.upload = { adapters: [] }\n }\n config.upload.adapters = Array.from(\n new Set(config.collections.map((c) => c.upload?.adapter).filter(Boolean)),\n )\n\n // Pass through the email config as is so adapters don't break\n if (incomingConfig.email) {\n config.email = incomingConfig.email\n }\n\n /*\n Execute richText sanitization\n */\n if (typeof incomingConfig.editor === 'function') {\n config.editor = await incomingConfig.editor({\n config: config as SanitizedConfig,\n isRoot: true,\n parentIsLocalized: false,\n })\n if (config.editor.i18n && Object.keys(config.editor.i18n).length >= 0) {\n config.i18n.translations = deepMergeSimple(config.i18n.translations, config.editor.i18n)\n }\n }\n\n const promises: Promise<void>[] = []\n for (const sanitizeFunction of richTextSanitizationPromises) {\n promises.push(sanitizeFunction(config as SanitizedConfig))\n }\n await Promise.all(promises)\n\n return config as SanitizedConfig\n}\n"],"names":["en","deepMergeSimple","defaultUserCollection","sanitizeCollection","migrationsCollection","InvalidConfiguration","sanitizeGlobals","getLockedDocumentsCollection","getPreferencesCollection","getDefaultJobsCollection","checkDuplicateCollections","defaults","sanitizeAdminConfig","configToSanitize","sanitizedConfig","admin","user","firstCollectionWithAuth","collections","find","auth","Boolean","slug","push","userCollection","sanitizeConfig","incomingConfig","configWithDefaults","meta","routes","graphQL","jobs","access","tasks","workflows","typescript","serverURL","process","env","NEXT_BASE_PATH","api","config","localization","locales","length","firstLocale","localeCodes","map","locale","code","label","rtl","toString","reduce","i18nConfig","fallbackLanguage","supportedLanguages","translations","i18n","supportedLangKeys","Object","keys","fallbackLang","includes","Array","isArray","defaultJobsCollection","jobsCollectionOverrides","richTextSanitizationPromises","i","globals","csrf","upload","adapters","from","Set","c","adapter","filter","email","editor","isRoot","parentIsLocalized","promises","sanitizeFunction","Promise","all"],"mappings":"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"}
|
package/dist/config/types.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ import type { Collection, CollectionConfig, SanitizedCollectionConfig } from '..
|
|
|
16
16
|
import type { DatabaseAdapterResult } from '../database/types.js';
|
|
17
17
|
import type { EmailAdapter, SendEmailOptions } from '../email/types.js';
|
|
18
18
|
import type { GlobalConfig, Globals, SanitizedGlobalConfig } from '../globals/config/types.js';
|
|
19
|
-
import type { Payload, RequestContext, TypedUser } from '../index.js';
|
|
19
|
+
import type { JobsConfig, Payload, RequestContext, TypedUser } from '../index.js';
|
|
20
20
|
import type { PayloadRequest, Where } from '../types/index.js';
|
|
21
21
|
import type { PayloadLogger } from '../utilities/logger.js';
|
|
22
22
|
/**
|
|
@@ -785,6 +785,10 @@ export type Config = {
|
|
|
785
785
|
i18n?: I18nOptions<{} | DefaultTranslationsObject>;
|
|
786
786
|
/** Automatically index all sortable top-level fields in the database to improve sort performance and add database compatibility for Azure Cosmos and similar. */
|
|
787
787
|
indexSortableFields?: boolean;
|
|
788
|
+
/**
|
|
789
|
+
* @experimental There may be frequent breaking changes to this API
|
|
790
|
+
*/
|
|
791
|
+
jobs?: JobsConfig;
|
|
788
792
|
/**
|
|
789
793
|
* Translate your content to different languages/locales.
|
|
790
794
|
*
|
|
@@ -905,6 +909,7 @@ export type SanitizedConfig = {
|
|
|
905
909
|
endpoints: Endpoint[];
|
|
906
910
|
globals: SanitizedGlobalConfig[];
|
|
907
911
|
i18n: Required<I18nOptions>;
|
|
912
|
+
jobs: JobsConfig;
|
|
908
913
|
localization: false | SanitizedLocalizationConfig;
|
|
909
914
|
paths: {
|
|
910
915
|
config: string;
|