payload 3.0.0-beta.41 → 3.0.0-beta.43
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/collections/config/sanitize.d.ts.map +1 -1
- package/dist/collections/config/sanitize.js +5 -1
- package/dist/collections/config/sanitize.js.map +1 -1
- package/dist/collections/config/schema.d.ts.map +1 -1
- package/dist/collections/config/schema.js +2 -1
- package/dist/collections/config/schema.js.map +1 -1
- package/dist/collections/operations/create.d.ts.map +1 -1
- package/dist/collections/operations/create.js +1 -7
- package/dist/collections/operations/create.js.map +1 -1
- package/dist/collections/operations/duplicate.d.ts.map +1 -1
- package/dist/collections/operations/duplicate.js +1 -1
- package/dist/collections/operations/duplicate.js.map +1 -1
- package/dist/collections/operations/update.d.ts.map +1 -1
- package/dist/collections/operations/update.js +1 -1
- 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 +1 -1
- package/dist/collections/operations/updateByID.js.map +1 -1
- package/dist/config/schema.js +1 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/config/types.d.ts +2 -2
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js.map +1 -1
- package/dist/errors/index.d.ts +1 -0
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +1 -0
- package/dist/errors/index.js.map +1 -1
- package/dist/exports/errors.d.ts +1 -1
- package/dist/exports/errors.d.ts.map +1 -1
- package/dist/exports/errors.js +1 -1
- package/dist/exports/errors.js.map +1 -1
- package/dist/fields/config/sanitize.js +2 -1
- package/dist/fields/config/sanitize.js.map +1 -1
- package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/promise.js +6 -1
- package/dist/fields/hooks/afterRead/promise.js.map +1 -1
- package/dist/fields/validations.d.ts.map +1 -1
- package/dist/fields/validations.js +3 -0
- package/dist/fields/validations.js.map +1 -1
- package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
- package/dist/utilities/configToJSONSchema.js +5 -0
- package/dist/utilities/configToJSONSchema.js.map +1 -1
- package/dist/versions/enforceMaxVersions.js +1 -1
- package/dist/versions/enforceMaxVersions.js.map +1 -1
- package/dist/versions/types.d.ts +2 -0
- package/dist/versions/types.d.ts.map +1 -1
- package/dist/versions/types.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../src/collections/config/sanitize.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAgB7E,eAAO,MAAM,kBAAkB,WACrB,MAAM,cACF,gBAAgB,iCAKG,MAAM,CAAC,MAAM,EAAE,eAAe,KAAK,QAAQ,IAAI,CAAC,CAAC,KAC/E,QAAQ,yBAAyB,
|
|
1
|
+
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../src/collections/config/sanitize.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAgB7E,eAAO,MAAM,kBAAkB,WACrB,MAAM,cACF,gBAAgB,iCAKG,MAAM,CAAC,MAAM,EAAE,eAAe,KAAK,QAAQ,IAAI,CAAC,CAAC,KAC/E,QAAQ,yBAAyB,CAgJnC,CAAA"}
|
|
@@ -69,7 +69,8 @@ export const sanitizeCollection = async (config, collection, /**
|
|
|
69
69
|
if (sanitized.versions.drafts) {
|
|
70
70
|
if (sanitized.versions.drafts === true) {
|
|
71
71
|
sanitized.versions.drafts = {
|
|
72
|
-
autosave: false
|
|
72
|
+
autosave: false,
|
|
73
|
+
validate: false
|
|
73
74
|
};
|
|
74
75
|
}
|
|
75
76
|
if (sanitized.versions.drafts.autosave === true) {
|
|
@@ -77,6 +78,9 @@ export const sanitizeCollection = async (config, collection, /**
|
|
|
77
78
|
interval: 2000
|
|
78
79
|
};
|
|
79
80
|
}
|
|
81
|
+
if (sanitized.versions.drafts.validate === undefined) {
|
|
82
|
+
sanitized.versions.drafts.validate = false;
|
|
83
|
+
}
|
|
80
84
|
sanitized.fields = mergeBaseFields(sanitized.fields, baseVersionFields);
|
|
81
85
|
}
|
|
82
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/collections/config/sanitize.ts"],"sourcesContent":["import merge from 'deepmerge'\n\nimport type { Config, SanitizedConfig } from '../../config/types.js'\nimport type { CollectionConfig, SanitizedCollectionConfig } from './types.js'\n\nimport baseAccountLockFields from '../../auth/baseFields/accountLock.js'\nimport baseAPIKeyFields from '../../auth/baseFields/apiKey.js'\nimport baseAuthFields from '../../auth/baseFields/auth.js'\nimport baseVerificationFields from '../../auth/baseFields/verification.js'\nimport { TimestampsRequired } from '../../errors/TimestampsRequired.js'\nimport { sanitizeFields } from '../../fields/config/sanitize.js'\nimport { fieldAffectsData } from '../../fields/config/types.js'\nimport mergeBaseFields from '../../fields/mergeBaseFields.js'\nimport { getBaseUploadFields } from '../../uploads/getBaseFields.js'\nimport { formatLabels } from '../../utilities/formatLabels.js'\nimport { isPlainObject } from '../../utilities/isPlainObject.js'\nimport baseVersionFields from '../../versions/baseFields.js'\nimport { authDefaults, defaults } from './defaults.js'\n\nexport const sanitizeCollection = async (\n config: Config,\n collection: CollectionConfig,\n /**\n * If this property is set, RichText fields won't be sanitized immediately. Instead, they will be added to this array as promises\n * so that you can sanitize them together, after the config has been sanitized.\n */\n richTextSanitizationPromises?: Array<(config: SanitizedConfig) => Promise<void>>,\n): Promise<SanitizedCollectionConfig> => {\n // /////////////////////////////////\n // Make copy of collection config\n // /////////////////////////////////\n\n const sanitized: CollectionConfig = merge(defaults, collection, {\n isMergeableObject: isPlainObject,\n })\n\n if (sanitized.timestamps !== false) {\n // add default timestamps fields only as needed\n let hasUpdatedAt = null\n let hasCreatedAt = null\n sanitized.fields.some((field) => {\n if (fieldAffectsData(field)) {\n if (field.name === 'updatedAt') hasUpdatedAt = true\n if (field.name === 'createdAt') hasCreatedAt = true\n }\n return hasCreatedAt && hasUpdatedAt\n })\n if (!hasUpdatedAt) {\n sanitized.fields.push({\n name: 'updatedAt',\n type: 'date',\n admin: {\n disableBulkEdit: true,\n hidden: true,\n },\n label: ({ t }) => t('general:updatedAt'),\n })\n }\n if (!hasCreatedAt) {\n sanitized.fields.push({\n name: 'createdAt',\n admin: {\n disableBulkEdit: true,\n hidden: true,\n },\n // The default sort for list view is createdAt. Thus, enabling indexing by default, is a major performance improvement, especially for large or a large amount of collections.\n type: 'date',\n index: true,\n label: ({ t }) => t('general:createdAt'),\n })\n }\n }\n\n sanitized.labels = sanitized.labels || formatLabels(sanitized.slug)\n\n if (sanitized.versions) {\n if (sanitized.versions === true) sanitized.versions = { drafts: false }\n\n if (sanitized.timestamps === false) {\n throw new TimestampsRequired(collection)\n }\n\n if (sanitized.versions.drafts) {\n if (sanitized.versions.drafts === true) {\n sanitized.versions.drafts = {\n autosave: false,\n }\n }\n\n if (sanitized.versions.drafts.autosave === true) {\n sanitized.versions.drafts.autosave = {\n interval: 2000,\n }\n }\n\n sanitized.fields = mergeBaseFields(sanitized.fields, baseVersionFields)\n }\n }\n\n if (sanitized.upload) {\n if (sanitized.upload === true) sanitized.upload = {}\n\n // disable duplicate for uploads by default\n sanitized.disableDuplicate = sanitized.disableDuplicate || true\n\n sanitized.upload.staticDir = sanitized.upload.staticDir || sanitized.slug\n sanitized.admin.useAsTitle =\n sanitized.admin.useAsTitle && sanitized.admin.useAsTitle !== 'id'\n ? sanitized.admin.useAsTitle\n : 'filename'\n\n const uploadFields = getBaseUploadFields({\n collection: sanitized,\n config,\n })\n\n sanitized.fields = mergeBaseFields(sanitized.fields, uploadFields)\n }\n\n if (sanitized.auth) {\n sanitized.auth = merge(authDefaults, typeof sanitized.auth === 'object' ? sanitized.auth : {}, {\n isMergeableObject: isPlainObject,\n })\n\n let authFields = []\n\n if (sanitized.auth.useAPIKey) {\n authFields = authFields.concat(baseAPIKeyFields)\n }\n\n if (!sanitized.auth.disableLocalStrategy) {\n authFields = authFields.concat(baseAuthFields)\n\n if (sanitized.auth.verify) {\n if (sanitized.auth.verify === true) sanitized.auth.verify = {}\n authFields = authFields.concat(baseVerificationFields)\n }\n\n if (sanitized.auth.maxLoginAttempts > 0) {\n authFields = authFields.concat(baseAccountLockFields)\n }\n }\n\n // disable duplicate for auth enabled collections by default\n sanitized.disableDuplicate = sanitized.disableDuplicate || true\n\n if (!sanitized.auth.strategies) {\n sanitized.auth.strategies = []\n }\n\n sanitized.fields = mergeBaseFields(sanitized.fields, authFields)\n }\n\n // /////////////////////////////////\n // Sanitize fields\n // /////////////////////////////////\n\n const validRelationships = config.collections.map((c) => c.slug) || []\n sanitized.fields = await sanitizeFields({\n config,\n fields: sanitized.fields,\n richTextSanitizationPromises,\n validRelationships,\n })\n\n return sanitized as SanitizedCollectionConfig\n}\n"],"names":["merge","baseAccountLockFields","baseAPIKeyFields","baseAuthFields","baseVerificationFields","TimestampsRequired","sanitizeFields","fieldAffectsData","mergeBaseFields","getBaseUploadFields","formatLabels","isPlainObject","baseVersionFields","authDefaults","defaults","sanitizeCollection","config","collection","richTextSanitizationPromises","sanitized","isMergeableObject","timestamps","hasUpdatedAt","hasCreatedAt","fields","some","field","name","push","type","admin","disableBulkEdit","hidden","label","t","index","labels","slug","versions","drafts","autosave","interval","upload","disableDuplicate","staticDir","useAsTitle","uploadFields","auth","authFields","useAPIKey","concat","disableLocalStrategy","verify","maxLoginAttempts","strategies","validRelationships","collections","map","c"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/collections/config/sanitize.ts"],"sourcesContent":["import merge from 'deepmerge'\n\nimport type { Config, SanitizedConfig } from '../../config/types.js'\nimport type { CollectionConfig, SanitizedCollectionConfig } from './types.js'\n\nimport baseAccountLockFields from '../../auth/baseFields/accountLock.js'\nimport baseAPIKeyFields from '../../auth/baseFields/apiKey.js'\nimport baseAuthFields from '../../auth/baseFields/auth.js'\nimport baseVerificationFields from '../../auth/baseFields/verification.js'\nimport { TimestampsRequired } from '../../errors/TimestampsRequired.js'\nimport { sanitizeFields } from '../../fields/config/sanitize.js'\nimport { fieldAffectsData } from '../../fields/config/types.js'\nimport mergeBaseFields from '../../fields/mergeBaseFields.js'\nimport { getBaseUploadFields } from '../../uploads/getBaseFields.js'\nimport { formatLabels } from '../../utilities/formatLabels.js'\nimport { isPlainObject } from '../../utilities/isPlainObject.js'\nimport baseVersionFields from '../../versions/baseFields.js'\nimport { authDefaults, defaults } from './defaults.js'\n\nexport const sanitizeCollection = async (\n config: Config,\n collection: CollectionConfig,\n /**\n * If this property is set, RichText fields won't be sanitized immediately. Instead, they will be added to this array as promises\n * so that you can sanitize them together, after the config has been sanitized.\n */\n richTextSanitizationPromises?: Array<(config: SanitizedConfig) => Promise<void>>,\n): Promise<SanitizedCollectionConfig> => {\n // /////////////////////////////////\n // Make copy of collection config\n // /////////////////////////////////\n\n const sanitized: CollectionConfig = merge(defaults, collection, {\n isMergeableObject: isPlainObject,\n })\n\n if (sanitized.timestamps !== false) {\n // add default timestamps fields only as needed\n let hasUpdatedAt = null\n let hasCreatedAt = null\n sanitized.fields.some((field) => {\n if (fieldAffectsData(field)) {\n if (field.name === 'updatedAt') hasUpdatedAt = true\n if (field.name === 'createdAt') hasCreatedAt = true\n }\n return hasCreatedAt && hasUpdatedAt\n })\n if (!hasUpdatedAt) {\n sanitized.fields.push({\n name: 'updatedAt',\n type: 'date',\n admin: {\n disableBulkEdit: true,\n hidden: true,\n },\n label: ({ t }) => t('general:updatedAt'),\n })\n }\n if (!hasCreatedAt) {\n sanitized.fields.push({\n name: 'createdAt',\n admin: {\n disableBulkEdit: true,\n hidden: true,\n },\n // The default sort for list view is createdAt. Thus, enabling indexing by default, is a major performance improvement, especially for large or a large amount of collections.\n type: 'date',\n index: true,\n label: ({ t }) => t('general:createdAt'),\n })\n }\n }\n\n sanitized.labels = sanitized.labels || formatLabels(sanitized.slug)\n\n if (sanitized.versions) {\n if (sanitized.versions === true) sanitized.versions = { drafts: false }\n\n if (sanitized.timestamps === false) {\n throw new TimestampsRequired(collection)\n }\n\n if (sanitized.versions.drafts) {\n if (sanitized.versions.drafts === true) {\n sanitized.versions.drafts = {\n autosave: false,\n validate: false,\n }\n }\n\n if (sanitized.versions.drafts.autosave === true) {\n sanitized.versions.drafts.autosave = {\n interval: 2000,\n }\n }\n\n if (sanitized.versions.drafts.validate === undefined) {\n sanitized.versions.drafts.validate = false\n }\n\n sanitized.fields = mergeBaseFields(sanitized.fields, baseVersionFields)\n }\n }\n\n if (sanitized.upload) {\n if (sanitized.upload === true) sanitized.upload = {}\n\n // disable duplicate for uploads by default\n sanitized.disableDuplicate = sanitized.disableDuplicate || true\n\n sanitized.upload.staticDir = sanitized.upload.staticDir || sanitized.slug\n sanitized.admin.useAsTitle =\n sanitized.admin.useAsTitle && sanitized.admin.useAsTitle !== 'id'\n ? sanitized.admin.useAsTitle\n : 'filename'\n\n const uploadFields = getBaseUploadFields({\n collection: sanitized,\n config,\n })\n\n sanitized.fields = mergeBaseFields(sanitized.fields, uploadFields)\n }\n\n if (sanitized.auth) {\n sanitized.auth = merge(authDefaults, typeof sanitized.auth === 'object' ? sanitized.auth : {}, {\n isMergeableObject: isPlainObject,\n })\n\n let authFields = []\n\n if (sanitized.auth.useAPIKey) {\n authFields = authFields.concat(baseAPIKeyFields)\n }\n\n if (!sanitized.auth.disableLocalStrategy) {\n authFields = authFields.concat(baseAuthFields)\n\n if (sanitized.auth.verify) {\n if (sanitized.auth.verify === true) sanitized.auth.verify = {}\n authFields = authFields.concat(baseVerificationFields)\n }\n\n if (sanitized.auth.maxLoginAttempts > 0) {\n authFields = authFields.concat(baseAccountLockFields)\n }\n }\n\n // disable duplicate for auth enabled collections by default\n sanitized.disableDuplicate = sanitized.disableDuplicate || true\n\n if (!sanitized.auth.strategies) {\n sanitized.auth.strategies = []\n }\n\n sanitized.fields = mergeBaseFields(sanitized.fields, authFields)\n }\n\n // /////////////////////////////////\n // Sanitize fields\n // /////////////////////////////////\n\n const validRelationships = config.collections.map((c) => c.slug) || []\n sanitized.fields = await sanitizeFields({\n config,\n fields: sanitized.fields,\n richTextSanitizationPromises,\n validRelationships,\n })\n\n return sanitized as SanitizedCollectionConfig\n}\n"],"names":["merge","baseAccountLockFields","baseAPIKeyFields","baseAuthFields","baseVerificationFields","TimestampsRequired","sanitizeFields","fieldAffectsData","mergeBaseFields","getBaseUploadFields","formatLabels","isPlainObject","baseVersionFields","authDefaults","defaults","sanitizeCollection","config","collection","richTextSanitizationPromises","sanitized","isMergeableObject","timestamps","hasUpdatedAt","hasCreatedAt","fields","some","field","name","push","type","admin","disableBulkEdit","hidden","label","t","index","labels","slug","versions","drafts","autosave","validate","interval","undefined","upload","disableDuplicate","staticDir","useAsTitle","uploadFields","auth","authFields","useAPIKey","concat","disableLocalStrategy","verify","maxLoginAttempts","strategies","validRelationships","collections","map","c"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/collections/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAerB,QAAA,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/collections/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAerB,QAAA,MAAM,gBAAgB,uBAwNpB,CAAA;AAEF,eAAe,gBAAgB,CAAA"}
|
|
@@ -176,7 +176,8 @@ const collectionSchema = joi.object().keys({
|
|
|
176
176
|
drafts: joi.alternatives().try(joi.object({
|
|
177
177
|
autosave: joi.alternatives().try(joi.boolean(), joi.object({
|
|
178
178
|
interval: joi.number()
|
|
179
|
-
}))
|
|
179
|
+
})),
|
|
180
|
+
validate: joi.boolean()
|
|
180
181
|
}), joi.boolean()),
|
|
181
182
|
maxPerDoc: joi.number()
|
|
182
183
|
}), joi.boolean())
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/collections/config/schema.ts"],"sourcesContent":["import joi from 'joi'\n\nimport { endpointsSchema } from '../../config/schema.js'\nimport {\n componentSchema,\n customViewSchema,\n livePreviewSchema,\n} from '../../config/shared/componentSchema.js'\nimport { openGraphSchema } from '../../config/shared/openGraphSchema.js'\n\nconst strategyBaseSchema = joi.object().keys({\n logout: joi.boolean(),\n refresh: joi.boolean(),\n})\n\nconst collectionSchema = joi.object().keys({\n slug: joi.string().required(),\n access: joi.object({\n admin: joi.func(),\n create: joi.func(),\n delete: joi.func(),\n read: joi.func(),\n readVersions: joi.func(),\n unlock: joi.func(),\n update: joi.func(),\n }),\n admin: joi.object({\n components: joi.object({\n AfterList: joi.array().items(componentSchema),\n AfterListTable: joi.array().items(componentSchema),\n BeforeList: joi.array().items(componentSchema),\n BeforeListTable: joi.array().items(componentSchema),\n edit: joi.object({\n Description: componentSchema,\n PreviewButton: componentSchema,\n PublishButton: componentSchema,\n SaveButton: componentSchema,\n SaveDraftButton: componentSchema,\n }),\n views: joi.object({\n Edit: joi.alternatives().try(\n componentSchema,\n joi.object({\n API: joi.alternatives().try(componentSchema, customViewSchema),\n Default: joi.alternatives().try(componentSchema, customViewSchema),\n LivePreview: joi.alternatives().try(componentSchema, customViewSchema),\n Version: joi.alternatives().try(componentSchema, customViewSchema),\n Versions: joi.alternatives().try(componentSchema, customViewSchema),\n // Relationships\n // References\n }),\n ),\n List: joi.alternatives().try(\n componentSchema,\n joi.object({\n Component: componentSchema,\n actions: joi.array().items(componentSchema),\n }),\n ),\n }),\n }),\n custom: joi.object().pattern(joi.string(), joi.any()),\n defaultColumns: joi.array().items(joi.string()),\n description: joi\n .alternatives()\n .try(joi.func(), joi.object().pattern(joi.string(), [joi.string()]), joi.string()),\n enableRichTextLink: joi.boolean(),\n enableRichTextRelationship: joi.boolean(),\n group: joi.alternatives().try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n hidden: joi.alternatives().try(joi.boolean(), joi.func()),\n hideAPIURL: joi.bool(),\n listSearchableFields: joi.array().items(joi.string()),\n livePreview: joi.object(livePreviewSchema),\n meta: joi.object({\n description: joi.string(),\n openGraph: openGraphSchema,\n }),\n pagination: joi.object({\n defaultLimit: joi.number(),\n limits: joi.array().items(joi.number()),\n }),\n preview: joi.func(),\n useAsTitle: joi.string(),\n }),\n auth: joi.alternatives().try(\n joi.object({\n cookies: joi.object().keys({\n domain: joi.string(),\n sameSite: joi.string(), // TODO: add further specificity with joi.xor\n secure: joi.boolean(),\n }),\n depth: joi.number(),\n disableLocalStrategy: joi.boolean().valid(true),\n forgotPassword: joi.object().keys({\n generateEmailHTML: joi.func(),\n generateEmailSubject: joi.func(),\n }),\n lockTime: joi.number(),\n maxLoginAttempts: joi.number(),\n removeTokenFromResponses: joi.boolean().valid(true),\n strategies: joi.array().items(\n joi.object().keys({\n name: joi.string().required(),\n authenticate: joi.func().required(),\n }),\n ),\n tokenExpiration: joi.number(),\n useAPIKey: joi.boolean(),\n verify: joi.alternatives().try(\n joi.boolean(),\n joi.object().keys({\n generateEmailHTML: joi.func(),\n generateEmailSubject: joi.func(),\n }),\n ),\n }),\n joi.boolean(),\n ),\n custom: joi.object().pattern(joi.string(), joi.any()),\n dbName: joi.alternatives().try(joi.string(), joi.func()),\n defaultSort: joi.string(),\n disableDuplicate: joi.bool(),\n endpoints: endpointsSchema,\n fields: joi.array(),\n graphQL: joi.alternatives().try(\n joi.object().keys({\n pluralName: joi.string(),\n singularName: joi.string(),\n }),\n joi.boolean(),\n ),\n hooks: joi.object({\n afterChange: joi.array().items(joi.func()),\n afterDelete: joi.array().items(joi.func()),\n afterForgotPassword: joi.array().items(joi.func()),\n afterLogin: joi.array().items(joi.func()),\n afterLogout: joi.array().items(joi.func()),\n afterMe: joi.array().items(joi.func()),\n afterOperation: joi.array().items(joi.func()),\n afterRead: joi.array().items(joi.func()),\n afterRefresh: joi.array().items(joi.func()),\n beforeChange: joi.array().items(joi.func()),\n beforeDelete: joi.array().items(joi.func()),\n beforeLogin: joi.array().items(joi.func()),\n beforeOperation: joi.array().items(joi.func()),\n beforeRead: joi.array().items(joi.func()),\n beforeValidate: joi.array().items(joi.func()),\n }),\n labels: joi.object({\n plural: joi\n .alternatives()\n .try(joi.func(), joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n singular: joi\n .alternatives()\n .try(joi.func(), joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n }),\n timestamps: joi.boolean(),\n typescript: joi.object().keys({\n interface: joi.string(),\n }),\n upload: joi.alternatives().try(\n joi.object({\n adapter: joi.string(),\n adminThumbnail: joi.alternatives().try(joi.string(), componentSchema),\n crop: joi.bool(),\n disableLocalStorage: joi.bool(),\n externalFileHeaderFilter: joi.func(),\n filesRequiredOnCreate: joi.bool(),\n focalPoint: joi.bool(),\n formatOptions: joi.object().keys({\n format: joi.string(),\n options: joi.object(),\n }),\n handlers: joi.array().items(joi.func()),\n imageSizes: joi.array().items(\n joi\n .object()\n .keys({\n name: joi.string(),\n crop: joi.string(), // TODO: add further specificity with joi.xor\n height: joi.number().integer().allow(null),\n width: joi.number().integer().allow(null),\n })\n .unknown(),\n ),\n mimeTypes: joi.array().items(joi.string()),\n resizeOptions: joi\n .object()\n .keys({\n background: joi.string(),\n fastShrinkOnLoad: joi.bool(),\n fit: joi.string(),\n height: joi.number().allow(null),\n kernel: joi.string(),\n position: joi.alternatives().try(joi.string(), joi.number()),\n width: joi.number().allow(null),\n withoutEnlargement: joi.bool(),\n })\n .allow(null),\n staticDir: joi.string(),\n tempFileDir: joi.string(),\n trimOptions: joi.alternatives().try(\n joi.object().keys({\n format: joi.string(),\n options: joi.object(),\n }),\n joi.string(),\n joi.number(),\n ),\n useTempFiles: joi.bool(),\n }),\n joi.boolean(),\n ),\n versions: joi.alternatives().try(\n joi.object({\n drafts: joi.alternatives().try(\n joi.object({\n autosave: joi.alternatives().try(\n joi.boolean(),\n joi.object({\n interval: joi.number(),\n }),\n ),\n }),\n joi.boolean(),\n ),\n maxPerDoc: joi.number(),\n }),\n joi.boolean(),\n ),\n})\n\nexport default collectionSchema\n"],"names":["joi","endpointsSchema","componentSchema","customViewSchema","livePreviewSchema","openGraphSchema","strategyBaseSchema","object","keys","logout","boolean","refresh","collectionSchema","slug","string","required","access","admin","func","create","delete","read","readVersions","unlock","update","components","AfterList","array","items","AfterListTable","BeforeList","BeforeListTable","edit","Description","PreviewButton","PublishButton","SaveButton","SaveDraftButton","views","Edit","alternatives","try","API","Default","LivePreview","Version","Versions","List","Component","actions","custom","pattern","any","defaultColumns","description","enableRichTextLink","enableRichTextRelationship","group","hidden","hideAPIURL","bool","listSearchableFields","livePreview","meta","openGraph","pagination","defaultLimit","number","limits","preview","useAsTitle","auth","cookies","domain","sameSite","secure","depth","disableLocalStrategy","valid","forgotPassword","generateEmailHTML","generateEmailSubject","lockTime","maxLoginAttempts","removeTokenFromResponses","strategies","name","authenticate","tokenExpiration","useAPIKey","verify","dbName","defaultSort","disableDuplicate","endpoints","fields","graphQL","pluralName","singularName","hooks","afterChange","afterDelete","afterForgotPassword","afterLogin","afterLogout","afterMe","afterOperation","afterRead","afterRefresh","beforeChange","beforeDelete","beforeLogin","beforeOperation","beforeRead","beforeValidate","labels","plural","singular","timestamps","typescript","interface","upload","adapter","adminThumbnail","crop","disableLocalStorage","externalFileHeaderFilter","filesRequiredOnCreate","focalPoint","formatOptions","format","options","handlers","imageSizes","height","integer","allow","width","unknown","mimeTypes","resizeOptions","background","fastShrinkOnLoad","fit","kernel","position","withoutEnlargement","staticDir","tempFileDir","trimOptions","useTempFiles","versions","drafts","autosave","interval","maxPerDoc"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/collections/config/schema.ts"],"sourcesContent":["import joi from 'joi'\n\nimport { endpointsSchema } from '../../config/schema.js'\nimport {\n componentSchema,\n customViewSchema,\n livePreviewSchema,\n} from '../../config/shared/componentSchema.js'\nimport { openGraphSchema } from '../../config/shared/openGraphSchema.js'\n\nconst strategyBaseSchema = joi.object().keys({\n logout: joi.boolean(),\n refresh: joi.boolean(),\n})\n\nconst collectionSchema = joi.object().keys({\n slug: joi.string().required(),\n access: joi.object({\n admin: joi.func(),\n create: joi.func(),\n delete: joi.func(),\n read: joi.func(),\n readVersions: joi.func(),\n unlock: joi.func(),\n update: joi.func(),\n }),\n admin: joi.object({\n components: joi.object({\n AfterList: joi.array().items(componentSchema),\n AfterListTable: joi.array().items(componentSchema),\n BeforeList: joi.array().items(componentSchema),\n BeforeListTable: joi.array().items(componentSchema),\n edit: joi.object({\n Description: componentSchema,\n PreviewButton: componentSchema,\n PublishButton: componentSchema,\n SaveButton: componentSchema,\n SaveDraftButton: componentSchema,\n }),\n views: joi.object({\n Edit: joi.alternatives().try(\n componentSchema,\n joi.object({\n API: joi.alternatives().try(componentSchema, customViewSchema),\n Default: joi.alternatives().try(componentSchema, customViewSchema),\n LivePreview: joi.alternatives().try(componentSchema, customViewSchema),\n Version: joi.alternatives().try(componentSchema, customViewSchema),\n Versions: joi.alternatives().try(componentSchema, customViewSchema),\n // Relationships\n // References\n }),\n ),\n List: joi.alternatives().try(\n componentSchema,\n joi.object({\n Component: componentSchema,\n actions: joi.array().items(componentSchema),\n }),\n ),\n }),\n }),\n custom: joi.object().pattern(joi.string(), joi.any()),\n defaultColumns: joi.array().items(joi.string()),\n description: joi\n .alternatives()\n .try(joi.func(), joi.object().pattern(joi.string(), [joi.string()]), joi.string()),\n enableRichTextLink: joi.boolean(),\n enableRichTextRelationship: joi.boolean(),\n group: joi.alternatives().try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n hidden: joi.alternatives().try(joi.boolean(), joi.func()),\n hideAPIURL: joi.bool(),\n listSearchableFields: joi.array().items(joi.string()),\n livePreview: joi.object(livePreviewSchema),\n meta: joi.object({\n description: joi.string(),\n openGraph: openGraphSchema,\n }),\n pagination: joi.object({\n defaultLimit: joi.number(),\n limits: joi.array().items(joi.number()),\n }),\n preview: joi.func(),\n useAsTitle: joi.string(),\n }),\n auth: joi.alternatives().try(\n joi.object({\n cookies: joi.object().keys({\n domain: joi.string(),\n sameSite: joi.string(), // TODO: add further specificity with joi.xor\n secure: joi.boolean(),\n }),\n depth: joi.number(),\n disableLocalStrategy: joi.boolean().valid(true),\n forgotPassword: joi.object().keys({\n generateEmailHTML: joi.func(),\n generateEmailSubject: joi.func(),\n }),\n lockTime: joi.number(),\n maxLoginAttempts: joi.number(),\n removeTokenFromResponses: joi.boolean().valid(true),\n strategies: joi.array().items(\n joi.object().keys({\n name: joi.string().required(),\n authenticate: joi.func().required(),\n }),\n ),\n tokenExpiration: joi.number(),\n useAPIKey: joi.boolean(),\n verify: joi.alternatives().try(\n joi.boolean(),\n joi.object().keys({\n generateEmailHTML: joi.func(),\n generateEmailSubject: joi.func(),\n }),\n ),\n }),\n joi.boolean(),\n ),\n custom: joi.object().pattern(joi.string(), joi.any()),\n dbName: joi.alternatives().try(joi.string(), joi.func()),\n defaultSort: joi.string(),\n disableDuplicate: joi.bool(),\n endpoints: endpointsSchema,\n fields: joi.array(),\n graphQL: joi.alternatives().try(\n joi.object().keys({\n pluralName: joi.string(),\n singularName: joi.string(),\n }),\n joi.boolean(),\n ),\n hooks: joi.object({\n afterChange: joi.array().items(joi.func()),\n afterDelete: joi.array().items(joi.func()),\n afterForgotPassword: joi.array().items(joi.func()),\n afterLogin: joi.array().items(joi.func()),\n afterLogout: joi.array().items(joi.func()),\n afterMe: joi.array().items(joi.func()),\n afterOperation: joi.array().items(joi.func()),\n afterRead: joi.array().items(joi.func()),\n afterRefresh: joi.array().items(joi.func()),\n beforeChange: joi.array().items(joi.func()),\n beforeDelete: joi.array().items(joi.func()),\n beforeLogin: joi.array().items(joi.func()),\n beforeOperation: joi.array().items(joi.func()),\n beforeRead: joi.array().items(joi.func()),\n beforeValidate: joi.array().items(joi.func()),\n }),\n labels: joi.object({\n plural: joi\n .alternatives()\n .try(joi.func(), joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n singular: joi\n .alternatives()\n .try(joi.func(), joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n }),\n timestamps: joi.boolean(),\n typescript: joi.object().keys({\n interface: joi.string(),\n }),\n upload: joi.alternatives().try(\n joi.object({\n adapter: joi.string(),\n adminThumbnail: joi.alternatives().try(joi.string(), componentSchema),\n crop: joi.bool(),\n disableLocalStorage: joi.bool(),\n externalFileHeaderFilter: joi.func(),\n filesRequiredOnCreate: joi.bool(),\n focalPoint: joi.bool(),\n formatOptions: joi.object().keys({\n format: joi.string(),\n options: joi.object(),\n }),\n handlers: joi.array().items(joi.func()),\n imageSizes: joi.array().items(\n joi\n .object()\n .keys({\n name: joi.string(),\n crop: joi.string(), // TODO: add further specificity with joi.xor\n height: joi.number().integer().allow(null),\n width: joi.number().integer().allow(null),\n })\n .unknown(),\n ),\n mimeTypes: joi.array().items(joi.string()),\n resizeOptions: joi\n .object()\n .keys({\n background: joi.string(),\n fastShrinkOnLoad: joi.bool(),\n fit: joi.string(),\n height: joi.number().allow(null),\n kernel: joi.string(),\n position: joi.alternatives().try(joi.string(), joi.number()),\n width: joi.number().allow(null),\n withoutEnlargement: joi.bool(),\n })\n .allow(null),\n staticDir: joi.string(),\n tempFileDir: joi.string(),\n trimOptions: joi.alternatives().try(\n joi.object().keys({\n format: joi.string(),\n options: joi.object(),\n }),\n joi.string(),\n joi.number(),\n ),\n useTempFiles: joi.bool(),\n }),\n joi.boolean(),\n ),\n versions: joi.alternatives().try(\n joi.object({\n drafts: joi.alternatives().try(\n joi.object({\n autosave: joi.alternatives().try(\n joi.boolean(),\n joi.object({\n interval: joi.number(),\n }),\n ),\n validate: joi.boolean(),\n }),\n joi.boolean(),\n ),\n maxPerDoc: joi.number(),\n }),\n joi.boolean(),\n ),\n})\n\nexport default collectionSchema\n"],"names":["joi","endpointsSchema","componentSchema","customViewSchema","livePreviewSchema","openGraphSchema","strategyBaseSchema","object","keys","logout","boolean","refresh","collectionSchema","slug","string","required","access","admin","func","create","delete","read","readVersions","unlock","update","components","AfterList","array","items","AfterListTable","BeforeList","BeforeListTable","edit","Description","PreviewButton","PublishButton","SaveButton","SaveDraftButton","views","Edit","alternatives","try","API","Default","LivePreview","Version","Versions","List","Component","actions","custom","pattern","any","defaultColumns","description","enableRichTextLink","enableRichTextRelationship","group","hidden","hideAPIURL","bool","listSearchableFields","livePreview","meta","openGraph","pagination","defaultLimit","number","limits","preview","useAsTitle","auth","cookies","domain","sameSite","secure","depth","disableLocalStrategy","valid","forgotPassword","generateEmailHTML","generateEmailSubject","lockTime","maxLoginAttempts","removeTokenFromResponses","strategies","name","authenticate","tokenExpiration","useAPIKey","verify","dbName","defaultSort","disableDuplicate","endpoints","fields","graphQL","pluralName","singularName","hooks","afterChange","afterDelete","afterForgotPassword","afterLogin","afterLogout","afterMe","afterOperation","afterRead","afterRefresh","beforeChange","beforeDelete","beforeLogin","beforeOperation","beforeRead","beforeValidate","labels","plural","singular","timestamps","typescript","interface","upload","adapter","adminThumbnail","crop","disableLocalStorage","externalFileHeaderFilter","filesRequiredOnCreate","focalPoint","formatOptions","format","options","handlers","imageSizes","height","integer","allow","width","unknown","mimeTypes","resizeOptions","background","fastShrinkOnLoad","fit","kernel","position","withoutEnlargement","staticDir","tempFileDir","trimOptions","useTempFiles","versions","drafts","autosave","interval","validate","maxPerDoc"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAIjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAY,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC5E,OAAO,KAAK,EAIV,UAAU,EACX,MAAM,oBAAoB,CAAA;AAmB3B,MAAM,MAAM,gBAAgB,GAAG;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;CAAE,CAAA;AAE7E,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,gBAAgB,IAAI;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,GAAG,WAAW,CAAC,CAAA;IACjE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,GAAG,EAAE,sBAAsB,CAAA;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,eAAe,yDACZ,UAAU,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,KAC5D,QAAQ,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAIjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAY,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC5E,OAAO,KAAK,EAIV,UAAU,EACX,MAAM,oBAAoB,CAAA;AAmB3B,MAAM,MAAM,gBAAgB,GAAG;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;CAAE,CAAA;AAE7E,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,gBAAgB,IAAI;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,GAAG,WAAW,CAAC,CAAA;IACjE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,GAAG,EAAE,sBAAsB,CAAA;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,eAAe,yDACZ,UAAU,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,KAC5D,QAAQ,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAoU9C,CAAA"}
|
|
@@ -93,12 +93,6 @@ export const createOperation = async (incomingArgs)=>{
|
|
|
93
93
|
}) || data;
|
|
94
94
|
}, Promise.resolve());
|
|
95
95
|
// /////////////////////////////////////
|
|
96
|
-
// Write files to local storage
|
|
97
|
-
// /////////////////////////////////////
|
|
98
|
-
// if (!collectionConfig.upload.disableLocalStorage) {
|
|
99
|
-
// await uploadFiles(payload, filesToUpload, req.t)
|
|
100
|
-
// }
|
|
101
|
-
// /////////////////////////////////////
|
|
102
96
|
// beforeChange - Collection
|
|
103
97
|
// /////////////////////////////////////
|
|
104
98
|
await collectionConfig.hooks.beforeChange.reduce(async (priorHook, hook)=>{
|
|
@@ -123,7 +117,7 @@ export const createOperation = async (incomingArgs)=>{
|
|
|
123
117
|
global: null,
|
|
124
118
|
operation: 'create',
|
|
125
119
|
req,
|
|
126
|
-
skipValidation: shouldSaveDraft
|
|
120
|
+
skipValidation: shouldSaveDraft && collectionConfig.versions.drafts && !collectionConfig.versions.drafts.validate
|
|
127
121
|
});
|
|
128
122
|
// /////////////////////////////////////
|
|
129
123
|
// Write files to local storage
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/collections/operations/create.ts"],"sourcesContent":["import type { MarkOptional } from 'ts-essentials'\n\nimport crypto from 'crypto'\n\nimport type { GeneratedTypes } from '../../index.js'\nimport type { Document, PayloadRequestWithData } from '../../types/index.js'\nimport type {\n AfterChangeHook,\n BeforeOperationHook,\n BeforeValidateHook,\n Collection,\n} from '../config/types.js'\n\nimport executeAccess from '../../auth/executeAccess.js'\nimport { sendVerificationEmail } from '../../auth/sendVerificationEmail.js'\nimport { registerLocalStrategy } from '../../auth/strategies/local/register.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 { generateFileData } from '../../uploads/generateFileData.js'\nimport { unlinkTempFiles } from '../../uploads/unlinkTempFiles.js'\nimport { uploadFiles } from '../../uploads/uploadFiles.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport sanitizeInternalFields from '../../utilities/sanitizeInternalFields.js'\nimport { saveVersion } from '../../versions/saveVersion.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type CreateUpdateType = { [field: number | string | symbol]: unknown }\n\nexport type Arguments<T extends CreateUpdateType> = {\n autosave?: boolean\n collection: Collection\n data: MarkOptional<T, 'createdAt' | 'id' | 'sizes' | 'updatedAt'>\n depth?: number\n disableVerificationEmail?: boolean\n draft?: boolean\n overrideAccess?: boolean\n overwriteExistingFiles?: boolean\n req: PayloadRequestWithData\n showHiddenFields?: boolean\n}\n\nexport const createOperation = async <TSlug extends keyof GeneratedTypes['collections']>(\n incomingArgs: Arguments<GeneratedTypes['collections'][TSlug]>,\n): Promise<GeneratedTypes['collections'][TSlug]> => {\n let args = incomingArgs\n\n try {\n const shouldCommit = await initTransaction(args.req)\n\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n await args.collection.config.hooks.beforeOperation.reduce(\n async (priorHook: BeforeOperationHook | Promise<void>, hook: BeforeOperationHook) => {\n await priorHook\n\n args =\n (await hook({\n args,\n collection: args.collection.config,\n context: args.req.context,\n operation: 'create',\n req: args.req,\n })) || args\n },\n Promise.resolve(),\n )\n\n const {\n autosave = false,\n collection: { config: collectionConfig },\n collection,\n depth,\n disableVerificationEmail,\n draft = false,\n overrideAccess,\n overwriteExistingFiles = false,\n req: {\n fallbackLocale,\n locale,\n payload,\n payload: { config, email },\n },\n req,\n showHiddenFields,\n } = args\n\n let { data } = args\n\n const shouldSaveDraft = Boolean(draft && collectionConfig.versions.drafts)\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n if (!overrideAccess) {\n await executeAccess({ data, req }, collectionConfig.access.create)\n }\n\n // /////////////////////////////////////\n // Custom id\n // /////////////////////////////////////\n\n if (payload.collections[collectionConfig.slug].customIDType) {\n data = {\n _id: data.id,\n ...data,\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: 'create',\n overwriteExistingFiles,\n req,\n throwOnMissingFile:\n !shouldSaveDraft && collection.config.upload.filesRequiredOnCreate !== false,\n })\n\n data = newFileData\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n data = await beforeValidate({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: {},\n global: null,\n operation: 'create',\n overrideAccess,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Collections\n // /////////////////////////////////////\n\n await collectionConfig.hooks.beforeValidate.reduce(\n async (priorHook: BeforeValidateHook | Promise<void>, hook: BeforeValidateHook) => {\n await priorHook\n\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'create',\n req,\n })) || data\n },\n Promise.resolve(),\n )\n\n // /////////////////////////////////////\n // Write files to local storage\n // /////////////////////////////////////\n\n // if (!collectionConfig.upload.disableLocalStorage) {\n // await uploadFiles(payload, filesToUpload, req.t)\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: 'create',\n req,\n })) || data\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // beforeChange - Fields\n // /////////////////////////////////////\n\n const resultWithLocales = await beforeChange<Record<string, unknown>>({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: {},\n docWithLocales: {},\n global: null,\n operation: 'create',\n req,\n skipValidation: shouldSaveDraft,\n })\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 // Create\n // /////////////////////////////////////\n\n let doc\n\n if (collectionConfig.auth && !collectionConfig.auth.disableLocalStrategy) {\n if (data.email) {\n resultWithLocales.email = (data.email as string).toLowerCase()\n }\n\n if (collectionConfig.auth.verify) {\n resultWithLocales._verified = Boolean(resultWithLocales._verified) || false\n resultWithLocales._verificationToken = crypto.randomBytes(20).toString('hex')\n }\n\n doc = await registerLocalStrategy({\n collection: collectionConfig,\n doc: resultWithLocales,\n password: data.password as string,\n payload: req.payload,\n req,\n })\n } else {\n doc = await payload.db.create({\n collection: collectionConfig.slug,\n data: resultWithLocales,\n req,\n })\n }\n\n const verificationToken = doc._verificationToken\n let result: Document = sanitizeInternalFields(doc)\n\n // /////////////////////////////////////\n // Create version\n // /////////////////////////////////////\n\n if (collectionConfig.versions) {\n await saveVersion({\n id: result.id,\n autosave,\n collection: collectionConfig,\n docWithLocales: result,\n payload,\n req,\n })\n }\n\n // /////////////////////////////////////\n // Send verification email if applicable\n // /////////////////////////////////////\n\n if (collectionConfig.auth && collectionConfig.auth.verify) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n sendVerificationEmail({\n collection: { config: collectionConfig },\n config: payload.config,\n disableEmail: disableVerificationEmail,\n email: payload.email,\n req,\n token: verificationToken,\n user: result,\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,\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: 'create',\n previousDoc: {},\n req,\n })\n\n // /////////////////////////////////////\n // afterChange - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterChange.reduce(\n async (priorHook: AfterChangeHook | Promise<void>, hook: AfterChangeHook) => {\n await priorHook\n\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n operation: 'create',\n previousDoc: {},\n req: args.req,\n })) || result\n },\n Promise.resolve(),\n )\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation<GeneratedTypes['collections'][TSlug]>({\n args,\n collection: collectionConfig,\n operation: 'create',\n result,\n })\n\n await unlinkTempFiles({ collectionConfig, config, req })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n if (shouldCommit) await commitTransaction(req)\n\n return result\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["crypto","executeAccess","sendVerificationEmail","registerLocalStrategy","afterChange","afterRead","beforeChange","beforeValidate","generateFileData","unlinkTempFiles","uploadFiles","commitTransaction","initTransaction","killTransaction","sanitizeInternalFields","saveVersion","buildAfterOperation","createOperation","incomingArgs","args","shouldCommit","req","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","operation","Promise","resolve","autosave","collectionConfig","depth","disableVerificationEmail","draft","overrideAccess","overwriteExistingFiles","fallbackLocale","locale","payload","email","showHiddenFields","data","shouldSaveDraft","Boolean","versions","drafts","access","create","collections","slug","customIDType","_id","id","newFileData","files","filesToUpload","throwOnMissingFile","upload","filesRequiredOnCreate","doc","global","resultWithLocales","docWithLocales","skipValidation","disableLocalStorage","auth","disableLocalStrategy","toLowerCase","verify","_verified","_verificationToken","randomBytes","toString","password","db","verificationToken","result","disableEmail","token","user","previousDoc","error"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/collections/operations/create.ts"],"sourcesContent":["import type { MarkOptional } from 'ts-essentials'\n\nimport crypto from 'crypto'\n\nimport type { GeneratedTypes } from '../../index.js'\nimport type { Document, PayloadRequestWithData } from '../../types/index.js'\nimport type {\n AfterChangeHook,\n BeforeOperationHook,\n BeforeValidateHook,\n Collection,\n} from '../config/types.js'\n\nimport executeAccess from '../../auth/executeAccess.js'\nimport { sendVerificationEmail } from '../../auth/sendVerificationEmail.js'\nimport { registerLocalStrategy } from '../../auth/strategies/local/register.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 { generateFileData } from '../../uploads/generateFileData.js'\nimport { unlinkTempFiles } from '../../uploads/unlinkTempFiles.js'\nimport { uploadFiles } from '../../uploads/uploadFiles.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport sanitizeInternalFields from '../../utilities/sanitizeInternalFields.js'\nimport { saveVersion } from '../../versions/saveVersion.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type CreateUpdateType = { [field: number | string | symbol]: unknown }\n\nexport type Arguments<T extends CreateUpdateType> = {\n autosave?: boolean\n collection: Collection\n data: MarkOptional<T, 'createdAt' | 'id' | 'sizes' | 'updatedAt'>\n depth?: number\n disableVerificationEmail?: boolean\n draft?: boolean\n overrideAccess?: boolean\n overwriteExistingFiles?: boolean\n req: PayloadRequestWithData\n showHiddenFields?: boolean\n}\n\nexport const createOperation = async <TSlug extends keyof GeneratedTypes['collections']>(\n incomingArgs: Arguments<GeneratedTypes['collections'][TSlug]>,\n): Promise<GeneratedTypes['collections'][TSlug]> => {\n let args = incomingArgs\n\n try {\n const shouldCommit = await initTransaction(args.req)\n\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n await args.collection.config.hooks.beforeOperation.reduce(\n async (priorHook: BeforeOperationHook | Promise<void>, hook: BeforeOperationHook) => {\n await priorHook\n\n args =\n (await hook({\n args,\n collection: args.collection.config,\n context: args.req.context,\n operation: 'create',\n req: args.req,\n })) || args\n },\n Promise.resolve(),\n )\n\n const {\n autosave = false,\n collection: { config: collectionConfig },\n collection,\n depth,\n disableVerificationEmail,\n draft = false,\n overrideAccess,\n overwriteExistingFiles = false,\n req: {\n fallbackLocale,\n locale,\n payload,\n payload: { config, email },\n },\n req,\n showHiddenFields,\n } = args\n\n let { data } = args\n\n const shouldSaveDraft = Boolean(draft && collectionConfig.versions.drafts)\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n if (!overrideAccess) {\n await executeAccess({ data, req }, collectionConfig.access.create)\n }\n\n // /////////////////////////////////////\n // Custom id\n // /////////////////////////////////////\n\n if (payload.collections[collectionConfig.slug].customIDType) {\n data = {\n _id: data.id,\n ...data,\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: 'create',\n overwriteExistingFiles,\n req,\n throwOnMissingFile:\n !shouldSaveDraft && collection.config.upload.filesRequiredOnCreate !== false,\n })\n\n data = newFileData\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n data = await beforeValidate({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: {},\n global: null,\n operation: 'create',\n overrideAccess,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Collections\n // /////////////////////////////////////\n\n await collectionConfig.hooks.beforeValidate.reduce(\n async (priorHook: BeforeValidateHook | Promise<void>, hook: BeforeValidateHook) => {\n await priorHook\n\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'create',\n req,\n })) || data\n },\n Promise.resolve(),\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: 'create',\n req,\n })) || data\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // beforeChange - Fields\n // /////////////////////////////////////\n\n const resultWithLocales = await beforeChange<Record<string, unknown>>({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: {},\n docWithLocales: {},\n global: null,\n operation: 'create',\n req,\n skipValidation:\n shouldSaveDraft &&\n collectionConfig.versions.drafts &&\n !collectionConfig.versions.drafts.validate,\n })\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 // Create\n // /////////////////////////////////////\n\n let doc\n\n if (collectionConfig.auth && !collectionConfig.auth.disableLocalStrategy) {\n if (data.email) {\n resultWithLocales.email = (data.email as string).toLowerCase()\n }\n\n if (collectionConfig.auth.verify) {\n resultWithLocales._verified = Boolean(resultWithLocales._verified) || false\n resultWithLocales._verificationToken = crypto.randomBytes(20).toString('hex')\n }\n\n doc = await registerLocalStrategy({\n collection: collectionConfig,\n doc: resultWithLocales,\n password: data.password as string,\n payload: req.payload,\n req,\n })\n } else {\n doc = await payload.db.create({\n collection: collectionConfig.slug,\n data: resultWithLocales,\n req,\n })\n }\n\n const verificationToken = doc._verificationToken\n let result: Document = sanitizeInternalFields(doc)\n\n // /////////////////////////////////////\n // Create version\n // /////////////////////////////////////\n\n if (collectionConfig.versions) {\n await saveVersion({\n id: result.id,\n autosave,\n collection: collectionConfig,\n docWithLocales: result,\n payload,\n req,\n })\n }\n\n // /////////////////////////////////////\n // Send verification email if applicable\n // /////////////////////////////////////\n\n if (collectionConfig.auth && collectionConfig.auth.verify) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n sendVerificationEmail({\n collection: { config: collectionConfig },\n config: payload.config,\n disableEmail: disableVerificationEmail,\n email: payload.email,\n req,\n token: verificationToken,\n user: result,\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,\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: 'create',\n previousDoc: {},\n req,\n })\n\n // /////////////////////////////////////\n // afterChange - Collection\n // /////////////////////////////////////\n\n await collectionConfig.hooks.afterChange.reduce(\n async (priorHook: AfterChangeHook | Promise<void>, hook: AfterChangeHook) => {\n await priorHook\n\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n operation: 'create',\n previousDoc: {},\n req: args.req,\n })) || result\n },\n Promise.resolve(),\n )\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation<GeneratedTypes['collections'][TSlug]>({\n args,\n collection: collectionConfig,\n operation: 'create',\n result,\n })\n\n await unlinkTempFiles({ collectionConfig, config, req })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n if (shouldCommit) await commitTransaction(req)\n\n return result\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["crypto","executeAccess","sendVerificationEmail","registerLocalStrategy","afterChange","afterRead","beforeChange","beforeValidate","generateFileData","unlinkTempFiles","uploadFiles","commitTransaction","initTransaction","killTransaction","sanitizeInternalFields","saveVersion","buildAfterOperation","createOperation","incomingArgs","args","shouldCommit","req","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","operation","Promise","resolve","autosave","collectionConfig","depth","disableVerificationEmail","draft","overrideAccess","overwriteExistingFiles","fallbackLocale","locale","payload","email","showHiddenFields","data","shouldSaveDraft","Boolean","versions","drafts","access","create","collections","slug","customIDType","_id","id","newFileData","files","filesToUpload","throwOnMissingFile","upload","filesRequiredOnCreate","doc","global","resultWithLocales","docWithLocales","skipValidation","validate","disableLocalStorage","auth","disableLocalStrategy","toLowerCase","verify","_verified","_verificationToken","randomBytes","toString","password","db","verificationToken","result","disableEmail","token","user","previousDoc","error"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duplicate.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/duplicate.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAiBpD,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,sBAAsB,CAAA;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,kBAAkB,yDACf,SAAS,KACtB,QAAQ,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"duplicate.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/duplicate.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAiBpD,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,sBAAsB,CAAA;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,kBAAkB,yDACf,SAAS,KACtB,QAAQ,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAyS9C,CAAA"}
|
|
@@ -153,7 +153,7 @@ export const duplicateOperation = async (incomingArgs)=>{
|
|
|
153
153
|
global: null,
|
|
154
154
|
operation,
|
|
155
155
|
req,
|
|
156
|
-
skipValidation: shouldSaveDraft
|
|
156
|
+
skipValidation: shouldSaveDraft && collectionConfig.versions.drafts && !collectionConfig.versions.drafts.validate
|
|
157
157
|
});
|
|
158
158
|
// set req.locale back to the original locale
|
|
159
159
|
req.locale = localeArg;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/collections/operations/duplicate.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport httpStatus from 'http-status'\n\nimport type { FindOneArgs } from '../../database/types.js'\nimport type { GeneratedTypes } from '../../index.js'\nimport type { PayloadRequestWithData } from '../../types/index.js'\nimport type { Collection } from '../config/types.js'\n\nimport executeAccess from '../../auth/executeAccess.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 { 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 = {\n collection: Collection\n depth?: number\n draft?: boolean\n id: number | string\n overrideAccess?: boolean\n req: PayloadRequestWithData\n showHiddenFields?: boolean\n}\n\nexport const duplicateOperation = async <TSlug extends keyof GeneratedTypes['collections']>(\n incomingArgs: Arguments,\n): Promise<GeneratedTypes['collections'][TSlug]> => {\n let args = incomingArgs\n const operation = 'create'\n\n try {\n const shouldCommit = 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,\n req: args.req,\n })) || args\n }, Promise.resolve())\n\n const {\n id,\n collection: { config: collectionConfig },\n depth,\n draft: draftArg = true,\n overrideAccess,\n req: { fallbackLocale, locale: localeArg, payload },\n req,\n showHiddenFields,\n } = args\n\n if (!id) {\n throw new APIError('Missing ID of document to duplicate.', httpStatus.BAD_REQUEST)\n }\n const shouldSaveDraft = Boolean(draftArg && collectionConfig.versions.drafts)\n\n // /////////////////////////////////////\n // Read Access\n // /////////////////////////////////////\n\n const accessResults = !overrideAccess\n ? await executeAccess({ id, req }, collectionConfig.access.read)\n : true\n const hasWherePolicy = hasWhereAccessResult(accessResults)\n\n // /////////////////////////////////////\n // Retrieve document\n // /////////////////////////////////////\n const findOneArgs: FindOneArgs = {\n collection: collectionConfig.slug,\n locale: req.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) throw new NotFound(req.t)\n if (!docWithLocales && hasWherePolicy) throw new Forbidden(req.t)\n\n // remove the createdAt timestamp and id to rely on the db to set the default it\n delete docWithLocales.createdAt\n delete docWithLocales.id\n\n // for version enabled collections, override the current status with draft, unless draft is explicitly set to false\n if (shouldSaveDraft) {\n docWithLocales._status = 'draft'\n }\n\n let result\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: req.locale,\n overrideAccess: true,\n req,\n showHiddenFields: true,\n })\n\n // /////////////////////////////////////\n // Create Access\n // /////////////////////////////////////\n\n if (!overrideAccess) {\n await executeAccess({ data: originalDoc, req }, collectionConfig.access.create)\n }\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n let data = await beforeValidate<DeepPartial<GeneratedTypes['collections'][TSlug]>>({\n id,\n collection: collectionConfig,\n context: req.context,\n data: originalDoc,\n doc: originalDoc,\n duplicate: true,\n global: null,\n operation,\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,\n originalDoc,\n req,\n })) || result\n }, Promise.resolve())\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,\n originalDoc: result,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // beforeChange - Fields\n // /////////////////////////////////////\n\n result = await beforeChange<GeneratedTypes['collections'][TSlug]>({\n id,\n collection: collectionConfig,\n context: req.context,\n data,\n doc: originalDoc,\n docWithLocales,\n duplicate: true,\n global: null,\n operation,\n req,\n skipValidation: shouldSaveDraft,\n })\n\n // set req.locale back to the original locale\n req.locale = localeArg\n\n // /////////////////////////////////////\n // Create / Update\n // /////////////////////////////////////\n\n const versionDoc = await payload.db.create({\n collection: collectionConfig.slug,\n data: result,\n req,\n })\n\n // /////////////////////////////////////\n // Create version\n // /////////////////////////////////////\n\n if (collectionConfig.versions) {\n result = await saveVersion({\n id: versionDoc.id,\n collection: collectionConfig,\n docWithLocales: {\n ...versionDoc,\n createdAt: result.createdAt,\n },\n draft: shouldSaveDraft,\n payload,\n req,\n })\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth,\n doc: versionDoc,\n draft: draftArg,\n fallbackLocale,\n global: null,\n locale: localeArg,\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<GeneratedTypes['collections'][TSlug]>({\n collection: collectionConfig,\n context: req.context,\n data: versionDoc,\n doc: result,\n global: null,\n operation,\n previousDoc: {},\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,\n previousDoc: {},\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation<GeneratedTypes['collections'][TSlug]>({\n args,\n collection: collectionConfig,\n operation,\n result,\n })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n if (shouldCommit) await commitTransaction(req)\n\n return result\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["httpStatus","executeAccess","hasWhereAccessResult","combineQueries","APIError","Forbidden","NotFound","afterChange","afterRead","beforeChange","beforeValidate","commitTransaction","initTransaction","killTransaction","getLatestCollectionVersion","saveVersion","buildAfterOperation","duplicateOperation","incomingArgs","args","operation","shouldCommit","req","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","Promise","resolve","id","collectionConfig","depth","draft","draftArg","overrideAccess","fallbackLocale","locale","localeArg","payload","showHiddenFields","BAD_REQUEST","shouldSaveDraft","Boolean","versions","drafts","accessResults","access","read","hasWherePolicy","findOneArgs","slug","where","equals","docWithLocales","query","t","createdAt","_status","result","originalDoc","doc","global","data","create","duplicate","skipValidation","versionDoc","db","previousDoc","error"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/collections/operations/duplicate.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport httpStatus from 'http-status'\n\nimport type { FindOneArgs } from '../../database/types.js'\nimport type { GeneratedTypes } from '../../index.js'\nimport type { PayloadRequestWithData } from '../../types/index.js'\nimport type { Collection } from '../config/types.js'\n\nimport executeAccess from '../../auth/executeAccess.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 { 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 = {\n collection: Collection\n depth?: number\n draft?: boolean\n id: number | string\n overrideAccess?: boolean\n req: PayloadRequestWithData\n showHiddenFields?: boolean\n}\n\nexport const duplicateOperation = async <TSlug extends keyof GeneratedTypes['collections']>(\n incomingArgs: Arguments,\n): Promise<GeneratedTypes['collections'][TSlug]> => {\n let args = incomingArgs\n const operation = 'create'\n\n try {\n const shouldCommit = 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,\n req: args.req,\n })) || args\n }, Promise.resolve())\n\n const {\n id,\n collection: { config: collectionConfig },\n depth,\n draft: draftArg = true,\n overrideAccess,\n req: { fallbackLocale, locale: localeArg, payload },\n req,\n showHiddenFields,\n } = args\n\n if (!id) {\n throw new APIError('Missing ID of document to duplicate.', httpStatus.BAD_REQUEST)\n }\n const shouldSaveDraft = Boolean(draftArg && collectionConfig.versions.drafts)\n\n // /////////////////////////////////////\n // Read Access\n // /////////////////////////////////////\n\n const accessResults = !overrideAccess\n ? await executeAccess({ id, req }, collectionConfig.access.read)\n : true\n const hasWherePolicy = hasWhereAccessResult(accessResults)\n\n // /////////////////////////////////////\n // Retrieve document\n // /////////////////////////////////////\n const findOneArgs: FindOneArgs = {\n collection: collectionConfig.slug,\n locale: req.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) throw new NotFound(req.t)\n if (!docWithLocales && hasWherePolicy) throw new Forbidden(req.t)\n\n // remove the createdAt timestamp and id to rely on the db to set the default it\n delete docWithLocales.createdAt\n delete docWithLocales.id\n\n // for version enabled collections, override the current status with draft, unless draft is explicitly set to false\n if (shouldSaveDraft) {\n docWithLocales._status = 'draft'\n }\n\n let result\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: req.locale,\n overrideAccess: true,\n req,\n showHiddenFields: true,\n })\n\n // /////////////////////////////////////\n // Create Access\n // /////////////////////////////////////\n\n if (!overrideAccess) {\n await executeAccess({ data: originalDoc, req }, collectionConfig.access.create)\n }\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n let data = await beforeValidate<DeepPartial<GeneratedTypes['collections'][TSlug]>>({\n id,\n collection: collectionConfig,\n context: req.context,\n data: originalDoc,\n doc: originalDoc,\n duplicate: true,\n global: null,\n operation,\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,\n originalDoc,\n req,\n })) || result\n }, Promise.resolve())\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,\n originalDoc: result,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // beforeChange - Fields\n // /////////////////////////////////////\n\n result = await beforeChange<GeneratedTypes['collections'][TSlug]>({\n id,\n collection: collectionConfig,\n context: req.context,\n data,\n doc: originalDoc,\n docWithLocales,\n duplicate: true,\n global: null,\n operation,\n req,\n skipValidation:\n shouldSaveDraft &&\n collectionConfig.versions.drafts &&\n !collectionConfig.versions.drafts.validate,\n })\n\n // set req.locale back to the original locale\n req.locale = localeArg\n\n // /////////////////////////////////////\n // Create / Update\n // /////////////////////////////////////\n\n const versionDoc = await payload.db.create({\n collection: collectionConfig.slug,\n data: result,\n req,\n })\n\n // /////////////////////////////////////\n // Create version\n // /////////////////////////////////////\n\n if (collectionConfig.versions) {\n result = await saveVersion({\n id: versionDoc.id,\n collection: collectionConfig,\n docWithLocales: {\n ...versionDoc,\n createdAt: result.createdAt,\n },\n draft: shouldSaveDraft,\n payload,\n req,\n })\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth,\n doc: versionDoc,\n draft: draftArg,\n fallbackLocale,\n global: null,\n locale: localeArg,\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<GeneratedTypes['collections'][TSlug]>({\n collection: collectionConfig,\n context: req.context,\n data: versionDoc,\n doc: result,\n global: null,\n operation,\n previousDoc: {},\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,\n previousDoc: {},\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation<GeneratedTypes['collections'][TSlug]>({\n args,\n collection: collectionConfig,\n operation,\n result,\n })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n if (shouldCommit) await commitTransaction(req)\n\n return result\n } catch (error: unknown) {\n await killTransaction(args.req)\n throw error\n }\n}\n"],"names":["httpStatus","executeAccess","hasWhereAccessResult","combineQueries","APIError","Forbidden","NotFound","afterChange","afterRead","beforeChange","beforeValidate","commitTransaction","initTransaction","killTransaction","getLatestCollectionVersion","saveVersion","buildAfterOperation","duplicateOperation","incomingArgs","args","operation","shouldCommit","req","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","Promise","resolve","id","collectionConfig","depth","draft","draftArg","overrideAccess","fallbackLocale","locale","localeArg","payload","showHiddenFields","BAD_REQUEST","shouldSaveDraft","Boolean","versions","drafts","accessResults","access","read","hasWherePolicy","findOneArgs","slug","where","equals","docWithLocales","query","t","createdAt","_status","result","originalDoc","doc","global","data","create","duplicate","skipValidation","validate","versionDoc","db","previousDoc","error"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAKhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAsBnD,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,gBAAgB,IAAI;IAClD,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,GAAG,EAAE,sBAAsB,CAAA;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,eAAO,MAAM,eAAe,yDACZ,UAAU,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,KAC5D,QAAQ,oBAAoB,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAKhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAsBnD,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,gBAAgB,IAAI;IAClD,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,GAAG,EAAE,sBAAsB,CAAA;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,eAAO,MAAM,eAAe,yDACZ,UAAU,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,KAC5D,QAAQ,oBAAoB,KAAK,CAAC,CAwXpC,CAAA"}
|
|
@@ -191,7 +191,7 @@ export const updateOperation = async (incomingArgs)=>{
|
|
|
191
191
|
global: null,
|
|
192
192
|
operation: 'update',
|
|
193
193
|
req,
|
|
194
|
-
skipValidation:
|
|
194
|
+
skipValidation: shouldSaveDraft && collectionConfig.versions.drafts && !collectionConfig.versions.drafts.validate && data._status !== 'published'
|
|
195
195
|
});
|
|
196
196
|
// /////////////////////////////////////
|
|
197
197
|
// Update
|