payload 3.38.0-internal.78d3ba4 → 3.38.0

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 (123) hide show
  1. package/dist/admin/RichText.d.ts +1 -0
  2. package/dist/admin/RichText.d.ts.map +1 -1
  3. package/dist/admin/RichText.js.map +1 -1
  4. package/dist/admin/forms/Field.d.ts +1 -0
  5. package/dist/admin/forms/Field.d.ts.map +1 -1
  6. package/dist/admin/forms/Field.js.map +1 -1
  7. package/dist/auth/getFieldsToSign.d.ts.map +1 -1
  8. package/dist/auth/getFieldsToSign.js +24 -15
  9. package/dist/auth/getFieldsToSign.js.map +1 -1
  10. package/dist/collections/config/sanitize.d.ts.map +1 -1
  11. package/dist/collections/config/sanitize.js +0 -5
  12. package/dist/collections/config/sanitize.js.map +1 -1
  13. package/dist/collections/config/useAsTitle.js.map +1 -1
  14. package/dist/collections/operations/create.d.ts.map +1 -1
  15. package/dist/collections/operations/create.js +1 -0
  16. package/dist/collections/operations/create.js.map +1 -1
  17. package/dist/collections/operations/delete.d.ts.map +1 -1
  18. package/dist/collections/operations/delete.js.map +1 -1
  19. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  20. package/dist/collections/operations/deleteByID.js.map +1 -1
  21. package/dist/collections/operations/local/create.d.ts.map +1 -1
  22. package/dist/collections/operations/local/create.js.map +1 -1
  23. package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
  24. package/dist/collections/operations/local/duplicate.js.map +1 -1
  25. package/dist/collections/operations/utilities/update.d.ts.map +1 -1
  26. package/dist/collections/operations/utilities/update.js +1 -0
  27. package/dist/collections/operations/utilities/update.js.map +1 -1
  28. package/dist/config/sanitize.d.ts.map +1 -1
  29. package/dist/config/sanitize.js.map +1 -1
  30. package/dist/exports/i18n/lv.d.ts +2 -0
  31. package/dist/exports/i18n/lv.d.ts.map +1 -0
  32. package/dist/exports/i18n/lv.js +3 -0
  33. package/dist/exports/i18n/lv.js.map +1 -0
  34. package/dist/fields/config/reservedFieldNames.d.ts +21 -0
  35. package/dist/fields/config/reservedFieldNames.d.ts.map +1 -0
  36. package/dist/fields/config/reservedFieldNames.js +24 -0
  37. package/dist/fields/config/reservedFieldNames.js.map +1 -0
  38. package/dist/{collections → fields}/config/reservedFieldNames.spec.js +1 -1
  39. package/dist/fields/config/reservedFieldNames.spec.js.map +1 -0
  40. package/dist/fields/config/sanitize.d.ts +5 -1
  41. package/dist/fields/config/sanitize.d.ts.map +1 -1
  42. package/dist/fields/config/sanitize.js +41 -11
  43. package/dist/fields/config/sanitize.js.map +1 -1
  44. package/dist/fields/config/sanitize.spec.js +20 -0
  45. package/dist/fields/config/sanitize.spec.js.map +1 -1
  46. package/dist/fields/config/types.d.ts +36 -12
  47. package/dist/fields/config/types.d.ts.map +1 -1
  48. package/dist/fields/config/types.js.map +1 -1
  49. package/dist/fields/hooks/afterChange/promise.d.ts.map +1 -1
  50. package/dist/fields/hooks/afterChange/promise.js +45 -19
  51. package/dist/fields/hooks/afterChange/promise.js.map +1 -1
  52. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
  53. package/dist/fields/hooks/afterRead/promise.js +68 -35
  54. package/dist/fields/hooks/afterRead/promise.js.map +1 -1
  55. package/dist/fields/hooks/beforeChange/index.d.ts +2 -1
  56. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  57. package/dist/fields/hooks/beforeChange/index.js +2 -1
  58. package/dist/fields/hooks/beforeChange/index.js.map +1 -1
  59. package/dist/fields/hooks/beforeChange/promise.d.ts +2 -1
  60. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  61. package/dist/fields/hooks/beforeChange/promise.js +42 -15
  62. package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
  63. package/dist/fields/hooks/beforeChange/traverseFields.d.ts +2 -1
  64. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  65. package/dist/fields/hooks/beforeChange/traverseFields.js +2 -1
  66. package/dist/fields/hooks/beforeChange/traverseFields.js.map +1 -1
  67. package/dist/fields/hooks/beforeDuplicate/promise.d.ts.map +1 -1
  68. package/dist/fields/hooks/beforeDuplicate/promise.js +2 -1
  69. package/dist/fields/hooks/beforeDuplicate/promise.js.map +1 -1
  70. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  71. package/dist/fields/hooks/beforeValidate/promise.js +16 -11
  72. package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
  73. package/dist/index.d.ts +1 -1
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js.map +1 -1
  76. package/dist/query-presets/config.d.ts.map +1 -1
  77. package/dist/query-presets/config.js +9 -0
  78. package/dist/query-presets/config.js.map +1 -1
  79. package/dist/query-presets/constraints.d.ts.map +1 -1
  80. package/dist/query-presets/constraints.js +3 -1
  81. package/dist/query-presets/constraints.js.map +1 -1
  82. package/dist/query-presets/preventLockout.d.ts +12 -0
  83. package/dist/query-presets/preventLockout.d.ts.map +1 -0
  84. package/dist/query-presets/preventLockout.js +76 -0
  85. package/dist/query-presets/preventLockout.js.map +1 -0
  86. package/dist/queues/config/generateJobsJSONSchemas.js +2 -2
  87. package/dist/queues/config/generateJobsJSONSchemas.js.map +1 -1
  88. package/dist/queues/config/index.d.ts.map +1 -1
  89. package/dist/queues/config/index.js +1 -2
  90. package/dist/queues/config/index.js.map +1 -1
  91. package/dist/queues/config/types/index.d.ts +1 -1
  92. package/dist/queues/config/types/index.d.ts.map +1 -1
  93. package/dist/queues/config/types/index.js.map +1 -1
  94. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.d.ts.map +1 -1
  95. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js +1 -1
  96. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js.map +1 -1
  97. package/dist/queues/restEndpointRun.d.ts.map +1 -1
  98. package/dist/queues/restEndpointRun.js +3 -4
  99. package/dist/queues/restEndpointRun.js.map +1 -1
  100. package/dist/queues/utilities/getJobTaskStatus.d.ts +0 -2
  101. package/dist/queues/utilities/getJobTaskStatus.d.ts.map +1 -1
  102. package/dist/queues/utilities/getJobTaskStatus.js.map +1 -1
  103. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  104. package/dist/utilities/configToJSONSchema.js +27 -10
  105. package/dist/utilities/configToJSONSchema.js.map +1 -1
  106. package/dist/utilities/fieldSchemaToJSON.d.ts +1 -1
  107. package/dist/utilities/fieldSchemaToJSON.d.ts.map +1 -1
  108. package/dist/utilities/fieldSchemaToJSON.js +10 -5
  109. package/dist/utilities/fieldSchemaToJSON.js.map +1 -1
  110. package/dist/utilities/flattenAllFields.d.ts.map +1 -1
  111. package/dist/utilities/flattenAllFields.js +14 -6
  112. package/dist/utilities/flattenAllFields.js.map +1 -1
  113. package/dist/utilities/getEntityPolicies.d.ts.map +1 -1
  114. package/dist/utilities/getEntityPolicies.js.map +1 -1
  115. package/dist/utilities/traverseFields.d.ts.map +1 -1
  116. package/dist/utilities/traverseFields.js +30 -15
  117. package/dist/utilities/traverseFields.js.map +1 -1
  118. package/package.json +2 -2
  119. package/dist/collections/config/reservedFieldNames.d.ts +0 -15
  120. package/dist/collections/config/reservedFieldNames.d.ts.map +0 -1
  121. package/dist/collections/config/reservedFieldNames.js +0 -105
  122. package/dist/collections/config/reservedFieldNames.js.map +0 -1
  123. package/dist/collections/config/reservedFieldNames.spec.js.map +0 -1
@@ -64,6 +64,7 @@ export type BeforeChangeRichTextHookArgs<TData extends TypeWithID = any, TValue
64
64
  mergeLocaleActions?: (() => Promise<void> | void)[];
65
65
  /** A string relating to which operation the field type is currently executing within. */
66
66
  operation?: 'create' | 'delete' | 'read' | 'update';
67
+ overrideAccess: boolean;
67
68
  /** The sibling data of the document before changes being applied. */
68
69
  previousSiblingDoc?: TData;
69
70
  /** The previous value of the field, before changes */
