payload 3.16.0 → 3.16.1-canary.9004205

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.
Files changed (36) hide show
  1. package/dist/collections/config/sanitize.d.ts.map +1 -1
  2. package/dist/collections/config/sanitize.js +1 -0
  3. package/dist/collections/config/sanitize.js.map +1 -1
  4. package/dist/collections/operations/update.d.ts +1 -0
  5. package/dist/collections/operations/update.d.ts.map +1 -1
  6. package/dist/collections/operations/update.js +24 -201
  7. package/dist/collections/operations/update.js.map +1 -1
  8. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  9. package/dist/collections/operations/updateByID.js +19 -242
  10. package/dist/collections/operations/updateByID.js.map +1 -1
  11. package/dist/collections/operations/utilities/update.d.ts +41 -0
  12. package/dist/collections/operations/utilities/update.d.ts.map +1 -0
  13. package/dist/collections/operations/utilities/update.js +276 -0
  14. package/dist/collections/operations/utilities/update.js.map +1 -0
  15. package/dist/fields/hooks/afterChange/promise.d.ts.map +1 -1
  16. package/dist/fields/hooks/afterChange/promise.js +3 -3
  17. package/dist/fields/hooks/afterChange/promise.js.map +1 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +16 -9
  20. package/dist/index.js.map +1 -1
  21. package/dist/uploads/types.d.ts +6 -0
  22. package/dist/uploads/types.d.ts.map +1 -1
  23. package/dist/uploads/types.js.map +1 -1
  24. package/dist/utilities/handleEndpoints.d.ts +2 -1
  25. package/dist/utilities/handleEndpoints.d.ts.map +1 -1
  26. package/dist/utilities/handleEndpoints.js +2 -2
  27. package/dist/utilities/handleEndpoints.js.map +1 -1
  28. package/dist/utilities/routeError.js +1 -1
  29. package/dist/utilities/routeError.js.map +1 -1
  30. package/dist/versions/saveVersion.d.ts.map +1 -1
  31. package/dist/versions/saveVersion.js +3 -0
  32. package/dist/versions/saveVersion.js.map +1 -1
  33. package/dist/versions/schedule/types.d.ts +1 -1
  34. package/dist/versions/schedule/types.d.ts.map +1 -1
  35. package/dist/versions/schedule/types.js.map +1 -1
  36. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../src/collections/config/sanitize.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,yBAAyB,EAAkB,MAAM,YAAY,CAAA;AAkB7F,eAAO,MAAM,kBAAkB,WACrB,MAAM,cACF,gBAAgB,iCAKG,KAAK,CAAC,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,KAC/E,OAAO,CAAC,yBAAyB,CAwMnC,CAAA"}
