payload 3.0.0-beta.113 → 3.0.0-beta.115

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 (75) hide show
  1. package/dist/admin/types.d.ts +2 -2
  2. package/dist/admin/types.d.ts.map +1 -1
  3. package/dist/admin/types.js.map +1 -1
  4. package/dist/admin/views/types.d.ts +1 -1
  5. package/dist/admin/views/types.d.ts.map +1 -1
  6. package/dist/admin/views/types.js.map +1 -1
  7. package/dist/auth/operations/resetPassword.d.ts.map +1 -1
  8. package/dist/auth/operations/resetPassword.js +16 -0
  9. package/dist/auth/operations/resetPassword.js.map +1 -1
  10. package/dist/collections/operations/create.d.ts +1 -0
  11. package/dist/collections/operations/create.d.ts.map +1 -1
  12. package/dist/collections/operations/create.js +1 -1
  13. package/dist/collections/operations/create.js.map +1 -1
  14. package/dist/collections/operations/delete.d.ts +1 -0
  15. package/dist/collections/operations/delete.d.ts.map +1 -1
  16. package/dist/collections/operations/delete.js +1 -1
  17. package/dist/collections/operations/delete.js.map +1 -1
  18. package/dist/collections/operations/deleteByID.d.ts +1 -0
  19. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  20. package/dist/collections/operations/deleteByID.js +1 -1
  21. package/dist/collections/operations/deleteByID.js.map +1 -1
  22. package/dist/collections/operations/duplicate.d.ts +1 -0
  23. package/dist/collections/operations/duplicate.d.ts.map +1 -1
  24. package/dist/collections/operations/duplicate.js +2 -5
  25. package/dist/collections/operations/duplicate.js.map +1 -1
  26. package/dist/collections/operations/find.js +4 -1
  27. package/dist/collections/operations/find.js.map +1 -1
  28. package/dist/collections/operations/local/create.d.ts +1 -0
  29. package/dist/collections/operations/local/create.d.ts.map +1 -1
  30. package/dist/collections/operations/local/create.js +2 -1
  31. package/dist/collections/operations/local/create.js.map +1 -1
  32. package/dist/collections/operations/local/delete.d.ts +1 -0
  33. package/dist/collections/operations/local/delete.d.ts.map +1 -1
  34. package/dist/collections/operations/local/delete.js +2 -1
  35. package/dist/collections/operations/local/delete.js.map +1 -1
  36. package/dist/collections/operations/local/duplicate.d.ts +1 -0
  37. package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
  38. package/dist/collections/operations/local/duplicate.js +2 -1
  39. package/dist/collections/operations/local/duplicate.js.map +1 -1
  40. package/dist/collections/operations/local/update.d.ts +3 -0
  41. package/dist/collections/operations/local/update.d.ts.map +1 -1
  42. package/dist/collections/operations/local/update.js +3 -1
  43. package/dist/collections/operations/local/update.js.map +1 -1
  44. package/dist/collections/operations/update.d.ts +2 -0
  45. package/dist/collections/operations/update.d.ts.map +1 -1
  46. package/dist/collections/operations/update.js +5 -7
  47. package/dist/collections/operations/update.js.map +1 -1
  48. package/dist/collections/operations/updateByID.d.ts +1 -0
  49. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  50. package/dist/collections/operations/updateByID.js +2 -5
  51. package/dist/collections/operations/updateByID.js.map +1 -1
  52. package/dist/database/migrations/migrateReset.js +1 -1
  53. package/dist/database/migrations/migrateReset.js.map +1 -1
  54. package/dist/fields/config/sanitize.d.ts +1 -1
  55. package/dist/fields/config/sanitize.d.ts.map +1 -1
  56. package/dist/fields/config/sanitize.js +15 -8
  57. package/dist/fields/config/sanitize.js.map +1 -1
  58. package/dist/globals/operations/update.d.ts +1 -0
  59. package/dist/globals/operations/update.d.ts.map +1 -1
  60. package/dist/globals/operations/update.js +3 -7
  61. package/dist/globals/operations/update.js.map +1 -1
  62. package/dist/versions/drafts/getQueryDraftsSort.d.ts +5 -1
  63. package/dist/versions/drafts/getQueryDraftsSort.d.ts.map +1 -1
  64. package/dist/versions/drafts/getQueryDraftsSort.js +6 -2
  65. package/dist/versions/drafts/getQueryDraftsSort.js.map +1 -1
  66. package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
  67. package/dist/versions/getLatestCollectionVersion.js +2 -6
  68. package/dist/versions/getLatestCollectionVersion.js.map +1 -1
  69. package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
  70. package/dist/versions/getLatestGlobalVersion.js +7 -5
  71. package/dist/versions/getLatestGlobalVersion.js.map +1 -1
  72. package/dist/versions/saveVersion.d.ts.map +1 -1
  73. package/dist/versions/saveVersion.js +3 -5
  74. package/dist/versions/saveVersion.js.map +1 -1
  75. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/config/sanitize.ts"],"sourcesContent":["import { deepMergeSimple } from '@payloadcms/translations/utilities'\n\nimport type { CollectionConfig, SanitizedJoins } from '../../collections/config/types.js'\nimport type { Config, SanitizedConfig } from '../../config/types.js'\nimport type { Field } from './types.js'\n\nimport {\n DuplicateFieldName,\n InvalidFieldName,\n InvalidFieldRelationship,\n MissingEditorProp,\n MissingFieldType,\n} from '../../errors/index.js'\nimport { formatLabels, toWords } from '../../utilities/formatLabels.js'\nimport { baseBlockFields } from '../baseFields/baseBlockFields.js'\nimport { baseIDField } from '../baseFields/baseIDField.js'\nimport { setDefaultBeforeDuplicate } from '../setDefaultBeforeDuplicate.js'\nimport validations from '../validations.js'\nimport { sanitizeJoinField } from './sanitizeJoinField.js'\nimport { fieldAffectsData, tabHasName } from './types.js'\n\ntype Args = {\n collectionConfig?: CollectionConfig\n config: Config\n existingFieldNames?: Set<string>\n fields: Field[]\n /**\n * When not passed in, assume that join are not supported (globals, arrays, blocks)\n */\n joins?: SanitizedJoins\n parentIsLocalized: boolean\n /**\n * If true, a richText field will require an editor property to be set, as the sanitizeFields function will not add it from the payload config if not present.\n *\n * @default false\n */\n requireFieldLevelRichTextEditor?: boolean\n\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 schemaPath?: string\n /**\n * If not null, will validate that upload and relationship fields do not relate to a collection that is not in this array.\n * This validation will be skipped if validRelationships is null.\n */\n validRelationships: null | string[]\n}\n\nexport const sanitizeFields = async ({\n config,\n existingFieldNames = new Set(),\n fields,\n joins,\n parentIsLocalized,\n requireFieldLevelRichTextEditor = false,\n richTextSanitizationPromises,\n schemaPath: schemaPathArg,\n validRelationships,\n}: Args): Promise<Field[]> => {\n if (!fields) {\n return []\n }\n\n let schemaPath = schemaPathArg\n\n for (let i = 0; i < fields.length; i++) {\n const field = fields[i]\n\n if ('_sanitized' in field && field._sanitized === true) {\n continue\n }\n\n if (!field.type) {\n throw new MissingFieldType(field)\n }\n\n // assert that field names do not contain forbidden characters\n if (fieldAffectsData(field) && field.name.includes('.')) {\n throw new InvalidFieldName(field, field.name)\n }\n\n // Auto-label\n if (\n 'name' in field &&\n field.name &&\n typeof field.label !== 'object' &&\n typeof field.label !== 'string' &&\n typeof field.label !== 'function' &&\n field.label !== false\n ) {\n field.label = toWords(field.name)\n }\n\n if (\n field.type === 'checkbox' &&\n typeof field.defaultValue === 'undefined' &&\n field.required === true\n ) {\n field.defaultValue = false\n }\n\n if (field.type === 'join') {\n sanitizeJoinField({ config, field, joins, schemaPath })\n }\n\n if (field.type === 'relationship' || field.type === 'upload') {\n if (validRelationships) {\n const relationships = Array.isArray(field.relationTo)\n ? field.relationTo\n : [field.relationTo]\n relationships.forEach((relationship: string) => {\n if (!validRelationships.includes(relationship)) {\n throw new InvalidFieldRelationship(field, relationship)\n }\n })\n }\n\n if (field.min && !field.minRows) {\n console.warn(\n `(payload): The \"min\" property is deprecated for the Relationship field \"${field.name}\" and will be removed in a future version. Please use \"minRows\" instead.`,\n )\n }\n if (field.max && !field.maxRows) {\n console.warn(\n `(payload): The \"max\" property is deprecated for the Relationship field \"${field.name}\" and will be removed in a future version. Please use \"maxRows\" instead.`,\n )\n }\n field.minRows = field.minRows || field.min\n field.maxRows = field.maxRows || field.max\n }\n\n if (field.type === 'upload') {\n if (!field.admin || !('isSortable' in field.admin)) {\n field.admin = {\n isSortable: true,\n ...field.admin,\n }\n }\n }\n\n if (field.type === 'array' && field.fields) {\n field.fields.push(baseIDField)\n }\n\n if ((field.type === 'blocks' || field.type === 'array') && field.label) {\n field.labels = field.labels || formatLabels(field.name)\n }\n\n if (fieldAffectsData(field)) {\n if (existingFieldNames.has(field.name)) {\n throw new DuplicateFieldName(field.name)\n } else if (!['blockName', 'id'].includes(field.name)) {\n existingFieldNames.add(field.name)\n }\n\n if (typeof field.localized !== 'undefined') {\n let shouldDisableLocalized = !config.localization\n\n if (!config.compatibility?.allowLocalizedWithinLocalized && parentIsLocalized) {\n shouldDisableLocalized = true\n }\n\n if (shouldDisableLocalized) {\n delete field.localized\n }\n }\n\n if (typeof field.validate === 'undefined') {\n const defaultValidate = validations[field.type]\n if (defaultValidate) {\n field.validate = (val, options) => defaultValidate(val, { ...field, ...options })\n } else {\n field.validate = (): true => true\n }\n }\n\n if (typeof field.virtual === 'undefined') {\n field.virtual = false\n }\n\n if (!field.hooks) {\n field.hooks = {}\n }\n if (!field.access) {\n field.access = {}\n }\n\n setDefaultBeforeDuplicate(field)\n }\n\n if (!field.admin) {\n field.admin = {}\n }\n\n // Make sure that the richText field has an editor\n if (field.type === 'richText') {\n const sanitizeRichText = async (_config: SanitizedConfig) => {\n if (!field.editor) {\n if (_config.editor && !requireFieldLevelRichTextEditor) {\n // config.editor should be sanitized at this point\n field.editor = _config.editor\n } else {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n }\n\n if (typeof field.editor === 'function') {\n field.editor = await field.editor({\n config: _config,\n isRoot: requireFieldLevelRichTextEditor,\n parentIsLocalized: parentIsLocalized || field.localized,\n })\n }\n\n if (field.editor.i18n && Object.keys(field.editor.i18n).length >= 0) {\n config.i18n.translations = deepMergeSimple(config.i18n.translations, field.editor.i18n)\n }\n }\n if (richTextSanitizationPromises) {\n richTextSanitizationPromises.push(sanitizeRichText)\n } else {\n await sanitizeRichText(config as unknown as SanitizedConfig)\n }\n }\n\n if (field.type === 'blocks' && field.blocks) {\n for (const block of field.blocks) {\n if (block._sanitized === true) {\n continue\n }\n block._sanitized = true\n block.fields = block.fields.concat(baseBlockFields)\n block.labels = !block.labels ? formatLabels(block.slug) : block.labels\n\n block.fields = await sanitizeFields({\n config,\n existingFieldNames: new Set(),\n fields: block.fields,\n parentIsLocalized: parentIsLocalized || field.localized,\n requireFieldLevelRichTextEditor,\n richTextSanitizationPromises,\n validRelationships,\n })\n }\n }\n\n if ('fields' in field && field.fields) {\n if ('name' in field && field.name) {\n schemaPath = `${schemaPath || ''}${schemaPath ? '.' : ''}${field.name}`\n }\n field.fields = await sanitizeFields({\n config,\n existingFieldNames: fieldAffectsData(field) ? new Set() : existingFieldNames,\n fields: field.fields,\n joins,\n parentIsLocalized: parentIsLocalized || field.localized,\n requireFieldLevelRichTextEditor,\n richTextSanitizationPromises,\n schemaPath,\n validRelationships,\n })\n }\n\n if (field.type === 'tabs') {\n for (let j = 0; j < field.tabs.length; j++) {\n const tab = field.tabs[j]\n if (tabHasName(tab)) {\n schemaPath = `${schemaPath || ''}${schemaPath ? '.' : ''}${tab.name}`\n if (typeof tab.label === 'undefined') {\n tab.label = toWords(tab.name)\n }\n }\n\n tab.fields = await sanitizeFields({\n config,\n existingFieldNames: tabHasName(tab) ? new Set() : existingFieldNames,\n fields: tab.fields,\n joins,\n parentIsLocalized: parentIsLocalized || (tabHasName(tab) && tab.localized),\n requireFieldLevelRichTextEditor,\n richTextSanitizationPromises,\n schemaPath,\n validRelationships,\n })\n field.tabs[j] = tab\n }\n }\n\n if (field.type === 'ui' && typeof field.admin.disableBulkEdit === 'undefined') {\n field.admin.disableBulkEdit = true\n }\n\n if ('_sanitized' in field) {\n field._sanitized = true\n }\n\n fields[i] = field\n }\n\n return fields\n}\n"],"names":["deepMergeSimple","DuplicateFieldName","InvalidFieldName","InvalidFieldRelationship","MissingEditorProp","MissingFieldType","formatLabels","toWords","baseBlockFields","baseIDField","setDefaultBeforeDuplicate","validations","sanitizeJoinField","fieldAffectsData","tabHasName","sanitizeFields","config","existingFieldNames","Set","fields","joins","parentIsLocalized","requireFieldLevelRichTextEditor","richTextSanitizationPromises","schemaPath","schemaPathArg","validRelationships","i","length","field","_sanitized","type","name","includes","label","defaultValue","required","relationships","Array","isArray","relationTo","forEach","relationship","min","minRows","console","warn","max","maxRows","admin","isSortable","push","labels","has","add","localized","shouldDisableLocalized","localization","compatibility","allowLocalizedWithinLocalized","validate","defaultValidate","val","options","virtual","hooks","access","sanitizeRichText","_config","editor","isRoot","i18n","Object","keys","translations","blocks","block","concat","slug","j","tabs","tab","disableBulkEdit"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/fields/config/sanitize.ts"],"sourcesContent":["import { deepMergeSimple } from '@payloadcms/translations/utilities'\n\nimport type { CollectionConfig, SanitizedJoins } from '../../collections/config/types.js'\nimport type { Config, SanitizedConfig } from '../../config/types.js'\nimport type { Field } from './types.js'\n\nimport {\n DuplicateFieldName,\n InvalidFieldName,\n InvalidFieldRelationship,\n MissingEditorProp,\n MissingFieldType,\n} from '../../errors/index.js'\nimport { formatLabels, toWords } from '../../utilities/formatLabels.js'\nimport { baseBlockFields } from '../baseFields/baseBlockFields.js'\nimport { baseIDField } from '../baseFields/baseIDField.js'\nimport { setDefaultBeforeDuplicate } from '../setDefaultBeforeDuplicate.js'\nimport validations from '../validations.js'\nimport { sanitizeJoinField } from './sanitizeJoinField.js'\nimport { fieldAffectsData, tabHasName } from './types.js'\n\ntype Args = {\n collectionConfig?: CollectionConfig\n config: Config\n existingFieldNames?: Set<string>\n fields: Field[]\n /**\n * When not passed in, assume that join are not supported (globals, arrays, blocks)\n */\n joins?: SanitizedJoins\n parentIsLocalized: boolean\n /**\n * If true, a richText field will require an editor property to be set, as the sanitizeFields function will not add it from the payload config if not present.\n *\n * @default false\n */\n requireFieldLevelRichTextEditor?: boolean\n\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 schemaPath?: string\n /**\n * If not null, will validate that upload and relationship fields do not relate to a collection that is not in this array.\n * This validation will be skipped if validRelationships is null.\n */\n validRelationships: null | string[]\n}\n\nfunction generateSchemaPath({ name, path = '' }: { name?: string; path?: string }): string {\n if (!name) {\n return path\n }\n return path ? `${path}.${name}` : name\n}\n\nexport const sanitizeFields = async ({\n config,\n existingFieldNames = new Set(),\n fields,\n joins,\n parentIsLocalized,\n requireFieldLevelRichTextEditor = false,\n richTextSanitizationPromises,\n schemaPath = '',\n validRelationships,\n}: Args): Promise<Field[]> => {\n if (!fields) {\n return []\n }\n\n for (let i = 0; i < fields.length; i++) {\n const field = fields[i]\n\n if ('_sanitized' in field && field._sanitized === true) {\n continue\n }\n\n if (!field.type) {\n throw new MissingFieldType(field)\n }\n\n // assert that field names do not contain forbidden characters\n if (fieldAffectsData(field) && field.name.includes('.')) {\n throw new InvalidFieldName(field, field.name)\n }\n\n // Auto-label\n if (\n 'name' in field &&\n field.name &&\n typeof field.label !== 'object' &&\n typeof field.label !== 'string' &&\n typeof field.label !== 'function' &&\n field.label !== false\n ) {\n field.label = toWords(field.name)\n }\n\n if (\n field.type === 'checkbox' &&\n typeof field.defaultValue === 'undefined' &&\n field.required === true\n ) {\n field.defaultValue = false\n }\n\n if (field.type === 'join') {\n sanitizeJoinField({ config, field, joins, schemaPath })\n }\n\n if (field.type === 'relationship' || field.type === 'upload') {\n if (validRelationships) {\n const relationships = Array.isArray(field.relationTo)\n ? field.relationTo\n : [field.relationTo]\n relationships.forEach((relationship: string) => {\n if (!validRelationships.includes(relationship)) {\n throw new InvalidFieldRelationship(field, relationship)\n }\n })\n }\n\n if (field.min && !field.minRows) {\n console.warn(\n `(payload): The \"min\" property is deprecated for the Relationship field \"${field.name}\" and will be removed in a future version. Please use \"minRows\" instead.`,\n )\n }\n if (field.max && !field.maxRows) {\n console.warn(\n `(payload): The \"max\" property is deprecated for the Relationship field \"${field.name}\" and will be removed in a future version. Please use \"maxRows\" instead.`,\n )\n }\n field.minRows = field.minRows || field.min\n field.maxRows = field.maxRows || field.max\n }\n\n if (field.type === 'upload') {\n if (!field.admin || !('isSortable' in field.admin)) {\n field.admin = {\n isSortable: true,\n ...field.admin,\n }\n }\n }\n\n if (field.type === 'array' && field.fields) {\n field.fields.push(baseIDField)\n }\n\n if ((field.type === 'blocks' || field.type === 'array') && field.label) {\n field.labels = field.labels || formatLabels(field.name)\n }\n\n if (fieldAffectsData(field)) {\n if (existingFieldNames.has(field.name)) {\n throw new DuplicateFieldName(field.name)\n } else if (!['blockName', 'id'].includes(field.name)) {\n existingFieldNames.add(field.name)\n }\n\n if (typeof field.localized !== 'undefined') {\n let shouldDisableLocalized = !config.localization\n\n if (!config.compatibility?.allowLocalizedWithinLocalized && parentIsLocalized) {\n shouldDisableLocalized = true\n }\n\n if (shouldDisableLocalized) {\n delete field.localized\n }\n }\n\n if (typeof field.validate === 'undefined') {\n const defaultValidate = validations[field.type]\n if (defaultValidate) {\n field.validate = (val, options) => defaultValidate(val, { ...field, ...options })\n } else {\n field.validate = (): true => true\n }\n }\n\n if (typeof field.virtual === 'undefined') {\n field.virtual = false\n }\n\n if (!field.hooks) {\n field.hooks = {}\n }\n if (!field.access) {\n field.access = {}\n }\n\n setDefaultBeforeDuplicate(field)\n }\n\n if (!field.admin) {\n field.admin = {}\n }\n\n // Make sure that the richText field has an editor\n if (field.type === 'richText') {\n const sanitizeRichText = async (_config: SanitizedConfig) => {\n if (!field.editor) {\n if (_config.editor && !requireFieldLevelRichTextEditor) {\n // config.editor should be sanitized at this point\n field.editor = _config.editor\n } else {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n }\n\n if (typeof field.editor === 'function') {\n field.editor = await field.editor({\n config: _config,\n isRoot: requireFieldLevelRichTextEditor,\n parentIsLocalized: parentIsLocalized || field.localized,\n })\n }\n\n if (field.editor.i18n && Object.keys(field.editor.i18n).length >= 0) {\n config.i18n.translations = deepMergeSimple(config.i18n.translations, field.editor.i18n)\n }\n }\n if (richTextSanitizationPromises) {\n richTextSanitizationPromises.push(sanitizeRichText)\n } else {\n await sanitizeRichText(config as unknown as SanitizedConfig)\n }\n }\n\n if (field.type === 'blocks' && field.blocks) {\n for (const block of field.blocks) {\n if (block._sanitized === true) {\n continue\n }\n block._sanitized = true\n block.fields = block.fields.concat(baseBlockFields)\n block.labels = !block.labels ? formatLabels(block.slug) : block.labels\n\n block.fields = await sanitizeFields({\n config,\n existingFieldNames: new Set(),\n fields: block.fields,\n parentIsLocalized: parentIsLocalized || field.localized,\n requireFieldLevelRichTextEditor,\n richTextSanitizationPromises,\n validRelationships,\n })\n }\n }\n\n if ('fields' in field && field.fields) {\n field.fields = await sanitizeFields({\n config,\n existingFieldNames: fieldAffectsData(field) ? new Set() : existingFieldNames,\n fields: field.fields,\n joins,\n parentIsLocalized: parentIsLocalized || field.localized,\n requireFieldLevelRichTextEditor,\n richTextSanitizationPromises,\n schemaPath: generateSchemaPath({\n name: 'name' in field ? field.name : undefined,\n path: schemaPath,\n }),\n validRelationships,\n })\n }\n\n if (field.type === 'tabs') {\n for (let j = 0; j < field.tabs.length; j++) {\n const tab = field.tabs[j]\n if (tabHasName(tab)) {\n if (typeof tab.label === 'undefined') {\n tab.label = toWords(tab.name)\n }\n }\n\n tab.fields = await sanitizeFields({\n config,\n existingFieldNames: tabHasName(tab) ? new Set() : existingFieldNames,\n fields: tab.fields,\n joins,\n parentIsLocalized: parentIsLocalized || (tabHasName(tab) && tab.localized),\n requireFieldLevelRichTextEditor,\n richTextSanitizationPromises,\n schemaPath: generateSchemaPath({\n name: 'name' in tab ? tab.name : undefined,\n path: schemaPath,\n }),\n validRelationships,\n })\n field.tabs[j] = tab\n }\n }\n\n if (field.type === 'ui' && typeof field.admin.disableBulkEdit === 'undefined') {\n field.admin.disableBulkEdit = true\n }\n\n if ('_sanitized' in field) {\n field._sanitized = true\n }\n\n fields[i] = field\n }\n\n return fields\n}\n"],"names":["deepMergeSimple","DuplicateFieldName","InvalidFieldName","InvalidFieldRelationship","MissingEditorProp","MissingFieldType","formatLabels","toWords","baseBlockFields","baseIDField","setDefaultBeforeDuplicate","validations","sanitizeJoinField","fieldAffectsData","tabHasName","generateSchemaPath","name","path","sanitizeFields","config","existingFieldNames","Set","fields","joins","parentIsLocalized","requireFieldLevelRichTextEditor","richTextSanitizationPromises","schemaPath","validRelationships","i","length","field","_sanitized","type","includes","label","defaultValue","required","relationships","Array","isArray","relationTo","forEach","relationship","min","minRows","console","warn","max","maxRows","admin","isSortable","push","labels","has","add","localized","shouldDisableLocalized","localization","compatibility","allowLocalizedWithinLocalized","validate","defaultValidate","val","options","virtual","hooks","access","sanitizeRichText","_config","editor","isRoot","i18n","Object","keys","translations","blocks","block","concat","slug","undefined","j","tabs","tab","disableBulkEdit"],"mappings":"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"}
@@ -6,6 +6,7 @@ type Args<TSlug extends GlobalSlug> = {
6
6
  autosave?: boolean;
7
7
  data: DeepPartial<Omit<DataFromGlobalSlug<TSlug>, 'id'>>;
8
8
  depth?: number;
9
+ disableTransaction?: boolean;
9
10
  draft?: boolean;
10
11
  globalConfig: SanitizedGlobalConfig;
11
12
  overrideAccess?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAc,MAAM,gBAAgB,CAAA;AAC5D,OAAO,KAAK,EAAa,cAAc,EAAS,MAAM,sBAAsB,CAAA;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAenF,KAAK,IAAI,CAAC,KAAK,SAAS,UAAU,IAAI;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;IACxD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,qBAAqB,CAAA;IACnC,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,eAAe,GAAU,KAAK,SAAS,UAAU,QACtD,IAAI,CAAC,KAAK,CAAC,KAChB,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAsTnC,CAAA"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAc,MAAM,gBAAgB,CAAA;AAC5D,OAAO,KAAK,EAAa,cAAc,EAAS,MAAM,sBAAsB,CAAA;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAenF,KAAK,IAAI,CAAC,KAAK,SAAS,UAAU,IAAI;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;IACxD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,qBAAqB,CAAA;IACnC,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,eAAe,GAAU,KAAK,SAAS,UAAU,QACtD,IAAI,CAAC,KAAK,CAAC,KAChB,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAmTnC,CAAA"}
@@ -14,9 +14,9 @@ export const updateOperation = async (args)=>{
14
14
  if (args.publishSpecificLocale) {
15
15
  args.req.locale = args.publishSpecificLocale;
16
16
  }
17
- const { slug, autosave, depth, draft: draftArg, globalConfig, overrideAccess, overrideLock, publishSpecificLocale, req: { fallbackLocale, locale, payload }, req, showHiddenFields } = args;
17
+ const { slug, autosave, depth, disableTransaction, draft: draftArg, globalConfig, overrideAccess, overrideLock, publishSpecificLocale, req: { fallbackLocale, locale, payload }, req, showHiddenFields } = args;
18
18
  try {
19
- const shouldCommit = await initTransaction(req);
19
+ const shouldCommit = !disableTransaction && await initTransaction(req);
20
20
  let { data } = args;
21
21
  const shouldSaveDraft = Boolean(draftArg && globalConfig.versions?.drafts);
22
22
  // /////////////////////////////////////
@@ -170,11 +170,7 @@ export const updateOperation = async (args)=>{
170
170
  const { globalType } = result;
171
171
  result = await saveVersion({
172
172
  autosave,
173
- docWithLocales: {
174
- ...result,
175
- createdAt: result.createdAt,
176
- updatedAt: result.updatedAt
177
- },
173
+ docWithLocales: result,
178
174
  draft: shouldSaveDraft,
179
175
  global: globalConfig,
180
176
  payload,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/globals/operations/update.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport type { GlobalSlug, JsonObject } from '../../index.js'\nimport type { Operation, PayloadRequest, Where } from '../../types/index.js'\nimport type { DataFromGlobalSlug, SanitizedGlobalConfig } from '../config/types.js'\n\nimport executeAccess from '../../auth/executeAccess.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 { deepCopyObjectSimple } from '../../index.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 { getLatestGlobalVersion } from '../../versions/getLatestGlobalVersion.js'\nimport { saveVersion } from '../../versions/saveVersion.js'\n\ntype Args<TSlug extends GlobalSlug> = {\n autosave?: boolean\n data: DeepPartial<Omit<DataFromGlobalSlug<TSlug>, 'id'>>\n depth?: number\n draft?: boolean\n globalConfig: SanitizedGlobalConfig\n overrideAccess?: boolean\n overrideLock?: boolean\n publishSpecificLocale?: string\n req: PayloadRequest\n showHiddenFields?: boolean\n slug: string\n}\n\nexport const updateOperation = async <TSlug extends GlobalSlug>(\n args: Args<TSlug>,\n): Promise<DataFromGlobalSlug<TSlug>> => {\n if (args.publishSpecificLocale) {\n args.req.locale = args.publishSpecificLocale\n }\n\n const {\n slug,\n autosave,\n depth,\n draft: draftArg,\n globalConfig,\n overrideAccess,\n overrideLock,\n publishSpecificLocale,\n req: { fallbackLocale, locale, payload },\n req,\n showHiddenFields,\n } = args\n\n try {\n const shouldCommit = await initTransaction(req)\n\n let { data } = args\n\n const shouldSaveDraft = Boolean(draftArg && globalConfig.versions?.drafts)\n\n // /////////////////////////////////////\n // 1. Retrieve and execute access\n // /////////////////////////////////////\n\n const accessResults = !overrideAccess\n ? await executeAccess(\n {\n data,\n req,\n },\n globalConfig.access.update,\n )\n : true\n\n // /////////////////////////////////////\n // Retrieve document\n // /////////////////////////////////////\n\n const query: Where = overrideAccess ? undefined : (accessResults as Where)\n\n // /////////////////////////////////////\n // 2. Retrieve document\n // /////////////////////////////////////\n const globalVersion = await getLatestGlobalVersion({\n slug,\n config: globalConfig,\n locale,\n payload,\n req,\n where: query,\n })\n const { global, globalExists } = globalVersion || {}\n\n let globalJSON: JsonObject = {}\n\n if (globalVersion && globalVersion.global) {\n globalJSON = deepCopyObjectSimple(global)\n\n if (globalJSON._id) {\n delete globalJSON._id\n }\n }\n\n const originalDoc = await afterRead({\n collection: null,\n context: req.context,\n depth: 0,\n doc: globalJSON,\n draft: draftArg,\n fallbackLocale,\n global: globalConfig,\n locale,\n overrideAccess: true,\n req,\n showHiddenFields,\n })\n\n // ///////////////////////////////////////////\n // Handle potentially locked global documents\n // ///////////////////////////////////////////\n\n await checkDocumentLockStatus({\n globalSlug: slug,\n lockErrorMessage: `Global with slug \"${slug}\" is currently locked by another user and cannot be updated.`,\n overrideLock,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n data = await beforeValidate({\n collection: null,\n context: req.context,\n data,\n doc: originalDoc,\n global: globalConfig,\n operation: 'update',\n overrideAccess,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Global\n // /////////////////////////////////////\n\n await globalConfig.hooks.beforeValidate.reduce(async (priorHook, hook) => {\n await priorHook\n\n data =\n (await hook({\n context: req.context,\n data,\n global: globalConfig,\n originalDoc,\n req,\n })) || data\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // beforeChange - Global\n // /////////////////////////////////////\n\n await globalConfig.hooks.beforeChange.reduce(async (priorHook, hook) => {\n await priorHook\n\n data =\n (await hook({\n context: req.context,\n data,\n global: globalConfig,\n originalDoc,\n req,\n })) || data\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // beforeChange - Fields\n // /////////////////////////////////////\n let publishedDocWithLocales = globalJSON\n let versionSnapshotResult\n\n const beforeChangeArgs = {\n collection: null,\n context: req.context,\n data,\n doc: originalDoc,\n docWithLocales: undefined,\n global: globalConfig,\n operation: 'update' as Operation,\n req,\n skipValidation:\n shouldSaveDraft && globalConfig.versions.drafts && !globalConfig.versions.drafts.validate,\n }\n\n if (publishSpecificLocale) {\n const latestVersion = await getLatestGlobalVersion({\n slug,\n config: globalConfig,\n payload,\n published: true,\n req,\n where: query,\n })\n\n publishedDocWithLocales = latestVersion?.global || {}\n\n versionSnapshotResult = await beforeChange({\n ...beforeChangeArgs,\n docWithLocales: globalJSON,\n })\n }\n\n let result = await beforeChange({\n ...beforeChangeArgs,\n docWithLocales: publishedDocWithLocales,\n })\n\n // /////////////////////////////////////\n // Update\n // /////////////////////////////////////\n\n if (!shouldSaveDraft) {\n if (globalExists) {\n result = await payload.db.updateGlobal({\n slug,\n data: result,\n req,\n })\n } else {\n result = await payload.db.createGlobal({\n slug,\n data: result,\n req,\n })\n }\n }\n\n // /////////////////////////////////////\n // Create version\n // /////////////////////////////////////\n if (globalConfig.versions) {\n const { globalType } = result\n result = await saveVersion({\n autosave,\n docWithLocales: {\n ...result,\n createdAt: result.createdAt,\n updatedAt: result.updatedAt,\n },\n draft: shouldSaveDraft,\n global: globalConfig,\n payload,\n publishSpecificLocale,\n req,\n snapshot: versionSnapshotResult,\n })\n\n result = {\n ...result,\n globalType,\n }\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: null,\n context: req.context,\n depth,\n doc: result,\n draft: draftArg,\n fallbackLocale: null,\n global: globalConfig,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n })\n\n // /////////////////////////////////////\n // afterRead - Global\n // /////////////////////////////////////\n\n await globalConfig.hooks.afterRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n context: req.context,\n doc: result,\n global: globalConfig,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterChange - Fields\n // /////////////////////////////////////\n\n result = await afterChange({\n collection: null,\n context: req.context,\n data,\n doc: result,\n global: globalConfig,\n operation: 'update',\n previousDoc: originalDoc,\n req,\n })\n\n // /////////////////////////////////////\n // afterChange - Global\n // /////////////////////////////////////\n\n await globalConfig.hooks.afterChange.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n context: req.context,\n doc: result,\n global: globalConfig,\n previousDoc: originalDoc,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n if (shouldCommit) {\n await commitTransaction(req)\n }\n\n return result\n } catch (error: unknown) {\n await killTransaction(req)\n throw error\n }\n}\n"],"names":["executeAccess","afterChange","afterRead","beforeChange","beforeValidate","deepCopyObjectSimple","checkDocumentLockStatus","commitTransaction","initTransaction","killTransaction","getLatestGlobalVersion","saveVersion","updateOperation","args","publishSpecificLocale","req","locale","slug","autosave","depth","draft","draftArg","globalConfig","overrideAccess","overrideLock","fallbackLocale","payload","showHiddenFields","shouldCommit","data","shouldSaveDraft","Boolean","versions","drafts","accessResults","access","update","query","undefined","globalVersion","config","where","global","globalExists","globalJSON","_id","originalDoc","collection","context","doc","globalSlug","lockErrorMessage","operation","hooks","reduce","priorHook","hook","Promise","resolve","publishedDocWithLocales","versionSnapshotResult","beforeChangeArgs","docWithLocales","skipValidation","validate","latestVersion","published","result","db","updateGlobal","createGlobal","globalType","createdAt","updatedAt","snapshot","previousDoc","error"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/globals/operations/update.ts"],"sourcesContent":["import type { DeepPartial } from 'ts-essentials'\n\nimport type { GlobalSlug, JsonObject } from '../../index.js'\nimport type { Operation, PayloadRequest, Where } from '../../types/index.js'\nimport type { DataFromGlobalSlug, SanitizedGlobalConfig } from '../config/types.js'\n\nimport executeAccess from '../../auth/executeAccess.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 { deepCopyObjectSimple } from '../../index.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 { getLatestGlobalVersion } from '../../versions/getLatestGlobalVersion.js'\nimport { saveVersion } from '../../versions/saveVersion.js'\n\ntype Args<TSlug extends GlobalSlug> = {\n autosave?: boolean\n data: DeepPartial<Omit<DataFromGlobalSlug<TSlug>, 'id'>>\n depth?: number\n disableTransaction?: boolean\n draft?: boolean\n globalConfig: SanitizedGlobalConfig\n overrideAccess?: boolean\n overrideLock?: boolean\n publishSpecificLocale?: string\n req: PayloadRequest\n showHiddenFields?: boolean\n slug: string\n}\n\nexport const updateOperation = async <TSlug extends GlobalSlug>(\n args: Args<TSlug>,\n): Promise<DataFromGlobalSlug<TSlug>> => {\n if (args.publishSpecificLocale) {\n args.req.locale = args.publishSpecificLocale\n }\n\n const {\n slug,\n autosave,\n depth,\n disableTransaction,\n draft: draftArg,\n globalConfig,\n overrideAccess,\n overrideLock,\n publishSpecificLocale,\n req: { fallbackLocale, locale, payload },\n req,\n showHiddenFields,\n } = args\n\n try {\n const shouldCommit = !disableTransaction && (await initTransaction(req))\n\n let { data } = args\n\n const shouldSaveDraft = Boolean(draftArg && globalConfig.versions?.drafts)\n\n // /////////////////////////////////////\n // 1. Retrieve and execute access\n // /////////////////////////////////////\n\n const accessResults = !overrideAccess\n ? await executeAccess(\n {\n data,\n req,\n },\n globalConfig.access.update,\n )\n : true\n\n // /////////////////////////////////////\n // Retrieve document\n // /////////////////////////////////////\n\n const query: Where = overrideAccess ? undefined : (accessResults as Where)\n\n // /////////////////////////////////////\n // 2. Retrieve document\n // /////////////////////////////////////\n const globalVersion = await getLatestGlobalVersion({\n slug,\n config: globalConfig,\n locale,\n payload,\n req,\n where: query,\n })\n const { global, globalExists } = globalVersion || {}\n\n let globalJSON: JsonObject = {}\n\n if (globalVersion && globalVersion.global) {\n globalJSON = deepCopyObjectSimple(global)\n\n if (globalJSON._id) {\n delete globalJSON._id\n }\n }\n\n const originalDoc = await afterRead({\n collection: null,\n context: req.context,\n depth: 0,\n doc: globalJSON,\n draft: draftArg,\n fallbackLocale,\n global: globalConfig,\n locale,\n overrideAccess: true,\n req,\n showHiddenFields,\n })\n\n // ///////////////////////////////////////////\n // Handle potentially locked global documents\n // ///////////////////////////////////////////\n\n await checkDocumentLockStatus({\n globalSlug: slug,\n lockErrorMessage: `Global with slug \"${slug}\" is currently locked by another user and cannot be updated.`,\n overrideLock,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n data = await beforeValidate({\n collection: null,\n context: req.context,\n data,\n doc: originalDoc,\n global: globalConfig,\n operation: 'update',\n overrideAccess,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Global\n // /////////////////////////////////////\n\n await globalConfig.hooks.beforeValidate.reduce(async (priorHook, hook) => {\n await priorHook\n\n data =\n (await hook({\n context: req.context,\n data,\n global: globalConfig,\n originalDoc,\n req,\n })) || data\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // beforeChange - Global\n // /////////////////////////////////////\n\n await globalConfig.hooks.beforeChange.reduce(async (priorHook, hook) => {\n await priorHook\n\n data =\n (await hook({\n context: req.context,\n data,\n global: globalConfig,\n originalDoc,\n req,\n })) || data\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // beforeChange - Fields\n // /////////////////////////////////////\n let publishedDocWithLocales = globalJSON\n let versionSnapshotResult\n\n const beforeChangeArgs = {\n collection: null,\n context: req.context,\n data,\n doc: originalDoc,\n docWithLocales: undefined,\n global: globalConfig,\n operation: 'update' as Operation,\n req,\n skipValidation:\n shouldSaveDraft && globalConfig.versions.drafts && !globalConfig.versions.drafts.validate,\n }\n\n if (publishSpecificLocale) {\n const latestVersion = await getLatestGlobalVersion({\n slug,\n config: globalConfig,\n payload,\n published: true,\n req,\n where: query,\n })\n\n publishedDocWithLocales = latestVersion?.global || {}\n\n versionSnapshotResult = await beforeChange({\n ...beforeChangeArgs,\n docWithLocales: globalJSON,\n })\n }\n\n let result = await beforeChange({\n ...beforeChangeArgs,\n docWithLocales: publishedDocWithLocales,\n })\n\n // /////////////////////////////////////\n // Update\n // /////////////////////////////////////\n\n if (!shouldSaveDraft) {\n if (globalExists) {\n result = await payload.db.updateGlobal({\n slug,\n data: result,\n req,\n })\n } else {\n result = await payload.db.createGlobal({\n slug,\n data: result,\n req,\n })\n }\n }\n\n // /////////////////////////////////////\n // Create version\n // /////////////////////////////////////\n if (globalConfig.versions) {\n const { globalType } = result\n result = await saveVersion({\n autosave,\n docWithLocales: result,\n draft: shouldSaveDraft,\n global: globalConfig,\n payload,\n publishSpecificLocale,\n req,\n snapshot: versionSnapshotResult,\n })\n\n result = {\n ...result,\n globalType,\n }\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: null,\n context: req.context,\n depth,\n doc: result,\n draft: draftArg,\n fallbackLocale: null,\n global: globalConfig,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n })\n\n // /////////////////////////////////////\n // afterRead - Global\n // /////////////////////////////////////\n\n await globalConfig.hooks.afterRead.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n context: req.context,\n doc: result,\n global: globalConfig,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // afterChange - Fields\n // /////////////////////////////////////\n\n result = await afterChange({\n collection: null,\n context: req.context,\n data,\n doc: result,\n global: globalConfig,\n operation: 'update',\n previousDoc: originalDoc,\n req,\n })\n\n // /////////////////////////////////////\n // afterChange - Global\n // /////////////////////////////////////\n\n await globalConfig.hooks.afterChange.reduce(async (priorHook, hook) => {\n await priorHook\n\n result =\n (await hook({\n context: req.context,\n doc: result,\n global: globalConfig,\n previousDoc: originalDoc,\n req,\n })) || result\n }, Promise.resolve())\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n if (shouldCommit) {\n await commitTransaction(req)\n }\n\n return result\n } catch (error: unknown) {\n await killTransaction(req)\n throw error\n }\n}\n"],"names":["executeAccess","afterChange","afterRead","beforeChange","beforeValidate","deepCopyObjectSimple","checkDocumentLockStatus","commitTransaction","initTransaction","killTransaction","getLatestGlobalVersion","saveVersion","updateOperation","args","publishSpecificLocale","req","locale","slug","autosave","depth","disableTransaction","draft","draftArg","globalConfig","overrideAccess","overrideLock","fallbackLocale","payload","showHiddenFields","shouldCommit","data","shouldSaveDraft","Boolean","versions","drafts","accessResults","access","update","query","undefined","globalVersion","config","where","global","globalExists","globalJSON","_id","originalDoc","collection","context","doc","globalSlug","lockErrorMessage","operation","hooks","reduce","priorHook","hook","Promise","resolve","publishedDocWithLocales","versionSnapshotResult","beforeChangeArgs","docWithLocales","skipValidation","validate","latestVersion","published","result","db","updateGlobal","createGlobal","globalType","snapshot","previousDoc","error"],"mappings":"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"}
@@ -1,6 +1,10 @@
1
+ import type { SanitizedCollectionConfig } from '../../collections/config/types.js';
1
2
  /**
2
3
  * Takes the incoming sort argument and prefixes it with `versions.` and preserves any `-` prefixes for descending order
3
4
  * @param sort
4
5
  */
5
- export declare const getQueryDraftsSort: (sort: string) => string;
6
+ export declare const getQueryDraftsSort: ({ collectionConfig, sort, }: {
7
+ collectionConfig: SanitizedCollectionConfig;
8
+ sort: string;
9
+ }) => string;
6
10
  //# sourceMappingURL=getQueryDraftsSort.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getQueryDraftsSort.d.ts","sourceRoot":"","sources":["../../../src/versions/drafts/getQueryDraftsSort.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,kBAAkB,SAAU,MAAM,KAAG,MAkBjD,CAAA"}
1
+ {"version":3,"file":"getQueryDraftsSort.d.ts","sourceRoot":"","sources":["../../../src/versions/drafts/getQueryDraftsSort.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAElF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,gCAG5B;IACD,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,IAAI,EAAE,MAAM,CAAA;CACb,KAAG,MAsBH,CAAA"}
@@ -1,9 +1,13 @@
1
1
  /**
2
2
  * Takes the incoming sort argument and prefixes it with `versions.` and preserves any `-` prefixes for descending order
3
3
  * @param sort
4
- */ export const getQueryDraftsSort = (sort)=>{
4
+ */ export const getQueryDraftsSort = ({ collectionConfig, sort })=>{
5
5
  if (!sort) {
6
- return sort;
6
+ if (collectionConfig.defaultSort) {
7
+ sort = collectionConfig.defaultSort;
8
+ } else {
9
+ sort = '-createdAt';
10
+ }
7
11
  }
8
12
  let direction = '';
9
13
  let orderBy = sort;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/versions/drafts/getQueryDraftsSort.ts"],"sourcesContent":["/**\n * Takes the incoming sort argument and prefixes it with `versions.` and preserves any `-` prefixes for descending order\n * @param sort\n */\nexport const getQueryDraftsSort = (sort: string): string => {\n if (!sort) {\n return sort\n }\n\n let direction = ''\n let orderBy = sort\n\n if (sort[0] === '-') {\n direction = '-'\n orderBy = sort.substring(1)\n }\n\n if (orderBy === 'id') {\n return `${direction}parent`\n }\n\n return `${direction}version.${orderBy}`\n}\n"],"names":["getQueryDraftsSort","sort","direction","orderBy","substring"],"mappings":"AAAA;;;CAGC,GACD,OAAO,MAAMA,qBAAqB,CAACC;IACjC,IAAI,CAACA,MAAM;QACT,OAAOA;IACT;IAEA,IAAIC,YAAY;IAChB,IAAIC,UAAUF;IAEd,IAAIA,IAAI,CAAC,EAAE,KAAK,KAAK;QACnBC,YAAY;QACZC,UAAUF,KAAKG,SAAS,CAAC;IAC3B;IAEA,IAAID,YAAY,MAAM;QACpB,OAAO,CAAC,EAAED,UAAU,MAAM,CAAC;IAC7B;IAEA,OAAO,CAAC,EAAEA,UAAU,QAAQ,EAAEC,QAAQ,CAAC;AACzC,EAAC"}
1
+ {"version":3,"sources":["../../../src/versions/drafts/getQueryDraftsSort.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../../collections/config/types.js'\n\n/**\n * Takes the incoming sort argument and prefixes it with `versions.` and preserves any `-` prefixes for descending order\n * @param sort\n */\nexport const getQueryDraftsSort = ({\n collectionConfig,\n sort,\n}: {\n collectionConfig: SanitizedCollectionConfig\n sort: string\n}): string => {\n if (!sort) {\n if (collectionConfig.defaultSort) {\n sort = collectionConfig.defaultSort\n } else {\n sort = '-createdAt'\n }\n }\n\n let direction = ''\n let orderBy = sort\n\n if (sort[0] === '-') {\n direction = '-'\n orderBy = sort.substring(1)\n }\n\n if (orderBy === 'id') {\n return `${direction}parent`\n }\n\n return `${direction}version.${orderBy}`\n}\n"],"names":["getQueryDraftsSort","collectionConfig","sort","defaultSort","direction","orderBy","substring"],"mappings":"AAEA;;;CAGC,GACD,OAAO,MAAMA,qBAAqB,CAAC,EACjCC,gBAAgB,EAChBC,IAAI,EAIL;IACC,IAAI,CAACA,MAAM;QACT,IAAID,iBAAiBE,WAAW,EAAE;YAChCD,OAAOD,iBAAiBE,WAAW;QACrC,OAAO;YACLD,OAAO;QACT;IACF;IAEA,IAAIE,YAAY;IAChB,IAAIC,UAAUH;IAEd,IAAIA,IAAI,CAAC,EAAE,KAAK,KAAK;QACnBE,YAAY;QACZC,UAAUH,KAAKI,SAAS,CAAC;IAC3B;IAEA,IAAID,YAAY,MAAM;QACpB,OAAO,CAAC,EAAED,UAAU,MAAM,CAAC;IAC7B;IAEA,OAAO,CAAC,EAAEA,UAAU,QAAQ,EAAEC,QAAQ,CAAC;AACzC,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getLatestCollectionVersion.d.ts","sourceRoot":"","sources":["../../src/versions/getLatestCollectionVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAGhE,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,yBAAyB,CAAA;IACjC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,EAAE,WAAW,CAAA;IAClB,GAAG,CAAC,EAAE,cAAc,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAU,CAAC,SAAS,UAAU,yDAOlE,IAAI,KAAG,OAAO,CAAC,CAAC,CAmClB,CAAA"}
1
+ {"version":3,"file":"getLatestCollectionVersion.d.ts","sourceRoot":"","sources":["../../src/versions/getLatestCollectionVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAGhE,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,yBAAyB,CAAA;IACjC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,EAAE,WAAW,CAAA;IAClB,GAAG,CAAC,EAAE,cAAc,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAU,CAAC,SAAS,UAAU,yDAOlE,IAAI,KAAG,OAAO,CAAC,CAAC,CAgClB,CAAA"}
@@ -48,12 +48,8 @@ export const getLatestCollectionVersion = async ({ id, config, payload, publishe
48
48
  }
49
49
  return undefined;
50
50
  }
51
- return {
52
- ...latestVersion.version,
53
- id,
54
- createdAt: latestVersion.createdAt,
55
- updatedAt: latestVersion.updatedAt
56
- };
51
+ latestVersion.version.id = id;
52
+ return latestVersion.version;
57
53
  };
58
54
 
59
55
  //# sourceMappingURL=getLatestCollectionVersion.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/versions/getLatestCollectionVersion.ts"],"sourcesContent":["import type { SanitizedCollectionConfig, TypeWithID } from '../collections/config/types.js'\nimport type { FindOneArgs } from '../database/types.js'\nimport type { Payload, PayloadRequest } from '../types/index.js'\nimport type { TypeWithVersion } from './types.js'\n\ntype Args = {\n config: SanitizedCollectionConfig\n id: number | string\n payload: Payload\n published?: boolean\n query: FindOneArgs\n req?: PayloadRequest\n}\n\nexport const getLatestCollectionVersion = async <T extends TypeWithID = any>({\n id,\n config,\n payload,\n published,\n query,\n req,\n}: Args): Promise<T> => {\n let latestVersion: TypeWithVersion<T>\n\n const whereQuery = published\n ? { and: [{ parent: { equals: id } }, { 'version._status': { equals: 'published' } }] }\n : { and: [{ parent: { equals: id } }, { latest: { equals: true } }] }\n\n if (config.versions?.drafts) {\n const { docs } = await payload.db.findVersions<T>({\n collection: config.slug,\n limit: 1,\n pagination: false,\n req,\n sort: '-updatedAt',\n where: whereQuery,\n })\n ;[latestVersion] = docs\n }\n\n if (!latestVersion) {\n if (!published) {\n const doc = await payload.db.findOne<T>({ ...query, req })\n\n return doc\n }\n\n return undefined\n }\n\n return {\n ...latestVersion.version,\n id,\n createdAt: latestVersion.createdAt,\n updatedAt: latestVersion.updatedAt,\n }\n}\n"],"names":["getLatestCollectionVersion","id","config","payload","published","query","req","latestVersion","whereQuery","and","parent","equals","latest","versions","drafts","docs","db","findVersions","collection","slug","limit","pagination","sort","where","doc","findOne","undefined","version","createdAt","updatedAt"],"mappings":"AAcA,OAAO,MAAMA,6BAA6B,OAAmC,EAC3EC,EAAE,EACFC,MAAM,EACNC,OAAO,EACPC,SAAS,EACTC,KAAK,EACLC,GAAG,EACE;IACL,IAAIC;IAEJ,MAAMC,aAAaJ,YACf;QAAEK,KAAK;YAAC;gBAAEC,QAAQ;oBAAEC,QAAQV;gBAAG;YAAE;YAAG;gBAAE,mBAAmB;oBAAEU,QAAQ;gBAAY;YAAE;SAAE;IAAC,IACpF;QAAEF,KAAK;YAAC;gBAAEC,QAAQ;oBAAEC,QAAQV;gBAAG;YAAE;YAAG;gBAAEW,QAAQ;oBAAED,QAAQ;gBAAK;YAAE;SAAE;IAAC;IAEtE,IAAIT,OAAOW,QAAQ,EAAEC,QAAQ;QAC3B,MAAM,EAAEC,IAAI,EAAE,GAAG,MAAMZ,QAAQa,EAAE,CAACC,YAAY,CAAI;YAChDC,YAAYhB,OAAOiB,IAAI;YACvBC,OAAO;YACPC,YAAY;YACZf;YACAgB,MAAM;YACNC,OAAOf;QACT;QACC,CAACD,cAAc,GAAGQ;IACrB;IAEA,IAAI,CAACR,eAAe;QAClB,IAAI,CAACH,WAAW;YACd,MAAMoB,MAAM,MAAMrB,QAAQa,EAAE,CAACS,OAAO,CAAI;gBAAE,GAAGpB,KAAK;gBAAEC;YAAI;YAExD,OAAOkB;QACT;QAEA,OAAOE;IACT;IAEA,OAAO;QACL,GAAGnB,cAAcoB,OAAO;QACxB1B;QACA2B,WAAWrB,cAAcqB,SAAS;QAClCC,WAAWtB,cAAcsB,SAAS;IACpC;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/versions/getLatestCollectionVersion.ts"],"sourcesContent":["import type { SanitizedCollectionConfig, TypeWithID } from '../collections/config/types.js'\nimport type { FindOneArgs } from '../database/types.js'\nimport type { Payload, PayloadRequest } from '../types/index.js'\nimport type { TypeWithVersion } from './types.js'\n\ntype Args = {\n config: SanitizedCollectionConfig\n id: number | string\n payload: Payload\n published?: boolean\n query: FindOneArgs\n req?: PayloadRequest\n}\n\nexport const getLatestCollectionVersion = async <T extends TypeWithID = any>({\n id,\n config,\n payload,\n published,\n query,\n req,\n}: Args): Promise<T> => {\n let latestVersion: TypeWithVersion<T>\n\n const whereQuery = published\n ? { and: [{ parent: { equals: id } }, { 'version._status': { equals: 'published' } }] }\n : { and: [{ parent: { equals: id } }, { latest: { equals: true } }] }\n\n if (config.versions?.drafts) {\n const { docs } = await payload.db.findVersions<T>({\n collection: config.slug,\n limit: 1,\n pagination: false,\n req,\n sort: '-updatedAt',\n where: whereQuery,\n })\n ;[latestVersion] = docs\n }\n\n if (!latestVersion) {\n if (!published) {\n const doc = await payload.db.findOne<T>({ ...query, req })\n\n return doc\n }\n\n return undefined\n }\n\n latestVersion.version.id = id\n\n return latestVersion.version\n}\n"],"names":["getLatestCollectionVersion","id","config","payload","published","query","req","latestVersion","whereQuery","and","parent","equals","latest","versions","drafts","docs","db","findVersions","collection","slug","limit","pagination","sort","where","doc","findOne","undefined","version"],"mappings":"AAcA,OAAO,MAAMA,6BAA6B,OAAmC,EAC3EC,EAAE,EACFC,MAAM,EACNC,OAAO,EACPC,SAAS,EACTC,KAAK,EACLC,GAAG,EACE;IACL,IAAIC;IAEJ,MAAMC,aAAaJ,YACf;QAAEK,KAAK;YAAC;gBAAEC,QAAQ;oBAAEC,QAAQV;gBAAG;YAAE;YAAG;gBAAE,mBAAmB;oBAAEU,QAAQ;gBAAY;YAAE;SAAE;IAAC,IACpF;QAAEF,KAAK;YAAC;gBAAEC,QAAQ;oBAAEC,QAAQV;gBAAG;YAAE;YAAG;gBAAEW,QAAQ;oBAAED,QAAQ;gBAAK;YAAE;SAAE;IAAC;IAEtE,IAAIT,OAAOW,QAAQ,EAAEC,QAAQ;QAC3B,MAAM,EAAEC,IAAI,EAAE,GAAG,MAAMZ,QAAQa,EAAE,CAACC,YAAY,CAAI;YAChDC,YAAYhB,OAAOiB,IAAI;YACvBC,OAAO;YACPC,YAAY;YACZf;YACAgB,MAAM;YACNC,OAAOf;QACT;QACC,CAACD,cAAc,GAAGQ;IACrB;IAEA,IAAI,CAACR,eAAe;QAClB,IAAI,CAACH,WAAW;YACd,MAAMoB,MAAM,MAAMrB,QAAQa,EAAE,CAACS,OAAO,CAAI;gBAAE,GAAGpB,KAAK;gBAAEC;YAAI;YAExD,OAAOkB;QACT;QAEA,OAAOE;IACT;IAEAnB,cAAcoB,OAAO,CAAC1B,EAAE,GAAGA;IAE3B,OAAOM,cAAcoB,OAAO;AAC9B,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getLatestGlobalVersion.d.ts","sourceRoot":"","sources":["../../src/versions/getLatestGlobalVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAIjF,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,qBAAqB,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,eAAO,MAAM,sBAAsB,8DAQhC,IAAI,KAAG,OAAO,CAAC;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAAE,CA2C5D,CAAA"}
1
+ {"version":3,"file":"getLatestGlobalVersion.d.ts","sourceRoot":"","sources":["../../src/versions/getLatestGlobalVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAIjF,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,qBAAqB,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,eAAO,MAAM,sBAAsB,8DAQhC,IAAI,KAAG,OAAO,CAAC;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAAE,CA+C5D,CAAA"}
@@ -32,12 +32,14 @@ export const getLatestGlobalVersion = async ({ slug, config, locale, payload, pu
32
32
  globalExists
33
33
  };
34
34
  }
35
+ if (!latestVersion.version.createdAt) {
36
+ latestVersion.version.createdAt = latestVersion.createdAt;
37
+ }
38
+ if (!latestVersion.version.updatedAt) {
39
+ latestVersion.version.updatedAt = latestVersion.updatedAt;
40
+ }
35
41
  return {
36
- global: {
37
- ...latestVersion.version,
38
- createdAt: latestVersion.createdAt,
39
- updatedAt: latestVersion.updatedAt
40
- },
42
+ global: latestVersion.version,
41
43
  globalExists
42
44
  };
43
45
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/versions/getLatestGlobalVersion.ts"],"sourcesContent":["import type { SanitizedGlobalConfig } from '../globals/config/types.js'\nimport type { Document, Payload, PayloadRequest, Where } from '../types/index.js'\n\nimport { docHasTimestamps } from '../types/index.js'\n\ntype Args = {\n config: SanitizedGlobalConfig\n locale?: string\n payload: Payload\n published?: boolean\n req?: PayloadRequest\n slug: string\n where: Where\n}\n\nexport const getLatestGlobalVersion = async ({\n slug,\n config,\n locale,\n payload,\n published,\n req,\n where,\n}: Args): Promise<{ global: Document; globalExists: boolean }> => {\n let latestVersion\n\n const whereQuery = published\n ? { 'version._status': { equals: 'published' } }\n : { latest: { equals: true } }\n\n if (config.versions?.drafts) {\n latestVersion = (\n await payload.db.findGlobalVersions({\n global: slug,\n limit: 1,\n locale,\n pagination: false,\n req,\n where: whereQuery,\n })\n ).docs[0]\n }\n\n const global = await payload.db.findGlobal({\n slug,\n locale,\n req,\n where,\n })\n const globalExists = Boolean(global)\n\n if (!latestVersion) {\n return {\n global,\n globalExists,\n }\n }\n\n return {\n global: {\n ...latestVersion.version,\n createdAt: latestVersion.createdAt,\n updatedAt: latestVersion.updatedAt,\n },\n globalExists,\n }\n}\n"],"names":["getLatestGlobalVersion","slug","config","locale","payload","published","req","where","latestVersion","whereQuery","equals","latest","versions","drafts","db","findGlobalVersions","global","limit","pagination","docs","findGlobal","globalExists","Boolean","version","createdAt","updatedAt"],"mappings":"AAeA,OAAO,MAAMA,yBAAyB,OAAO,EAC3CC,IAAI,EACJC,MAAM,EACNC,MAAM,EACNC,OAAO,EACPC,SAAS,EACTC,GAAG,EACHC,KAAK,EACA;IACL,IAAIC;IAEJ,MAAMC,aAAaJ,YACf;QAAE,mBAAmB;YAAEK,QAAQ;QAAY;IAAE,IAC7C;QAAEC,QAAQ;YAAED,QAAQ;QAAK;IAAE;IAE/B,IAAIR,OAAOU,QAAQ,EAAEC,QAAQ;QAC3BL,gBAAgB,AACd,CAAA,MAAMJ,QAAQU,EAAE,CAACC,kBAAkB,CAAC;YAClCC,QAAQf;YACRgB,OAAO;YACPd;YACAe,YAAY;YACZZ;YACAC,OAAOE;QACT,EAAC,EACDU,IAAI,CAAC,EAAE;IACX;IAEA,MAAMH,SAAS,MAAMZ,QAAQU,EAAE,CAACM,UAAU,CAAC;QACzCnB;QACAE;QACAG;QACAC;IACF;IACA,MAAMc,eAAeC,QAAQN;IAE7B,IAAI,CAACR,eAAe;QAClB,OAAO;YACLQ;YACAK;QACF;IACF;IAEA,OAAO;QACLL,QAAQ;YACN,GAAGR,cAAce,OAAO;YACxBC,WAAWhB,cAAcgB,SAAS;YAClCC,WAAWjB,cAAciB,SAAS;QACpC;QACAJ;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/versions/getLatestGlobalVersion.ts"],"sourcesContent":["import type { SanitizedGlobalConfig } from '../globals/config/types.js'\nimport type { Document, Payload, PayloadRequest, Where } from '../types/index.js'\n\nimport { docHasTimestamps } from '../types/index.js'\n\ntype Args = {\n config: SanitizedGlobalConfig\n locale?: string\n payload: Payload\n published?: boolean\n req?: PayloadRequest\n slug: string\n where: Where\n}\n\nexport const getLatestGlobalVersion = async ({\n slug,\n config,\n locale,\n payload,\n published,\n req,\n where,\n}: Args): Promise<{ global: Document; globalExists: boolean }> => {\n let latestVersion\n\n const whereQuery = published\n ? { 'version._status': { equals: 'published' } }\n : { latest: { equals: true } }\n\n if (config.versions?.drafts) {\n latestVersion = (\n await payload.db.findGlobalVersions({\n global: slug,\n limit: 1,\n locale,\n pagination: false,\n req,\n where: whereQuery,\n })\n ).docs[0]\n }\n\n const global = await payload.db.findGlobal({\n slug,\n locale,\n req,\n where,\n })\n const globalExists = Boolean(global)\n\n if (!latestVersion) {\n return {\n global,\n globalExists,\n }\n }\n\n if (!latestVersion.version.createdAt) {\n latestVersion.version.createdAt = latestVersion.createdAt\n }\n\n if (!latestVersion.version.updatedAt) {\n latestVersion.version.updatedAt = latestVersion.updatedAt\n }\n\n return {\n global: latestVersion.version,\n globalExists,\n }\n}\n"],"names":["getLatestGlobalVersion","slug","config","locale","payload","published","req","where","latestVersion","whereQuery","equals","latest","versions","drafts","db","findGlobalVersions","global","limit","pagination","docs","findGlobal","globalExists","Boolean","version","createdAt","updatedAt"],"mappings":"AAeA,OAAO,MAAMA,yBAAyB,OAAO,EAC3CC,IAAI,EACJC,MAAM,EACNC,MAAM,EACNC,OAAO,EACPC,SAAS,EACTC,GAAG,EACHC,KAAK,EACA;IACL,IAAIC;IAEJ,MAAMC,aAAaJ,YACf;QAAE,mBAAmB;YAAEK,QAAQ;QAAY;IAAE,IAC7C;QAAEC,QAAQ;YAAED,QAAQ;QAAK;IAAE;IAE/B,IAAIR,OAAOU,QAAQ,EAAEC,QAAQ;QAC3BL,gBAAgB,AACd,CAAA,MAAMJ,QAAQU,EAAE,CAACC,kBAAkB,CAAC;YAClCC,QAAQf;YACRgB,OAAO;YACPd;YACAe,YAAY;YACZZ;YACAC,OAAOE;QACT,EAAC,EACDU,IAAI,CAAC,EAAE;IACX;IAEA,MAAMH,SAAS,MAAMZ,QAAQU,EAAE,CAACM,UAAU,CAAC;QACzCnB;QACAE;QACAG;QACAC;IACF;IACA,MAAMc,eAAeC,QAAQN;IAE7B,IAAI,CAACR,eAAe;QAClB,OAAO;YACLQ;YACAK;QACF;IACF;IAEA,IAAI,CAACb,cAAce,OAAO,CAACC,SAAS,EAAE;QACpChB,cAAce,OAAO,CAACC,SAAS,GAAGhB,cAAcgB,SAAS;IAC3D;IAEA,IAAI,CAAChB,cAAce,OAAO,CAACE,SAAS,EAAE;QACpCjB,cAAce,OAAO,CAACE,SAAS,GAAGjB,cAAciB,SAAS;IAC3D;IAEA,OAAO;QACLT,QAAQR,cAAce,OAAO;QAC7BF;IACF;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"saveVersion.d.ts","sourceRoot":"","sources":["../../src/versions/saveVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAMvD,KAAK,IAAI,GAAG;IACV,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,yBAAyB,CAAA;IACtC,cAAc,EAAE,GAAG,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,qBAAqB,CAAA;IAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,QAAQ,CAAC,EAAE,GAAG,CAAA;CACf,CAAA;AAED,eAAO,MAAM,WAAW,qHAWrB,IAAI,KAAG,OAAO,CAAC,UAAU,CA0K3B,CAAA"}
1
+ {"version":3,"file":"saveVersion.d.ts","sourceRoot":"","sources":["../../src/versions/saveVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAMvD,KAAK,IAAI,GAAG;IACV,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,yBAAyB,CAAA;IACtC,cAAc,EAAE,GAAG,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,qBAAqB,CAAA;IAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,QAAQ,CAAC,EAAE,GAAG,CAAA;CACf,CAAA;AAED,eAAO,MAAM,WAAW,qHAWrB,IAAI,KAAG,OAAO,CAAC,UAAU,CAwK3B,CAAA"}
@@ -49,7 +49,7 @@ export const saveVersion = async ({ id, autosave, collection, docWithLocales: do
49
49
  createNewVersion = false;
50
50
  const data = {
51
51
  createdAt: new Date(latestVersion.createdAt).toISOString(),
52
- updatedAt: draft ? now : new Date(doc.updatedAt).toISOString(),
52
+ updatedAt: now,
53
53
  version: {
54
54
  ...versionData
55
55
  }
@@ -78,12 +78,12 @@ export const saveVersion = async ({ id, autosave, collection, docWithLocales: do
78
78
  const createVersionArgs = {
79
79
  autosave: Boolean(autosave),
80
80
  collectionSlug: undefined,
81
- createdAt: doc?.createdAt ? new Date(doc.createdAt).toISOString() : now,
81
+ createdAt: now,
82
82
  globalSlug: undefined,
83
83
  parent: collection ? id : undefined,
84
84
  publishedLocale: publishSpecificLocale || undefined,
85
85
  req,
86
- updatedAt: draft ? now : new Date(doc.updatedAt).toISOString(),
86
+ updatedAt: now,
87
87
  versionData
88
88
  };
89
89
  if (collection) {
@@ -146,8 +146,6 @@ export const saveVersion = async ({ id, autosave, collection, docWithLocales: do
146
146
  });
147
147
  }
148
148
  let createdVersion = result.version;
149
- createdVersion.createdAt = result.createdAt;
150
- createdVersion.updatedAt = result.updatedAt;
151
149
  createdVersion = sanitizeInternalFields(createdVersion);
152
150
  createdVersion.id = result.parent;
153
151
  return createdVersion;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/versions/saveVersion.ts"],"sourcesContent":["import type { SanitizedCollectionConfig, TypeWithID } from '../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../globals/config/types.js'\nimport type { Payload } from '../index.js'\nimport type { PayloadRequest } from '../types/index.js'\n\nimport { deepCopyObjectSimple } from '../index.js'\nimport sanitizeInternalFields from '../utilities/sanitizeInternalFields.js'\nimport { enforceMaxVersions } from './enforceMaxVersions.js'\n\ntype Args = {\n autosave?: boolean\n collection?: SanitizedCollectionConfig\n docWithLocales: any\n draft?: boolean\n global?: SanitizedGlobalConfig\n id?: number | string\n payload: Payload\n publishSpecificLocale?: string\n req?: PayloadRequest\n snapshot?: any\n}\n\nexport const saveVersion = async ({\n id,\n autosave,\n collection,\n docWithLocales: doc,\n draft,\n global,\n payload,\n publishSpecificLocale,\n req,\n snapshot,\n}: Args): Promise<TypeWithID> => {\n let result\n let createNewVersion = true\n const now = new Date().toISOString()\n const versionData = deepCopyObjectSimple(doc)\n if (draft) {\n versionData._status = 'draft'\n }\n if (versionData._id) {\n delete versionData._id\n }\n\n try {\n if (autosave) {\n let docs\n const findVersionArgs = {\n limit: 1,\n pagination: false,\n req,\n sort: '-updatedAt',\n }\n if (collection) {\n ;({ docs } = await payload.db.findVersions({\n ...findVersionArgs,\n collection: collection.slug,\n limit: 1,\n pagination: false,\n req,\n where: {\n parent: {\n equals: id,\n },\n },\n }))\n } else {\n ;({ docs } = await payload.db.findGlobalVersions({\n ...findVersionArgs,\n global: global.slug,\n limit: 1,\n pagination: false,\n req,\n }))\n }\n const [latestVersion] = docs\n\n // overwrite the latest version if it's set to autosave\n if (latestVersion?.autosave === true) {\n createNewVersion = false\n\n const data: Record<string, unknown> = {\n createdAt: new Date(latestVersion.createdAt).toISOString(),\n updatedAt: draft ? now : new Date(doc.updatedAt).toISOString(),\n version: {\n ...versionData,\n },\n }\n\n const updateVersionArgs = {\n id: latestVersion.id,\n req,\n versionData: data as TypeWithID,\n }\n\n if (collection) {\n result = await payload.db.updateVersion({\n ...updateVersionArgs,\n collection: collection.slug,\n req,\n })\n } else {\n result = await payload.db.updateGlobalVersion({\n ...updateVersionArgs,\n global: global.slug,\n req,\n })\n }\n }\n }\n\n if (createNewVersion) {\n const createVersionArgs = {\n autosave: Boolean(autosave),\n collectionSlug: undefined,\n createdAt: doc?.createdAt ? new Date(doc.createdAt).toISOString() : now,\n globalSlug: undefined,\n parent: collection ? id : undefined,\n publishedLocale: publishSpecificLocale || undefined,\n req,\n updatedAt: draft ? now : new Date(doc.updatedAt).toISOString(),\n versionData,\n }\n\n if (collection) {\n createVersionArgs.collectionSlug = collection.slug\n result = await payload.db.createVersion(createVersionArgs)\n }\n\n if (global) {\n createVersionArgs.globalSlug = global.slug\n result = await payload.db.createGlobalVersion(createVersionArgs)\n }\n\n if (publishSpecificLocale && snapshot) {\n const snapshotData = deepCopyObjectSimple(snapshot)\n if (snapshotData._id) {\n delete snapshotData._id\n }\n\n snapshotData._status = 'draft'\n\n const snapshotDate = new Date().toISOString()\n\n const updatedArgs = {\n ...createVersionArgs,\n createdAt: snapshotDate,\n snapshot: true,\n updatedAt: snapshotDate,\n versionData: snapshotData,\n } as any\n\n if (collection) {\n await payload.db.createVersion(updatedArgs)\n }\n if (global) {\n await payload.db.createGlobalVersion(updatedArgs)\n }\n }\n }\n } catch (err) {\n let errorMessage: string\n\n if (collection) {\n errorMessage = `There was an error while saving a version for the ${collection.labels.singular} with ID ${id}.`\n }\n if (global) {\n errorMessage = `There was an error while saving a version for the global ${global.label}.`\n }\n payload.logger.error(errorMessage)\n payload.logger.error(err)\n return\n }\n\n let max = 100\n\n if (collection && typeof collection.versions.maxPerDoc === 'number') {\n max = collection.versions.maxPerDoc\n }\n if (global && typeof global.versions.max === 'number') {\n max = global.versions.max\n }\n\n if (createNewVersion && max > 0) {\n await enforceMaxVersions({\n id,\n collection,\n global,\n max,\n payload,\n req,\n })\n }\n\n let createdVersion = result.version\n createdVersion.createdAt = result.createdAt\n createdVersion.updatedAt = result.updatedAt\n\n createdVersion = sanitizeInternalFields(createdVersion)\n createdVersion.id = result.parent\n\n return createdVersion\n}\n"],"names":["deepCopyObjectSimple","sanitizeInternalFields","enforceMaxVersions","saveVersion","id","autosave","collection","docWithLocales","doc","draft","global","payload","publishSpecificLocale","req","snapshot","result","createNewVersion","now","Date","toISOString","versionData","_status","_id","docs","findVersionArgs","limit","pagination","sort","db","findVersions","slug","where","parent","equals","findGlobalVersions","latestVersion","data","createdAt","updatedAt","version","updateVersionArgs","updateVersion","updateGlobalVersion","createVersionArgs","Boolean","collectionSlug","undefined","globalSlug","publishedLocale","createVersion","createGlobalVersion","snapshotData","snapshotDate","updatedArgs","err","errorMessage","labels","singular","label","logger","error","max","versions","maxPerDoc","createdVersion"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/versions/saveVersion.ts"],"sourcesContent":["import type { SanitizedCollectionConfig, TypeWithID } from '../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../globals/config/types.js'\nimport type { Payload } from '../index.js'\nimport type { PayloadRequest } from '../types/index.js'\n\nimport { deepCopyObjectSimple } from '../index.js'\nimport sanitizeInternalFields from '../utilities/sanitizeInternalFields.js'\nimport { enforceMaxVersions } from './enforceMaxVersions.js'\n\ntype Args = {\n autosave?: boolean\n collection?: SanitizedCollectionConfig\n docWithLocales: any\n draft?: boolean\n global?: SanitizedGlobalConfig\n id?: number | string\n payload: Payload\n publishSpecificLocale?: string\n req?: PayloadRequest\n snapshot?: any\n}\n\nexport const saveVersion = async ({\n id,\n autosave,\n collection,\n docWithLocales: doc,\n draft,\n global,\n payload,\n publishSpecificLocale,\n req,\n snapshot,\n}: Args): Promise<TypeWithID> => {\n let result\n let createNewVersion = true\n const now = new Date().toISOString()\n const versionData = deepCopyObjectSimple(doc)\n if (draft) {\n versionData._status = 'draft'\n }\n if (versionData._id) {\n delete versionData._id\n }\n\n try {\n if (autosave) {\n let docs\n const findVersionArgs = {\n limit: 1,\n pagination: false,\n req,\n sort: '-updatedAt',\n }\n if (collection) {\n ;({ docs } = await payload.db.findVersions({\n ...findVersionArgs,\n collection: collection.slug,\n limit: 1,\n pagination: false,\n req,\n where: {\n parent: {\n equals: id,\n },\n },\n }))\n } else {\n ;({ docs } = await payload.db.findGlobalVersions({\n ...findVersionArgs,\n global: global.slug,\n limit: 1,\n pagination: false,\n req,\n }))\n }\n const [latestVersion] = docs\n\n // overwrite the latest version if it's set to autosave\n if (latestVersion?.autosave === true) {\n createNewVersion = false\n\n const data: Record<string, unknown> = {\n createdAt: new Date(latestVersion.createdAt).toISOString(),\n updatedAt: now,\n version: {\n ...versionData,\n },\n }\n\n const updateVersionArgs = {\n id: latestVersion.id,\n req,\n versionData: data as TypeWithID,\n }\n\n if (collection) {\n result = await payload.db.updateVersion({\n ...updateVersionArgs,\n collection: collection.slug,\n req,\n })\n } else {\n result = await payload.db.updateGlobalVersion({\n ...updateVersionArgs,\n global: global.slug,\n req,\n })\n }\n }\n }\n\n if (createNewVersion) {\n const createVersionArgs = {\n autosave: Boolean(autosave),\n collectionSlug: undefined,\n createdAt: now,\n globalSlug: undefined,\n parent: collection ? id : undefined,\n publishedLocale: publishSpecificLocale || undefined,\n req,\n updatedAt: now,\n versionData,\n }\n\n if (collection) {\n createVersionArgs.collectionSlug = collection.slug\n result = await payload.db.createVersion(createVersionArgs)\n }\n\n if (global) {\n createVersionArgs.globalSlug = global.slug\n result = await payload.db.createGlobalVersion(createVersionArgs)\n }\n\n if (publishSpecificLocale && snapshot) {\n const snapshotData = deepCopyObjectSimple(snapshot)\n if (snapshotData._id) {\n delete snapshotData._id\n }\n\n snapshotData._status = 'draft'\n\n const snapshotDate = new Date().toISOString()\n\n const updatedArgs = {\n ...createVersionArgs,\n createdAt: snapshotDate,\n snapshot: true,\n updatedAt: snapshotDate,\n versionData: snapshotData,\n } as any\n\n if (collection) {\n await payload.db.createVersion(updatedArgs)\n }\n if (global) {\n await payload.db.createGlobalVersion(updatedArgs)\n }\n }\n }\n } catch (err) {\n let errorMessage: string\n\n if (collection) {\n errorMessage = `There was an error while saving a version for the ${collection.labels.singular} with ID ${id}.`\n }\n if (global) {\n errorMessage = `There was an error while saving a version for the global ${global.label}.`\n }\n payload.logger.error(errorMessage)\n payload.logger.error(err)\n return\n }\n\n let max = 100\n\n if (collection && typeof collection.versions.maxPerDoc === 'number') {\n max = collection.versions.maxPerDoc\n }\n if (global && typeof global.versions.max === 'number') {\n max = global.versions.max\n }\n\n if (createNewVersion && max > 0) {\n await enforceMaxVersions({\n id,\n collection,\n global,\n max,\n payload,\n req,\n })\n }\n\n let createdVersion = result.version\n\n createdVersion = sanitizeInternalFields(createdVersion)\n createdVersion.id = result.parent\n\n return createdVersion\n}\n"],"names":["deepCopyObjectSimple","sanitizeInternalFields","enforceMaxVersions","saveVersion","id","autosave","collection","docWithLocales","doc","draft","global","payload","publishSpecificLocale","req","snapshot","result","createNewVersion","now","Date","toISOString","versionData","_status","_id","docs","findVersionArgs","limit","pagination","sort","db","findVersions","slug","where","parent","equals","findGlobalVersions","latestVersion","data","createdAt","updatedAt","version","updateVersionArgs","updateVersion","updateGlobalVersion","createVersionArgs","Boolean","collectionSlug","undefined","globalSlug","publishedLocale","createVersion","createGlobalVersion","snapshotData","snapshotDate","updatedArgs","err","errorMessage","labels","singular","label","logger","error","max","versions","maxPerDoc","createdVersion"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload",
3
- "version": "3.0.0-beta.113",
3
+ "version": "3.0.0-beta.115",
4
4
  "description": "Node, React, Headless CMS and Application Framework built on Next.js",
5
5
  "keywords": [
6
6
  "admin panel",
@@ -95,7 +95,7 @@
95
95
  "ts-essentials": "10.0.2",
96
96
  "tsx": "4.19.1",
97
97
  "uuid": "10.0.0",
98
- "@payloadcms/translations": "3.0.0-beta.113"
98
+ "@payloadcms/translations": "3.0.0-beta.115"
99
99
  },
100
100
  "devDependencies": {
101
101
  "@hyrious/esbuild-plugin-commonjs": "^0.2.4",