@@ -1 +1 @@
1
- {"version":3,"file":"RichText.d.ts","sourceRoot":"","sources":["../../src/admin/RichText.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RichText.d.ts","sourceRoot":"","sources":["../../src/admin/RichText.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/admin/RichText.ts"],"sourcesContent":["// @ts-strict-ignore\nimport type { GenericLanguages, I18n } from '@payloadcms/translations'\nimport type { JSONSchema4 } from 'json-schema'\n\nimport type { SanitizedCollectionConfig, TypeWithID } from '../collections/config/types.js'\nimport type { Config, PayloadComponent, SanitizedConfig } from '../config/types.js'\nimport type { ValidationFieldError } from '../errors/ValidationError.js'\nimport type {\n FieldAffectingData,\n RichTextField,\n RichTextFieldClient,\n Validate,\n} from '../fields/config/types.js'\nimport type { SanitizedGlobalConfig } from '../globals/config/types.js'\nimport type { RequestContext } from '../index.js'\nimport type { JsonObject, PayloadRequest, PopulateType } from '../types/index.js'\nimport type { RichTextFieldClientProps, RichTextFieldServerProps } from './fields/RichText.js'\nimport type { FieldDiffClientProps, FieldDiffServerProps, FieldSchemaMap } from './types.js'\n\nexport type AfterReadRichTextHookArgs<\n TData extends TypeWithID = any,\n TValue = any,\n TSiblingData = any,\n> = {\n currentDepth?: number\n\n depth?: number\n\n draft?: boolean\n\n fallbackLocale?: string\n fieldPromises?: Promise<void>[]\n\n /** Boolean to denote if this hook is running against finding one, or finding many within the afterRead hook. */\n findMany?: boolean\n\n flattenLocales?: boolean\n\n locale?: string\n\n /** A string relating to which operation the field type is currently executing within. */\n operation?: 'create' | 'delete' | 'read' | 'update'\n\n overrideAccess?: boolean\n\n populate?: PopulateType\n\n populationPromises?: Promise<void>[]\n showHiddenFields?: boolean\n triggerAccessControl?: boolean\n triggerHooks?: boolean\n}\n\nexport type AfterChangeRichTextHookArgs<\n TData extends TypeWithID = any,\n TValue = any,\n TSiblingData = any,\n> = {\n /** A string relating to which operation the field type is currently executing within. */\n operation: 'create' | 'update'\n /** The document before changes were applied. */\n previousDoc?: TData\n /** The sibling data of the document before changes being applied. */\n previousSiblingDoc?: TData\n /** The previous value of the field, before changes */\n previousValue?: TValue\n}\nexport type BeforeValidateRichTextHookArgs<\n TData extends TypeWithID = any,\n TValue = any,\n TSiblingData = any,\n> = {\n /** A string relating to which operation the field type is currently executing within. */\n operation: 'create' | 'update'\n overrideAccess?: boolean\n /** The sibling data of the document before changes being applied. */\n previousSiblingDoc?: TData\n /** The previous value of the field, before changes */\n previousValue?: TValue\n}\n\nexport type BeforeChangeRichTextHookArgs<\n TData extends TypeWithID = any,\n TValue = any,\n TSiblingData = any,\n> = {\n /**\n * The original data with locales (not modified by any hooks). Only available in `beforeChange` and `beforeDuplicate` field hooks.\n */\n docWithLocales?: JsonObject\n\n duplicate?: boolean\n\n errors?: ValidationFieldError[]\n /**\n * Built up field label\n *\n * @example \"Group Field > Tab Field > Rich Text Field\"\n */\n fieldLabelPath: string\n /** Only available in `beforeChange` field hooks */\n mergeLocaleActions?: (() => Promise<void> | void)[]\n /** A string relating to which operation the field type is currently executing within. */\n operation?: 'create' | 'delete' | 'read' | 'update'\n /** The sibling data of the document before changes being applied. */\n previousSiblingDoc?: TData\n /** The previous value of the field, before changes */\n previousValue?: TValue\n\n /**\n * The original siblingData with locales (not modified by any hooks).\n */\n siblingDocWithLocales?: JsonObject\n skipValidation?: boolean\n}\n\nexport type BaseRichTextHookArgs<\n TData extends TypeWithID = any,\n TValue = any,\n TSiblingData = any,\n> = {\n /** The collection which the field belongs to. If the field belongs to a global, this will be null. */\n collection: null | SanitizedCollectionConfig\n context: RequestContext\n /** The data passed to update the document within create and update operations, and the full document itself in the afterRead hook. */\n data?: Partial<TData>\n /** The field which the hook is running against. */\n field: FieldAffectingData\n /** The global which the field belongs to. If the field belongs to a collection, this will be null. */\n global: null | SanitizedGlobalConfig\n indexPath: number[]\n /** The full original document in `update` operations. In the `afterChange` hook, this is the resulting document of the operation. */\n originalDoc?: TData\n parentIsLocalized: boolean\n /**\n * The path of the field, e.g. [\"group\", \"myArray\", 1, \"textField\"]. The path is the schemaPath but with indexes and would be used in the context of field data, not field schemas.\n */\n path: (number | string)[]\n /** The Express request object. It is mocked for Local API operations. */\n req: PayloadRequest\n /**\n * The schemaPath of the field, e.g. [\"group\", \"myArray\", \"textField\"]. The schemaPath is the path but without indexes and would be used in the context of field schemas, not field data.\n */\n schemaPath: string[]\n /** The sibling data passed to a field that the hook is running against. */\n siblingData: Partial<TSiblingData>\n /** The value of the field. */\n value?: TValue\n}\n\nexport type AfterReadRichTextHook<\n TData extends TypeWithID = any,\n TValue = any,\n TSiblingData = any,\n> = (\n args: AfterReadRichTextHookArgs<TData, TValue, TSiblingData> &\n BaseRichTextHookArgs<TData, TValue, TSiblingData>,\n) => Promise<TValue> | TValue\n\nexport type AfterChangeRichTextHook<\n TData extends TypeWithID = any,\n TValue = any,\n TSiblingData = any,\n> = (\n args: AfterChangeRichTextHookArgs<TData, TValue, TSiblingData> &\n BaseRichTextHookArgs<TData, TValue, TSiblingData>,\n) => Promise<TValue> | TValue\n\nexport type BeforeChangeRichTextHook<\n TData extends TypeWithID = any,\n TValue = any,\n TSiblingData = any,\n> = (\n args: BaseRichTextHookArgs<TData, TValue, TSiblingData> &\n BeforeChangeRichTextHookArgs<TData, TValue, TSiblingData>,\n) => Promise<TValue> | TValue\n\nexport type BeforeValidateRichTextHook<\n TData extends TypeWithID = any,\n TValue = any,\n TSiblingData = any,\n> = (\n args: BaseRichTextHookArgs<TData, TValue, TSiblingData> &\n BeforeValidateRichTextHookArgs<TData, TValue, TSiblingData>,\n) => Promise<TValue> | TValue\n\nexport type RichTextHooks = {\n afterChange?: AfterChangeRichTextHook[]\n afterRead?: AfterReadRichTextHook[]\n beforeChange?: BeforeChangeRichTextHook[]\n beforeValidate?: BeforeValidateRichTextHook[]\n}\ntype RichTextAdapterBase<\n Value extends object = object,\n AdapterProps = any,\n ExtraFieldProperties = {},\n> = {\n generateImportMap?: Config['admin']['importMap']['generators'][0]\n generateSchemaMap?: (args: {\n config: SanitizedConfig\n field: RichTextField\n i18n: I18n<any, any>\n schemaMap: FieldSchemaMap\n schemaPath: string\n }) => FieldSchemaMap\n /**\n * Like an afterRead hook, but runs only for the GraphQL resolver. For populating data, this should be used, as afterRead hooks do not have a depth in graphQL.\n *\n * To populate stuff / resolve field hooks, mutate the incoming populationPromises or fieldPromises array. They will then be awaited in the correct order within payload itself.\n * @param data\n */\n graphQLPopulationPromises?: (data: {\n context: RequestContext\n currentDepth?: number\n depth: number\n draft: boolean\n field: RichTextField<Value, AdapterProps, ExtraFieldProperties>\n fieldPromises: Promise<void>[]\n findMany: boolean\n flattenLocales: boolean\n overrideAccess?: boolean\n parentIsLocalized: boolean\n populateArg?: PopulateType\n populationPromises: Promise<void>[]\n req: PayloadRequest\n showHiddenFields: boolean\n siblingDoc: JsonObject\n }) => void\n hooks?: RichTextHooks\n i18n?: Partial<GenericLanguages>\n outputSchema?: (args: {\n collectionIDFieldTypes: { [key: string]: 'number' | 'string' }\n config?: SanitizedConfig\n field: RichTextField<Value, AdapterProps, ExtraFieldProperties>\n i18n?: I18n\n /**\n * Allows you to define new top-level interfaces that can be re-used in the output schema.\n */\n interfaceNameDefinitions: Map<string, JSONSchema4>\n isRequired: boolean\n }) => JSONSchema4\n validate: Validate<\n Value,\n Value,\n unknown,\n RichTextField<Value, AdapterProps, ExtraFieldProperties>\n >\n}\n\nexport type RichTextAdapter<\n Value extends object = any,\n AdapterProps = any,\n ExtraFieldProperties = any,\n> = {\n CellComponent: PayloadComponent<never>\n /**\n * Component that will be displayed in the version diff view.\n * If not provided, richtext content will be diffed as JSON.\n */\n DiffComponent?: PayloadComponent<\n FieldDiffServerProps<RichTextField, RichTextFieldClient>,\n FieldDiffClientProps<RichTextFieldClient>\n >\n FieldComponent: PayloadComponent<RichTextFieldServerProps, RichTextFieldClientProps>\n} & RichTextAdapterBase<Value, AdapterProps, ExtraFieldProperties>\n\nexport type RichTextAdapterProvider<\n Value extends object = object,\n AdapterProps = any,\n ExtraFieldProperties = {},\n> = ({\n config,\n isRoot,\n parentIsLocalized,\n}: {\n config: SanitizedConfig\n /**\n * Whether or not this is the root richText editor, defined in the payload.config.ts.\n *\n * @default false\n */\n isRoot?: boolean\n parentIsLocalized: boolean\n}) =>\n | Promise<RichTextAdapter<Value, AdapterProps, ExtraFieldProperties>>\n | RichTextAdapter<Value, AdapterProps, ExtraFieldProperties>\n"],"names":[],"mappings":"AAAA,oBAAoB;AA0QpB,WAmB8D"}
1
+ {"version":3,"sources":["../../src/admin/RichText.ts"],"sourcesContent":["// @ts-strict-ignore\nimport type { GenericLanguages, I18n } from '@payloadcms/translations'\nimport type { JSONSchema4 } from 'json-schema'\n\nimport type { SanitizedCollectionConfig, TypeWithID } from '../collections/config/types.js'\nimport type { Config, PayloadComponent, SanitizedConfig } from '../config/types.js'\nimport type { ValidationFieldError } from '../errors/ValidationError.js'\nimport type {\n FieldAffectingData,\n RichTextField,\n RichTextFieldClient,\n Validate,\n} from '../fields/config/types.js'\nimport type { SanitizedGlobalConfig } from '../globals/config/types.js'\nimport type { RequestContext } from '../index.js'\nimport type { JsonObject, PayloadRequest, PopulateType } from '../types/index.js'\nimport type { RichTextFieldClientProps, RichTextFieldServerProps } from './fields/RichText.js'\nimport type { FieldDiffClientProps, FieldDiffServerProps, FieldSchemaMap } from './types.js'\n\nexport type AfterReadRichTextHookArgs<\n TData extends TypeWithID = any,\n TValue = any,\n TSiblingData = any,\n> = {\n currentDepth?: number\n\n depth?: number\n\n draft?: boolean\n\n fallbackLocale?: string\n fieldPromises?: Promise<void>[]\n\n /** Boolean to denote if this hook is running against finding one, or finding many within the afterRead hook. */\n findMany?: boolean\n\n flattenLocales?: boolean\n\n locale?: string\n\n /** A string relating to which operation the field type is currently executing within. */\n operation?: 'create' | 'delete' | 'read' | 'update'\n\n overrideAccess?: boolean\n\n populate?: PopulateType\n\n populationPromises?: Promise<void>[]\n showHiddenFields?: boolean\n triggerAccessControl?: boolean\n triggerHooks?: boolean\n}\n\nexport type AfterChangeRichTextHookArgs<\n TData extends TypeWithID = any,\n TValue = any,\n TSiblingData = any,\n> = {\n /** A string relating to which operation the field type is currently executing within. */\n operation: 'create' | 'update'\n /** The document before changes were applied. */\n previousDoc?: TData\n /** The sibling data of the document before changes being applied. */\n previousSiblingDoc?: TData\n /** The previous value of the field, before changes */\n previousValue?: TValue\n}\n\nexport type BeforeValidateRichTextHookArgs<\n TData extends TypeWithID = any,\n TValue = any,\n TSiblingData = any,\n> = {\n /** A string relating to which operation the field type is currently executing within. */\n operation: 'create' | 'update'\n overrideAccess?: boolean\n /** The sibling data of the document before changes being applied. */\n previousSiblingDoc?: TData\n /** The previous value of the field, before changes */\n previousValue?: TValue\n}\n\nexport type BeforeChangeRichTextHookArgs<\n TData extends TypeWithID = any,\n TValue = any,\n TSiblingData = any,\n> = {\n /**\n * The original data with locales (not modified by any hooks). Only available in `beforeChange` and `beforeDuplicate` field hooks.\n */\n docWithLocales?: JsonObject\n\n duplicate?: boolean\n\n errors?: ValidationFieldError[]\n /**\n * Built up field label\n *\n * @example \"Group Field > Tab Field > Rich Text Field\"\n */\n fieldLabelPath: string\n /** Only available in `beforeChange` field hooks */\n mergeLocaleActions?: (() => Promise<void> | void)[]\n /** A string relating to which operation the field type is currently executing within. */\n operation?: 'create' | 'delete' | 'read' | 'update'\n overrideAccess: boolean\n /** The sibling data of the document before changes being applied. */\n previousSiblingDoc?: TData\n /** The previous value of the field, before changes */\n previousValue?: TValue\n /**\n * The original siblingData with locales (not modified by any hooks).\n */\n siblingDocWithLocales?: JsonObject\n skipValidation?: boolean\n}\n\nexport type BaseRichTextHookArgs<\n TData extends TypeWithID = any,\n TValue = any,\n TSiblingData = any,\n> = {\n /** The collection which the field belongs to. If the field belongs to a global, this will be null. */\n collection: null | SanitizedCollectionConfig\n context: RequestContext\n /** The data passed to update the document within create and update operations, and the full document itself in the afterRead hook. */\n data?: Partial<TData>\n /** The field which the hook is running against. */\n field: FieldAffectingData\n /** The global which the field belongs to. If the field belongs to a collection, this will be null. */\n global: null | SanitizedGlobalConfig\n indexPath: number[]\n /** The full original document in `update` operations. In the `afterChange` hook, this is the resulting document of the operation. */\n originalDoc?: TData\n parentIsLocalized: boolean\n /**\n * The path of the field, e.g. [\"group\", \"myArray\", 1, \"textField\"]. The path is the schemaPath but with indexes and would be used in the context of field data, not field schemas.\n */\n path: (number | string)[]\n /** The Express request object. It is mocked for Local API operations. */\n req: PayloadRequest\n /**\n * The schemaPath of the field, e.g. [\"group\", \"myArray\", \"textField\"]. The schemaPath is the path but without indexes and would be used in the context of field schemas, not field data.\n */\n schemaPath: string[]\n /** The sibling data passed to a field that the hook is running against. */\n siblingData: Partial<TSiblingData>\n /** The value of the field. */\n value?: TValue\n}\n\nexport type AfterReadRichTextHook<\n TData extends TypeWithID = any,\n TValue = any,\n TSiblingData = any,\n> = (\n args: AfterReadRichTextHookArgs<TData, TValue, TSiblingData> &\n BaseRichTextHookArgs<TData, TValue, TSiblingData>,\n) => Promise<TValue> | TValue\n\nexport type AfterChangeRichTextHook<\n TData extends TypeWithID = any,\n TValue = any,\n TSiblingData = any,\n> = (\n args: AfterChangeRichTextHookArgs<TData, TValue, TSiblingData> &\n BaseRichTextHookArgs<TData, TValue, TSiblingData>,\n) => Promise<TValue> | TValue\n\nexport type BeforeChangeRichTextHook<\n TData extends TypeWithID = any,\n TValue = any,\n TSiblingData = any,\n> = (\n args: BaseRichTextHookArgs<TData, TValue, TSiblingData> &\n BeforeChangeRichTextHookArgs<TData, TValue, TSiblingData>,\n) => Promise<TValue> | TValue\n\nexport type BeforeValidateRichTextHook<\n TData extends TypeWithID = any,\n TValue = any,\n TSiblingData = any,\n> = (\n args: BaseRichTextHookArgs<TData, TValue, TSiblingData> &\n BeforeValidateRichTextHookArgs<TData, TValue, TSiblingData>,\n) => Promise<TValue> | TValue\n\nexport type RichTextHooks = {\n afterChange?: AfterChangeRichTextHook[]\n afterRead?: AfterReadRichTextHook[]\n beforeChange?: BeforeChangeRichTextHook[]\n beforeValidate?: BeforeValidateRichTextHook[]\n}\n\ntype RichTextAdapterBase<\n Value extends object = object,\n AdapterProps = any,\n ExtraFieldProperties = {},\n> = {\n generateImportMap?: Config['admin']['importMap']['generators'][0]\n generateSchemaMap?: (args: {\n config: SanitizedConfig\n field: RichTextField\n i18n: I18n<any, any>\n schemaMap: FieldSchemaMap\n schemaPath: string\n }) => FieldSchemaMap\n /**\n * Like an afterRead hook, but runs only for the GraphQL resolver. For populating data, this should be used, as afterRead hooks do not have a depth in graphQL.\n *\n * To populate stuff / resolve field hooks, mutate the incoming populationPromises or fieldPromises array. They will then be awaited in the correct order within payload itself.\n * @param data\n */\n graphQLPopulationPromises?: (data: {\n context: RequestContext\n currentDepth?: number\n depth: number\n draft: boolean\n field: RichTextField<Value, AdapterProps, ExtraFieldProperties>\n fieldPromises: Promise<void>[]\n findMany: boolean\n flattenLocales: boolean\n overrideAccess?: boolean\n parentIsLocalized: boolean\n populateArg?: PopulateType\n populationPromises: Promise<void>[]\n req: PayloadRequest\n showHiddenFields: boolean\n siblingDoc: JsonObject\n }) => void\n hooks?: RichTextHooks\n i18n?: Partial<GenericLanguages>\n outputSchema?: (args: {\n collectionIDFieldTypes: { [key: string]: 'number' | 'string' }\n config?: SanitizedConfig\n field: RichTextField<Value, AdapterProps, ExtraFieldProperties>\n i18n?: I18n\n /**\n * Allows you to define new top-level interfaces that can be re-used in the output schema.\n */\n interfaceNameDefinitions: Map<string, JSONSchema4>\n isRequired: boolean\n }) => JSONSchema4\n validate: Validate<\n Value,\n Value,\n unknown,\n RichTextField<Value, AdapterProps, ExtraFieldProperties>\n >\n}\n\nexport type RichTextAdapter<\n Value extends object = any,\n AdapterProps = any,\n ExtraFieldProperties = any,\n> = {\n CellComponent: PayloadComponent<never>\n /**\n * Component that will be displayed in the version diff view.\n * If not provided, richtext content will be diffed as JSON.\n */\n DiffComponent?: PayloadComponent<\n FieldDiffServerProps<RichTextField, RichTextFieldClient>,\n FieldDiffClientProps<RichTextFieldClient>\n >\n FieldComponent: PayloadComponent<RichTextFieldServerProps, RichTextFieldClientProps>\n} & RichTextAdapterBase<Value, AdapterProps, ExtraFieldProperties>\n\nexport type RichTextAdapterProvider<\n Value extends object = object,\n AdapterProps = any,\n ExtraFieldProperties = {},\n> = ({\n config,\n isRoot,\n parentIsLocalized,\n}: {\n config: SanitizedConfig\n /**\n * Whether or not this is the root richText editor, defined in the payload.config.ts.\n *\n * @default false\n */\n isRoot?: boolean\n parentIsLocalized: boolean\n}) =>\n | Promise<RichTextAdapter<Value, AdapterProps, ExtraFieldProperties>>\n | RichTextAdapter<Value, AdapterProps, ExtraFieldProperties>\n"],"names":[],"mappings":"AAAA,oBAAoB;AA4QpB,WAmB8D"}
@@ -77,6 +77,7 @@ export type ServerComponentProps = {
77
77
  req: PayloadRequest;
78
78
  siblingData: Data;
79
79
  user: User;
80
+ value?: unknown;
80
81
  };
81
82
  export type ClientFieldBase<TFieldClient extends ClientFieldWithOptionalType = ClientFieldWithOptionalType> = {
82
83
  readonly field: TFieldClient;
@@ -1 +1 @@
1
- {"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../../src/admin/forms/Field.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../../src/admin/forms/Field.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/admin/forms/Field.ts"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { MarkOptional } from 'ts-essentials'\n\nimport type { SanitizedFieldPermissions, User } from '../../auth/types.js'\nimport type { ClientBlock, ClientField, Field } from '../../fields/config/types.js'\nimport type { DocumentPreferences } from '../../preferences/types.js'\nimport type { Operation, Payload, PayloadRequest } from '../../types/index.js'\nimport type {\n ClientFieldSchemaMap,\n ClientTab,\n Data,\n FieldSchemaMap,\n FormField,\n FormState,\n RenderedField,\n} from '../types.js'\n\nexport type ClientFieldWithOptionalType = MarkOptional<ClientField, 'type'>\n\nexport type ClientComponentProps = {\n customComponents?: FormField['customComponents']\n field: ClientBlock | ClientField | ClientTab\n forceRender?: boolean\n permissions?: SanitizedFieldPermissions\n readOnly?: boolean\n renderedBlocks?: RenderedField[]\n /**\n * Used to extract field configs from a schemaMap.\n * Does not include indexes.\n *\n * @default field.name\n **/\n schemaPath?: string\n}\n\n// TODO: maybe we can come up with a better name?\nexport type FieldPaths = {\n /**\n * @default ''\n */\n indexPath?: string\n /**\n * @default ''\n */\n parentPath?: string\n /**\n * The path built up to the point of the field\n * excluding the field name.\n *\n * @default ''\n */\n parentSchemaPath?: string\n /**\n * A built up path to access FieldState in the form state.\n * Nested fields will have a path that includes the parent field names\n * if they are nested within a group, array, block or named tab.\n *\n * Collapsibles and unnamed tabs will have arbitrary paths\n * that look like _index-0, _index-1, etc.\n *\n * Row fields will not have a path.\n *\n * @example 'parentGroupField.childTextField'\n *\n * @default field.name\n */\n path: string\n}\n\nexport type ServerComponentProps = {\n clientField: ClientFieldWithOptionalType\n clientFieldSchemaMap: ClientFieldSchemaMap\n collectionSlug: string\n data: Data\n field: Field\n /**\n * The fieldSchemaMap that is created before form state is built is made available here.\n */\n fieldSchemaMap: FieldSchemaMap\n /**\n * Server Components will also have available to the entire form state.\n * We cannot add it to ClientComponentProps as that would blow up the size of the props sent to the client.\n */\n formState: FormState\n i18n: I18nClient\n id?: number | string\n operation: Operation\n payload: Payload\n permissions: SanitizedFieldPermissions\n preferences: DocumentPreferences\n req: PayloadRequest\n siblingData: Data\n user: User\n}\n\nexport type ClientFieldBase<\n TFieldClient extends ClientFieldWithOptionalType = ClientFieldWithOptionalType,\n> = {\n readonly field: TFieldClient\n} & Omit<ClientComponentProps, 'customComponents' | 'field'>\n\nexport type ServerFieldBase<\n TFieldServer extends Field = Field,\n TFieldClient extends ClientFieldWithOptionalType = ClientFieldWithOptionalType,\n> = {\n readonly clientField: TFieldClient\n readonly field: TFieldServer\n} & Omit<ClientComponentProps, 'field'> &\n Omit<ServerComponentProps, 'clientField' | 'field'>\n\nexport type FieldClientComponent<\n TFieldClient extends ClientFieldWithOptionalType = ClientFieldWithOptionalType,\n AdditionalProps extends Record<string, unknown> = Record<string, unknown>,\n> = React.ComponentType<AdditionalProps & ClientFieldBase<TFieldClient>>\n\nexport type FieldServerComponent<\n TFieldServer extends Field = Field,\n TFieldClient extends ClientFieldWithOptionalType = ClientFieldWithOptionalType,\n AdditionalProps extends Record<string, unknown> = Record<string, unknown>,\n> = React.ComponentType<AdditionalProps & ServerFieldBase<TFieldServer, TFieldClient>>\n"],"names":[],"mappings":"AAmHA,WAIsF"}
1
+ {"version":3,"sources":["../../../src/admin/forms/Field.ts"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { MarkOptional } from 'ts-essentials'\n\nimport type { SanitizedFieldPermissions, User } from '../../auth/types.js'\nimport type { ClientBlock, ClientField, Field } from '../../fields/config/types.js'\nimport type { DocumentPreferences } from '../../preferences/types.js'\nimport type { Operation, Payload, PayloadRequest } from '../../types/index.js'\nimport type {\n ClientFieldSchemaMap,\n ClientTab,\n Data,\n FieldSchemaMap,\n FormField,\n FormState,\n RenderedField,\n} from '../types.js'\n\nexport type ClientFieldWithOptionalType = MarkOptional<ClientField, 'type'>\n\nexport type ClientComponentProps = {\n customComponents?: FormField['customComponents']\n field: ClientBlock | ClientField | ClientTab\n forceRender?: boolean\n permissions?: SanitizedFieldPermissions\n readOnly?: boolean\n renderedBlocks?: RenderedField[]\n /**\n * Used to extract field configs from a schemaMap.\n * Does not include indexes.\n *\n * @default field.name\n **/\n schemaPath?: string\n}\n\n// TODO: maybe we can come up with a better name?\nexport type FieldPaths = {\n /**\n * @default ''\n */\n indexPath?: string\n /**\n * @default ''\n */\n parentPath?: string\n /**\n * The path built up to the point of the field\n * excluding the field name.\n *\n * @default ''\n */\n parentSchemaPath?: string\n /**\n * A built up path to access FieldState in the form state.\n * Nested fields will have a path that includes the parent field names\n * if they are nested within a group, array, block or named tab.\n *\n * Collapsibles and unnamed tabs will have arbitrary paths\n * that look like _index-0, _index-1, etc.\n *\n * Row fields will not have a path.\n *\n * @example 'parentGroupField.childTextField'\n *\n * @default field.name\n */\n path: string\n}\n\nexport type ServerComponentProps = {\n clientField: ClientFieldWithOptionalType\n clientFieldSchemaMap: ClientFieldSchemaMap\n collectionSlug: string\n data: Data\n field: Field\n /**\n * The fieldSchemaMap that is created before form state is built is made available here.\n */\n fieldSchemaMap: FieldSchemaMap\n /**\n * Server Components will also have available to the entire form state.\n * We cannot add it to ClientComponentProps as that would blow up the size of the props sent to the client.\n */\n formState: FormState\n i18n: I18nClient\n id?: number | string\n operation: Operation\n payload: Payload\n permissions: SanitizedFieldPermissions\n preferences: DocumentPreferences\n req: PayloadRequest\n siblingData: Data\n user: User\n value?: unknown\n}\n\nexport type ClientFieldBase<\n TFieldClient extends ClientFieldWithOptionalType = ClientFieldWithOptionalType,\n> = {\n readonly field: TFieldClient\n} & Omit<ClientComponentProps, 'customComponents' | 'field'>\n\nexport type ServerFieldBase<\n TFieldServer extends Field = Field,\n TFieldClient extends ClientFieldWithOptionalType = ClientFieldWithOptionalType,\n> = {\n readonly clientField: TFieldClient\n readonly field: TFieldServer\n} & Omit<ClientComponentProps, 'field'> &\n Omit<ServerComponentProps, 'clientField' | 'field'>\n\nexport type FieldClientComponent<\n TFieldClient extends ClientFieldWithOptionalType = ClientFieldWithOptionalType,\n AdditionalProps extends Record<string, unknown> = Record<string, unknown>,\n> = React.ComponentType<AdditionalProps & ClientFieldBase<TFieldClient>>\n\nexport type FieldServerComponent<\n TFieldServer extends Field = Field,\n TFieldClient extends ClientFieldWithOptionalType = ClientFieldWithOptionalType,\n AdditionalProps extends Record<string, unknown> = Record<string, unknown>,\n> = React.ComponentType<AdditionalProps & ServerFieldBase<TFieldServer, TFieldClient>>\n"],"names":[],"mappings":"AAoHA,WAIsF"}
@@ -1 +1 @@
1
- {"version":3,"file":"getFieldsToSign.d.ts","sourceRoot":"","sources":["../../src/auth/getFieldsToSign.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAqGvD,eAAO,MAAM,eAAe,SAAU;IACpC,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;CAC7B,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAgBzB,CAAA"}
1
+ {"version":3,"file":"getFieldsToSign.d.ts","sourceRoot":"","sources":["../../src/auth/getFieldsToSign.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AA+GvD,eAAO,MAAM,eAAe,SAAU;IACpC,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;CAC7B,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAgBzB,CAAA"}
@@ -16,22 +16,31 @@ fields, result })=>{
16
16
  }
17
17
  case 'group':
18
18
  {
19
- let targetResult;
20
- if (typeof field.saveToJWT === 'string') {
21
- targetResult = field.saveToJWT;
22
- result[field.saveToJWT] = data[field.name];
23
- } else if (field.saveToJWT) {
24
- targetResult = field.name;
25
- result[field.name] = data[field.name];
19
+ if (fieldAffectsData(field)) {
20
+ let targetResult;
21
+ if (typeof field.saveToJWT === 'string') {
22
+ targetResult = field.saveToJWT;
23
+ result[field.saveToJWT] = data[field.name];
24
+ } else if (field.saveToJWT) {
25
+ targetResult = field.name;
26
+ result[field.name] = data[field.name];
27
+ }
28
+ const groupData = data[field.name];
29
+ const groupResult = targetResult ? result[targetResult] : result;
30
+ traverseFields({
31
+ data: groupData,
32
+ fields: field.fields,
33
+ result: groupResult
34
+ });
35
+ break;
36
+ } else {
37
+ traverseFields({
38
+ data,
39
+ fields: field.fields,
40
+ result
41
+ });
42
+ break;
26
43
  }
27
- const groupData = data[field.name];
28
- const groupResult = targetResult ? result[targetResult] : result;
29
- traverseFields({
30
- data: groupData,
31
- fields: field.fields,
32
- result: groupResult
33
- });
34
- break;
35
44
  }
36
45
  case 'tab':
37
46
  {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/auth/getFieldsToSign.ts"],"sourcesContent":["// @ts-strict-ignore\nimport type { CollectionConfig } from '../collections/config/types.js'\nimport type { Field, TabAsField } from '../fields/config/types.js'\nimport type { PayloadRequest } from '../types/index.js'\n\nimport { fieldAffectsData, tabHasName } from '../fields/config/types.js'\n\ntype TraverseFieldsArgs = {\n data: Record<string, unknown>\n fields: (Field | TabAsField)[]\n result: Record<string, unknown>\n}\nconst traverseFields = ({\n data,\n // parent,\n fields,\n result,\n}: TraverseFieldsArgs) => {\n fields.forEach((field) => {\n switch (field.type) {\n case 'collapsible':\n case 'row': {\n traverseFields({\n data,\n fields: field.fields,\n result,\n })\n break\n }\n case 'group': {\n let targetResult\n if (typeof field.saveToJWT === 'string') {\n targetResult = field.saveToJWT\n result[field.saveToJWT] = data[field.name]\n } else if (field.saveToJWT) {\n targetResult = field.name\n result[field.name] = data[field.name]\n }\n const groupData: Record<string, unknown> = data[field.name] as Record<string, unknown>\n const groupResult = (targetResult ? result[targetResult] : result) as Record<\n string,\n unknown\n >\n traverseFields({\n data: groupData,\n fields: field.fields,\n result: groupResult,\n })\n break\n }\n case 'tab': {\n if (tabHasName(field)) {\n let targetResult\n if (typeof field.saveToJWT === 'string') {\n targetResult = field.saveToJWT\n result[field.saveToJWT] = data[field.name]\n } else if (field.saveToJWT) {\n targetResult = field.name\n result[field.name] = data[field.name]\n }\n const tabData: Record<string, unknown> = data[field.name] as Record<string, unknown>\n const tabResult = (targetResult ? result[targetResult] : result) as Record<\n string,\n unknown\n >\n traverseFields({\n data: tabData,\n fields: field.fields,\n result: tabResult,\n })\n } else {\n traverseFields({\n data,\n fields: field.fields,\n result,\n })\n }\n break\n }\n case 'tabs': {\n traverseFields({\n data,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n result,\n })\n break\n }\n default:\n if (fieldAffectsData(field)) {\n if (field.saveToJWT) {\n if (typeof field.saveToJWT === 'string') {\n result[field.saveToJWT] = data[field.name]\n delete result[field.name]\n } else {\n result[field.name] = data[field.name] as Record<string, unknown>\n }\n } else if (field.saveToJWT === false) {\n delete result[field.name]\n }\n }\n }\n })\n return result\n}\nexport const getFieldsToSign = (args: {\n collectionConfig: CollectionConfig\n email: string\n user: PayloadRequest['user']\n}): Record<string, unknown> => {\n const { collectionConfig, email, user } = args\n\n const result: Record<string, unknown> = {\n id: user?.id,\n collection: collectionConfig.slug,\n email,\n }\n\n traverseFields({\n data: user,\n fields: collectionConfig.fields,\n result,\n })\n\n return result\n}\n"],"names":["fieldAffectsData","tabHasName","traverseFields","data","fields","result","forEach","field","type","targetResult","saveToJWT","name","groupData","groupResult","tabData","tabResult","tabs","map","tab","getFieldsToSign","args","collectionConfig","email","user","id","collection","slug"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/auth/getFieldsToSign.ts"],"sourcesContent":["// @ts-strict-ignore\nimport type { CollectionConfig } from '../collections/config/types.js'\nimport type { Field, TabAsField } from '../fields/config/types.js'\nimport type { PayloadRequest } from '../types/index.js'\n\nimport { fieldAffectsData, tabHasName } from '../fields/config/types.js'\n\ntype TraverseFieldsArgs = {\n data: Record<string, unknown>\n fields: (Field | TabAsField)[]\n result: Record<string, unknown>\n}\nconst traverseFields = ({\n data,\n // parent,\n fields,\n result,\n}: TraverseFieldsArgs) => {\n fields.forEach((field) => {\n switch (field.type) {\n case 'collapsible':\n case 'row': {\n traverseFields({\n data,\n fields: field.fields,\n result,\n })\n break\n }\n case 'group': {\n if (fieldAffectsData(field)) {\n let targetResult\n if (typeof field.saveToJWT === 'string') {\n targetResult = field.saveToJWT\n result[field.saveToJWT] = data[field.name]\n } else if (field.saveToJWT) {\n targetResult = field.name\n result[field.name] = data[field.name]\n }\n const groupData: Record<string, unknown> = data[field.name] as Record<string, unknown>\n const groupResult = (targetResult ? result[targetResult] : result) as Record<\n string,\n unknown\n >\n traverseFields({\n data: groupData,\n fields: field.fields,\n result: groupResult,\n })\n break\n } else {\n traverseFields({\n data,\n fields: field.fields,\n result,\n })\n\n break\n }\n }\n case 'tab': {\n if (tabHasName(field)) {\n let targetResult\n if (typeof field.saveToJWT === 'string') {\n targetResult = field.saveToJWT\n result[field.saveToJWT] = data[field.name]\n } else if (field.saveToJWT) {\n targetResult = field.name\n result[field.name] = data[field.name]\n }\n const tabData: Record<string, unknown> = data[field.name] as Record<string, unknown>\n const tabResult = (targetResult ? result[targetResult] : result) as Record<\n string,\n unknown\n >\n traverseFields({\n data: tabData,\n fields: field.fields,\n result: tabResult,\n })\n } else {\n traverseFields({\n data,\n fields: field.fields,\n result,\n })\n }\n break\n }\n case 'tabs': {\n traverseFields({\n data,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n result,\n })\n break\n }\n default:\n if (fieldAffectsData(field)) {\n if (field.saveToJWT) {\n if (typeof field.saveToJWT === 'string') {\n result[field.saveToJWT] = data[field.name]\n delete result[field.name]\n } else {\n result[field.name] = data[field.name] as Record<string, unknown>\n }\n } else if (field.saveToJWT === false) {\n delete result[field.name]\n }\n }\n }\n })\n return result\n}\nexport const getFieldsToSign = (args: {\n collectionConfig: CollectionConfig\n email: string\n user: PayloadRequest['user']\n}): Record<string, unknown> => {\n const { collectionConfig, email, user } = args\n\n const result: Record<string, unknown> = {\n id: user?.id,\n collection: collectionConfig.slug,\n email,\n }\n\n traverseFields({\n data: user,\n fields: collectionConfig.fields,\n result,\n })\n\n return result\n}\n"],"names":["fieldAffectsData","tabHasName","traverseFields","data","fields","result","forEach","field","type","targetResult","saveToJWT","name","groupData","groupResult","tabData","tabResult","tabs","map","tab","getFieldsToSign","args","collectionConfig","email","user","id","collection","slug"],"mappings":"AAAA,oBAAoB;AAKpB,SAASA,gBAAgB,EAAEC,UAAU,QAAQ,4BAA2B;AAOxE,MAAMC,iBAAiB,CAAC,EACtBC,IAAI,EACJ,UAAU;AACVC,MAAM,EACNC,MAAM,EACa;IACnBD,OAAOE,OAAO,CAAC,CAACC;QACd,OAAQA,MAAMC,IAAI;YAChB,KAAK;YACL,KAAK;gBAAO;oBACVN,eAAe;wBACbC;wBACAC,QAAQG,MAAMH,MAAM;wBACpBC;oBACF;oBACA;gBACF;YACA,KAAK;gBAAS;oBACZ,IAAIL,iBAAiBO,QAAQ;wBAC3B,IAAIE;wBACJ,IAAI,OAAOF,MAAMG,SAAS,KAAK,UAAU;4BACvCD,eAAeF,MAAMG,SAAS;4BAC9BL,MAAM,CAACE,MAAMG,SAAS,CAAC,GAAGP,IAAI,CAACI,MAAMI,IAAI,CAAC;wBAC5C,OAAO,IAAIJ,MAAMG,SAAS,EAAE;4BAC1BD,eAAeF,MAAMI,IAAI;4BACzBN,MAAM,CAACE,MAAMI,IAAI,CAAC,GAAGR,IAAI,CAACI,MAAMI,IAAI,CAAC;wBACvC;wBACA,MAAMC,YAAqCT,IAAI,CAACI,MAAMI,IAAI,CAAC;wBAC3D,MAAME,cAAeJ,eAAeJ,MAAM,CAACI,aAAa,GAAGJ;wBAI3DH,eAAe;4BACbC,MAAMS;4BACNR,QAAQG,MAAMH,MAAM;4BACpBC,QAAQQ;wBACV;wBACA;oBACF,OAAO;wBACLX,eAAe;4BACbC;4BACAC,QAAQG,MAAMH,MAAM;4BACpBC;wBACF;wBAEA;oBACF;gBACF;YACA,KAAK;gBAAO;oBACV,IAAIJ,WAAWM,QAAQ;wBACrB,IAAIE;wBACJ,IAAI,OAAOF,MAAMG,SAAS,KAAK,UAAU;4BACvCD,eAAeF,MAAMG,SAAS;4BAC9BL,MAAM,CAACE,MAAMG,SAAS,CAAC,GAAGP,IAAI,CAACI,MAAMI,IAAI,CAAC;wBAC5C,OAAO,IAAIJ,MAAMG,SAAS,EAAE;4BAC1BD,eAAeF,MAAMI,IAAI;4BACzBN,MAAM,CAACE,MAAMI,IAAI,CAAC,GAAGR,IAAI,CAACI,MAAMI,IAAI,CAAC;wBACvC;wBACA,MAAMG,UAAmCX,IAAI,CAACI,MAAMI,IAAI,CAAC;wBACzD,MAAMI,YAAaN,eAAeJ,MAAM,CAACI,aAAa,GAAGJ;wBAIzDH,eAAe;4BACbC,MAAMW;4BACNV,QAAQG,MAAMH,MAAM;4BACpBC,QAAQU;wBACV;oBACF,OAAO;wBACLb,eAAe;4BACbC;4BACAC,QAAQG,MAAMH,MAAM;4BACpBC;wBACF;oBACF;oBACA;gBACF;YACA,KAAK;gBAAQ;oBACXH,eAAe;wBACbC;wBACAC,QAAQG,MAAMS,IAAI,CAACC,GAAG,CAAC,CAACC,MAAS,CAAA;gCAAE,GAAGA,GAAG;gCAAEV,MAAM;4BAAM,CAAA;wBACvDH;oBACF;oBACA;gBACF;YACA;gBACE,IAAIL,iBAAiBO,QAAQ;oBAC3B,IAAIA,MAAMG,SAAS,EAAE;wBACnB,IAAI,OAAOH,MAAMG,SAAS,KAAK,UAAU;4BACvCL,MAAM,CAACE,MAAMG,SAAS,CAAC,GAAGP,IAAI,CAACI,MAAMI,IAAI,CAAC;4BAC1C,OAAON,MAAM,CAACE,MAAMI,IAAI,CAAC;wBAC3B,OAAO;4BACLN,MAAM,CAACE,MAAMI,IAAI,CAAC,GAAGR,IAAI,CAACI,MAAMI,IAAI,CAAC;wBACvC;oBACF,OAAO,IAAIJ,MAAMG,SAAS,KAAK,OAAO;wBACpC,OAAOL,MAAM,CAACE,MAAMI,IAAI,CAAC;oBAC3B;gBACF;QACJ;IACF;IACA,OAAON;AACT;AACA,OAAO,MAAMc,kBAAkB,CAACC;IAK9B,MAAM,EAAEC,gBAAgB,EAAEC,KAAK,EAAEC,IAAI,EAAE,GAAGH;IAE1C,MAAMf,SAAkC;QACtCmB,IAAID,MAAMC;QACVC,YAAYJ,iBAAiBK,IAAI;QACjCJ;IACF;IAEApB,eAAe;QACbC,MAAMoB;QACNnB,QAAQiB,iBAAiBjB,MAAM;QAC/BC;IACF;IAEA,OAAOA;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../src/collections/config/sanitize.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,KAAK,EACV,gBAAgB,EAChB,yBAAyB,EAG1B,MAAM,YAAY,CAAA;AAwBnB,eAAO,MAAM,kBAAkB,WACrB,MAAM,cACF,gBAAgB,iCAKG,KAAK,CAAC,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,wBAC1D,MAAM,EAAE,KAC7B,OAAO,CAAC,yBAAyB,CAkNnC,CAAA"}
1
+ {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../src/collections/config/sanitize.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,KAAK,EACV,gBAAgB,EAChB,yBAAyB,EAG1B,MAAM,YAAY,CAAA;AAuBnB,eAAO,MAAM,kBAAkB,WACrB,MAAM,cACF,gBAAgB,iCAKG,KAAK,CAAC,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,wBAC1D,MAAM,EAAE,KAC7B,OAAO,CAAC,yBAAyB,CAqNnC,CAAA"}
@@ -13,7 +13,6 @@ import baseVersionFields from '../../versions/baseFields.js';
13
13
  import { versionDefaults } from '../../versions/defaults.js';
14
14
  import { defaultCollectionEndpoints } from '../endpoints/index.js';
15
15
  import { addDefaultsToAuthConfig, addDefaultsToCollectionConfig, addDefaultsToLoginWithUsernameConfig } from './defaults.js';
16
- import { sanitizeAuthFields, sanitizeUploadFields } from './reservedFieldNames.js';
17
16
  import { sanitizeCompoundIndexes } from './sanitizeCompoundIndexes.js';
18
17
  import { validateUseAsTitle } from './useAsTitle.js';
19
18
  export const sanitizeCollection = async (config, collection, /**
@@ -138,8 +137,6 @@ export const sanitizeCollection = async (config, collection, /**
138
137
  if (sanitized.upload === true) {
139
138
  sanitized.upload = {};
140
139
  }
141
- // sanitize fields for reserved names
142
- sanitizeUploadFields(sanitized.fields, sanitized);
143
140
  sanitized.upload.cacheTags = sanitized.upload?.cacheTags ?? true;
144
141
  sanitized.upload.bulkUpload = sanitized.upload?.bulkUpload ?? true;
145
142
  sanitized.upload.staticDir = sanitized.upload.staticDir || sanitized.slug;
@@ -151,8 +148,6 @@ export const sanitizeCollection = async (config, collection, /**
151
148
  sanitized.fields = mergeBaseFields(sanitized.fields, uploadFields);
152
149
  }
153
150
  if (sanitized.auth) {
154
- // sanitize fields for reserved names
155
- sanitizeAuthFields(sanitized.fields, sanitized);
156
151
  sanitized.auth = addDefaultsToAuthConfig(typeof sanitized.auth === 'boolean' ? {} : sanitized.auth);
157
152
  // disable duplicate for auth enabled collections by default
158
153
  sanitized.disableDuplicate = sanitized.disableDuplicate ?? true;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/collections/config/sanitize.ts"],"sourcesContent":["// @ts-strict-ignore\n\nimport type { Config, SanitizedConfig } from '../../config/types.js'\nimport type {\n CollectionConfig,\n SanitizedCollectionConfig,\n SanitizedJoin,\n SanitizedJoins,\n} from './types.js'\n\nimport { authCollectionEndpoints } from '../../auth/endpoints/index.js'\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 { uploadCollectionEndpoints } from '../../uploads/endpoints/index.js'\nimport { getBaseUploadFields } from '../../uploads/getBaseFields.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 {\n addDefaultsToAuthConfig,\n addDefaultsToCollectionConfig,\n addDefaultsToLoginWithUsernameConfig,\n} from './defaults.js'\nimport { sanitizeAuthFields, sanitizeUploadFields } from './reservedFieldNames.js'\nimport { sanitizeCompoundIndexes } from './sanitizeCompoundIndexes.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 _validRelationships?: string[],\n): Promise<SanitizedCollectionConfig> => {\n if (collection._sanitized) {\n return collection as SanitizedCollectionConfig\n }\n collection._sanitized = true\n // /////////////////////////////////\n // Make copy of collection config\n // /////////////////////////////////\n\n const sanitized: CollectionConfig = addDefaultsToCollectionConfig(collection)\n\n // /////////////////////////////////\n // Sanitize fields\n // /////////////////////////////////\n\n const validRelationships = _validRelationships ?? config.collections.map((c) => c.slug) ?? []\n\n const joins: SanitizedJoins = {}\n const polymorphicJoins: SanitizedJoin[] = []\n sanitized.fields = await sanitizeFields({\n collectionConfig: sanitized,\n config,\n fields: sanitized.fields,\n joinPath: '',\n joins,\n parentIsLocalized: false,\n polymorphicJoins,\n richTextSanitizationPromises,\n validRelationships,\n })\n\n if (sanitized.endpoints !== false) {\n if (!sanitized.endpoints) {\n sanitized.endpoints = []\n }\n\n if (sanitized.auth) {\n for (const endpoint of authCollectionEndpoints) {\n sanitized.endpoints.push(endpoint)\n }\n }\n\n if (sanitized.upload) {\n for (const endpoint of uploadCollectionEndpoints) {\n sanitized.endpoints.push(endpoint)\n }\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 = addDefaultsToAuthConfig(\n typeof sanitized.auth === 'boolean' ? {} : sanitized.auth,\n )\n\n // disable duplicate for auth enabled collections by default\n sanitized.disableDuplicate = sanitized.disableDuplicate ?? true\n\n if (sanitized.auth.loginWithUsername) {\n if (sanitized.auth.loginWithUsername === true) {\n sanitized.auth.loginWithUsername = addDefaultsToLoginWithUsernameConfig({})\n } else {\n const loginWithUsernameWithDefaults = addDefaultsToLoginWithUsernameConfig(\n sanitized.auth.loginWithUsername,\n )\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 sanitizedConfig.polymorphicJoins = polymorphicJoins\n\n sanitizedConfig.flattenedFields = flattenAllFields({ fields: sanitizedConfig.fields })\n\n sanitizedConfig.sanitizedIndexes = sanitizeCompoundIndexes({\n fields: sanitizedConfig.flattenedFields,\n indexes: sanitizedConfig.indexes,\n })\n\n return sanitizedConfig\n}\n"],"names":["authCollectionEndpoints","getBaseAuthFields","TimestampsRequired","sanitizeFields","fieldAffectsData","mergeBaseFields","uploadCollectionEndpoints","getBaseUploadFields","flattenAllFields","formatLabels","baseVersionFields","versionDefaults","defaultCollectionEndpoints","addDefaultsToAuthConfig","addDefaultsToCollectionConfig","addDefaultsToLoginWithUsernameConfig","sanitizeAuthFields","sanitizeUploadFields","sanitizeCompoundIndexes","validateUseAsTitle","sanitizeCollection","config","collection","richTextSanitizationPromises","_validRelationships","_sanitized","sanitized","validRelationships","collections","map","c","slug","joins","polymorphicJoins","fields","collectionConfig","joinPath","parentIsLocalized","endpoints","auth","endpoint","push","upload","timestamps","hasUpdatedAt","hasCreatedAt","some","field","name","type","admin","disableBulkEdit","hidden","index","label","t","labels","versions","drafts","maxPerDoc","autosave","validate","interval","autosaveInterval","undefined","cacheTags","bulkUpload","staticDir","useAsTitle","uploadFields","disableDuplicate","loginWithUsername","loginWithUsernameWithDefaults","allowEmailLogin","requireUsername","pagination","limits","length","sanitizedConfig","flattenedFields","sanitizedIndexes","indexes"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/collections/config/sanitize.ts"],"sourcesContent":["// @ts-strict-ignore\n\nimport type { Config, SanitizedConfig } from '../../config/types.js'\nimport type {\n CollectionConfig,\n SanitizedCollectionConfig,\n SanitizedJoin,\n SanitizedJoins,\n} from './types.js'\n\nimport { authCollectionEndpoints } from '../../auth/endpoints/index.js'\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 { uploadCollectionEndpoints } from '../../uploads/endpoints/index.js'\nimport { getBaseUploadFields } from '../../uploads/getBaseFields.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 {\n addDefaultsToAuthConfig,\n addDefaultsToCollectionConfig,\n addDefaultsToLoginWithUsernameConfig,\n} from './defaults.js'\nimport { sanitizeCompoundIndexes } from './sanitizeCompoundIndexes.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 _validRelationships?: string[],\n): Promise<SanitizedCollectionConfig> => {\n if (collection._sanitized) {\n return collection as SanitizedCollectionConfig\n }\n\n collection._sanitized = true\n\n // /////////////////////////////////\n // Make copy of collection config\n // /////////////////////////////////\n\n const sanitized: CollectionConfig = addDefaultsToCollectionConfig(collection)\n\n // /////////////////////////////////\n // Sanitize fields\n // /////////////////////////////////\n\n const validRelationships = _validRelationships ?? config.collections.map((c) => c.slug) ?? []\n\n const joins: SanitizedJoins = {}\n\n const polymorphicJoins: SanitizedJoin[] = []\n\n sanitized.fields = await sanitizeFields({\n collectionConfig: sanitized,\n config,\n fields: sanitized.fields,\n joinPath: '',\n joins,\n parentIsLocalized: false,\n polymorphicJoins,\n richTextSanitizationPromises,\n validRelationships,\n })\n\n if (sanitized.endpoints !== false) {\n if (!sanitized.endpoints) {\n sanitized.endpoints = []\n }\n\n if (sanitized.auth) {\n for (const endpoint of authCollectionEndpoints) {\n sanitized.endpoints.push(endpoint)\n }\n }\n\n if (sanitized.upload) {\n for (const endpoint of uploadCollectionEndpoints) {\n sanitized.endpoints.push(endpoint)\n }\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\n sanitized.fields.some((field) => {\n if (fieldAffectsData(field)) {\n if (field.name === 'updatedAt') {\n hasUpdatedAt = true\n }\n\n if (field.name === 'createdAt') {\n hasCreatedAt = true\n }\n }\n\n return hasCreatedAt && hasUpdatedAt\n })\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\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 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 sanitized.auth = addDefaultsToAuthConfig(\n typeof sanitized.auth === 'boolean' ? {} : sanitized.auth,\n )\n\n // disable duplicate for auth enabled collections by default\n sanitized.disableDuplicate = sanitized.disableDuplicate ?? true\n\n if (sanitized.auth.loginWithUsername) {\n if (sanitized.auth.loginWithUsername === true) {\n sanitized.auth.loginWithUsername = addDefaultsToLoginWithUsernameConfig({})\n } else {\n const loginWithUsernameWithDefaults = addDefaultsToLoginWithUsernameConfig(\n sanitized.auth.loginWithUsername,\n )\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 sanitizedConfig.polymorphicJoins = polymorphicJoins\n\n sanitizedConfig.flattenedFields = flattenAllFields({ fields: sanitizedConfig.fields })\n\n sanitizedConfig.sanitizedIndexes = sanitizeCompoundIndexes({\n fields: sanitizedConfig.flattenedFields,\n indexes: sanitizedConfig.indexes,\n })\n\n return sanitizedConfig\n}\n"],"names":["authCollectionEndpoints","getBaseAuthFields","TimestampsRequired","sanitizeFields","fieldAffectsData","mergeBaseFields","uploadCollectionEndpoints","getBaseUploadFields","flattenAllFields","formatLabels","baseVersionFields","versionDefaults","defaultCollectionEndpoints","addDefaultsToAuthConfig","addDefaultsToCollectionConfig","addDefaultsToLoginWithUsernameConfig","sanitizeCompoundIndexes","validateUseAsTitle","sanitizeCollection","config","collection","richTextSanitizationPromises","_validRelationships","_sanitized","sanitized","validRelationships","collections","map","c","slug","joins","polymorphicJoins","fields","collectionConfig","joinPath","parentIsLocalized","endpoints","auth","endpoint","push","upload","timestamps","hasUpdatedAt","hasCreatedAt","some","field","name","type","admin","disableBulkEdit","hidden","index","label","t","labels","versions","drafts","maxPerDoc","autosave","validate","interval","autosaveInterval","undefined","cacheTags","bulkUpload","staticDir","useAsTitle","uploadFields","disableDuplicate","loginWithUsername","loginWithUsernameWithDefaults","allowEmailLogin","requireUsername","pagination","limits","length","sanitizedConfig","flattenedFields","sanitizedIndexes","indexes"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/collections/config/useAsTitle.ts"],"sourcesContent":["import type { CollectionConfig } from '../../index.js'\n\nimport { InvalidConfiguration } from '../../errors/InvalidConfiguration.js'\nimport { fieldAffectsData, fieldIsVirtual } from '../../fields/config/types.js'\nimport flattenFields from '../../utilities/flattenTopLevelFields.js'\n\n/**\n * Validate useAsTitle for collections.\n */\nexport const validateUseAsTitle = (config: CollectionConfig) => {\n if (config.admin?.useAsTitle?.includes('.')) {\n throw new InvalidConfiguration(\n `\"useAsTitle\" cannot be a nested field. Please specify a top-level field in the collection \"${config.slug}\"`,\n )\n }\n\n if (config?.admin && config.admin?.useAsTitle && config.admin.useAsTitle !== 'id') {\n const fields = flattenFields(config.fields)\n const useAsTitleField = fields.find((field) => {\n if (fieldAffectsData(field) && config.admin) {\n return field.name === config.admin.useAsTitle\n }\n return false\n })\n\n // If auth is enabled then we don't need to\n if (config.auth) {\n if (config.admin.useAsTitle !== 'email') {\n if (!useAsTitleField) {\n throw new InvalidConfiguration(\n `The field \"${config.admin.useAsTitle}\" specified in \"admin.useAsTitle\" does not exist in the collection \"${config.slug}\"`,\n )\n }\n }\n } else {\n if (useAsTitleField && 'virtual' in useAsTitleField && useAsTitleField.virtual === true) {\n throw new InvalidConfiguration(\n `The field \"${config.admin.useAsTitle}\" specified in \"admin.useAsTitle\" in the collection \"${config.slug}\" is virtual. A virtual field can be used as the title only when linked to a relationship field.`,\n )\n }\n if (!useAsTitleField) {\n throw new InvalidConfiguration(\n `The field \"${config.admin.useAsTitle}\" specified in \"admin.useAsTitle\" does not exist in the collection \"${config.slug}\"`,\n )\n }\n }\n }\n}\n"],"names":["InvalidConfiguration","fieldAffectsData","flattenFields","validateUseAsTitle","config","admin","useAsTitle","includes","slug","fields","useAsTitleField","find","field","name","auth","virtual"],"mappings":"AAEA,SAASA,oBAAoB,QAAQ,uCAAsC;AAC3E,SAASC,gBAAgB,QAAwB,+BAA8B;AAC/E,OAAOC,mBAAmB,2CAA0C;AAEpE;;CAEC,GACD,OAAO,MAAMC,qBAAqB,CAACC;IACjC,IAAIA,OAAOC,KAAK,EAAEC,YAAYC,SAAS,MAAM;QAC3C,MAAM,IAAIP,qBACR,CAAC,2FAA2F,EAAEI,OAAOI,IAAI,CAAC,CAAC,CAAC;IAEhH;IAEA,IAAIJ,QAAQC,SAASD,OAAOC,KAAK,EAAEC,cAAcF,OAAOC,KAAK,CAACC,UAAU,KAAK,MAAM;QACjF,MAAMG,SAASP,cAAcE,OAAOK,MAAM;QAC1C,MAAMC,kBAAkBD,OAAOE,IAAI,CAAC,CAACC;YACnC,IAAIX,iBAAiBW,UAAUR,OAAOC,KAAK,EAAE;gBAC3C,OAAOO,MAAMC,IAAI,KAAKT,OAAOC,KAAK,CAACC,UAAU;YAC/C;YACA,OAAO;QACT;QAEA,2CAA2C;QAC3C,IAAIF,OAAOU,IAAI,EAAE;YACf,IAAIV,OAAOC,KAAK,CAACC,UAAU,KAAK,SAAS;gBACvC,IAAI,CAACI,iBAAiB;oBACpB,MAAM,IAAIV,qBACR,CAAC,WAAW,EAAEI,OAAOC,KAAK,CAACC,UAAU,CAAC,oEAAoE,EAAEF,OAAOI,IAAI,CAAC,CAAC,CAAC;gBAE9H;YACF;QACF,OAAO;YACL,IAAIE,mBAAmB,aAAaA,mBAAmBA,gBAAgBK,OAAO,KAAK,MAAM;gBACvF,MAAM,IAAIf,qBACR,CAAC,WAAW,EAAEI,OAAOC,KAAK,CAACC,UAAU,CAAC,qDAAqD,EAAEF,OAAOI,IAAI,CAAC,gGAAgG,CAAC;YAE9M;YACA,IAAI,CAACE,iBAAiB;gBACpB,MAAM,IAAIV,qBACR,CAAC,WAAW,EAAEI,OAAOC,KAAK,CAACC,UAAU,CAAC,oEAAoE,EAAEF,OAAOI,IAAI,CAAC,CAAC,CAAC;YAE9H;QACF;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../src/collections/config/useAsTitle.ts"],"sourcesContent":["import type { CollectionConfig } from '../../index.js'\n\nimport { InvalidConfiguration } from '../../errors/InvalidConfiguration.js'\nimport { fieldAffectsData } from '../../fields/config/types.js'\nimport flattenFields from '../../utilities/flattenTopLevelFields.js'\n\n/**\n * Validate useAsTitle for collections.\n */\nexport const validateUseAsTitle = (config: CollectionConfig) => {\n if (config.admin?.useAsTitle?.includes('.')) {\n throw new InvalidConfiguration(\n `\"useAsTitle\" cannot be a nested field. Please specify a top-level field in the collection \"${config.slug}\"`,\n )\n }\n\n if (config?.admin && config.admin?.useAsTitle && config.admin.useAsTitle !== 'id') {\n const fields = flattenFields(config.fields)\n const useAsTitleField = fields.find((field) => {\n if (fieldAffectsData(field) && config.admin) {\n return field.name === config.admin.useAsTitle\n }\n return false\n })\n\n // If auth is enabled then we don't need to\n if (config.auth) {\n if (config.admin.useAsTitle !== 'email') {\n if (!useAsTitleField) {\n throw new InvalidConfiguration(\n `The field \"${config.admin.useAsTitle}\" specified in \"admin.useAsTitle\" does not exist in the collection \"${config.slug}\"`,\n )\n }\n }\n } else {\n if (useAsTitleField && 'virtual' in useAsTitleField && useAsTitleField.virtual === true) {\n throw new InvalidConfiguration(\n `The field \"${config.admin.useAsTitle}\" specified in \"admin.useAsTitle\" in the collection \"${config.slug}\" is virtual. A virtual field can be used as the title only when linked to a relationship field.`,\n )\n }\n if (!useAsTitleField) {\n throw new InvalidConfiguration(\n `The field \"${config.admin.useAsTitle}\" specified in \"admin.useAsTitle\" does not exist in the collection \"${config.slug}\"`,\n )\n }\n }\n }\n}\n"],"names":["InvalidConfiguration","fieldAffectsData","flattenFields","validateUseAsTitle","config","admin","useAsTitle","includes","slug","fields","useAsTitleField","find","field","name","auth","virtual"],"mappings":"AAEA,SAASA,oBAAoB,QAAQ,uCAAsC;AAC3E,SAASC,gBAAgB,QAAQ,+BAA8B;AAC/D,OAAOC,mBAAmB,2CAA0C;AAEpE;;CAEC,GACD,OAAO,MAAMC,qBAAqB,CAACC;IACjC,IAAIA,OAAOC,KAAK,EAAEC,YAAYC,SAAS,MAAM;QAC3C,MAAM,IAAIP,qBACR,CAAC,2FAA2F,EAAEI,OAAOI,IAAI,CAAC,CAAC,CAAC;IAEhH;IAEA,IAAIJ,QAAQC,SAASD,OAAOC,KAAK,EAAEC,cAAcF,OAAOC,KAAK,CAACC,UAAU,KAAK,MAAM;QACjF,MAAMG,SAASP,cAAcE,OAAOK,MAAM;QAC1C,MAAMC,kBAAkBD,OAAOE,IAAI,CAAC,CAACC;YACnC,IAAIX,iBAAiBW,UAAUR,OAAOC,KAAK,EAAE;gBAC3C,OAAOO,MAAMC,IAAI,KAAKT,OAAOC,KAAK,CAACC,UAAU;YAC/C;YACA,OAAO;QACT;QAEA,2CAA2C;QAC3C,IAAIF,OAAOU,IAAI,EAAE;YACf,IAAIV,OAAOC,KAAK,CAACC,UAAU,KAAK,SAAS;gBACvC,IAAI,CAACI,iBAAiB;oBACpB,MAAM,IAAIV,qBACR,CAAC,WAAW,EAAEI,OAAOC,KAAK,CAACC,UAAU,CAAC,oEAAoE,EAAEF,OAAOI,IAAI,CAAC,CAAC,CAAC;gBAE9H;YACF;QACF,OAAO;YACL,IAAIE,mBAAmB,aAAaA,mBAAmBA,gBAAgBK,OAAO,KAAK,MAAM;gBACvF,MAAM,IAAIf,qBACR,CAAC,WAAW,EAAEI,OAAOC,KAAK,CAACC,UAAU,CAAC,qDAAqD,EAAEF,OAAOI,IAAI,CAAC,gGAAgG,CAAC;YAE9M;YACA,IAAI,CAACE,iBAAiB;gBACpB,MAAM,IAAIV,qBACR,CAAC,WAAW,EAAEI,OAAOC,KAAK,CAACC,UAAU,CAAC,oEAAoE,EAAEF,OAAOI,IAAI,CAAC,CAAC,CAAC;YAE9H;QACF;IACF;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/create.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,cAAc,EACd,YAAY,EACZ,UAAU,EACV,6BAA6B,EAC9B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAIV,UAAU,EACV,sBAAsB,EACtB,8BAA8B,EAC9B,wBAAwB,EACzB,MAAM,oBAAoB,CAAA;AAW3B,OAAO,EAAE,KAAK,cAAc,EAAmB,MAAM,gBAAgB,CAAA;AAYrE,MAAM,MAAM,SAAS,CAAC,KAAK,SAAS,cAAc,IAAI;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,8BAA8B,CAAC,KAAK,CAAC,CAAA;IAC3C,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,CAAC,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;IACrD,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,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;CAC3B,CAAA;AAED,eAAO,MAAM,eAAe,GAC1B,KAAK,SAAS,cAAc,EAC5B,OAAO,SAAS,wBAAwB,CAAC,KAAK,CAAC,gBAEjC,SAAS,CAAC,KAAK,CAAC,KAC7B,OAAO,CAAC,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,CAuVvD,CAAA"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/create.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,cAAc,EACd,YAAY,EACZ,UAAU,EACV,6BAA6B,EAC9B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EACV,UAAU,EACV,sBAAsB,EACtB,8BAA8B,EAC9B,wBAAwB,EACzB,MAAM,oBAAoB,CAAA;AAW3B,OAAO,EAAE,KAAK,cAAc,EAAmB,MAAM,gBAAgB,CAAA;AAYrE,MAAM,MAAM,SAAS,CAAC,KAAK,SAAS,cAAc,IAAI;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,8BAA8B,CAAC,KAAK,CAAC,CAAA;IAC3C,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,CAAC,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;IACrD,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,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;CAC3B,CAAA;AAED,eAAO,MAAM,eAAe,GAC1B,KAAK,SAAS,cAAc,EAC5B,OAAO,SAAS,wBAAwB,CAAC,KAAK,CAAC,gBAEjC,SAAS,CAAC,KAAK,CAAC,KAC7B,OAAO,CAAC,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,CAwVvD,CAAA"}
@@ -139,6 +139,7 @@ export const createOperation = async (incomingArgs)=>{
139
139
  docWithLocales: duplicatedFromDocWithLocales,
140
140
  global: null,
141
141
  operation: 'create',
142
+ overrideAccess,
142
143
  req,
143
144
  skipValidation: shouldSaveDraft && collectionConfig.versions.drafts && !collectionConfig.versions.drafts.validate
144
145
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/collections/operations/create.ts"],"sourcesContent":["// @ts-strict-ignore\nimport crypto from 'crypto'\n\nimport type {\n Document,\n PayloadRequest,\n PopulateType,\n SelectType,\n TransformCollectionWithSelect,\n} from '../../types/index.js'\nimport type {\n AfterChangeHook,\n BeforeOperationHook,\n BeforeValidateHook,\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 { sendVerificationEmail } from '../../auth/sendVerificationEmail.js'\nimport { registerLocalStrategy } from '../../auth/strategies/local/register.js'\nimport { getDuplicateDocumentData } from '../../duplicateDocument/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 { type CollectionSlug, type JsonObject } from '../../index.js'\nimport { generateFileData } from '../../uploads/generateFileData.js'\nimport { unlinkTempFiles } from '../../uploads/unlinkTempFiles.js'\nimport { uploadFiles } from '../../uploads/uploadFiles.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport sanitizeInternalFields from '../../utilities/sanitizeInternalFields.js'\nimport { sanitizeSelect } from '../../utilities/sanitizeSelect.js'\nimport { saveVersion } from '../../versions/saveVersion.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type Arguments<TSlug extends CollectionSlug> = {\n autosave?: boolean\n collection: Collection\n data: RequiredDataFromCollectionSlug<TSlug>\n depth?: number\n disableTransaction?: boolean\n disableVerificationEmail?: boolean\n draft?: boolean\n duplicateFromID?: DataFromCollectionSlug<TSlug>['id']\n overrideAccess?: boolean\n overwriteExistingFiles?: boolean\n populate?: PopulateType\n req: PayloadRequest\n select?: SelectType\n showHiddenFields?: boolean\n}\n\nexport const createOperation = async <\n TSlug extends CollectionSlug,\n TSelect extends SelectFromCollectionSlug<TSlug>,\n>(\n incomingArgs: Arguments<TSlug>,\n): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n let args = incomingArgs\n\n try {\n const shouldCommit = !args.disableTransaction && (await initTransaction(args.req))\n\n ensureUsernameOrEmail<TSlug>({\n authOptions: args.collection.config.auth,\n collectionSlug: args.collection.config.slug,\n data: args.data,\n operation: 'create',\n req: args.req,\n })\n\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n if (args.collection.config.hooks.beforeOperation?.length) {\n for (const hook of args.collection.config.hooks.beforeOperation) {\n args =\n (await hook({\n args,\n collection: args.collection.config,\n context: args.req.context,\n operation: 'create',\n req: args.req,\n })) || args\n }\n }\n\n const {\n autosave = false,\n collection: { config: collectionConfig },\n collection,\n depth,\n disableVerificationEmail,\n draft = false,\n duplicateFromID,\n overrideAccess,\n overwriteExistingFiles = false,\n populate,\n req: {\n fallbackLocale,\n locale,\n payload,\n payload: { config },\n },\n req,\n select: incomingSelect,\n showHiddenFields,\n } = args\n\n let { data } = args\n\n const shouldSaveDraft = Boolean(draft && collectionConfig.versions.drafts)\n\n let duplicatedFromDocWithLocales: JsonObject = {}\n let duplicatedFromDoc: JsonObject = {}\n\n if (duplicateFromID) {\n const duplicateResult = await getDuplicateDocumentData({\n id: duplicateFromID,\n collectionConfig,\n draftArg: shouldSaveDraft,\n overrideAccess,\n req,\n shouldSaveDraft,\n })\n\n duplicatedFromDoc = duplicateResult.duplicatedFromDoc\n duplicatedFromDocWithLocales = duplicateResult.duplicatedFromDocWithLocales\n }\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n if (!overrideAccess) {\n await executeAccess({ data, req }, collectionConfig.access.create)\n }\n\n // /////////////////////////////////////\n // Generate data for all files and sizes\n // /////////////////////////////////////\n\n const { data: newFileData, files: filesToUpload } = await generateFileData({\n collection,\n config,\n data,\n isDuplicating: Boolean(duplicateFromID),\n operation: 'create',\n originalDoc: duplicatedFromDoc,\n overwriteExistingFiles,\n req,\n throwOnMissingFile:\n !shouldSaveDraft && collection.config.upload.filesRequiredOnCreate !== false,\n })\n\n data = newFileData\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n data = await beforeValidate({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: duplicatedFromDoc,\n global: null,\n operation: 'create',\n overrideAccess,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Collections\n // /////////////////////////////////////\n\n if (collectionConfig.hooks.beforeValidate?.length) {\n for (const hook of collectionConfig.hooks.beforeValidate) {\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'create',\n originalDoc: duplicatedFromDoc,\n req,\n })) || data\n }\n }\n\n // /////////////////////////////////////\n // beforeChange - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.beforeChange?.length) {\n for (const hook of collectionConfig.hooks.beforeChange) {\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'create',\n originalDoc: duplicatedFromDoc,\n req,\n })) || data\n }\n }\n\n // /////////////////////////////////////\n // beforeChange - Fields\n // /////////////////////////////////////\n\n const resultWithLocales = await beforeChange<JsonObject>({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: duplicatedFromDoc,\n docWithLocales: duplicatedFromDocWithLocales,\n global: null,\n operation: 'create',\n req,\n skipValidation:\n shouldSaveDraft &&\n collectionConfig.versions.drafts &&\n !collectionConfig.versions.drafts.validate,\n })\n\n // /////////////////////////////////////\n // Write files to local storage\n // /////////////////////////////////////\n\n if (!collectionConfig.upload.disableLocalStorage) {\n await uploadFiles(payload, filesToUpload, req)\n }\n\n // /////////////////////////////////////\n // Create\n // /////////////////////////////////////\n\n let doc\n\n const select = sanitizeSelect({\n fields: collectionConfig.flattenedFields,\n forceSelect: collectionConfig.forceSelect,\n select: incomingSelect,\n })\n\n if (collectionConfig.auth && !collectionConfig.auth.disableLocalStrategy) {\n if (collectionConfig.auth.verify) {\n resultWithLocales._verified = Boolean(resultWithLocales._verified) || false\n resultWithLocales._verificationToken = crypto.randomBytes(20).toString('hex')\n }\n\n doc = await registerLocalStrategy({\n collection: collectionConfig,\n doc: resultWithLocales,\n password: data.password as string,\n payload: req.payload,\n req,\n select,\n })\n } else {\n doc = await payload.db.create({\n collection: collectionConfig.slug,\n data: resultWithLocales,\n req,\n select,\n })\n }\n\n const verificationToken = doc._verificationToken\n let result: Document = sanitizeInternalFields(doc)\n\n // /////////////////////////////////////\n // Create version\n // /////////////////////////////////////\n\n if (collectionConfig.versions) {\n await saveVersion({\n id: result.id,\n autosave,\n collection: collectionConfig,\n docWithLocales: result,\n payload,\n req,\n })\n }\n\n // /////////////////////////////////////\n // Send verification email if applicable\n // /////////////////////////////////////\n\n if (collectionConfig.auth && collectionConfig.auth.verify && result.email) {\n await sendVerificationEmail({\n collection: { config: collectionConfig },\n config: payload.config,\n disableEmail: disableVerificationEmail,\n email: payload.email,\n req,\n token: verificationToken,\n user: result,\n })\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth,\n doc: result,\n draft,\n fallbackLocale,\n global: null,\n locale,\n overrideAccess,\n populate,\n req,\n select,\n showHiddenFields,\n })\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterRead?.length) {\n for (const hook of collectionConfig.hooks.afterRead) {\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n req,\n })) || result\n }\n }\n\n // /////////////////////////////////////\n // afterChange - Fields\n // /////////////////////////////////////\n\n result = await afterChange({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: result,\n global: null,\n operation: 'create',\n previousDoc: {},\n req,\n })\n\n // /////////////////////////////////////\n // afterChange - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterChange?.length) {\n for (const hook of collectionConfig.hooks.afterChange) {\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n operation: 'create',\n previousDoc: {},\n req: args.req,\n })) || result\n }\n }\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation<TSlug>({\n args,\n collection: collectionConfig,\n operation: 'create',\n result,\n })\n\n await unlinkTempFiles({ collectionConfig, config, req })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n if (shouldCommit) {\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":["crypto","ensureUsernameOrEmail","executeAccess","sendVerificationEmail","registerLocalStrategy","getDuplicateDocumentData","afterChange","afterRead","beforeChange","beforeValidate","generateFileData","unlinkTempFiles","uploadFiles","commitTransaction","initTransaction","killTransaction","sanitizeInternalFields","sanitizeSelect","saveVersion","buildAfterOperation","createOperation","incomingArgs","args","shouldCommit","disableTransaction","req","authOptions","collection","config","auth","collectionSlug","slug","data","operation","hooks","beforeOperation","length","hook","context","autosave","collectionConfig","depth","disableVerificationEmail","draft","duplicateFromID","overrideAccess","overwriteExistingFiles","populate","fallbackLocale","locale","payload","select","incomingSelect","showHiddenFields","shouldSaveDraft","Boolean","versions","drafts","duplicatedFromDocWithLocales","duplicatedFromDoc","duplicateResult","id","draftArg","access","create","newFileData","files","filesToUpload","isDuplicating","originalDoc","throwOnMissingFile","upload","filesRequiredOnCreate","doc","global","resultWithLocales","docWithLocales","skipValidation","validate","disableLocalStorage","fields","flattenedFields","forceSelect","disableLocalStrategy","verify","_verified","_verificationToken","randomBytes","toString","password","db","verificationToken","result","email","disableEmail","token","user","previousDoc","error"],"mappings":"AAAA,oBAAoB;AACpB,OAAOA,YAAY,SAAQ;AAmB3B,SAASC,qBAAqB,QAAQ,sCAAqC;AAC3E,OAAOC,mBAAmB,8BAA6B;AACvD,SAASC,qBAAqB,QAAQ,sCAAqC;AAC3E,SAASC,qBAAqB,QAAQ,0CAAyC;AAC/E,SAASC,wBAAwB,QAAQ,mCAAkC;AAC3E,SAASC,WAAW,QAAQ,0CAAyC;AACrE,SAASC,SAAS,QAAQ,wCAAuC;AACjE,SAASC,YAAY,QAAQ,2CAA0C;AACvE,SAASC,cAAc,QAAQ,6CAA4C;AAE3E,SAASC,gBAAgB,QAAQ,oCAAmC;AACpE,SAASC,eAAe,QAAQ,mCAAkC;AAClE,SAASC,WAAW,QAAQ,+BAA8B;AAC1D,SAASC,iBAAiB,QAAQ,uCAAsC;AACxE,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,eAAe,QAAQ,qCAAoC;AACpE,OAAOC,4BAA4B,4CAA2C;AAC9E,SAASC,cAAc,QAAQ,oCAAmC;AAClE,SAASC,WAAW,QAAQ,gCAA+B;AAC3D,SAASC,mBAAmB,QAAQ,aAAY;AAmBhD,OAAO,MAAMC,kBAAkB,OAI7BC;IAEA,IAAIC,OAAOD;IAEX,IAAI;QACF,MAAME,eAAe,CAACD,KAAKE,kBAAkB,IAAK,MAAMV,gBAAgBQ,KAAKG,GAAG;QAEhFxB,sBAA6B;YAC3ByB,aAAaJ,KAAKK,UAAU,CAACC,MAAM,CAACC,IAAI;YACxCC,gBAAgBR,KAAKK,UAAU,CAACC,MAAM,CAACG,IAAI;YAC3CC,MAAMV,KAAKU,IAAI;YACfC,WAAW;YACXR,KAAKH,KAAKG,GAAG;QACf;QAEA,wCAAwC;QACxC,+BAA+B;QAC/B,wCAAwC;QAExC,IAAIH,KAAKK,UAAU,CAACC,MAAM,CAACM,KAAK,CAACC,eAAe,EAAEC,QAAQ;YACxD,KAAK,MAAMC,QAAQf,KAAKK,UAAU,CAACC,MAAM,CAACM,KAAK,CAACC,eAAe,CAAE;gBAC/Db,OACE,AAAC,MAAMe,KAAK;oBACVf;oBACAK,YAAYL,KAAKK,UAAU,CAACC,MAAM;oBAClCU,SAAShB,KAAKG,GAAG,CAACa,OAAO;oBACzBL,WAAW;oBACXR,KAAKH,KAAKG,GAAG;gBACf,MAAOH;YACX;QACF;QAEA,MAAM,EACJiB,WAAW,KAAK,EAChBZ,YAAY,EAAEC,QAAQY,gBAAgB,EAAE,EACxCb,UAAU,EACVc,KAAK,EACLC,wBAAwB,EACxBC,QAAQ,KAAK,EACbC,eAAe,EACfC,cAAc,EACdC,yBAAyB,KAAK,EAC9BC,QAAQ,EACRtB,KAAK,EACHuB,cAAc,EACdC,MAAM,EACNC,OAAO,EACPA,SAAS,EAAEtB,MAAM,EAAE,EACpB,EACDH,GAAG,EACH0B,QAAQC,cAAc,EACtBC,gBAAgB,EACjB,GAAG/B;QAEJ,IAAI,EAAEU,IAAI,EAAE,GAAGV;QAEf,MAAMgC,kBAAkBC,QAAQZ,SAASH,iBAAiBgB,QAAQ,CAACC,MAAM;QAEzE,IAAIC,+BAA2C,CAAC;QAChD,IAAIC,oBAAgC,CAAC;QAErC,IAAIf,iBAAiB;YACnB,MAAMgB,kBAAkB,MAAMvD,yBAAyB;gBACrDwD,IAAIjB;gBACJJ;gBACAsB,UAAUR;gBACVT;gBACApB;gBACA6B;YACF;YAEAK,oBAAoBC,gBAAgBD,iBAAiB;YACrDD,+BAA+BE,gBAAgBF,4BAA4B;QAC7E;QAEA,wCAAwC;QACxC,SAAS;QACT,wCAAwC;QAExC,IAAI,CAACb,gBAAgB;YACnB,MAAM3C,cAAc;gBAAE8B;gBAAMP;YAAI,GAAGe,iBAAiBuB,MAAM,CAACC,MAAM;QACnE;QAEA,wCAAwC;QACxC,wCAAwC;QACxC,wCAAwC;QAExC,MAAM,EAAEhC,MAAMiC,WAAW,EAAEC,OAAOC,aAAa,EAAE,GAAG,MAAMzD,iBAAiB;YACzEiB;YACAC;YACAI;YACAoC,eAAeb,QAAQX;YACvBX,WAAW;YACXoC,aAAaV;YACbb;YACArB;YACA6C,oBACE,CAAChB,mBAAmB3B,WAAWC,MAAM,CAAC2C,MAAM,CAACC,qBAAqB,KAAK;QAC3E;QAEAxC,OAAOiC;QAEP,wCAAwC;QACxC,0BAA0B;QAC1B,wCAAwC;QAExCjC,OAAO,MAAMvB,eAAe;YAC1BkB,YAAYa;YACZF,SAASb,IAAIa,OAAO;YACpBN;YACAyC,KAAKd;YACLe,QAAQ;YACRzC,WAAW;YACXY;YACApB;QACF;QAEA,wCAAwC;QACxC,+BAA+B;QAC/B,wCAAwC;QAExC,IAAIe,iBAAiBN,KAAK,CAACzB,cAAc,EAAE2B,QAAQ;YACjD,KAAK,MAAMC,QAAQG,iBAAiBN,KAAK,CAACzB,cAAc,CAAE;gBACxDuB,OACE,AAAC,MAAMK,KAAK;oBACVV,YAAYa;oBACZF,SAASb,IAAIa,OAAO;oBACpBN;oBACAC,WAAW;oBACXoC,aAAaV;oBACblC;gBACF,MAAOO;YACX;QACF;QAEA,wCAAwC;QACxC,4BAA4B;QAC5B,wCAAwC;QAExC,IAAIQ,iBAAiBN,KAAK,EAAE1B,cAAc4B,QAAQ;YAChD,KAAK,MAAMC,QAAQG,iBAAiBN,KAAK,CAAC1B,YAAY,CAAE;gBACtDwB,OACE,AAAC,MAAMK,KAAK;oBACVV,YAAYa;oBACZF,SAASb,IAAIa,OAAO;oBACpBN;oBACAC,WAAW;oBACXoC,aAAaV;oBACblC;gBACF,MAAOO;YACX;QACF;QAEA,wCAAwC;QACxC,wBAAwB;QACxB,wCAAwC;QAExC,MAAM2C,oBAAoB,MAAMnE,aAAyB;YACvDmB,YAAYa;YACZF,SAASb,IAAIa,OAAO;YACpBN;YACAyC,KAAKd;YACLiB,gBAAgBlB;YAChBgB,QAAQ;YACRzC,WAAW;YACXR;YACAoD,gBACEvB,mBACAd,iBAAiBgB,QAAQ,CAACC,MAAM,IAChC,CAACjB,iBAAiBgB,QAAQ,CAACC,MAAM,CAACqB,QAAQ;QAC9C;QAEA,wCAAwC;QACxC,+BAA+B;QAC/B,wCAAwC;QAExC,IAAI,CAACtC,iBAAiB+B,MAAM,CAACQ,mBAAmB,EAAE;YAChD,MAAMnE,YAAYsC,SAASiB,eAAe1C;QAC5C;QAEA,wCAAwC;QACxC,SAAS;QACT,wCAAwC;QAExC,IAAIgD;QAEJ,MAAMtB,SAASlC,eAAe;YAC5B+D,QAAQxC,iBAAiByC,eAAe;YACxCC,aAAa1C,iBAAiB0C,WAAW;YACzC/B,QAAQC;QACV;QAEA,IAAIZ,iBAAiBX,IAAI,IAAI,CAACW,iBAAiBX,IAAI,CAACsD,oBAAoB,EAAE;YACxE,IAAI3C,iBAAiBX,IAAI,CAACuD,MAAM,EAAE;gBAChCT,kBAAkBU,SAAS,GAAG9B,QAAQoB,kBAAkBU,SAAS,KAAK;gBACtEV,kBAAkBW,kBAAkB,GAAGtF,OAAOuF,WAAW,CAAC,IAAIC,QAAQ,CAAC;YACzE;YAEAf,MAAM,MAAMrE,sBAAsB;gBAChCuB,YAAYa;gBACZiC,KAAKE;gBACLc,UAAUzD,KAAKyD,QAAQ;gBACvBvC,SAASzB,IAAIyB,OAAO;gBACpBzB;gBACA0B;YACF;QACF,OAAO;YACLsB,MAAM,MAAMvB,QAAQwC,EAAE,CAAC1B,MAAM,CAAC;gBAC5BrC,YAAYa,iBAAiBT,IAAI;gBACjCC,MAAM2C;gBACNlD;gBACA0B;YACF;QACF;QAEA,MAAMwC,oBAAoBlB,IAAIa,kBAAkB;QAChD,IAAIM,SAAmB5E,uBAAuByD;QAE9C,wCAAwC;QACxC,iBAAiB;QACjB,wCAAwC;QAExC,IAAIjC,iBAAiBgB,QAAQ,EAAE;YAC7B,MAAMtC,YAAY;gBAChB2C,IAAI+B,OAAO/B,EAAE;gBACbtB;gBACAZ,YAAYa;gBACZoC,gBAAgBgB;gBAChB1C;gBACAzB;YACF;QACF;QAEA,wCAAwC;QACxC,wCAAwC;QACxC,wCAAwC;QAExC,IAAIe,iBAAiBX,IAAI,IAAIW,iBAAiBX,IAAI,CAACuD,MAAM,IAAIQ,OAAOC,KAAK,EAAE;YACzE,MAAM1F,sBAAsB;gBAC1BwB,YAAY;oBAAEC,QAAQY;gBAAiB;gBACvCZ,QAAQsB,QAAQtB,MAAM;gBACtBkE,cAAcpD;gBACdmD,OAAO3C,QAAQ2C,KAAK;gBACpBpE;gBACAsE,OAAOJ;gBACPK,MAAMJ;YACR;QACF;QAEA,wCAAwC;QACxC,qBAAqB;QACrB,wCAAwC;QAExCA,SAAS,MAAMrF,UAAU;YACvBoB,YAAYa;YACZF,SAASb,IAAIa,OAAO;YACpBG;YACAgC,KAAKmB;YACLjD;YACAK;YACA0B,QAAQ;YACRzB;YACAJ;YACAE;YACAtB;YACA0B;YACAE;QACF;QAEA,wCAAwC;QACxC,yBAAyB;QACzB,wCAAwC;QAExC,IAAIb,iBAAiBN,KAAK,EAAE3B,WAAW6B,QAAQ;YAC7C,KAAK,MAAMC,QAAQG,iBAAiBN,KAAK,CAAC3B,SAAS,CAAE;gBACnDqF,SACE,AAAC,MAAMvD,KAAK;oBACVV,YAAYa;oBACZF,SAASb,IAAIa,OAAO;oBACpBmC,KAAKmB;oBACLnE;gBACF,MAAOmE;YACX;QACF;QAEA,wCAAwC;QACxC,uBAAuB;QACvB,wCAAwC;QAExCA,SAAS,MAAMtF,YAAY;YACzBqB,YAAYa;YACZF,SAASb,IAAIa,OAAO;YACpBN;YACAyC,KAAKmB;YACLlB,QAAQ;YACRzC,WAAW;YACXgE,aAAa,CAAC;YACdxE;QACF;QAEA,wCAAwC;QACxC,2BAA2B;QAC3B,wCAAwC;QAExC,IAAIe,iBAAiBN,KAAK,EAAE5B,aAAa8B,QAAQ;YAC/C,KAAK,MAAMC,QAAQG,iBAAiBN,KAAK,CAAC5B,WAAW,CAAE;gBACrDsF,SACE,AAAC,MAAMvD,KAAK;oBACVV,YAAYa;oBACZF,SAASb,IAAIa,OAAO;oBACpBmC,KAAKmB;oBACL3D,WAAW;oBACXgE,aAAa,CAAC;oBACdxE,KAAKH,KAAKG,GAAG;gBACf,MAAOmE;YACX;QACF;QAEA,wCAAwC;QACxC,8BAA8B;QAC9B,wCAAwC;QAExCA,SAAS,MAAMzE,oBAA2B;YACxCG;YACAK,YAAYa;YACZP,WAAW;YACX2D;QACF;QAEA,MAAMjF,gBAAgB;YAAE6B;YAAkBZ;YAAQH;QAAI;QAEtD,wCAAwC;QACxC,iBAAiB;QACjB,wCAAwC;QAExC,IAAIF,cAAc;YAChB,MAAMV,kBAAkBY;QAC1B;QAEA,OAAOmE;IACT,EAAE,OAAOM,OAAgB;QACvB,MAAMnF,gBAAgBO,KAAKG,GAAG;QAC9B,MAAMyE;IACR;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../src/collections/operations/create.ts"],"sourcesContent":["// @ts-strict-ignore\nimport crypto from 'crypto'\n\nimport type {\n Document,\n PayloadRequest,\n PopulateType,\n SelectType,\n TransformCollectionWithSelect,\n} from '../../types/index.js'\nimport type {\n Collection,\n DataFromCollectionSlug,\n RequiredDataFromCollectionSlug,\n SelectFromCollectionSlug,\n} from '../config/types.js'\n\nimport { ensureUsernameOrEmail } from '../../auth/ensureUsernameOrEmail.js'\nimport executeAccess from '../../auth/executeAccess.js'\nimport { sendVerificationEmail } from '../../auth/sendVerificationEmail.js'\nimport { registerLocalStrategy } from '../../auth/strategies/local/register.js'\nimport { getDuplicateDocumentData } from '../../duplicateDocument/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 { type CollectionSlug, type JsonObject } from '../../index.js'\nimport { generateFileData } from '../../uploads/generateFileData.js'\nimport { unlinkTempFiles } from '../../uploads/unlinkTempFiles.js'\nimport { uploadFiles } from '../../uploads/uploadFiles.js'\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport sanitizeInternalFields from '../../utilities/sanitizeInternalFields.js'\nimport { sanitizeSelect } from '../../utilities/sanitizeSelect.js'\nimport { saveVersion } from '../../versions/saveVersion.js'\nimport { buildAfterOperation } from './utils.js'\n\nexport type Arguments<TSlug extends CollectionSlug> = {\n autosave?: boolean\n collection: Collection\n data: RequiredDataFromCollectionSlug<TSlug>\n depth?: number\n disableTransaction?: boolean\n disableVerificationEmail?: boolean\n draft?: boolean\n duplicateFromID?: DataFromCollectionSlug<TSlug>['id']\n overrideAccess?: boolean\n overwriteExistingFiles?: boolean\n populate?: PopulateType\n req: PayloadRequest\n select?: SelectType\n showHiddenFields?: boolean\n}\n\nexport const createOperation = async <\n TSlug extends CollectionSlug,\n TSelect extends SelectFromCollectionSlug<TSlug>,\n>(\n incomingArgs: Arguments<TSlug>,\n): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n let args = incomingArgs\n\n try {\n const shouldCommit = !args.disableTransaction && (await initTransaction(args.req))\n\n ensureUsernameOrEmail<TSlug>({\n authOptions: args.collection.config.auth,\n collectionSlug: args.collection.config.slug,\n data: args.data,\n operation: 'create',\n req: args.req,\n })\n\n // /////////////////////////////////////\n // beforeOperation - Collection\n // /////////////////////////////////////\n\n if (args.collection.config.hooks.beforeOperation?.length) {\n for (const hook of args.collection.config.hooks.beforeOperation) {\n args =\n (await hook({\n args,\n collection: args.collection.config,\n context: args.req.context,\n operation: 'create',\n req: args.req,\n })) || args\n }\n }\n\n const {\n autosave = false,\n collection: { config: collectionConfig },\n collection,\n depth,\n disableVerificationEmail,\n draft = false,\n duplicateFromID,\n overrideAccess,\n overwriteExistingFiles = false,\n populate,\n req: {\n fallbackLocale,\n locale,\n payload,\n payload: { config },\n },\n req,\n select: incomingSelect,\n showHiddenFields,\n } = args\n\n let { data } = args\n\n const shouldSaveDraft = Boolean(draft && collectionConfig.versions.drafts)\n\n let duplicatedFromDocWithLocales: JsonObject = {}\n let duplicatedFromDoc: JsonObject = {}\n\n if (duplicateFromID) {\n const duplicateResult = await getDuplicateDocumentData({\n id: duplicateFromID,\n collectionConfig,\n draftArg: shouldSaveDraft,\n overrideAccess,\n req,\n shouldSaveDraft,\n })\n\n duplicatedFromDoc = duplicateResult.duplicatedFromDoc\n duplicatedFromDocWithLocales = duplicateResult.duplicatedFromDocWithLocales\n }\n\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n if (!overrideAccess) {\n await executeAccess({ data, req }, collectionConfig.access.create)\n }\n\n // /////////////////////////////////////\n // Generate data for all files and sizes\n // /////////////////////////////////////\n\n const { data: newFileData, files: filesToUpload } = await generateFileData({\n collection,\n config,\n data,\n isDuplicating: Boolean(duplicateFromID),\n operation: 'create',\n originalDoc: duplicatedFromDoc,\n overwriteExistingFiles,\n req,\n throwOnMissingFile:\n !shouldSaveDraft && collection.config.upload.filesRequiredOnCreate !== false,\n })\n\n data = newFileData\n\n // /////////////////////////////////////\n // beforeValidate - Fields\n // /////////////////////////////////////\n\n data = await beforeValidate({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: duplicatedFromDoc,\n global: null,\n operation: 'create',\n overrideAccess,\n req,\n })\n\n // /////////////////////////////////////\n // beforeValidate - Collections\n // /////////////////////////////////////\n\n if (collectionConfig.hooks.beforeValidate?.length) {\n for (const hook of collectionConfig.hooks.beforeValidate) {\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'create',\n originalDoc: duplicatedFromDoc,\n req,\n })) || data\n }\n }\n\n // /////////////////////////////////////\n // beforeChange - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.beforeChange?.length) {\n for (const hook of collectionConfig.hooks.beforeChange) {\n data =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n data,\n operation: 'create',\n originalDoc: duplicatedFromDoc,\n req,\n })) || data\n }\n }\n\n // /////////////////////////////////////\n // beforeChange - Fields\n // /////////////////////////////////////\n\n const resultWithLocales = await beforeChange<JsonObject>({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: duplicatedFromDoc,\n docWithLocales: duplicatedFromDocWithLocales,\n global: null,\n operation: 'create',\n overrideAccess,\n req,\n skipValidation:\n shouldSaveDraft &&\n collectionConfig.versions.drafts &&\n !collectionConfig.versions.drafts.validate,\n })\n\n // /////////////////////////////////////\n // Write files to local storage\n // /////////////////////////////////////\n\n if (!collectionConfig.upload.disableLocalStorage) {\n await uploadFiles(payload, filesToUpload, req)\n }\n\n // /////////////////////////////////////\n // Create\n // /////////////////////////////////////\n\n let doc\n\n const select = sanitizeSelect({\n fields: collectionConfig.flattenedFields,\n forceSelect: collectionConfig.forceSelect,\n select: incomingSelect,\n })\n\n if (collectionConfig.auth && !collectionConfig.auth.disableLocalStrategy) {\n if (collectionConfig.auth.verify) {\n resultWithLocales._verified = Boolean(resultWithLocales._verified) || false\n resultWithLocales._verificationToken = crypto.randomBytes(20).toString('hex')\n }\n\n doc = await registerLocalStrategy({\n collection: collectionConfig,\n doc: resultWithLocales,\n password: data.password as string,\n payload: req.payload,\n req,\n select,\n })\n } else {\n doc = await payload.db.create({\n collection: collectionConfig.slug,\n data: resultWithLocales,\n req,\n select,\n })\n }\n\n const verificationToken = doc._verificationToken\n let result: Document = sanitizeInternalFields(doc)\n\n // /////////////////////////////////////\n // Create version\n // /////////////////////////////////////\n\n if (collectionConfig.versions) {\n await saveVersion({\n id: result.id,\n autosave,\n collection: collectionConfig,\n docWithLocales: result,\n payload,\n req,\n })\n }\n\n // /////////////////////////////////////\n // Send verification email if applicable\n // /////////////////////////////////////\n\n if (collectionConfig.auth && collectionConfig.auth.verify && result.email) {\n await sendVerificationEmail({\n collection: { config: collectionConfig },\n config: payload.config,\n disableEmail: disableVerificationEmail,\n email: payload.email,\n req,\n token: verificationToken,\n user: result,\n })\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result = await afterRead({\n collection: collectionConfig,\n context: req.context,\n depth,\n doc: result,\n draft,\n fallbackLocale,\n global: null,\n locale,\n overrideAccess,\n populate,\n req,\n select,\n showHiddenFields,\n })\n\n // /////////////////////////////////////\n // afterRead - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterRead?.length) {\n for (const hook of collectionConfig.hooks.afterRead) {\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n req,\n })) || result\n }\n }\n\n // /////////////////////////////////////\n // afterChange - Fields\n // /////////////////////////////////////\n\n result = await afterChange({\n collection: collectionConfig,\n context: req.context,\n data,\n doc: result,\n global: null,\n operation: 'create',\n previousDoc: {},\n req,\n })\n\n // /////////////////////////////////////\n // afterChange - Collection\n // /////////////////////////////////////\n\n if (collectionConfig.hooks?.afterChange?.length) {\n for (const hook of collectionConfig.hooks.afterChange) {\n result =\n (await hook({\n collection: collectionConfig,\n context: req.context,\n doc: result,\n operation: 'create',\n previousDoc: {},\n req: args.req,\n })) || result\n }\n }\n\n // /////////////////////////////////////\n // afterOperation - Collection\n // /////////////////////////////////////\n\n result = await buildAfterOperation<TSlug>({\n args,\n collection: collectionConfig,\n operation: 'create',\n result,\n })\n\n await unlinkTempFiles({ collectionConfig, config, req })\n\n // /////////////////////////////////////\n // Return results\n // /////////////////////////////////////\n\n if (shouldCommit) {\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":["crypto","ensureUsernameOrEmail","executeAccess","sendVerificationEmail","registerLocalStrategy","getDuplicateDocumentData","afterChange","afterRead","beforeChange","beforeValidate","generateFileData","unlinkTempFiles","uploadFiles","commitTransaction","initTransaction","killTransaction","sanitizeInternalFields","sanitizeSelect","saveVersion","buildAfterOperation","createOperation","incomingArgs","args","shouldCommit","disableTransaction","req","authOptions","collection","config","auth","collectionSlug","slug","data","operation","hooks","beforeOperation","length","hook","context","autosave","collectionConfig","depth","disableVerificationEmail","draft","duplicateFromID","overrideAccess","overwriteExistingFiles","populate","fallbackLocale","locale","payload","select","incomingSelect","showHiddenFields","shouldSaveDraft","Boolean","versions","drafts","duplicatedFromDocWithLocales","duplicatedFromDoc","duplicateResult","id","draftArg","access","create","newFileData","files","filesToUpload","isDuplicating","originalDoc","throwOnMissingFile","upload","filesRequiredOnCreate","doc","global","resultWithLocales","docWithLocales","skipValidation","validate","disableLocalStorage","fields","flattenedFields","forceSelect","disableLocalStrategy","verify","_verified","_verificationToken","randomBytes","toString","password","db","verificationToken","result","email","disableEmail","token","user","previousDoc","error"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/delete.ts"],"names":[],"mappings":"AAIA,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,EAEV,mBAAmB,EACnB,UAAU,EAEV,wBAAwB,EACzB,MAAM,oBAAoB,CAAA;AAkB3B,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,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,KACtB,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CA6Q7C,CAAA"}
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/delete.ts"],"names":[],"mappings":"AAIA,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,wBAAwB,EACzB,MAAM,oBAAoB,CAAA;AAkB3B,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,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,KACtB,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CA6Q7C,CAAA"}