1
+ {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../src/collections/config/sanitize.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,yBAAyB,EAAkB,MAAM,YAAY,CAAA;AAkB7F,eAAO,MAAM,kBAAkB,WACrB,MAAM,cACF,gBAAgB,iCAKG,KAAK,CAAC,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,KAC/E,OAAO,CAAC,yBAAyB,CAyMnC,CAAA"}
@@ -126,6 +126,7 @@ export const sanitizeCollection = async (config, collection, /**
126
126
  }
127
127
  // sanitize fields for reserved names
128
128
  sanitizeUploadFields(sanitized.fields, sanitized);
129
+ sanitized.upload.cacheTags = sanitized.upload?.cacheTags ?? true;
129
130
  sanitized.upload.bulkUpload = sanitized.upload?.bulkUpload ?? true;
130
131
  sanitized.upload.staticDir = sanitized.upload.staticDir || sanitized.slug;
131
132
  sanitized.admin.useAsTitle = sanitized.admin?.useAsTitle && sanitized.admin.useAsTitle !== 'id' ? sanitized.admin.useAsTitle : 'filename';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/collections/config/sanitize.ts"],"sourcesContent":["import type { LoginWithUsernameOptions } from '../../auth/types.js'\nimport type { Config, SanitizedConfig } from '../../config/types.js'\nimport type { CollectionConfig, SanitizedCollectionConfig, SanitizedJoins } from './types.js'\n\nimport { getBaseAuthFields } from '../../auth/getAuthFields.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 { deepMergeWithReactComponents } from '../../utilities/deepMerge.js'\nimport { flattenAllFields } from '../../utilities/flattenAllFields.js'\nimport { formatLabels } from '../../utilities/formatLabels.js'\nimport baseVersionFields from '../../versions/baseFields.js'\nimport { versionDefaults } from '../../versions/defaults.js'\nimport { defaultCollectionEndpoints } from '../endpoints/index.js'\nimport { authDefaults, defaults, loginWithUsernameDefaults } from './defaults.js'\nimport { sanitizeAuthFields, sanitizeUploadFields } from './reservedFieldNames.js'\nimport { validateUseAsTitle } from './useAsTitle.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 = deepMergeWithReactComponents(defaults, collection)\n\n // /////////////////////////////////\n // Sanitize fields\n // /////////////////////////////////\n\n const validRelationships = (config.collections || []).reduce(\n (acc, c) => {\n acc.push(c.slug)\n return acc\n },\n [collection.slug],\n )\n const joins: SanitizedJoins = {}\n sanitized.fields = await sanitizeFields({\n collectionConfig: sanitized,\n config,\n fields: sanitized.fields,\n joinPath: '',\n joins,\n parentIsLocalized: false,\n richTextSanitizationPromises,\n validRelationships,\n })\n\n if (sanitized.endpoints !== false) {\n if (!sanitized.endpoints) {\n sanitized.endpoints = []\n }\n\n for (const endpoint of defaultCollectionEndpoints) {\n sanitized.endpoints.push(endpoint)\n }\n }\n\n if (sanitized.timestamps !== false) {\n // add default timestamps fields only as needed\n let hasUpdatedAt: boolean | null = null\n let hasCreatedAt: boolean | null = null\n sanitized.fields.some((field) => {\n if (fieldAffectsData(field)) {\n if (field.name === 'updatedAt') {\n hasUpdatedAt = true\n }\n if (field.name === 'createdAt') {\n hasCreatedAt = true\n }\n }\n return hasCreatedAt && hasUpdatedAt\n })\n if (!hasUpdatedAt) {\n sanitized.fields.push({\n name: 'updatedAt',\n type: 'date',\n admin: {\n disableBulkEdit: true,\n hidden: true,\n },\n index: true,\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) {\n sanitized.versions = { drafts: false, maxPerDoc: 100 }\n }\n\n if (sanitized.timestamps === false) {\n throw new TimestampsRequired(collection)\n }\n\n sanitized.versions.maxPerDoc =\n typeof sanitized.versions.maxPerDoc === 'number' ? sanitized.versions.maxPerDoc : 100\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: versionDefaults.autosaveInterval,\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) {\n sanitized.upload = {}\n }\n\n // sanitize fields for reserved names\n sanitizeUploadFields(sanitized.fields, sanitized)\n\n sanitized.upload.bulkUpload = sanitized.upload?.bulkUpload ?? true\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 // sanitize fields for reserved names\n sanitizeAuthFields(sanitized.fields, sanitized)\n\n sanitized.auth = deepMergeWithReactComponents(\n authDefaults,\n typeof sanitized.auth === 'object' ? sanitized.auth : {},\n )\n\n if (!sanitized.auth.disableLocalStrategy && sanitized.auth.verify === true) {\n sanitized.auth.verify = {}\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 if (sanitized.auth.loginWithUsername) {\n if (sanitized.auth.loginWithUsername === true) {\n sanitized.auth.loginWithUsername = loginWithUsernameDefaults\n } else {\n const loginWithUsernameWithDefaults = {\n ...loginWithUsernameDefaults,\n ...sanitized.auth.loginWithUsername,\n } as LoginWithUsernameOptions\n\n // if allowEmailLogin is false, requireUsername must be true\n if (loginWithUsernameWithDefaults.allowEmailLogin === false) {\n loginWithUsernameWithDefaults.requireUsername = true\n }\n sanitized.auth.loginWithUsername = loginWithUsernameWithDefaults\n }\n } else {\n sanitized.auth.loginWithUsername = false\n }\n\n if (!collection?.admin?.useAsTitle) {\n sanitized.admin.useAsTitle = sanitized.auth.loginWithUsername ? 'username' : 'email'\n }\n\n sanitized.fields = mergeBaseFields(sanitized.fields, getBaseAuthFields(sanitized.auth))\n }\n\n if (collection?.admin?.pagination?.limits?.length) {\n sanitized.admin.pagination.limits = collection.admin.pagination.limits\n }\n\n validateUseAsTitle(sanitized)\n\n const sanitizedConfig = sanitized as SanitizedCollectionConfig\n\n sanitizedConfig.joins = joins\n\n sanitizedConfig.flattenedFields = flattenAllFields({ fields: sanitizedConfig.fields })\n\n return sanitizedConfig\n}\n"],"names":["getBaseAuthFields","TimestampsRequired","sanitizeFields","fieldAffectsData","mergeBaseFields","getBaseUploadFields","deepMergeWithReactComponents","flattenAllFields","formatLabels","baseVersionFields","versionDefaults","defaultCollectionEndpoints","authDefaults","defaults","loginWithUsernameDefaults","sanitizeAuthFields","sanitizeUploadFields","validateUseAsTitle","sanitizeCollection","config","collection","richTextSanitizationPromises","sanitized","validRelationships","collections","reduce","acc","c","push","slug","joins","fields","collectionConfig","joinPath","parentIsLocalized","endpoints","endpoint","timestamps","hasUpdatedAt","hasCreatedAt","some","field","name","type","admin","disableBulkEdit","hidden","index","label","t","labels","versions","drafts","maxPerDoc","autosave","validate","interval","autosaveInterval","undefined","upload","bulkUpload","staticDir","useAsTitle","uploadFields","auth","disableLocalStrategy","verify","disableDuplicate","strategies","loginWithUsername","loginWithUsernameWithDefaults","allowEmailLogin","requireUsername","pagination","limits","length","sanitizedConfig","flattenedFields"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/collections/config/sanitize.ts"],"sourcesContent":["import type { LoginWithUsernameOptions } from '../../auth/types.js'\nimport type { Config, SanitizedConfig } from '../../config/types.js'\nimport type { CollectionConfig, SanitizedCollectionConfig, SanitizedJoins } from './types.js'\n\nimport { getBaseAuthFields } from '../../auth/getAuthFields.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 { deepMergeWithReactComponents } from '../../utilities/deepMerge.js'\nimport { flattenAllFields } from '../../utilities/flattenAllFields.js'\nimport { formatLabels } from '../../utilities/formatLabels.js'\nimport baseVersionFields from '../../versions/baseFields.js'\nimport { versionDefaults } from '../../versions/defaults.js'\nimport { defaultCollectionEndpoints } from '../endpoints/index.js'\nimport { authDefaults, defaults, loginWithUsernameDefaults } from './defaults.js'\nimport { sanitizeAuthFields, sanitizeUploadFields } from './reservedFieldNames.js'\nimport { validateUseAsTitle } from './useAsTitle.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 = deepMergeWithReactComponents(defaults, collection)\n\n // /////////////////////////////////\n // Sanitize fields\n // /////////////////////////////////\n\n const validRelationships = (config.collections || []).reduce(\n (acc, c) => {\n acc.push(c.slug)\n return acc\n },\n [collection.slug],\n )\n const joins: SanitizedJoins = {}\n sanitized.fields = await sanitizeFields({\n collectionConfig: sanitized,\n config,\n fields: sanitized.fields,\n joinPath: '',\n joins,\n parentIsLocalized: false,\n richTextSanitizationPromises,\n validRelationships,\n })\n\n if (sanitized.endpoints !== false) {\n if (!sanitized.endpoints) {\n sanitized.endpoints = []\n }\n\n for (const endpoint of defaultCollectionEndpoints) {\n sanitized.endpoints.push(endpoint)\n }\n }\n\n if (sanitized.timestamps !== false) {\n // add default timestamps fields only as needed\n let hasUpdatedAt: boolean | null = null\n let hasCreatedAt: boolean | null = null\n sanitized.fields.some((field) => {\n if (fieldAffectsData(field)) {\n if (field.name === 'updatedAt') {\n hasUpdatedAt = true\n }\n if (field.name === 'createdAt') {\n hasCreatedAt = true\n }\n }\n return hasCreatedAt && hasUpdatedAt\n })\n if (!hasUpdatedAt) {\n sanitized.fields.push({\n name: 'updatedAt',\n type: 'date',\n admin: {\n disableBulkEdit: true,\n hidden: true,\n },\n index: true,\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) {\n sanitized.versions = { drafts: false, maxPerDoc: 100 }\n }\n\n if (sanitized.timestamps === false) {\n throw new TimestampsRequired(collection)\n }\n\n sanitized.versions.maxPerDoc =\n typeof sanitized.versions.maxPerDoc === 'number' ? sanitized.versions.maxPerDoc : 100\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: versionDefaults.autosaveInterval,\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) {\n sanitized.upload = {}\n }\n\n // sanitize fields for reserved names\n sanitizeUploadFields(sanitized.fields, sanitized)\n\n sanitized.upload.cacheTags = sanitized.upload?.cacheTags ?? true\n sanitized.upload.bulkUpload = sanitized.upload?.bulkUpload ?? true\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 // sanitize fields for reserved names\n sanitizeAuthFields(sanitized.fields, sanitized)\n\n sanitized.auth = deepMergeWithReactComponents(\n authDefaults,\n typeof sanitized.auth === 'object' ? sanitized.auth : {},\n )\n\n if (!sanitized.auth.disableLocalStrategy && sanitized.auth.verify === true) {\n sanitized.auth.verify = {}\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 if (sanitized.auth.loginWithUsername) {\n if (sanitized.auth.loginWithUsername === true) {\n sanitized.auth.loginWithUsername = loginWithUsernameDefaults\n } else {\n const loginWithUsernameWithDefaults = {\n ...loginWithUsernameDefaults,\n ...sanitized.auth.loginWithUsername,\n } as LoginWithUsernameOptions\n\n // if allowEmailLogin is false, requireUsername must be true\n if (loginWithUsernameWithDefaults.allowEmailLogin === false) {\n loginWithUsernameWithDefaults.requireUsername = true\n }\n sanitized.auth.loginWithUsername = loginWithUsernameWithDefaults\n }\n } else {\n sanitized.auth.loginWithUsername = false\n }\n\n if (!collection?.admin?.useAsTitle) {\n sanitized.admin.useAsTitle = sanitized.auth.loginWithUsername ? 'username' : 'email'\n }\n\n sanitized.fields = mergeBaseFields(sanitized.fields, getBaseAuthFields(sanitized.auth))\n }\n\n if (collection?.admin?.pagination?.limits?.length) {\n sanitized.admin.pagination.limits = collection.admin.pagination.limits\n }\n\n validateUseAsTitle(sanitized)\n\n const sanitizedConfig = sanitized as SanitizedCollectionConfig\n\n sanitizedConfig.joins = joins\n\n sanitizedConfig.flattenedFields = flattenAllFields({ fields: sanitizedConfig.fields })\n\n return sanitizedConfig\n}\n"],"names":["getBaseAuthFields","TimestampsRequired","sanitizeFields","fieldAffectsData","mergeBaseFields","getBaseUploadFields","deepMergeWithReactComponents","flattenAllFields","formatLabels","baseVersionFields","versionDefaults","defaultCollectionEndpoints","authDefaults","defaults","loginWithUsernameDefaults","sanitizeAuthFields","sanitizeUploadFields","validateUseAsTitle","sanitizeCollection","config","collection","richTextSanitizationPromises","sanitized","validRelationships","collections","reduce","acc","c","push","slug","joins","fields","collectionConfig","joinPath","parentIsLocalized","endpoints","endpoint","timestamps","hasUpdatedAt","hasCreatedAt","some","field","name","type","admin","disableBulkEdit","hidden","index","label","t","labels","versions","drafts","maxPerDoc","autosave","validate","interval","autosaveInterval","undefined","upload","cacheTags","bulkUpload","staticDir","useAsTitle","uploadFields","auth","disableLocalStrategy","verify","disableDuplicate","strategies","loginWithUsername","loginWithUsernameWithDefaults","allowEmailLogin","requireUsername","pagination","limits","length","sanitizedConfig","flattenedFields"],"mappings":"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"}
@@ -14,6 +14,7 @@ export type Arguments<TSlug extends CollectionSlug> = {
14
14
  overrideLock?: boolean;
15
15
  overwriteExistingFiles?: boolean;
16
16
  populate?: PopulateType;
17
+ publishSpecificLocale?: string;
17
18
  req: PayloadRequest;
18
19
  select?: SelectType;
19
20
  showHiddenFields?: boolean;
@@ -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,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC3F,OAAO,KAAK,EACV,mBAAmB,EACnB,UAAU,EAEV,8BAA8B,EAC9B,wBAAwB,EACzB,MAAM,oBAAoB,CAAA;AAwB3B,MAAM,MAAM,SAAS,CAAC,KAAK,SAAS,cAAc,IAAI;IACpD,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,WAAW,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC,CAAA;IACxD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,eAAO,MAAM,eAAe,GAC1B,KAAK,SAAS,cAAc,EAC5B,OAAO,SAAS,wBAAwB,CAAC,KAAK,CAAC,gBAEjC,SAAS,CAAC,KAAK,CAAC,KAC7B,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAuZ7C,CAAA"}
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,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC3F,OAAO,KAAK,EACV,mBAAmB,EACnB,UAAU,EAEV,8BAA8B,EAC9B,wBAAwB,EACzB,MAAM,oBAAoB,CAAA;AAgB3B,MAAM,MAAM,SAAS,CAAC,KAAK,SAAS,cAAc,IAAI;IACpD,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,WAAW,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC,CAAA;IACxD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,eAAO,MAAM,eAAe,GAC1B,KAAK,SAAS,cAAc,EAC5B,OAAO,SAAS,wBAAwB,CAAC,KAAK,CAAC,gBAEjC,SAAS,CAAC,KAAK,CAAC,KAC7B,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAwM7C,CAAA"}
@@ -1,24 +1,16 @@
1
1
  import httpStatus from 'http-status';
2
- import { ensureUsernameOrEmail } from '../../auth/ensureUsernameOrEmail.js';
3
2
  import executeAccess from '../../auth/executeAccess.js';
4
3
  import { combineQueries } from '../../database/combineQueries.js';
5
4
  import { validateQueryPaths } from '../../database/queryValidation/validateQueryPaths.js';
6
5
  import { APIError } from '../../errors/index.js';
7
- import { afterChange } from '../../fields/hooks/afterChange/index.js';
8
- import { afterRead } from '../../fields/hooks/afterRead/index.js';
9
- import { beforeChange } from '../../fields/hooks/beforeChange/index.js';
10
- import { beforeValidate } from '../../fields/hooks/beforeValidate/index.js';
11
- import { deleteAssociatedFiles } from '../../uploads/deleteAssociatedFiles.js';
12
6
  import { generateFileData } from '../../uploads/generateFileData.js';
13
7
  import { unlinkTempFiles } from '../../uploads/unlinkTempFiles.js';
14
- import { uploadFiles } from '../../uploads/uploadFiles.js';
15
- import { checkDocumentLockStatus } from '../../utilities/checkDocumentLockStatus.js';
16
8
  import { commitTransaction } from '../../utilities/commitTransaction.js';
17
9
  import { initTransaction } from '../../utilities/initTransaction.js';
18
10
  import { killTransaction } from '../../utilities/killTransaction.js';
19
11
  import { buildVersionCollectionFields } from '../../versions/buildCollectionFields.js';
20
12
  import { appendVersionToQueryKey } from '../../versions/drafts/appendVersionToQueryKey.js';
21
- import { saveVersion } from '../../versions/saveVersion.js';
13
+ import { updateDocument } from './utilities/update.js';
22
14
  import { buildAfterOperation } from './utils.js';
23
15
  export const updateOperation = async (incomingArgs)=>{
24
16
  let args = incomingArgs;
@@ -37,7 +29,7 @@ export const updateOperation = async (incomingArgs)=>{
37
29
  req: args.req
38
30
  }) || args;
39
31
  }, Promise.resolve());
40
- const { collection: { config: collectionConfig }, collection, depth, draft: draftArg = false, limit = 0, overrideAccess, overrideLock, overwriteExistingFiles = false, populate, req: { fallbackLocale, locale, payload: { config }, payload }, req, select, showHiddenFields, where } = args;
32
+ const { collection: { config: collectionConfig }, collection, depth, draft: draftArg = false, limit = 0, overrideAccess, overrideLock, overwriteExistingFiles = false, populate, publishSpecificLocale, req: { fallbackLocale, locale, payload: { config }, payload }, req, select, showHiddenFields, where } = args;
41
33
  if (!where) {
42
34
  throw new APIError("Missing 'where' query of documents to update.", httpStatus.BAD_REQUEST);
43
35
  }
@@ -95,7 +87,7 @@ export const updateOperation = async (incomingArgs)=>{
95
87
  // /////////////////////////////////////
96
88
  // Generate data for all files and sizes
97
89
  // /////////////////////////////////////
98
- const { data: newFileData, files: filesToUpload } = await generateFileData({
90
+ const { data, files: filesToUpload } = await generateFileData({
99
91
  collection,
100
92
  config,
101
93
  data: bulkUpdateData,
@@ -105,209 +97,35 @@ export const updateOperation = async (incomingArgs)=>{
105
97
  throwOnMissingFile: false
106
98
  });
107
99
  const errors = [];
108
- const promises = docs.map(async (doc)=>{
109
- const { id } = doc;
110
- let data = {
111
- ...newFileData,
112
- ...bulkUpdateData
113
- };
100
+ const promises = docs.map(async (docWithLocales)=>{
101
+ const { id } = docWithLocales;
114
102
  try {
115
- // /////////////////////////////////////
116
- // Handle potentially locked documents
117
- // /////////////////////////////////////
118
- await checkDocumentLockStatus({
103
+ // ///////////////////////////////////////////////
104
+ // Update document, runs all document level hooks
105
+ // ///////////////////////////////////////////////
106
+ const updatedDoc = await updateDocument({
119
107
  id,
120
- collectionSlug: collectionConfig.slug,
121
- lockErrorMessage: `Document with ID ${id} is currently locked by another user and cannot be updated.`,
122
- overrideLock,
123
- req
124
- });
125
- const originalDoc = await afterRead({
126
- collection: collectionConfig,
127
- context: req.context,
128
- depth: 0,
129
- doc,
130
- draft: draftArg,
131
- fallbackLocale,
132
- global: null,
133
- locale,
134
- overrideAccess: true,
135
- req,
136
- showHiddenFields: true
137
- });
138
- await deleteAssociatedFiles({
108
+ accessResults: accessResult,
109
+ autosave: false,
139
110
  collectionConfig,
140
111
  config,
141
- doc,
142
- files: filesToUpload,
143
- overrideDelete: false,
144
- req
145
- });
146
- if (args.collection.config.auth) {
147
- ensureUsernameOrEmail({
148
- authOptions: args.collection.config.auth,
149
- collectionSlug: args.collection.config.slug,
150
- data: args.data,
151
- operation: 'update',
152
- originalDoc,
153
- req: args.req
154
- });
155
- }
156
- // /////////////////////////////////////
157
- // beforeValidate - Fields
158
- // /////////////////////////////////////
159
- data = await beforeValidate({
160
- id,
161
- collection: collectionConfig,
162
- context: req.context,
163
- data,
164
- doc: originalDoc,
165
- global: null,
166
- operation: 'update',
167
- overrideAccess,
168
- req
169
- });
170
- // /////////////////////////////////////
171
- // beforeValidate - Collection
172
- // /////////////////////////////////////
173
- await collectionConfig.hooks.beforeValidate.reduce(async (priorHook, hook)=>{
174
- await priorHook;
175
- data = await hook({
176
- collection: collectionConfig,
177
- context: req.context,
178
- data,
179
- operation: 'update',
180
- originalDoc,
181
- req
182
- }) || data;
183
- }, Promise.resolve());
184
- // /////////////////////////////////////
185
- // Write files to local storage
186
- // /////////////////////////////////////
187
- if (!collectionConfig.upload.disableLocalStorage) {
188
- await uploadFiles(payload, filesToUpload, req);
189
- }
190
- // /////////////////////////////////////
191
- // beforeChange - Collection
192
- // /////////////////////////////////////
193
- await collectionConfig.hooks.beforeChange.reduce(async (priorHook, hook)=>{
194
- await priorHook;
195
- data = await hook({
196
- collection: collectionConfig,
197
- context: req.context,
198
- data,
199
- operation: 'update',
200
- originalDoc,
201
- req
202
- }) || data;
203
- }, Promise.resolve());
204
- // /////////////////////////////////////
205
- // beforeChange - Fields
206
- // /////////////////////////////////////
207
- let result = await beforeChange({
208
- id,
209
- collection: collectionConfig,
210
- context: req.context,
211
112
  data,
212
- doc: originalDoc,
213
- docWithLocales: doc,
214
- global: null,
215
- operation: 'update',
216
- req,
217
- skipValidation: shouldSaveDraft && collectionConfig.versions.drafts && !collectionConfig.versions.drafts.validate && data._status !== 'published'
218
- });
219
- // /////////////////////////////////////
220
- // Update
221
- // /////////////////////////////////////
222
- if (!shouldSaveDraft || data._status === 'published') {
223
- result = await req.payload.db.updateOne({
224
- id,
225
- collection: collectionConfig.slug,
226
- data: result,
227
- locale,
228
- req,
229
- select
230
- });
231
- }
232
- // /////////////////////////////////////
233
- // Create version
234
- // /////////////////////////////////////
235
- if (collectionConfig.versions) {
236
- result = await saveVersion({
237
- id,
238
- collection: collectionConfig,
239
- docWithLocales: result,
240
- payload,
241
- req,
242
- select
243
- });
244
- }
245
- // /////////////////////////////////////
246
- // afterRead - Fields
247
- // /////////////////////////////////////
248
- result = await afterRead({
249
- collection: collectionConfig,
250
- context: req.context,
251
113
  depth,
252
- doc: result,
253
- draft: draftArg,
254
- fallbackLocale: null,
255
- global: null,
114
+ docWithLocales,
115
+ draftArg,
116
+ fallbackLocale,
117
+ filesToUpload,
256
118
  locale,
257
119
  overrideAccess,
120
+ overrideLock,
121
+ payload,
258
122
  populate,
123
+ publishSpecificLocale,
259
124
  req,
260
125
  select,
261
126
  showHiddenFields
262
127
  });
263
- // /////////////////////////////////////
264
- // afterRead - Collection
265
- // /////////////////////////////////////
266
- await collectionConfig.hooks.afterRead.reduce(async (priorHook, hook)=>{
267
- await priorHook;
268
- result = await hook({
269
- collection: collectionConfig,
270
- context: req.context,
271
- doc: result,
272
- req
273
- }) || result;
274
- }, Promise.resolve());
275
- // /////////////////////////////////////
276
- // afterChange - Fields
277
- // /////////////////////////////////////
278
- result = await afterChange({
279
- collection: collectionConfig,
280
- context: req.context,
281
- data,
282
- doc: result,
283
- global: null,
284
- operation: 'update',
285
- previousDoc: originalDoc,
286
- req
287
- });
288
- // /////////////////////////////////////
289
- // afterChange - Collection
290
- // /////////////////////////////////////
291
- await collectionConfig.hooks.afterChange.reduce(async (priorHook, hook)=>{
292
- await priorHook;
293
- result = await hook({
294
- collection: collectionConfig,
295
- context: req.context,
296
- doc: result,
297
- operation: 'update',
298
- previousDoc: originalDoc,
299
- req
300
- }) || result;
301
- }, Promise.resolve());
302
- await unlinkTempFiles({
303
- collectionConfig,
304
- config,
305
- req
306
- });
307
- // /////////////////////////////////////
308
- // Return results
309
- // /////////////////////////////////////
310
- return result;
128
+ return updatedDoc;
311
129
  } catch (error) {
312
130
  errors.push({
313
131
  id,
@@ -316,6 +134,11 @@ export const updateOperation = async (incomingArgs)=>{
316
134
  }
317
135
  return null;
318
136
  });
137
+ await unlinkTempFiles({
138
+ collectionConfig,
139
+ config,
140
+ req
141
+ });
319
142
  const awaitedDocs = await Promise.all(promises);
320
143
  let result = {
321
144
  docs: awaitedDocs.filter(Boolean),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/collections/operations/update.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport httpStatus from 'http-status'\n\nimport type { AccessResult } from '../../config/types.js'\nimport type { CollectionSlug } from '../../index.js'\nimport type { PayloadRequest, PopulateType, SelectType, Where } from '../../types/index.js'\nimport type {\n BulkOperationResult,\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 { combineQueries } from '../../database/combineQueries.js'\nimport { validateQueryPaths } from '../../database/queryValidation/validateQueryPaths.js'\nimport { APIError } 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 { buildVersionCollectionFields } from '../../versions/buildCollectionFields.js'\nimport { appendVersionToQueryKey } from '../../versions/drafts/appendVersionToQueryKey.js'\nimport { saveVersion } from '../../versions/saveVersion.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type Arguments<TSlug extends CollectionSlug> = {\n collection: Collection\n data: DeepPartial<RequiredDataFromCollectionSlug<TSlug>>\n depth?: number\n disableTransaction?: boolean\n disableVerificationEmail?: boolean\n draft?: boolean\n limit?: number\n overrideAccess?: boolean\n overrideLock?: boolean\n overwriteExistingFiles?: boolean\n populate?: PopulateType\n req: PayloadRequest\n select?: SelectType\n showHiddenFields?: boolean\n where: Where\n}\n\nexport const updateOperation = async <\n TSlug extends CollectionSlug,\n TSelect extends SelectFromCollectionSlug<TSlug>,\n>(\n incomingArgs: Arguments<TSlug>,\n): Promise<BulkOperationResult<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 const {\n collection: { config: collectionConfig },\n collection,\n depth,\n draft: draftArg = false,\n limit = 0,\n overrideAccess,\n overrideLock,\n overwriteExistingFiles = false,\n populate,\n req: {\n fallbackLocale,\n locale,\n payload: { config },\n payload,\n },\n req,\n select,\n showHiddenFields,\n where,\n } = args\n\n if (!where) {\n throw new APIError(\"Missing 'where' query of documents to update.\", httpStatus.BAD_REQUEST)\n }\n\n const { data: bulkUpdateData } = args\n const shouldSaveDraft = Boolean(draftArg && collectionConfig.versions.drafts)\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n let accessResult: AccessResult\n if (!overrideAccess) {\n accessResult = await executeAccess({ req }, collectionConfig.access.update)\n }\n\n await validateQueryPaths({\n collectionConfig,\n overrideAccess,\n req,\n where,\n })\n\n // /////////////////////////////////////\n // Retrieve documents\n // /////////////////////////////////////\n\n const fullWhere = combineQueries(where, accessResult)\n\n let docs\n\n if (collectionConfig.versions?.drafts && shouldSaveDraft) {\n const versionsWhere = appendVersionToQueryKey(fullWhere)\n\n await validateQueryPaths({\n collectionConfig: collection.config,\n overrideAccess,\n req,\n versionFields: buildVersionCollectionFields(payload.config, collection.config, true),\n where: appendVersionToQueryKey(where),\n })\n\n const query = await payload.db.queryDrafts<DataFromCollectionSlug<TSlug>>({\n collection: collectionConfig.slug,\n limit,\n locale,\n pagination: false,\n req,\n where: versionsWhere,\n })\n\n docs = query.docs\n } else {\n const query = await payload.db.find({\n collection: collectionConfig.slug,\n limit,\n locale,\n pagination: false,\n req,\n where: fullWhere,\n })\n\n docs = query.docs\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: bulkUpdateData,\n operation: 'update',\n overwriteExistingFiles,\n req,\n throwOnMissingFile: false,\n })\n\n const errors = []\n\n const promises = docs.map(async (doc) => {\n const { id } = doc\n let data = {\n ...newFileData,\n ...bulkUpdateData,\n }\n\n try {\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,\n draft: draftArg,\n fallbackLocale,\n global: null,\n locale,\n overrideAccess: true,\n req,\n showHiddenFields: true,\n })\n\n await deleteAssociatedFiles({\n collectionConfig,\n config,\n doc,\n files: filesToUpload,\n overrideDelete: false,\n req,\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 // 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 result = await beforeChange({\n id,\n collection: collectionConfig,\n context: req.context,\n data,\n doc: originalDoc,\n docWithLocales: doc,\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 // /////////////////////////////////////\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: result,\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 collection: collectionConfig,\n docWithLocales: result,\n payload,\n req,\n select,\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: null,\n global: null,\n locale,\n overrideAccess,\n populate,\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 await unlinkTempFiles({\n collectionConfig,\n config,\n req,\n })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n return result\n } catch (error) {\n errors.push({\n id,\n message: error.message,\n })\n }\n return null\n })\n\n const awaitedDocs = await Promise.all(promises)\n\n let result = {\n docs: awaitedDocs.filter(Boolean),\n errors,\n }\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation({\n args,\n collection: collectionConfig,\n operation: 'update',\n result,\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","combineQueries","validateQueryPaths","APIError","afterChange","afterRead","beforeChange","beforeValidate","deleteAssociatedFiles","generateFileData","unlinkTempFiles","uploadFiles","checkDocumentLockStatus","commitTransaction","initTransaction","killTransaction","buildVersionCollectionFields","appendVersionToQueryKey","saveVersion","buildAfterOperation","updateOperation","incomingArgs","args","shouldCommit","disableTransaction","req","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","operation","Promise","resolve","collectionConfig","depth","draft","draftArg","limit","overrideAccess","overrideLock","overwriteExistingFiles","populate","fallbackLocale","locale","payload","select","showHiddenFields","where","BAD_REQUEST","data","bulkUpdateData","shouldSaveDraft","Boolean","versions","drafts","accessResult","access","update","fullWhere","docs","versionsWhere","versionFields","query","db","queryDrafts","slug","pagination","find","newFileData","files","filesToUpload","throwOnMissingFile","errors","promises","map","doc","id","collectionSlug","lockErrorMessage","originalDoc","global","overrideDelete","auth","authOptions","upload","disableLocalStorage","result","docWithLocales","skipValidation","validate","_status","updateOne","previousDoc","error","push","message","awaitedDocs","all","filter"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/collections/operations/update.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport httpStatus from 'http-status'\n\nimport type { AccessResult } from '../../config/types.js'\nimport type { CollectionSlug } from '../../index.js'\nimport type { PayloadRequest, PopulateType, SelectType, Where } from '../../types/index.js'\nimport type {\n BulkOperationResult,\n Collection,\n DataFromCollectionSlug,\n RequiredDataFromCollectionSlug,\n SelectFromCollectionSlug,\n} from '../config/types.js'\n\nimport executeAccess from '../../auth/executeAccess.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { validateQueryPaths } from '../../database/queryValidation/validateQueryPaths.js'\nimport { APIError } from '../../errors/index.js'\nimport { generateFileData } from '../../uploads/generateFileData.js'\nimport { unlinkTempFiles } from '../../uploads/unlinkTempFiles.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { buildVersionCollectionFields } from '../../versions/buildCollectionFields.js'\nimport { appendVersionToQueryKey } from '../../versions/drafts/appendVersionToQueryKey.js'\nimport { updateDocument } from './utilities/update.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type Arguments<TSlug extends CollectionSlug> = {\n collection: Collection\n data: DeepPartial<RequiredDataFromCollectionSlug<TSlug>>\n depth?: number\n disableTransaction?: boolean\n disableVerificationEmail?: boolean\n draft?: boolean\n limit?: number\n overrideAccess?: boolean\n overrideLock?: boolean\n overwriteExistingFiles?: boolean\n populate?: PopulateType\n publishSpecificLocale?: string\n req: PayloadRequest\n select?: SelectType\n showHiddenFields?: boolean\n where: Where\n}\n\nexport const updateOperation = async <\n TSlug extends CollectionSlug,\n TSelect extends SelectFromCollectionSlug<TSlug>,\n>(\n incomingArgs: Arguments<TSlug>,\n): Promise<BulkOperationResult<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 const {\n collection: { config: collectionConfig },\n collection,\n depth,\n draft: draftArg = false,\n limit = 0,\n overrideAccess,\n overrideLock,\n overwriteExistingFiles = false,\n populate,\n publishSpecificLocale,\n req: {\n fallbackLocale,\n locale,\n payload: { config },\n payload,\n },\n req,\n select,\n showHiddenFields,\n where,\n } = args\n\n if (!where) {\n throw new APIError(\"Missing 'where' query of documents to update.\", httpStatus.BAD_REQUEST)\n }\n\n const { data: bulkUpdateData } = args\n const shouldSaveDraft = Boolean(draftArg && collectionConfig.versions.drafts)\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n let accessResult: AccessResult\n if (!overrideAccess) {\n accessResult = await executeAccess({ req }, collectionConfig.access.update)\n }\n\n await validateQueryPaths({\n collectionConfig,\n overrideAccess,\n req,\n where,\n })\n\n // /////////////////////////////////////\n // Retrieve documents\n // /////////////////////////////////////\n\n const fullWhere = combineQueries(where, accessResult)\n\n let docs\n\n if (collectionConfig.versions?.drafts && shouldSaveDraft) {\n const versionsWhere = appendVersionToQueryKey(fullWhere)\n\n await validateQueryPaths({\n collectionConfig: collection.config,\n overrideAccess,\n req,\n versionFields: buildVersionCollectionFields(payload.config, collection.config, true),\n where: appendVersionToQueryKey(where),\n })\n\n const query = await payload.db.queryDrafts<DataFromCollectionSlug<TSlug>>({\n collection: collectionConfig.slug,\n limit,\n locale,\n pagination: false,\n req,\n where: versionsWhere,\n })\n\n docs = query.docs\n } else {\n const query = await payload.db.find({\n collection: collectionConfig.slug,\n limit,\n locale,\n pagination: false,\n req,\n where: fullWhere,\n })\n\n docs = query.docs\n }\n\n // /////////////////////////////////////\n // Generate data for all files and sizes\n // /////////////////////////////////////\n\n const { data, files: filesToUpload } = await generateFileData({\n collection,\n config,\n data: bulkUpdateData,\n operation: 'update',\n overwriteExistingFiles,\n req,\n throwOnMissingFile: false,\n })\n\n const errors = []\n\n const promises = docs.map(async (docWithLocales) => {\n const { id } = docWithLocales\n\n try {\n // ///////////////////////////////////////////////\n // Update document, runs all document level hooks\n // ///////////////////////////////////////////////\n const updatedDoc = await updateDocument({\n id,\n accessResults: accessResult,\n autosave: false,\n collectionConfig,\n config,\n data,\n depth,\n docWithLocales,\n draftArg,\n fallbackLocale,\n filesToUpload,\n locale,\n overrideAccess,\n overrideLock,\n payload,\n populate,\n publishSpecificLocale,\n req,\n select,\n showHiddenFields,\n })\n\n return updatedDoc\n } catch (error) {\n errors.push({\n id,\n message: error.message,\n })\n }\n return null\n })\n\n await unlinkTempFiles({\n collectionConfig,\n config,\n req,\n })\n\n const awaitedDocs = await Promise.all(promises)\n\n let result = {\n docs: awaitedDocs.filter(Boolean),\n errors,\n }\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation({\n args,\n collection: collectionConfig,\n operation: 'update',\n result,\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","executeAccess","combineQueries","validateQueryPaths","APIError","generateFileData","unlinkTempFiles","commitTransaction","initTransaction","killTransaction","buildVersionCollectionFields","appendVersionToQueryKey","updateDocument","buildAfterOperation","updateOperation","incomingArgs","args","shouldCommit","disableTransaction","req","collection","config","hooks","beforeOperation","reduce","priorHook","hook","context","operation","Promise","resolve","collectionConfig","depth","draft","draftArg","limit","overrideAccess","overrideLock","overwriteExistingFiles","populate","publishSpecificLocale","fallbackLocale","locale","payload","select","showHiddenFields","where","BAD_REQUEST","data","bulkUpdateData","shouldSaveDraft","Boolean","versions","drafts","accessResult","access","update","fullWhere","docs","versionsWhere","versionFields","query","db","queryDrafts","slug","pagination","find","files","filesToUpload","throwOnMissingFile","errors","promises","map","docWithLocales","id","updatedDoc","accessResults","autosave","error","push","message","awaitedDocs","all","result","filter"],"mappings":"AAEA,OAAOA,gBAAgB,cAAa;AAapC,OAAOC,mBAAmB,8BAA6B;AACvD,SAASC,cAAc,QAAQ,mCAAkC;AACjE,SAASC,kBAAkB,QAAQ,uDAAsD;AACzF,SAASC,QAAQ,QAAQ,wBAAuB;AAChD,SAASC,gBAAgB,QAAQ,oCAAmC;AACpE,SAASC,eAAe,QAAQ,mCAAkC;AAClE,SAASC,iBAAiB,QAAQ,uCAAsC;AACxE,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,4BAA4B,QAAQ,0CAAyC;AACtF,SAASC,uBAAuB,QAAQ,mDAAkD;AAC1F,SAASC,cAAc,QAAQ,wBAAuB;AACtD,SAASC,mBAAmB,QAAQ,aAAY;AAqBhD,OAAO,MAAMC,kBAAkB,OAI7BC;IAEA,IAAIC,OAAOD;IAEX,IAAI;QACF,MAAME,eAAe,CAACD,KAAKE,kBAAkB,IAAK,MAAMV,gBAAgBQ,KAAKG,GAAG;QAEhF,wCAAwC;QACxC,+BAA+B;QAC/B,wCAAwC;QAExC,MAAMH,KAAKI,UAAU,CAACC,MAAM,CAACC,KAAK,CAACC,eAAe,CAACC,MAAM,CAAC,OAAOC,WAAWC;YAC1E,MAAMD;YAENT,OACE,AAAC,MAAMU,KAAK;gBACVV;gBACAI,YAAYJ,KAAKI,UAAU,CAACC,MAAM;gBAClCM,SAASX,KAAKG,GAAG,CAACQ,OAAO;gBACzBC,WAAW;gBACXT,KAAKH,KAAKG,GAAG;YACf,MAAOH;QACX,GAAGa,QAAQC,OAAO;QAElB,MAAM,EACJV,YAAY,EAAEC,QAAQU,gBAAgB,EAAE,EACxCX,UAAU,EACVY,KAAK,EACLC,OAAOC,WAAW,KAAK,EACvBC,QAAQ,CAAC,EACTC,cAAc,EACdC,YAAY,EACZC,yBAAyB,KAAK,EAC9BC,QAAQ,EACRC,qBAAqB,EACrBrB,KAAK,EACHsB,cAAc,EACdC,MAAM,EACNC,SAAS,EAAEtB,MAAM,EAAE,EACnBsB,OAAO,EACR,EACDxB,GAAG,EACHyB,MAAM,EACNC,gBAAgB,EAChBC,KAAK,EACN,GAAG9B;QAEJ,IAAI,CAAC8B,OAAO;YACV,MAAM,IAAI1C,SAAS,iDAAiDJ,WAAW+C,WAAW;QAC5F;QAEA,MAAM,EAAEC,MAAMC,cAAc,EAAE,GAAGjC;QACjC,MAAMkC,kBAAkBC,QAAQjB,YAAYH,iBAAiBqB,QAAQ,CAACC,MAAM;QAE5E,wCAAwC;QACxC,SAAS;QACT,wCAAwC;QAExC,IAAIC;QACJ,IAAI,CAAClB,gBAAgB;YACnBkB,eAAe,MAAMrD,cAAc;gBAAEkB;YAAI,GAAGY,iBAAiBwB,MAAM,CAACC,MAAM;QAC5E;QAEA,MAAMrD,mBAAmB;YACvB4B;YACAK;YACAjB;YACA2B;QACF;QAEA,wCAAwC;QACxC,qBAAqB;QACrB,wCAAwC;QAExC,MAAMW,YAAYvD,eAAe4C,OAAOQ;QAExC,IAAII;QAEJ,IAAI3B,iBAAiBqB,QAAQ,EAAEC,UAAUH,iBAAiB;YACxD,MAAMS,gBAAgBhD,wBAAwB8C;YAE9C,MAAMtD,mBAAmB;gBACvB4B,kBAAkBX,WAAWC,MAAM;gBACnCe;gBACAjB;gBACAyC,eAAelD,6BAA6BiC,QAAQtB,MAAM,EAAED,WAAWC,MAAM,EAAE;gBAC/EyB,OAAOnC,wBAAwBmC;YACjC;YAEA,MAAMe,QAAQ,MAAMlB,QAAQmB,EAAE,CAACC,WAAW,CAAgC;gBACxE3C,YAAYW,iBAAiBiC,IAAI;gBACjC7B;gBACAO;gBACAuB,YAAY;gBACZ9C;gBACA2B,OAAOa;YACT;YAEAD,OAAOG,MAAMH,IAAI;QACnB,OAAO;YACL,MAAMG,QAAQ,MAAMlB,QAAQmB,EAAE,CAACI,IAAI,CAAC;gBAClC9C,YAAYW,iBAAiBiC,IAAI;gBACjC7B;gBACAO;gBACAuB,YAAY;gBACZ9C;gBACA2B,OAAOW;YACT;YAEAC,OAAOG,MAAMH,IAAI;QACnB;QAEA,wCAAwC;QACxC,wCAAwC;QACxC,wCAAwC;QAExC,MAAM,EAAEV,IAAI,EAAEmB,OAAOC,aAAa,EAAE,GAAG,MAAM/D,iBAAiB;YAC5De;YACAC;YACA2B,MAAMC;YACNrB,WAAW;YACXU;YACAnB;YACAkD,oBAAoB;QACtB;QAEA,MAAMC,SAAS,EAAE;QAEjB,MAAMC,WAAWb,KAAKc,GAAG,CAAC,OAAOC;YAC/B,MAAM,EAAEC,EAAE,EAAE,GAAGD;YAEf,IAAI;gBACF,kDAAkD;gBAClD,iDAAiD;gBACjD,kDAAkD;gBAClD,MAAME,aAAa,MAAM/D,eAAe;oBACtC8D;oBACAE,eAAetB;oBACfuB,UAAU;oBACV9C;oBACAV;oBACA2B;oBACAhB;oBACAyC;oBACAvC;oBACAO;oBACA2B;oBACA1B;oBACAN;oBACAC;oBACAM;oBACAJ;oBACAC;oBACArB;oBACAyB;oBACAC;gBACF;gBAEA,OAAO8B;YACT,EAAE,OAAOG,OAAO;gBACdR,OAAOS,IAAI,CAAC;oBACVL;oBACAM,SAASF,MAAME,OAAO;gBACxB;YACF;YACA,OAAO;QACT;QAEA,MAAM1E,gBAAgB;YACpByB;YACAV;YACAF;QACF;QAEA,MAAM8D,cAAc,MAAMpD,QAAQqD,GAAG,CAACX;QAEtC,IAAIY,SAAS;YACXzB,MAAMuB,YAAYG,MAAM,CAACjC;YACzBmB;QACF;QAEA,wCAAwC;QACxC,8BAA8B;QAC9B,wCAAwC;QAExCa,SAAS,MAAMtE,oBAAoB;YACjCG;YACAI,YAAYW;YACZH,WAAW;YACXuD;QACF;QAEA,IAAIlE,cAAc;YAChB,MAAMV,kBAAkBY;QAC1B;QAEA,OAAOgE;IACT,EAAE,OAAOL,OAAgB;QACvB,MAAMrE,gBAAgBO,KAAKG,GAAG;QAC9B,MAAM2D;IACR;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"updateByID.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/updateByID.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAMhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,UAAU,EACV,6BAA6B,EAC9B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EACV,UAAU,EAEV,8BAA8B,EAC9B,wBAAwB,EACzB,MAAM,oBAAoB,CAAA;AAwB3B,MAAM,MAAM,SAAS,CAAC,KAAK,SAAS,cAAc,IAAI;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,WAAW,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC,CAAA;IACxD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,mBAAmB,GAC9B,KAAK,SAAS,cAAc,EAC5B,OAAO,SAAS,wBAAwB,CAAC,KAAK,CAAC,6BAEjC,SAAS,CAAC,KAAK,CAAC,KAC7B,OAAO,CAAC,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,CAkavD,CAAA"}
1
+ {"version":3,"file":"updateByID.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/updateByID.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAKhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,UAAU,EACV,6BAA6B,EAC9B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EACV,UAAU,EACV,8BAA8B,EAC9B,wBAAwB,EACzB,MAAM,oBAAoB,CAAA;AAe3B,MAAM,MAAM,SAAS,CAAC,KAAK,SAAS,cAAc,IAAI;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,WAAW,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC,CAAA;IACxD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,mBAAmB,GAC9B,KAAK,SAAS,cAAc,EAC5B,OAAO,SAAS,wBAAwB,CAAC,KAAK,CAAC,6BAEjC,SAAS,CAAC,KAAK,CAAC,KAC7B,OAAO,CAAC,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,CAkKvD,CAAA"}