payload 3.0.0-beta.74 → 3.0.0-beta.76

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 (31) hide show
  1. package/dist/database/migrations/createMigration.d.ts.map +1 -1
  2. package/dist/database/migrations/createMigration.js +5 -1
  3. package/dist/database/migrations/createMigration.js.map +1 -1
  4. package/dist/database/migrations/migrate.d.ts +1 -1
  5. package/dist/database/migrations/migrate.d.ts.map +1 -1
  6. package/dist/database/migrations/migrate.js +3 -3
  7. package/dist/database/migrations/migrate.js.map +1 -1
  8. package/dist/database/migrations/readMigrationFiles.js +1 -1
  9. package/dist/database/migrations/readMigrationFiles.js.map +1 -1
  10. package/dist/database/migrations/writeMigrationIndex.d.ts +4 -0
  11. package/dist/database/migrations/writeMigrationIndex.d.ts.map +1 -0
  12. package/dist/database/migrations/writeMigrationIndex.js +32 -0
  13. package/dist/database/migrations/writeMigrationIndex.js.map +1 -0
  14. package/dist/database/types.d.ts +6 -10
  15. package/dist/database/types.d.ts.map +1 -1
  16. package/dist/database/types.js.map +1 -1
  17. package/dist/fields/config/client.d.ts.map +1 -1
  18. package/dist/fields/config/types.d.ts +8 -0
  19. package/dist/fields/config/types.d.ts.map +1 -1
  20. package/dist/fields/config/types.js.map +1 -1
  21. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
  22. package/dist/fields/hooks/afterRead/promise.js +4 -0
  23. package/dist/fields/hooks/afterRead/promise.js.map +1 -1
  24. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts.map +1 -1
  25. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js +10 -10
  26. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js.map +1 -1
  27. package/dist/index.d.ts +1 -0
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +1 -0
  30. package/dist/index.js.map +1 -1
  31. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/config/types.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { EditorProps } from '@monaco-editor/react'\nimport type { CSSProperties } from 'react'\n\n//eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport monacoeditor from 'monaco-editor' // IMPORTANT - DO NOT REMOVE: This is required for pnpm's default isolated mode to work - even though the import is not used. This is due to a typescript bug: https://github.com/microsoft/TypeScript/issues/47663#issuecomment-1519138189. (tsbugisolatedmode)\nimport type { JSONSchema4 } from 'json-schema'\nimport type React from 'react'\nimport type { DeepPartial } from 'ts-essentials'\n\nimport type { RichTextAdapter, RichTextAdapterProvider } from '../../admin/RichText.js'\nimport type { ErrorComponent } from '../../admin/forms/Error.js'\nimport type {\n ConditionalDateProps,\n Description,\n DescriptionComponent,\n LabelComponent,\n RowLabelComponent,\n} from '../../admin/types.js'\nimport type { SanitizedCollectionConfig, TypeWithID } from '../../collections/config/types.js'\nimport type { CustomComponent, LabelFunction, LabelStatic } from '../../config/types.js'\nimport type { DBIdentifierName } from '../../database/types.js'\nimport type { SanitizedGlobalConfig } from '../../globals/config/types.js'\nimport type { CollectionSlug } from '../../index.js'\nimport type { DocumentPreferences } from '../../preferences/types.js'\nimport type { Operation, PayloadRequest, RequestContext, Where } from '../../types/index.js'\nimport type { ClientFieldConfig } from './client.js'\n\nexport type FieldHookArgs<TData extends TypeWithID = any, TValue = any, TSiblingData = any> = {\n /** The collection which the field belongs to. If the field belongs to a global, this will be null. */\n collection: SanitizedCollectionConfig | null\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 /** Boolean to denote if this hook is running against finding one, or finding many within the afterRead hook. */\n findMany?: boolean\n /** The global which the field belongs to. If the field belongs to a collection, this will be null. */\n global: SanitizedGlobalConfig | null\n /** A string relating to which operation the field type is currently executing within. Useful within beforeValidate, beforeChange, and afterChange hooks to differentiate between create and update operations. */\n operation?: 'create' | 'delete' | 'read' | 'update'\n /** The full original document in `update` operations. In the `afterChange` hook, this is the resulting document of the operation. */\n originalDoc?: TData\n overrideAccess?: 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 document before changes were applied, only in `afterChange` hooks. */\n previousDoc?: TData\n /** The sibling data of the document before changes being applied, only in `beforeChange`, `beforeValidate`, `beforeDuplicate` and `afterChange` field hooks. */\n previousSiblingDoc?: TData\n /** The previous value of the field, before changes, only in `beforeChange`, `afterChange`, `beforeDuplicate` and `beforeValidate` field hooks. */\n previousValue?: TValue\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 /**\n * The original siblingData with locales (not modified by any hooks). Only available in `beforeChange` and `beforeDuplicate` field hooks.\n */\n siblingDocWithLocales?: Record<string, unknown>\n /** The value of the field. */\n value?: TValue\n}\n\nexport type FieldHook<TData extends TypeWithID = any, TValue = any, TSiblingData = any> = (\n args: FieldHookArgs<TData, TValue, TSiblingData>,\n) => Promise<TValue> | TValue\n\nexport type FieldAccess<TData extends TypeWithID = any, TSiblingData = any> = (args: {\n /**\n * The incoming data used to `create` or `update` the document with. `data` is undefined during the `read` operation.\n */\n data?: Partial<TData>\n /**\n * The original data of the document before the `update` is applied. `doc` is undefined during the `create` operation.\n */\n doc?: TData\n /**\n * The `id` of the current document being read or updated. `id` is undefined during the `create` operation.\n */\n id?: number | string\n /** The `payload` object to interface with the payload API */\n req: PayloadRequest\n /**\n * Immediately adjacent data to this field. For example, if this is a `group` field, then `siblingData` will be the other fields within the group.\n */\n siblingData?: Partial<TSiblingData>\n}) => Promise<boolean> | boolean\n\nexport type Condition<TData extends TypeWithID = any, TSiblingData = any> = (\n data: Partial<TData>,\n siblingData: Partial<TSiblingData>,\n { user }: { user: PayloadRequest['user'] },\n) => boolean\n\nexport type FilterOptionsProps<TData = any> = {\n /**\n * An object containing the full collection or global document currently being edited.\n */\n data: TData\n /**\n * The `id` of the current document being edited. `id` is undefined during the `create` operation.\n */\n id: number | string\n /**\n * The collection `slug` to filter against, limited to this field's `relationTo` property.\n */\n relationTo: CollectionSlug\n /**\n * An object containing document data that is scoped to only fields within the same parent of this field.\n */\n siblingData: unknown\n /**\n * An object containing the currently authenticated user.\n */\n user: Partial<PayloadRequest['user']>\n}\n\nexport type FilterOptionsFunc<TData = any> = (\n options: FilterOptionsProps<TData>,\n) => Promise<Where | boolean> | Where | boolean\n\nexport type FilterOptions<TData = any> =\n | ((options: FilterOptionsProps<TData>) => Promise<Where | boolean> | Where | boolean)\n | Where\n | null\n\ntype Admin = {\n className?: string\n components?: {\n Cell?: CustomComponent\n Description?: DescriptionComponent\n Field?: CustomComponent\n /**\n * The Filter component has to be a client component\n */\n Filter?: React.ComponentType<any>\n }\n /**\n * You can programmatically show / hide fields based on what other fields are doing.\n * This is also run on the server, to determine if the field should be validated.\n */\n condition?: Condition\n /** Extension point to add your custom data. Available in server and client. */\n custom?: Record<string, any>\n description?: Description\n disableBulkEdit?: boolean\n /**\n * Shows / hides fields from appearing in the list view column selector.\n * @type boolean\n */\n disableListColumn?: boolean\n /**\n * Shows / hides fields from appearing in the list view filter options.\n * @type boolean\n */\n disableListFilter?: boolean\n disabled?: boolean\n hidden?: boolean\n position?: 'sidebar'\n readOnly?: boolean\n style?: CSSProperties\n width?: string\n}\n\nexport type Labels = {\n plural: LabelFunction | LabelStatic\n singular: LabelFunction | LabelStatic\n}\n\nexport type BaseValidateOptions<TData, TSiblingData, TValue> = {\n collectionSlug?: string\n data: Partial<TData>\n id?: number | string\n operation?: Operation\n preferences: DocumentPreferences\n previousValue?: TValue\n req: PayloadRequest\n required?: boolean\n siblingData: Partial<TSiblingData>\n}\n\nexport type ValidateOptions<\n TData,\n TSiblingData,\n TFieldConfig extends object,\n TValue,\n> = BaseValidateOptions<TData, TSiblingData, TValue> & TFieldConfig\n\nexport type Validate<\n TValue = any,\n TData = any,\n TSiblingData = any,\n TFieldConfig extends object = object,\n> = (\n value: TValue,\n options: ValidateOptions<TData, TSiblingData, TFieldConfig, TValue>,\n) => Promise<string | true> | string | true\n\nexport type OptionObject = {\n label: LabelFunction | LabelStatic\n value: string\n}\n\nexport type Option = OptionObject | string\n\nexport interface FieldBase {\n access?: {\n create?: FieldAccess\n read?: FieldAccess\n update?: FieldAccess\n }\n admin?: Admin\n /** Extension point to add your custom data. Server only. */\n custom?: Record<string, any>\n defaultValue?: any\n hidden?: boolean\n hooks?: {\n afterChange?: FieldHook[]\n afterRead?: FieldHook[]\n beforeChange?: FieldHook[]\n /**\n * Runs before a document is duplicated to prevent errors in unique fields or return null to use defaultValue.\n */\n beforeDuplicate?: FieldHook[]\n beforeValidate?: FieldHook[]\n }\n index?: boolean\n label?: LabelFunction | LabelStatic | false\n localized?: boolean\n /**\n * The name of the field. Must be alphanumeric and cannot contain ' . '\n *\n * Must not be one of reserved field names: ['__v', 'salt', 'hash', 'file']\n * @link https://payloadcms.com/docs/fields/overview#field-names\n */\n name: string\n required?: boolean\n saveToJWT?: boolean | string\n /**\n * Allows you to modify the base JSON schema that is generated during generate:types for this field.\n * This JSON schema will be used to generate the TypeScript interface of this field.\n */\n typescriptSchema?: Array<(args: { jsonSchema: JSONSchema4 }) => JSONSchema4>\n unique?: boolean\n validate?: Validate\n}\n\nexport type NumberField = {\n admin?: {\n /** Set this property to a string that will be used for browser autocomplete. */\n autoComplete?: string\n components?: {\n Error?: ErrorComponent\n Label?: LabelComponent\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n }\n /** Set this property to define a placeholder string for the field. */\n placeholder?: Record<string, string> | string\n /** Set a value for the number field to increment / decrement using browser controls. */\n step?: number\n } & Admin\n /** Maximum value accepted. Used in the default `validate` function. */\n max?: number\n /** Minimum value accepted. Used in the default `validate` function. */\n min?: number\n type: 'number'\n validate?: Validate<number | number[], unknown, unknown, NumberField>\n} & (\n | {\n /** Makes this field an ordered array of numbers instead of just a single number. */\n hasMany: true\n /** Maximum number of numbers in the numbers array, if `hasMany` is set to true. */\n maxRows?: number\n /** Minimum number of numbers in the numbers array, if `hasMany` is set to true. */\n minRows?: number\n }\n | {\n /** Makes this field an ordered array of numbers instead of just a single number. */\n hasMany?: false | undefined\n /** Maximum number of numbers in the numbers array, if `hasMany` is set to true. */\n maxRows?: undefined\n /** Minimum number of numbers in the numbers array, if `hasMany` is set to true. */\n minRows?: undefined\n }\n) &\n FieldBase\n\nexport type TextField = {\n admin?: {\n autoComplete?: string\n components?: {\n Error?: ErrorComponent\n Label?: LabelComponent\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n }\n placeholder?: Record<string, string> | string\n rtl?: boolean\n } & Admin\n maxLength?: number\n minLength?: number\n type: 'text'\n validate?: Validate<string | string[], unknown, unknown, TextField>\n} & (\n | {\n /** Makes this field an ordered array of strings instead of just a single string. */\n hasMany: true\n /** Maximum number of strings in the strings array, if `hasMany` is set to true. */\n maxRows?: number\n /** Minimum number of strings in the strings array, if `hasMany` is set to true. */\n minRows?: number\n }\n | {\n /** Makes this field an ordered array of strings instead of just a single string. */\n hasMany?: false | undefined\n /** Maximum number of strings in the strings array, if `hasMany` is set to true. */\n maxRows?: undefined\n /** Minimum number of strings in the strings array, if `hasMany` is set to true. */\n minRows?: undefined\n }\n) &\n FieldBase\n\nexport type EmailField = {\n admin?: {\n autoComplete?: string\n components?: {\n Error?: ErrorComponent\n Label?: LabelComponent\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n }\n placeholder?: Record<string, string> | string\n } & Admin\n type: 'email'\n validate?: Validate<string, unknown, unknown, EmailField>\n} & FieldBase\n\nexport type TextareaField = {\n admin?: {\n components?: {\n Error?: ErrorComponent\n Label?: LabelComponent\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n }\n placeholder?: Record<string, string> | string\n rows?: number\n rtl?: boolean\n } & Admin\n maxLength?: number\n minLength?: number\n type: 'textarea'\n validate?: Validate<string, unknown, unknown, TextareaField>\n} & FieldBase\n\nexport type CheckboxField = {\n admin?: {\n components?: {\n Error?: ErrorComponent\n Label?: LabelComponent\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n }\n } & Admin\n type: 'checkbox'\n validate?: Validate<unknown, unknown, unknown, CheckboxField>\n} & FieldBase\n\nexport type DateField = {\n admin?: {\n components?: {\n Error?: ErrorComponent\n Label?: LabelComponent\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n }\n date?: ConditionalDateProps\n placeholder?: Record<string, string> | string\n } & Admin\n type: 'date'\n validate?: Validate<unknown, unknown, unknown, DateField>\n} & FieldBase\n\nexport type GroupField = {\n admin?: {\n hideGutter?: boolean\n } & Admin\n fields: Field[]\n /** Customize generated GraphQL and Typescript schema names.\n * By default, it is bound to the collection.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique amongst collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n type: 'group'\n validate?: Validate<unknown, unknown, unknown, GroupField>\n} & Omit<FieldBase, 'required'>\n\nexport type RowAdmin = Omit<Admin, 'description'>\n\nexport type RowField = {\n admin?: RowAdmin\n fields: Field[]\n type: 'row'\n} & Omit<FieldBase, 'admin' | 'label' | 'name' | 'validate'>\n\nexport type CollapsibleField = {\n fields: Field[]\n type: 'collapsible'\n} & (\n | {\n admin: {\n components: {\n RowLabel: RowLabelComponent\n } & Admin['components']\n initCollapsed?: boolean\n } & Admin\n label?: Required<FieldBase['label']>\n }\n | {\n admin?: {\n initCollapsed?: boolean\n } & Admin\n label: Required<FieldBase['label']>\n }\n) &\n Omit<FieldBase, 'label' | 'name' | 'validate'>\n\nexport type TabsAdmin = Omit<Admin, 'description'>\n\ntype TabBase = {\n description?: Description\n fields: Field[]\n interfaceName?: string\n saveToJWT?: boolean | string\n} & Omit<FieldBase, 'required' | 'validate'>\n\nexport type NamedTab = {\n /** Customize generated GraphQL and Typescript schema names.\n * The slug is used by default.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique amongst collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n} & TabBase\n\nexport type UnnamedTab = {\n interfaceName?: never\n /**\n * Can be either:\n * - A string, which will be used as the tab's label.\n * - An object, where the key is the language code and the value is the label.\n */\n label:\n | {\n [selectedLanguage: string]: string\n }\n | LabelFunction\n | string\n localized?: never\n} & Omit<TabBase, 'name'>\n\nexport type Tab = NamedTab | UnnamedTab\n\nexport type TabsField = {\n admin?: TabsAdmin\n tabs: Tab[]\n type: 'tabs'\n} & Omit<FieldBase, 'admin' | 'localized' | 'name' | 'saveToJWT'>\n\nexport type TabAsField = {\n name?: string\n type: 'tab'\n} & Tab\n\nexport type UIField = {\n admin: {\n components?: {\n Cell?: CustomComponent\n Field: CustomComponent\n /**\n * The Filter component has to be a client component\n */\n Filter?: React.ComponentType<any>\n }\n condition?: Condition\n /** Extension point to add your custom data. Available in server and client. */\n custom?: Record<string, any>\n disableBulkEdit?: boolean\n /**\n * Shows / hides fields from appearing in the list view column selector.\n * @type boolean\n */\n disableListColumn?: boolean\n position?: string\n width?: string\n }\n /** Extension point to add your custom data. Server only. */\n custom?: Record<string, any>\n label?: Record<string, string> | string\n name: string\n type: 'ui'\n}\n\nexport type UploadField = {\n admin?: {\n components?: {\n Error?: ErrorComponent\n Label?: LabelComponent\n }\n }\n displayPreview?: boolean\n filterOptions?: FilterOptions\n /**\n * Sets a maximum population depth for this field, regardless of the remaining depth when this field is reached.\n *\n * {@link https://payloadcms.com/docs/getting-started/concepts#field-level-max-depth}\n */\n maxDepth?: number\n relationTo: CollectionSlug\n type: 'upload'\n validate?: Validate<unknown, unknown, unknown, UploadField>\n} & FieldBase\n\ntype CodeAdmin = {\n components?: {\n Error?: ErrorComponent\n Label?: LabelComponent\n }\n editorOptions?: EditorProps['options']\n language?: string\n} & Admin\n\nexport type CodeField = {\n admin?: CodeAdmin\n maxLength?: number\n minLength?: number\n type: 'code'\n validate?: Validate<string, unknown, unknown, CodeField>\n} & Omit<FieldBase, 'admin'>\n\ntype JSONAdmin = {\n components?: {\n Error?: ErrorComponent\n Label?: LabelComponent\n }\n editorOptions?: EditorProps['options']\n} & Admin\n\nexport type JSONField = {\n admin?: JSONAdmin\n jsonSchema?: {\n fileMatch: string[]\n schema: JSONSchema4\n uri: string\n }\n type: 'json'\n validate?: Validate<Record<string, unknown>, unknown, unknown, JSONField>\n} & Omit<FieldBase, 'admin'>\n\nexport type SelectField = {\n admin?: {\n components?: {\n Error?: ErrorComponent\n Label?: LabelComponent\n }\n isClearable?: boolean\n isSortable?: boolean\n } & Admin\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n /**\n * Customize the DB enum name\n */\n enumName?: DBIdentifierName\n hasMany?: boolean\n options: Option[]\n type: 'select'\n validate?: Validate<string, unknown, unknown, SelectField>\n} & FieldBase\n\ntype SharedRelationshipProperties = {\n filterOptions?: FilterOptions\n hasMany?: boolean\n /**\n * Sets a maximum population depth for this field, regardless of the remaining depth when this field is reached.\n *\n * {@link https://payloadcms.com/docs/getting-started/concepts#field-level-max-depth}\n */\n maxDepth?: number\n type: 'relationship'\n validate?: Validate<unknown, unknown, unknown, SharedRelationshipProperties>\n} & (\n | {\n hasMany: true\n /**\n * @deprecated Use 'maxRows' instead\n */\n max?: number\n maxRows?: number\n /**\n * @deprecated Use 'minRows' instead\n */\n min?: number\n minRows?: number\n }\n | {\n hasMany?: false | undefined\n /**\n * @deprecated Use 'maxRows' instead\n */\n max?: undefined\n maxRows?: undefined\n /**\n * @deprecated Use 'minRows' instead\n */\n min?: undefined\n minRows?: undefined\n }\n) &\n FieldBase\n\ntype RelationshipAdmin = {\n allowCreate?: boolean\n components?: {\n Error?: ErrorComponent\n Label?: LabelComponent\n }\n isSortable?: boolean\n} & Admin\n\nexport type PolymorphicRelationshipField = {\n admin?: {\n sortOptions?: { [collectionSlug: CollectionSlug]: string }\n } & RelationshipAdmin\n relationTo: CollectionSlug[]\n} & SharedRelationshipProperties\n\nexport type SingleRelationshipField = {\n admin?: {\n sortOptions?: string\n } & RelationshipAdmin\n relationTo: CollectionSlug\n} & SharedRelationshipProperties\nexport type RelationshipField = PolymorphicRelationshipField | SingleRelationshipField\n\nexport type ValueWithRelation = {\n relationTo: CollectionSlug\n value: number | string\n}\n\nexport function valueIsValueWithRelation(value: unknown): value is ValueWithRelation {\n return value !== null && typeof value === 'object' && 'relationTo' in value && 'value' in value\n}\n\nexport type RelationshipValue =\n | (number | string)[]\n | ValueWithRelation\n | ValueWithRelation[]\n | (number | string)\n\nexport type RichTextField<\n Value extends object = any,\n AdapterProps = any,\n ExtraProperties = object,\n> = {\n admin?: {\n components?: {\n Error?: ErrorComponent\n Label?: LabelComponent\n }\n } & Admin\n editor?:\n | RichTextAdapter<Value, AdapterProps, AdapterProps>\n | RichTextAdapterProvider<Value, AdapterProps, AdapterProps>\n /**\n * Sets a maximum population depth for this field, regardless of the remaining depth when this field is reached.\n *\n * {@link https://payloadcms.com/docs/getting-started/concepts#field-level-max-depth}\n */\n maxDepth?: number\n type: 'richText'\n} & ExtraProperties &\n FieldBase\n\nexport type ArrayField = {\n admin?: {\n components?: {\n RowLabel?: RowLabelComponent\n } & Admin['components']\n initCollapsed?: boolean\n /**\n * Disable drag and drop sorting\n */\n isSortable?: boolean\n } & Admin\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n fields: Field[]\n /** Customize generated GraphQL and Typescript schema names.\n * By default, it is bound to the collection.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique amongst collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n labels?: Labels\n maxRows?: number\n minRows?: number\n type: 'array'\n validate?: Validate<unknown[], unknown, unknown, ArrayField>\n} & FieldBase\n\nexport type RadioField = {\n admin?: {\n components?: {\n Error?: ErrorComponent\n Label?: LabelComponent\n }\n layout?: 'horizontal' | 'vertical'\n } & Admin\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n /**\n * Customize the DB enum name\n */\n enumName?: DBIdentifierName\n options: Option[]\n type: 'radio'\n validate?: Validate<string, unknown, unknown, RadioField>\n} & FieldBase\n\nexport type Block = {\n admin?: {\n components?: {\n Label?: React.FC<{\n blockKind: 'block' | 'lexicalBlock' | 'lexicalInlineBlock' | string\n /**\n * May contain the formData\n */\n formData: Record<string, any>\n }>\n }\n /** Extension point to add your custom data. Available in server and client. */\n custom?: Record<string, any>\n }\n /** Extension point to add your custom data. Server only. */\n custom?: Record<string, any>\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n fields: Field[]\n /** @deprecated - please migrate to the interfaceName property instead. */\n graphQL?: {\n singularName?: string\n }\n imageAltText?: string\n imageURL?: string\n /** Customize generated GraphQL and Typescript schema names.\n * The slug is used by default.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique amongst collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n labels?: Labels\n slug: string\n}\n\nexport type BlockField = {\n admin?: {\n initCollapsed?: boolean\n /**\n * Disable drag and drop sorting\n */\n isSortable?: boolean\n } & Admin\n blocks: Block[]\n defaultValue?: unknown\n labels?: Labels\n maxRows?: number\n minRows?: number\n type: 'blocks'\n validate?: Validate<string, unknown, unknown, BlockField>\n} & FieldBase\n\nexport type PointField = {\n type: 'point'\n validate?: Validate<unknown, unknown, unknown, PointField>\n} & FieldBase\n\nexport type Field =\n | ArrayField\n | BlockField\n | CheckboxField\n | CodeField\n | CollapsibleField\n | DateField\n | EmailField\n | GroupField\n | JSONField\n | NumberField\n | PointField\n | RadioField\n | RelationshipField\n | RichTextField\n | RowField\n | SelectField\n | TabsField\n | TextField\n | TextareaField\n | UIField\n | UploadField\n\nexport type FieldAffectingData =\n | ArrayField\n | BlockField\n | CheckboxField\n | CodeField\n | DateField\n | EmailField\n | GroupField\n | JSONField\n | NumberField\n | PointField\n | RadioField\n | RelationshipField\n | RichTextField\n | SelectField\n | TabAsField\n | TextField\n | TextareaField\n | UploadField\n\nexport type NonPresentationalField =\n | ArrayField\n | BlockField\n | CheckboxField\n | CodeField\n | CollapsibleField\n | DateField\n | EmailField\n | GroupField\n | JSONField\n | NumberField\n | PointField\n | RadioField\n | RelationshipField\n | RichTextField\n | RowField\n | SelectField\n | TabsField\n | TextField\n | TextareaField\n | UploadField\n\nexport type FieldWithPath = {\n path?: string\n} & Field\n\nexport type FieldWithSubFields = ArrayField | CollapsibleField | GroupField | RowField\n\nexport type FieldPresentationalOnly = UIField\n\nexport type FieldWithMany = RelationshipField | SelectField\n\nexport type FieldWithMaxDepth = RelationshipField | UploadField\n\nexport function fieldHasSubFields(field: ClientFieldConfig | Field): field is FieldWithSubFields {\n return (\n field.type === 'group' ||\n field.type === 'array' ||\n field.type === 'row' ||\n field.type === 'collapsible'\n )\n}\n\nexport function fieldIsArrayType(field: Field): field is ArrayField {\n return field.type === 'array'\n}\n\nexport function fieldIsBlockType(field: Field): field is BlockField {\n return field.type === 'blocks'\n}\n\nexport function fieldIsGroupType(field: Field): field is GroupField {\n return field.type === 'group'\n}\n\nexport function optionIsObject(option: Option): option is OptionObject {\n return typeof option === 'object'\n}\n\nexport function optionsAreObjects(options: Option[]): options is OptionObject[] {\n return Array.isArray(options) && typeof options?.[0] === 'object'\n}\n\nexport function optionIsValue(option: Option): option is string {\n return typeof option === 'string'\n}\n\nexport function fieldSupportsMany(field: Field): field is FieldWithMany {\n return field.type === 'select' || field.type === 'relationship'\n}\n\nexport function fieldHasMaxDepth(field: Field): field is FieldWithMaxDepth {\n return (\n (field.type === 'upload' || field.type === 'relationship') && typeof field.maxDepth === 'number'\n )\n}\n\nexport function fieldIsPresentationalOnly(\n field: ClientFieldConfig | Field | TabAsField,\n): field is UIField {\n return field.type === 'ui'\n}\n\nexport function fieldAffectsData(\n field: ClientFieldConfig | Field | TabAsField,\n): field is FieldAffectingData {\n return 'name' in field && !fieldIsPresentationalOnly(field)\n}\n\nexport function tabHasName(tab: Tab): tab is NamedTab {\n return 'name' in tab\n}\n\nexport function fieldIsLocalized(field: Field | Tab): boolean {\n return 'localized' in field && field.localized\n}\n\nexport type HookName =\n | 'afterChange'\n | 'afterRead'\n | 'beforeChange'\n | 'beforeRead'\n | 'beforeValidate'\n"],"names":["valueIsValueWithRelation","value","fieldHasSubFields","field","type","fieldIsArrayType","fieldIsBlockType","fieldIsGroupType","optionIsObject","option","optionsAreObjects","options","Array","isArray","optionIsValue","fieldSupportsMany","fieldHasMaxDepth","maxDepth","fieldIsPresentationalOnly","fieldAffectsData","tabHasName","tab","fieldIsLocalized","localized"],"mappings":"AAAA,qDAAqD,GA0pBrD,OAAO,SAASA,yBAAyBC,KAAc;IACrD,OAAOA,UAAU,QAAQ,OAAOA,UAAU,YAAY,gBAAgBA,SAAS,WAAWA;AAC5F;AA4NA,OAAO,SAASC,kBAAkBC,KAAgC;IAChE,OACEA,MAAMC,IAAI,KAAK,WACfD,MAAMC,IAAI,KAAK,WACfD,MAAMC,IAAI,KAAK,SACfD,MAAMC,IAAI,KAAK;AAEnB;AAEA,OAAO,SAASC,iBAAiBF,KAAY;IAC3C,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASE,iBAAiBH,KAAY;IAC3C,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASG,iBAAiBJ,KAAY;IAC3C,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASI,eAAeC,MAAc;IAC3C,OAAO,OAAOA,WAAW;AAC3B;AAEA,OAAO,SAASC,kBAAkBC,OAAiB;IACjD,OAAOC,MAAMC,OAAO,CAACF,YAAY,OAAOA,SAAS,CAAC,EAAE,KAAK;AAC3D;AAEA,OAAO,SAASG,cAAcL,MAAc;IAC1C,OAAO,OAAOA,WAAW;AAC3B;AAEA,OAAO,SAASM,kBAAkBZ,KAAY;IAC5C,OAAOA,MAAMC,IAAI,KAAK,YAAYD,MAAMC,IAAI,KAAK;AACnD;AAEA,OAAO,SAASY,iBAAiBb,KAAY;IAC3C,OACE,AAACA,CAAAA,MAAMC,IAAI,KAAK,YAAYD,MAAMC,IAAI,KAAK,cAAa,KAAM,OAAOD,MAAMc,QAAQ,KAAK;AAE5F;AAEA,OAAO,SAASC,0BACdf,KAA6C;IAE7C,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASe,iBACdhB,KAA6C;IAE7C,OAAO,UAAUA,SAAS,CAACe,0BAA0Bf;AACvD;AAEA,OAAO,SAASiB,WAAWC,GAAQ;IACjC,OAAO,UAAUA;AACnB;AAEA,OAAO,SAASC,iBAAiBnB,KAAkB;IACjD,OAAO,eAAeA,SAASA,MAAMoB,SAAS;AAChD"}
1
+ {"version":3,"sources":["../../../src/fields/config/types.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { EditorProps } from '@monaco-editor/react'\nimport type { CSSProperties } from 'react'\n\n//eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport monacoeditor from 'monaco-editor' // IMPORTANT - DO NOT REMOVE: This is required for pnpm's default isolated mode to work - even though the import is not used. This is due to a typescript bug: https://github.com/microsoft/TypeScript/issues/47663#issuecomment-1519138189. (tsbugisolatedmode)\nimport type { JSONSchema4 } from 'json-schema'\nimport type React from 'react'\n\nimport type { RichTextAdapter, RichTextAdapterProvider } from '../../admin/RichText.js'\nimport type { ErrorComponent } from '../../admin/forms/Error.js'\nimport type {\n ConditionalDateProps,\n Description,\n DescriptionComponent,\n LabelComponent,\n RowLabelComponent,\n} from '../../admin/types.js'\nimport type { SanitizedCollectionConfig, TypeWithID } from '../../collections/config/types.js'\nimport type { CustomComponent, LabelFunction, LabelStatic } from '../../config/types.js'\nimport type { DBIdentifierName } from '../../database/types.js'\nimport type { SanitizedGlobalConfig } from '../../globals/config/types.js'\nimport type { CollectionSlug } from '../../index.js'\nimport type { DocumentPreferences } from '../../preferences/types.js'\nimport type { Operation, PayloadRequest, RequestContext, Where } from '../../types/index.js'\nimport type { ClientFieldConfig } from './client.js'\n\nexport type FieldHookArgs<TData extends TypeWithID = any, TValue = any, TSiblingData = any> = {\n /** The collection which the field belongs to. If the field belongs to a global, this will be null. */\n collection: SanitizedCollectionConfig | null\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 /**\n * Only available in the `afterRead` hook.\n */\n draft?: boolean\n /** The field which the hook is running against. */\n field: FieldAffectingData\n /** Boolean to denote if this hook is running against finding one, or finding many within the afterRead hook. */\n findMany?: boolean\n /** The global which the field belongs to. If the field belongs to a collection, this will be null. */\n global: SanitizedGlobalConfig | null\n /** A string relating to which operation the field type is currently executing within. Useful within beforeValidate, beforeChange, and afterChange hooks to differentiate between create and update operations. */\n operation?: 'create' | 'delete' | 'read' | 'update'\n /** The full original document in `update` operations. In the `afterChange` hook, this is the resulting document of the operation. */\n originalDoc?: TData\n overrideAccess?: 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 document before changes were applied, only in `afterChange` hooks. */\n previousDoc?: TData\n /** The sibling data of the document before changes being applied, only in `beforeChange`, `beforeValidate`, `beforeDuplicate` and `afterChange` field hooks. */\n previousSiblingDoc?: TData\n /** The previous value of the field, before changes, only in `beforeChange`, `afterChange`, `beforeDuplicate` and `beforeValidate` field hooks. */\n previousValue?: TValue\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 /**\n * Only available in the `afterRead` hook.\n */\n showHiddenFields?: boolean\n /** The sibling data passed to a field that the hook is running against. */\n siblingData: Partial<TSiblingData>\n /**\n * The original siblingData with locales (not modified by any hooks). Only available in `beforeChange` and `beforeDuplicate` field hooks.\n */\n siblingDocWithLocales?: Record<string, unknown>\n /** The value of the field. */\n value?: TValue\n}\n\nexport type FieldHook<TData extends TypeWithID = any, TValue = any, TSiblingData = any> = (\n args: FieldHookArgs<TData, TValue, TSiblingData>,\n) => Promise<TValue> | TValue\n\nexport type FieldAccess<TData extends TypeWithID = any, TSiblingData = any> = (args: {\n /**\n * The incoming data used to `create` or `update` the document with. `data` is undefined during the `read` operation.\n */\n data?: Partial<TData>\n /**\n * The original data of the document before the `update` is applied. `doc` is undefined during the `create` operation.\n */\n doc?: TData\n /**\n * The `id` of the current document being read or updated. `id` is undefined during the `create` operation.\n */\n id?: number | string\n /** The `payload` object to interface with the payload API */\n req: PayloadRequest\n /**\n * Immediately adjacent data to this field. For example, if this is a `group` field, then `siblingData` will be the other fields within the group.\n */\n siblingData?: Partial<TSiblingData>\n}) => Promise<boolean> | boolean\n\nexport type Condition<TData extends TypeWithID = any, TSiblingData = any> = (\n data: Partial<TData>,\n siblingData: Partial<TSiblingData>,\n { user }: { user: PayloadRequest['user'] },\n) => boolean\n\nexport type FilterOptionsProps<TData = any> = {\n /**\n * An object containing the full collection or global document currently being edited.\n */\n data: TData\n /**\n * The `id` of the current document being edited. `id` is undefined during the `create` operation.\n */\n id: number | string\n /**\n * The collection `slug` to filter against, limited to this field's `relationTo` property.\n */\n relationTo: CollectionSlug\n /**\n * An object containing document data that is scoped to only fields within the same parent of this field.\n */\n siblingData: unknown\n /**\n * An object containing the currently authenticated user.\n */\n user: Partial<PayloadRequest['user']>\n}\n\nexport type FilterOptionsFunc<TData = any> = (\n options: FilterOptionsProps<TData>,\n) => Promise<Where | boolean> | Where | boolean\n\nexport type FilterOptions<TData = any> =\n | ((options: FilterOptionsProps<TData>) => Promise<Where | boolean> | Where | boolean)\n | Where\n | null\n\ntype Admin = {\n className?: string\n components?: {\n Cell?: CustomComponent\n Description?: DescriptionComponent\n Field?: CustomComponent\n /**\n * The Filter component has to be a client component\n */\n Filter?: React.ComponentType<any>\n }\n /**\n * You can programmatically show / hide fields based on what other fields are doing.\n * This is also run on the server, to determine if the field should be validated.\n */\n condition?: Condition\n /** Extension point to add your custom data. Available in server and client. */\n custom?: Record<string, any>\n description?: Description\n disableBulkEdit?: boolean\n /**\n * Shows / hides fields from appearing in the list view column selector.\n * @type boolean\n */\n disableListColumn?: boolean\n /**\n * Shows / hides fields from appearing in the list view filter options.\n * @type boolean\n */\n disableListFilter?: boolean\n disabled?: boolean\n hidden?: boolean\n position?: 'sidebar'\n readOnly?: boolean\n style?: CSSProperties\n width?: string\n}\n\nexport type Labels = {\n plural: LabelFunction | LabelStatic\n singular: LabelFunction | LabelStatic\n}\n\nexport type BaseValidateOptions<TData, TSiblingData, TValue> = {\n collectionSlug?: string\n data: Partial<TData>\n id?: number | string\n operation?: Operation\n preferences: DocumentPreferences\n previousValue?: TValue\n req: PayloadRequest\n required?: boolean\n siblingData: Partial<TSiblingData>\n}\n\nexport type ValidateOptions<\n TData,\n TSiblingData,\n TFieldConfig extends object,\n TValue,\n> = BaseValidateOptions<TData, TSiblingData, TValue> & TFieldConfig\n\nexport type Validate<\n TValue = any,\n TData = any,\n TSiblingData = any,\n TFieldConfig extends object = object,\n> = (\n value: TValue,\n options: ValidateOptions<TData, TSiblingData, TFieldConfig, TValue>,\n) => Promise<string | true> | string | true\n\nexport type OptionObject = {\n label: LabelFunction | LabelStatic\n value: string\n}\n\nexport type Option = OptionObject | string\n\nexport interface FieldBase {\n access?: {\n create?: FieldAccess\n read?: FieldAccess\n update?: FieldAccess\n }\n admin?: Admin\n /** Extension point to add your custom data. Server only. */\n custom?: Record<string, any>\n defaultValue?: any\n hidden?: boolean\n hooks?: {\n afterChange?: FieldHook[]\n afterRead?: FieldHook[]\n beforeChange?: FieldHook[]\n /**\n * Runs before a document is duplicated to prevent errors in unique fields or return null to use defaultValue.\n */\n beforeDuplicate?: FieldHook[]\n beforeValidate?: FieldHook[]\n }\n index?: boolean\n label?: LabelFunction | LabelStatic | false\n localized?: boolean\n /**\n * The name of the field. Must be alphanumeric and cannot contain ' . '\n *\n * Must not be one of reserved field names: ['__v', 'salt', 'hash', 'file']\n * @link https://payloadcms.com/docs/fields/overview#field-names\n */\n name: string\n required?: boolean\n saveToJWT?: boolean | string\n /**\n * Allows you to modify the base JSON schema that is generated during generate:types for this field.\n * This JSON schema will be used to generate the TypeScript interface of this field.\n */\n typescriptSchema?: Array<(args: { jsonSchema: JSONSchema4 }) => JSONSchema4>\n unique?: boolean\n validate?: Validate\n}\n\nexport type NumberField = {\n admin?: {\n /** Set this property to a string that will be used for browser autocomplete. */\n autoComplete?: string\n components?: {\n Error?: ErrorComponent\n Label?: LabelComponent\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n }\n /** Set this property to define a placeholder string for the field. */\n placeholder?: Record<string, string> | string\n /** Set a value for the number field to increment / decrement using browser controls. */\n step?: number\n } & Admin\n /** Maximum value accepted. Used in the default `validate` function. */\n max?: number\n /** Minimum value accepted. Used in the default `validate` function. */\n min?: number\n type: 'number'\n validate?: Validate<number | number[], unknown, unknown, NumberField>\n} & (\n | {\n /** Makes this field an ordered array of numbers instead of just a single number. */\n hasMany: true\n /** Maximum number of numbers in the numbers array, if `hasMany` is set to true. */\n maxRows?: number\n /** Minimum number of numbers in the numbers array, if `hasMany` is set to true. */\n minRows?: number\n }\n | {\n /** Makes this field an ordered array of numbers instead of just a single number. */\n hasMany?: false | undefined\n /** Maximum number of numbers in the numbers array, if `hasMany` is set to true. */\n maxRows?: undefined\n /** Minimum number of numbers in the numbers array, if `hasMany` is set to true. */\n minRows?: undefined\n }\n) &\n FieldBase\n\nexport type TextField = {\n admin?: {\n autoComplete?: string\n components?: {\n Error?: ErrorComponent\n Label?: LabelComponent\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n }\n placeholder?: Record<string, string> | string\n rtl?: boolean\n } & Admin\n maxLength?: number\n minLength?: number\n type: 'text'\n validate?: Validate<string | string[], unknown, unknown, TextField>\n} & (\n | {\n /** Makes this field an ordered array of strings instead of just a single string. */\n hasMany: true\n /** Maximum number of strings in the strings array, if `hasMany` is set to true. */\n maxRows?: number\n /** Minimum number of strings in the strings array, if `hasMany` is set to true. */\n minRows?: number\n }\n | {\n /** Makes this field an ordered array of strings instead of just a single string. */\n hasMany?: false | undefined\n /** Maximum number of strings in the strings array, if `hasMany` is set to true. */\n maxRows?: undefined\n /** Minimum number of strings in the strings array, if `hasMany` is set to true. */\n minRows?: undefined\n }\n) &\n FieldBase\n\nexport type EmailField = {\n admin?: {\n autoComplete?: string\n components?: {\n Error?: ErrorComponent\n Label?: LabelComponent\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n }\n placeholder?: Record<string, string> | string\n } & Admin\n type: 'email'\n validate?: Validate<string, unknown, unknown, EmailField>\n} & FieldBase\n\nexport type TextareaField = {\n admin?: {\n components?: {\n Error?: ErrorComponent\n Label?: LabelComponent\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n }\n placeholder?: Record<string, string> | string\n rows?: number\n rtl?: boolean\n } & Admin\n maxLength?: number\n minLength?: number\n type: 'textarea'\n validate?: Validate<string, unknown, unknown, TextareaField>\n} & FieldBase\n\nexport type CheckboxField = {\n admin?: {\n components?: {\n Error?: ErrorComponent\n Label?: LabelComponent\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n }\n } & Admin\n type: 'checkbox'\n validate?: Validate<unknown, unknown, unknown, CheckboxField>\n} & FieldBase\n\nexport type DateField = {\n admin?: {\n components?: {\n Error?: ErrorComponent\n Label?: LabelComponent\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n }\n date?: ConditionalDateProps\n placeholder?: Record<string, string> | string\n } & Admin\n type: 'date'\n validate?: Validate<unknown, unknown, unknown, DateField>\n} & FieldBase\n\nexport type GroupField = {\n admin?: {\n hideGutter?: boolean\n } & Admin\n fields: Field[]\n /** Customize generated GraphQL and Typescript schema names.\n * By default, it is bound to the collection.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique amongst collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n type: 'group'\n validate?: Validate<unknown, unknown, unknown, GroupField>\n} & Omit<FieldBase, 'required'>\n\nexport type RowAdmin = Omit<Admin, 'description'>\n\nexport type RowField = {\n admin?: RowAdmin\n fields: Field[]\n type: 'row'\n} & Omit<FieldBase, 'admin' | 'label' | 'name' | 'validate'>\n\nexport type CollapsibleField = {\n fields: Field[]\n type: 'collapsible'\n} & (\n | {\n admin: {\n components: {\n RowLabel: RowLabelComponent\n } & Admin['components']\n initCollapsed?: boolean\n } & Admin\n label?: Required<FieldBase['label']>\n }\n | {\n admin?: {\n initCollapsed?: boolean\n } & Admin\n label: Required<FieldBase['label']>\n }\n) &\n Omit<FieldBase, 'label' | 'name' | 'validate'>\n\nexport type TabsAdmin = Omit<Admin, 'description'>\n\ntype TabBase = {\n description?: Description\n fields: Field[]\n interfaceName?: string\n saveToJWT?: boolean | string\n} & Omit<FieldBase, 'required' | 'validate'>\n\nexport type NamedTab = {\n /** Customize generated GraphQL and Typescript schema names.\n * The slug is used by default.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique amongst collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n} & TabBase\n\nexport type UnnamedTab = {\n interfaceName?: never\n /**\n * Can be either:\n * - A string, which will be used as the tab's label.\n * - An object, where the key is the language code and the value is the label.\n */\n label:\n | {\n [selectedLanguage: string]: string\n }\n | LabelFunction\n | string\n localized?: never\n} & Omit<TabBase, 'name'>\n\nexport type Tab = NamedTab | UnnamedTab\n\nexport type TabsField = {\n admin?: TabsAdmin\n tabs: Tab[]\n type: 'tabs'\n} & Omit<FieldBase, 'admin' | 'localized' | 'name' | 'saveToJWT'>\n\nexport type TabAsField = {\n name?: string\n type: 'tab'\n} & Tab\n\nexport type UIField = {\n admin: {\n components?: {\n Cell?: CustomComponent\n Field: CustomComponent\n /**\n * The Filter component has to be a client component\n */\n Filter?: React.ComponentType<any>\n }\n condition?: Condition\n /** Extension point to add your custom data. Available in server and client. */\n custom?: Record<string, any>\n disableBulkEdit?: boolean\n /**\n * Shows / hides fields from appearing in the list view column selector.\n * @type boolean\n */\n disableListColumn?: boolean\n position?: string\n width?: string\n }\n /** Extension point to add your custom data. Server only. */\n custom?: Record<string, any>\n label?: Record<string, string> | string\n name: string\n type: 'ui'\n}\n\nexport type UploadField = {\n admin?: {\n components?: {\n Error?: ErrorComponent\n Label?: LabelComponent\n }\n }\n displayPreview?: boolean\n filterOptions?: FilterOptions\n /**\n * Sets a maximum population depth for this field, regardless of the remaining depth when this field is reached.\n *\n * {@link https://payloadcms.com/docs/getting-started/concepts#field-level-max-depth}\n */\n maxDepth?: number\n relationTo: CollectionSlug\n type: 'upload'\n validate?: Validate<unknown, unknown, unknown, UploadField>\n} & FieldBase\n\ntype CodeAdmin = {\n components?: {\n Error?: ErrorComponent\n Label?: LabelComponent\n }\n editorOptions?: EditorProps['options']\n language?: string\n} & Admin\n\nexport type CodeField = {\n admin?: CodeAdmin\n maxLength?: number\n minLength?: number\n type: 'code'\n validate?: Validate<string, unknown, unknown, CodeField>\n} & Omit<FieldBase, 'admin'>\n\ntype JSONAdmin = {\n components?: {\n Error?: ErrorComponent\n Label?: LabelComponent\n }\n editorOptions?: EditorProps['options']\n} & Admin\n\nexport type JSONField = {\n admin?: JSONAdmin\n jsonSchema?: {\n fileMatch: string[]\n schema: JSONSchema4\n uri: string\n }\n type: 'json'\n validate?: Validate<Record<string, unknown>, unknown, unknown, JSONField>\n} & Omit<FieldBase, 'admin'>\n\nexport type SelectField = {\n admin?: {\n components?: {\n Error?: ErrorComponent\n Label?: LabelComponent\n }\n isClearable?: boolean\n isSortable?: boolean\n } & Admin\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n /**\n * Customize the DB enum name\n */\n enumName?: DBIdentifierName\n hasMany?: boolean\n options: Option[]\n type: 'select'\n validate?: Validate<string, unknown, unknown, SelectField>\n} & FieldBase\n\ntype SharedRelationshipProperties = {\n filterOptions?: FilterOptions\n hasMany?: boolean\n /**\n * Sets a maximum population depth for this field, regardless of the remaining depth when this field is reached.\n *\n * {@link https://payloadcms.com/docs/getting-started/concepts#field-level-max-depth}\n */\n maxDepth?: number\n type: 'relationship'\n validate?: Validate<unknown, unknown, unknown, SharedRelationshipProperties>\n} & (\n | {\n hasMany: true\n /**\n * @deprecated Use 'maxRows' instead\n */\n max?: number\n maxRows?: number\n /**\n * @deprecated Use 'minRows' instead\n */\n min?: number\n minRows?: number\n }\n | {\n hasMany?: false | undefined\n /**\n * @deprecated Use 'maxRows' instead\n */\n max?: undefined\n maxRows?: undefined\n /**\n * @deprecated Use 'minRows' instead\n */\n min?: undefined\n minRows?: undefined\n }\n) &\n FieldBase\n\ntype RelationshipAdmin = {\n allowCreate?: boolean\n components?: {\n Error?: ErrorComponent\n Label?: LabelComponent\n }\n isSortable?: boolean\n} & Admin\n\nexport type PolymorphicRelationshipField = {\n admin?: {\n sortOptions?: { [collectionSlug: CollectionSlug]: string }\n } & RelationshipAdmin\n relationTo: CollectionSlug[]\n} & SharedRelationshipProperties\n\nexport type SingleRelationshipField = {\n admin?: {\n sortOptions?: string\n } & RelationshipAdmin\n relationTo: CollectionSlug\n} & SharedRelationshipProperties\nexport type RelationshipField = PolymorphicRelationshipField | SingleRelationshipField\n\nexport type ValueWithRelation = {\n relationTo: CollectionSlug\n value: number | string\n}\n\nexport function valueIsValueWithRelation(value: unknown): value is ValueWithRelation {\n return value !== null && typeof value === 'object' && 'relationTo' in value && 'value' in value\n}\n\nexport type RelationshipValue =\n | (number | string)[]\n | ValueWithRelation\n | ValueWithRelation[]\n | (number | string)\n\nexport type RichTextField<\n Value extends object = any,\n AdapterProps = any,\n ExtraProperties = object,\n> = {\n admin?: {\n components?: {\n Error?: ErrorComponent\n Label?: LabelComponent\n }\n } & Admin\n editor?:\n | RichTextAdapter<Value, AdapterProps, AdapterProps>\n | RichTextAdapterProvider<Value, AdapterProps, AdapterProps>\n /**\n * Sets a maximum population depth for this field, regardless of the remaining depth when this field is reached.\n *\n * {@link https://payloadcms.com/docs/getting-started/concepts#field-level-max-depth}\n */\n maxDepth?: number\n type: 'richText'\n} & ExtraProperties &\n FieldBase\n\nexport type ArrayField = {\n admin?: {\n components?: {\n RowLabel?: RowLabelComponent\n } & Admin['components']\n initCollapsed?: boolean\n /**\n * Disable drag and drop sorting\n */\n isSortable?: boolean\n } & Admin\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n fields: Field[]\n /** Customize generated GraphQL and Typescript schema names.\n * By default, it is bound to the collection.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique amongst collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n labels?: Labels\n maxRows?: number\n minRows?: number\n type: 'array'\n validate?: Validate<unknown[], unknown, unknown, ArrayField>\n} & FieldBase\n\nexport type RadioField = {\n admin?: {\n components?: {\n Error?: ErrorComponent\n Label?: LabelComponent\n }\n layout?: 'horizontal' | 'vertical'\n } & Admin\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n /**\n * Customize the DB enum name\n */\n enumName?: DBIdentifierName\n options: Option[]\n type: 'radio'\n validate?: Validate<string, unknown, unknown, RadioField>\n} & FieldBase\n\nexport type Block = {\n admin?: {\n components?: {\n Label?: React.FC<{\n blockKind: 'block' | 'lexicalBlock' | 'lexicalInlineBlock' | string\n /**\n * May contain the formData\n */\n formData: Record<string, any>\n }>\n }\n /** Extension point to add your custom data. Available in server and client. */\n custom?: Record<string, any>\n }\n /** Extension point to add your custom data. Server only. */\n custom?: Record<string, any>\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n fields: Field[]\n /** @deprecated - please migrate to the interfaceName property instead. */\n graphQL?: {\n singularName?: string\n }\n imageAltText?: string\n imageURL?: string\n /** Customize generated GraphQL and Typescript schema names.\n * The slug is used by default.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique amongst collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n labels?: Labels\n slug: string\n}\n\nexport type BlockField = {\n admin?: {\n initCollapsed?: boolean\n /**\n * Disable drag and drop sorting\n */\n isSortable?: boolean\n } & Admin\n blocks: Block[]\n defaultValue?: unknown\n labels?: Labels\n maxRows?: number\n minRows?: number\n type: 'blocks'\n validate?: Validate<string, unknown, unknown, BlockField>\n} & FieldBase\n\nexport type PointField = {\n type: 'point'\n validate?: Validate<unknown, unknown, unknown, PointField>\n} & FieldBase\n\nexport type Field =\n | ArrayField\n | BlockField\n | CheckboxField\n | CodeField\n | CollapsibleField\n | DateField\n | EmailField\n | GroupField\n | JSONField\n | NumberField\n | PointField\n | RadioField\n | RelationshipField\n | RichTextField\n | RowField\n | SelectField\n | TabsField\n | TextField\n | TextareaField\n | UIField\n | UploadField\n\nexport type FieldAffectingData =\n | ArrayField\n | BlockField\n | CheckboxField\n | CodeField\n | DateField\n | EmailField\n | GroupField\n | JSONField\n | NumberField\n | PointField\n | RadioField\n | RelationshipField\n | RichTextField\n | SelectField\n | TabAsField\n | TextField\n | TextareaField\n | UploadField\n\nexport type NonPresentationalField =\n | ArrayField\n | BlockField\n | CheckboxField\n | CodeField\n | CollapsibleField\n | DateField\n | EmailField\n | GroupField\n | JSONField\n | NumberField\n | PointField\n | RadioField\n | RelationshipField\n | RichTextField\n | RowField\n | SelectField\n | TabsField\n | TextField\n | TextareaField\n | UploadField\n\nexport type FieldWithPath = {\n path?: string\n} & Field\n\nexport type FieldWithSubFields = ArrayField | CollapsibleField | GroupField | RowField\n\nexport type FieldPresentationalOnly = UIField\n\nexport type FieldWithMany = RelationshipField | SelectField\n\nexport type FieldWithMaxDepth = RelationshipField | UploadField\n\nexport function fieldHasSubFields(field: ClientFieldConfig | Field): field is FieldWithSubFields {\n return (\n field.type === 'group' ||\n field.type === 'array' ||\n field.type === 'row' ||\n field.type === 'collapsible'\n )\n}\n\nexport function fieldIsArrayType(field: Field): field is ArrayField {\n return field.type === 'array'\n}\n\nexport function fieldIsBlockType(field: Field): field is BlockField {\n return field.type === 'blocks'\n}\n\nexport function fieldIsGroupType(field: Field): field is GroupField {\n return field.type === 'group'\n}\n\nexport function optionIsObject(option: Option): option is OptionObject {\n return typeof option === 'object'\n}\n\nexport function optionsAreObjects(options: Option[]): options is OptionObject[] {\n return Array.isArray(options) && typeof options?.[0] === 'object'\n}\n\nexport function optionIsValue(option: Option): option is string {\n return typeof option === 'string'\n}\n\nexport function fieldSupportsMany(field: Field): field is FieldWithMany {\n return field.type === 'select' || field.type === 'relationship'\n}\n\nexport function fieldHasMaxDepth(field: Field): field is FieldWithMaxDepth {\n return (\n (field.type === 'upload' || field.type === 'relationship') && typeof field.maxDepth === 'number'\n )\n}\n\nexport function fieldIsPresentationalOnly(\n field: ClientFieldConfig | Field | TabAsField,\n): field is UIField {\n return field.type === 'ui'\n}\n\nexport function fieldAffectsData(\n field: ClientFieldConfig | Field | TabAsField,\n): field is FieldAffectingData {\n return 'name' in field && !fieldIsPresentationalOnly(field)\n}\n\nexport function tabHasName(tab: Tab): tab is NamedTab {\n return 'name' in tab\n}\n\nexport function fieldIsLocalized(field: Field | Tab): boolean {\n return 'localized' in field && field.localized\n}\n\nexport type HookName =\n | 'afterChange'\n | 'afterRead'\n | 'beforeChange'\n | 'beforeRead'\n | 'beforeValidate'\n"],"names":["valueIsValueWithRelation","value","fieldHasSubFields","field","type","fieldIsArrayType","fieldIsBlockType","fieldIsGroupType","optionIsObject","option","optionsAreObjects","options","Array","isArray","optionIsValue","fieldSupportsMany","fieldHasMaxDepth","maxDepth","fieldIsPresentationalOnly","fieldAffectsData","tabHasName","tab","fieldIsLocalized","localized"],"mappings":"AAAA,qDAAqD,GAiqBrD,OAAO,SAASA,yBAAyBC,KAAc;IACrD,OAAOA,UAAU,QAAQ,OAAOA,UAAU,YAAY,gBAAgBA,SAAS,WAAWA;AAC5F;AA4NA,OAAO,SAASC,kBAAkBC,KAAgC;IAChE,OACEA,MAAMC,IAAI,KAAK,WACfD,MAAMC,IAAI,KAAK,WACfD,MAAMC,IAAI,KAAK,SACfD,MAAMC,IAAI,KAAK;AAEnB;AAEA,OAAO,SAASC,iBAAiBF,KAAY;IAC3C,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASE,iBAAiBH,KAAY;IAC3C,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASG,iBAAiBJ,KAAY;IAC3C,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASI,eAAeC,MAAc;IAC3C,OAAO,OAAOA,WAAW;AAC3B;AAEA,OAAO,SAASC,kBAAkBC,OAAiB;IACjD,OAAOC,MAAMC,OAAO,CAACF,YAAY,OAAOA,SAAS,CAAC,EAAE,KAAK;AAC3D;AAEA,OAAO,SAASG,cAAcL,MAAc;IAC1C,OAAO,OAAOA,WAAW;AAC3B;AAEA,OAAO,SAASM,kBAAkBZ,KAAY;IAC5C,OAAOA,MAAMC,IAAI,KAAK,YAAYD,MAAMC,IAAI,KAAK;AACnD;AAEA,OAAO,SAASY,iBAAiBb,KAAY;IAC3C,OACE,AAACA,CAAAA,MAAMC,IAAI,KAAK,YAAYD,MAAMC,IAAI,KAAK,cAAa,KAAM,OAAOD,MAAMc,QAAQ,KAAK;AAE5F;AAEA,OAAO,SAASC,0BACdf,KAA6C;IAE7C,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASe,iBACdhB,KAA6C;IAE7C,OAAO,UAAUA,SAAS,CAACe,0BAA0Bf;AACvD;AAEA,OAAO,SAASiB,WAAWC,GAAQ;IACjC,OAAO,UAAUA;AACnB;AAEA,OAAO,SAASC,iBAAiBnB,KAAkB;IACjD,OAAO,eAAeA,SAASA,MAAMoB,SAAS;AAChD"}
@@ -1 +1 @@
1
- {"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/afterRead/promise.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAS9D,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,UAAU,CAAA;IACf,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,EAAE,IAAI,GAAG,MAAM,CAAA;IAC7B,KAAK,EAAE,KAAK,GAAG,UAAU,CAAA;IACzB;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;IAC9B,QAAQ,EAAE,OAAO,CAAA;IACjB,cAAc,EAAE,OAAO,CAAA;IACvB,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACpC,MAAM,EAAE,IAAI,GAAG,MAAM,CAAA;IACrB,cAAc,EAAE,OAAO,CAAA;IACvB;;OAEG;IACH,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IAC/B;;OAEG;IACH,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;IACnC,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,EAAE,OAAO,CAAA;IACzB,UAAU,EAAE,UAAU,CAAA;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAUD,eAAO,MAAM,OAAO,uRAuBjB,IAAI,KAAG,OAAO,CAAC,IAAI,CAslBrB,CAAA"}
1
+ {"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/afterRead/promise.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAS9D,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,UAAU,CAAA;IACf,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,EAAE,IAAI,GAAG,MAAM,CAAA;IAC7B,KAAK,EAAE,KAAK,GAAG,UAAU,CAAA;IACzB;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;IAC9B,QAAQ,EAAE,OAAO,CAAA;IACjB,cAAc,EAAE,OAAO,CAAA;IACvB,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACpC,MAAM,EAAE,IAAI,GAAG,MAAM,CAAA;IACrB,cAAc,EAAE,OAAO,CAAA;IACvB;;OAEG;IACH,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IAC/B;;OAEG;IACH,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;IACnC,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,EAAE,OAAO,CAAA;IACzB,UAAU,EAAE,UAAU,CAAA;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAUD,eAAO,MAAM,OAAO,uRAuBjB,IAAI,KAAG,OAAO,CAAC,IAAI,CA0lBrB,CAAA"}
@@ -109,6 +109,7 @@ export const promise = async ({ collection, context, currentDepth, depth, doc, d
109
109
  collection,
110
110
  context,
111
111
  data: doc,
112
+ draft,
112
113
  field,
113
114
  findMany,
114
115
  global,
@@ -118,6 +119,7 @@ export const promise = async ({ collection, context, currentDepth, depth, doc, d
118
119
  path: fieldPath,
119
120
  req,
120
121
  schemaPath: fieldSchemaPath,
122
+ showHiddenFields,
121
123
  siblingData: siblingDoc,
122
124
  value
123
125
  });
@@ -131,6 +133,7 @@ export const promise = async ({ collection, context, currentDepth, depth, doc, d
131
133
  collection,
132
134
  context,
133
135
  data: doc,
136
+ draft,
134
137
  field,
135
138
  findMany,
136
139
  global,
@@ -140,6 +143,7 @@ export const promise = async ({ collection, context, currentDepth, depth, doc, d
140
143
  path: fieldPath,
141
144
  req,
142
145
  schemaPath: fieldSchemaPath,
146
+ showHiddenFields,
143
147
  siblingData: siblingDoc,
144
148
  value: siblingDoc[field.name]
145
149
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/fields/hooks/afterRead/promise.ts"],"sourcesContent":["import type { RichTextAdapter } from '../../../admin/RichText.js'\nimport type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../../globals/config/types.js'\nimport type { JsonObject, PayloadRequest, RequestContext } from '../../../types/index.js'\nimport type { Field, TabAsField } from '../../config/types.js'\n\nimport { MissingEditorProp } from '../../../errors/index.js'\nimport { fieldAffectsData, tabHasName } from '../../config/types.js'\nimport { getDefaultValue } from '../../getDefaultValue.js'\nimport { getFieldPaths } from '../../getFieldPaths.js'\nimport { relationshipPopulationPromise } from './relationshipPopulationPromise.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n collection: SanitizedCollectionConfig | null\n context: RequestContext\n currentDepth: number\n depth: number\n doc: JsonObject\n draft: boolean\n fallbackLocale: null | string\n field: Field | TabAsField\n /**\n * fieldPromises are used for things like field hooks. They should be awaited before awaiting populationPromises\n */\n fieldPromises: Promise<void>[]\n findMany: boolean\n flattenLocales: boolean\n global: SanitizedGlobalConfig | null\n locale: null | string\n overrideAccess: boolean\n /**\n * The parent's path.\n */\n parentPath: (number | string)[]\n /**\n * The parent's schemaPath (path without indexes).\n */\n parentSchemaPath: string[]\n populationPromises: Promise<void>[]\n req: PayloadRequest\n showHiddenFields: boolean\n siblingDoc: JsonObject\n triggerAccessControl?: boolean\n triggerHooks?: boolean\n}\n\n// This function is responsible for the following actions, in order:\n// - Remove hidden fields from response\n// - Flatten locales into requested locale\n// - Sanitize outgoing data (point field, etc.)\n// - Execute field hooks\n// - Execute read access control\n// - Populate relationships\n\nexport const promise = async ({\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentPath,\n parentSchemaPath,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc,\n triggerAccessControl = true,\n triggerHooks = true,\n}: Args): Promise<void> => {\n const { path: fieldPath, schemaPath: fieldSchemaPath } = getFieldPaths({\n field,\n parentPath,\n parentSchemaPath,\n })\n\n if (\n fieldAffectsData(field) &&\n field.hidden &&\n typeof siblingDoc[field.name] !== 'undefined' &&\n !showHiddenFields\n ) {\n delete siblingDoc[field.name]\n }\n\n const shouldHoistLocalizedValue =\n flattenLocales &&\n fieldAffectsData(field) &&\n typeof siblingDoc[field.name] === 'object' &&\n siblingDoc[field.name] !== null &&\n field.localized &&\n locale !== 'all' &&\n req.payload.config.localization\n\n if (shouldHoistLocalizedValue) {\n // replace actual value with localized value before sanitizing\n // { [locale]: fields } -> fields\n const value = siblingDoc[field.name][locale]\n\n let hoistedValue = value\n\n if (fallbackLocale && fallbackLocale !== locale) {\n const fallbackValue = siblingDoc[field.name][fallbackLocale]\n const isNullOrUndefined = typeof value === 'undefined' || value === null\n\n if (fallbackValue) {\n switch (field.type) {\n case 'text':\n case 'textarea': {\n if (value === '' || isNullOrUndefined) {\n hoistedValue = fallbackValue\n }\n break\n }\n\n default: {\n if (isNullOrUndefined) {\n hoistedValue = fallbackValue\n }\n break\n }\n }\n }\n }\n\n siblingDoc[field.name] = hoistedValue\n }\n\n // Sanitize outgoing field value\n switch (field.type) {\n case 'group': {\n // Fill groups with empty objects so fields with hooks within groups can populate\n // themselves virtually as necessary\n if (typeof siblingDoc[field.name] === 'undefined') {\n siblingDoc[field.name] = {}\n }\n\n break\n }\n case 'tabs': {\n field.tabs.forEach((tab) => {\n if (\n tabHasName(tab) &&\n (typeof siblingDoc[tab.name] === 'undefined' || siblingDoc[tab.name] === null)\n ) {\n siblingDoc[tab.name] = {}\n }\n })\n\n break\n }\n\n case 'richText': {\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n if (typeof field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n // Rich Text fields should use afterRead hooks to do population. The previous editor.populationPromises have been renamed to editor.graphQLPopulationPromises\n break\n }\n\n case 'point': {\n const pointDoc = siblingDoc[field.name] as Record<string, unknown>\n if (Array.isArray(pointDoc?.coordinates) && pointDoc.coordinates.length === 2) {\n siblingDoc[field.name] = pointDoc.coordinates\n } else {\n siblingDoc[field.name] = undefined\n }\n\n break\n }\n\n default: {\n break\n }\n }\n\n if (fieldAffectsData(field)) {\n // Execute hooks\n if (triggerHooks && field.hooks?.afterRead) {\n await field.hooks.afterRead.reduce(async (priorHook, currentHook) => {\n await priorHook\n\n const shouldRunHookOnAllLocales =\n field.localized &&\n (locale === 'all' || !flattenLocales) &&\n typeof siblingDoc[field.name] === 'object'\n\n if (shouldRunHookOnAllLocales) {\n const hookPromises = Object.entries(siblingDoc[field.name]).map(([locale, value]) =>\n (async () => {\n const hookedValue = await currentHook({\n collection,\n context,\n data: doc,\n field,\n findMany,\n global,\n operation: 'read',\n originalDoc: doc,\n overrideAccess,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData: siblingDoc,\n value,\n })\n\n if (hookedValue !== undefined) {\n siblingDoc[field.name][locale] = hookedValue\n }\n })(),\n )\n\n await Promise.all(hookPromises)\n } else {\n const hookedValue = await currentHook({\n collection,\n context,\n data: doc,\n field,\n findMany,\n global,\n operation: 'read',\n originalDoc: doc,\n overrideAccess,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData: siblingDoc,\n value: siblingDoc[field.name],\n })\n\n if (hookedValue !== undefined) {\n siblingDoc[field.name] = hookedValue\n }\n }\n }, Promise.resolve())\n }\n\n // Execute access control\n let allowDefaultValue = true\n if (triggerAccessControl && field.access && field.access.read) {\n const result = overrideAccess\n ? true\n : await field.access.read({\n id: doc.id as number | string,\n data: doc,\n doc,\n req,\n siblingData: siblingDoc,\n })\n\n if (!result) {\n allowDefaultValue = false\n delete siblingDoc[field.name]\n }\n }\n\n // Set defaultValue on the field for globals being returned without being first created\n // or collection documents created prior to having a default\n if (\n allowDefaultValue &&\n typeof siblingDoc[field.name] === 'undefined' &&\n typeof field.defaultValue !== 'undefined'\n ) {\n siblingDoc[field.name] = await getDefaultValue({\n defaultValue: field.defaultValue,\n locale,\n user: req.user,\n value: siblingDoc[field.name],\n })\n }\n\n if (field.type === 'relationship' || field.type === 'upload') {\n populationPromises.push(\n relationshipPopulationPromise({\n currentDepth,\n depth,\n draft,\n fallbackLocale,\n field,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n siblingDoc,\n }),\n )\n }\n }\n\n switch (field.type) {\n case 'group': {\n let groupDoc = siblingDoc[field.name] as JsonObject\n if (typeof siblingDoc[field.name] !== 'object') groupDoc = {}\n\n traverseFields({\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n path: fieldPath,\n populationPromises,\n req,\n schemaPath: fieldSchemaPath,\n showHiddenFields,\n siblingDoc: groupDoc,\n triggerAccessControl,\n triggerHooks,\n })\n\n break\n }\n\n case 'array': {\n const rows = siblingDoc[field.name] as JsonObject\n\n if (Array.isArray(rows)) {\n rows.forEach((row, i) => {\n traverseFields({\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n path: [...fieldPath, i],\n populationPromises,\n req,\n schemaPath: fieldSchemaPath,\n showHiddenFields,\n siblingDoc: row || {},\n triggerAccessControl,\n triggerHooks,\n })\n })\n } else if (!shouldHoistLocalizedValue && typeof rows === 'object' && rows !== null) {\n Object.values(rows).forEach((localeRows) => {\n if (Array.isArray(localeRows)) {\n localeRows.forEach((row, i) => {\n traverseFields({\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n path: [...fieldPath, i],\n populationPromises,\n req,\n schemaPath: fieldSchemaPath,\n showHiddenFields,\n siblingDoc: (row as JsonObject) || {},\n triggerAccessControl,\n triggerHooks,\n })\n })\n }\n })\n } else {\n siblingDoc[field.name] = []\n }\n break\n }\n\n case 'blocks': {\n const rows = siblingDoc[field.name]\n\n if (Array.isArray(rows)) {\n rows.forEach((row, i) => {\n const block = field.blocks.find(\n (blockType) => blockType.slug === (row as JsonObject).blockType,\n )\n\n if (block) {\n traverseFields({\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldPromises,\n fields: block.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n path: [...fieldPath, i],\n populationPromises,\n req,\n schemaPath: fieldSchemaPath,\n showHiddenFields,\n siblingDoc: (row as JsonObject) || {},\n triggerAccessControl,\n triggerHooks,\n })\n }\n })\n } else if (!shouldHoistLocalizedValue && typeof rows === 'object' && rows !== null) {\n Object.values(rows).forEach((localeRows) => {\n if (Array.isArray(localeRows)) {\n localeRows.forEach((row, i) => {\n const block = field.blocks.find(\n (blockType) => blockType.slug === (row as JsonObject).blockType,\n )\n\n if (block) {\n traverseFields({\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldPromises,\n fields: block.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n path: [...fieldPath, i],\n populationPromises,\n req,\n schemaPath: fieldSchemaPath,\n showHiddenFields,\n siblingDoc: (row as JsonObject) || {},\n triggerAccessControl,\n triggerHooks,\n })\n }\n })\n }\n })\n } else {\n siblingDoc[field.name] = []\n }\n\n break\n }\n\n case 'row':\n case 'collapsible': {\n traverseFields({\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n path: fieldPath,\n populationPromises,\n req,\n schemaPath: fieldSchemaPath,\n showHiddenFields,\n siblingDoc,\n triggerAccessControl,\n triggerHooks,\n })\n\n break\n }\n\n case 'tab': {\n let tabDoc = siblingDoc\n if (tabHasName(field)) {\n tabDoc = siblingDoc[field.name] as JsonObject\n if (typeof siblingDoc[field.name] !== 'object') tabDoc = {}\n }\n\n traverseFields({\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n path: fieldPath,\n populationPromises,\n req,\n schemaPath: fieldSchemaPath,\n showHiddenFields,\n siblingDoc: tabDoc,\n triggerAccessControl,\n triggerHooks,\n })\n\n break\n }\n\n case 'tabs': {\n traverseFields({\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldPromises,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n path: fieldPath,\n populationPromises,\n req,\n schemaPath: fieldSchemaPath,\n showHiddenFields,\n siblingDoc,\n triggerAccessControl,\n triggerHooks,\n })\n break\n }\n\n case 'richText': {\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n if (typeof field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n const editor: RichTextAdapter = field?.editor\n\n if (editor?.hooks?.afterRead?.length) {\n await editor.hooks.afterRead.reduce(async (priorHook, currentHook) => {\n await priorHook\n\n const shouldRunHookOnAllLocales =\n field.localized &&\n (locale === 'all' || !flattenLocales) &&\n typeof siblingDoc[field.name] === 'object'\n\n if (shouldRunHookOnAllLocales) {\n const hookPromises = Object.entries(siblingDoc[field.name]).map(([locale, value]) =>\n (async () => {\n const hookedValue = await currentHook({\n collection,\n context,\n currentDepth,\n data: doc,\n depth,\n draft,\n fallbackLocale,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n global,\n locale,\n operation: 'read',\n originalDoc: doc,\n overrideAccess,\n path: fieldPath,\n populationPromises,\n req,\n schemaPath: fieldSchemaPath,\n showHiddenFields,\n siblingData: siblingDoc,\n triggerAccessControl,\n triggerHooks,\n value,\n })\n\n if (hookedValue !== undefined) {\n siblingDoc[field.name][locale] = hookedValue\n }\n })(),\n )\n\n await Promise.all(hookPromises)\n } else {\n const hookedValue = await currentHook({\n collection,\n context,\n currentDepth,\n data: doc,\n depth,\n draft,\n fallbackLocale,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n global,\n locale,\n operation: 'read',\n originalDoc: doc,\n overrideAccess,\n path: fieldPath,\n populationPromises,\n req,\n schemaPath: fieldSchemaPath,\n showHiddenFields,\n siblingData: siblingDoc,\n triggerAccessControl,\n triggerHooks,\n value: siblingDoc[field.name],\n })\n\n if (hookedValue !== undefined) {\n siblingDoc[field.name] = hookedValue\n }\n }\n }, Promise.resolve())\n }\n break\n }\n\n default: {\n break\n }\n }\n}\n"],"names":["MissingEditorProp","fieldAffectsData","tabHasName","getDefaultValue","getFieldPaths","relationshipPopulationPromise","traverseFields","promise","collection","context","currentDepth","depth","doc","draft","fallbackLocale","field","fieldPromises","findMany","flattenLocales","global","locale","overrideAccess","parentPath","parentSchemaPath","populationPromises","req","showHiddenFields","siblingDoc","triggerAccessControl","triggerHooks","path","fieldPath","schemaPath","fieldSchemaPath","hidden","name","shouldHoistLocalizedValue","localized","payload","config","localization","value","hoistedValue","fallbackValue","isNullOrUndefined","type","tabs","forEach","tab","editor","Error","pointDoc","Array","isArray","coordinates","length","undefined","hooks","afterRead","reduce","priorHook","currentHook","shouldRunHookOnAllLocales","hookPromises","Object","entries","map","hookedValue","data","operation","originalDoc","siblingData","Promise","all","resolve","allowDefaultValue","access","read","result","id","defaultValue","user","push","groupDoc","fields","rows","row","i","values","localeRows","block","blocks","find","blockType","slug","tabDoc"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/fields/hooks/afterRead/promise.ts"],"sourcesContent":["import type { RichTextAdapter } from '../../../admin/RichText.js'\nimport type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../../globals/config/types.js'\nimport type { JsonObject, PayloadRequest, RequestContext } from '../../../types/index.js'\nimport type { Field, TabAsField } from '../../config/types.js'\n\nimport { MissingEditorProp } from '../../../errors/index.js'\nimport { fieldAffectsData, tabHasName } from '../../config/types.js'\nimport { getDefaultValue } from '../../getDefaultValue.js'\nimport { getFieldPaths } from '../../getFieldPaths.js'\nimport { relationshipPopulationPromise } from './relationshipPopulationPromise.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n collection: SanitizedCollectionConfig | null\n context: RequestContext\n currentDepth: number\n depth: number\n doc: JsonObject\n draft: boolean\n fallbackLocale: null | string\n field: Field | TabAsField\n /**\n * fieldPromises are used for things like field hooks. They should be awaited before awaiting populationPromises\n */\n fieldPromises: Promise<void>[]\n findMany: boolean\n flattenLocales: boolean\n global: SanitizedGlobalConfig | null\n locale: null | string\n overrideAccess: boolean\n /**\n * The parent's path.\n */\n parentPath: (number | string)[]\n /**\n * The parent's schemaPath (path without indexes).\n */\n parentSchemaPath: string[]\n populationPromises: Promise<void>[]\n req: PayloadRequest\n showHiddenFields: boolean\n siblingDoc: JsonObject\n triggerAccessControl?: boolean\n triggerHooks?: boolean\n}\n\n// This function is responsible for the following actions, in order:\n// - Remove hidden fields from response\n// - Flatten locales into requested locale\n// - Sanitize outgoing data (point field, etc.)\n// - Execute field hooks\n// - Execute read access control\n// - Populate relationships\n\nexport const promise = async ({\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n parentPath,\n parentSchemaPath,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc,\n triggerAccessControl = true,\n triggerHooks = true,\n}: Args): Promise<void> => {\n const { path: fieldPath, schemaPath: fieldSchemaPath } = getFieldPaths({\n field,\n parentPath,\n parentSchemaPath,\n })\n\n if (\n fieldAffectsData(field) &&\n field.hidden &&\n typeof siblingDoc[field.name] !== 'undefined' &&\n !showHiddenFields\n ) {\n delete siblingDoc[field.name]\n }\n\n const shouldHoistLocalizedValue =\n flattenLocales &&\n fieldAffectsData(field) &&\n typeof siblingDoc[field.name] === 'object' &&\n siblingDoc[field.name] !== null &&\n field.localized &&\n locale !== 'all' &&\n req.payload.config.localization\n\n if (shouldHoistLocalizedValue) {\n // replace actual value with localized value before sanitizing\n // { [locale]: fields } -> fields\n const value = siblingDoc[field.name][locale]\n\n let hoistedValue = value\n\n if (fallbackLocale && fallbackLocale !== locale) {\n const fallbackValue = siblingDoc[field.name][fallbackLocale]\n const isNullOrUndefined = typeof value === 'undefined' || value === null\n\n if (fallbackValue) {\n switch (field.type) {\n case 'text':\n case 'textarea': {\n if (value === '' || isNullOrUndefined) {\n hoistedValue = fallbackValue\n }\n break\n }\n\n default: {\n if (isNullOrUndefined) {\n hoistedValue = fallbackValue\n }\n break\n }\n }\n }\n }\n\n siblingDoc[field.name] = hoistedValue\n }\n\n // Sanitize outgoing field value\n switch (field.type) {\n case 'group': {\n // Fill groups with empty objects so fields with hooks within groups can populate\n // themselves virtually as necessary\n if (typeof siblingDoc[field.name] === 'undefined') {\n siblingDoc[field.name] = {}\n }\n\n break\n }\n case 'tabs': {\n field.tabs.forEach((tab) => {\n if (\n tabHasName(tab) &&\n (typeof siblingDoc[tab.name] === 'undefined' || siblingDoc[tab.name] === null)\n ) {\n siblingDoc[tab.name] = {}\n }\n })\n\n break\n }\n\n case 'richText': {\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n if (typeof field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n // Rich Text fields should use afterRead hooks to do population. The previous editor.populationPromises have been renamed to editor.graphQLPopulationPromises\n break\n }\n\n case 'point': {\n const pointDoc = siblingDoc[field.name] as Record<string, unknown>\n if (Array.isArray(pointDoc?.coordinates) && pointDoc.coordinates.length === 2) {\n siblingDoc[field.name] = pointDoc.coordinates\n } else {\n siblingDoc[field.name] = undefined\n }\n\n break\n }\n\n default: {\n break\n }\n }\n\n if (fieldAffectsData(field)) {\n // Execute hooks\n if (triggerHooks && field.hooks?.afterRead) {\n await field.hooks.afterRead.reduce(async (priorHook, currentHook) => {\n await priorHook\n\n const shouldRunHookOnAllLocales =\n field.localized &&\n (locale === 'all' || !flattenLocales) &&\n typeof siblingDoc[field.name] === 'object'\n\n if (shouldRunHookOnAllLocales) {\n const hookPromises = Object.entries(siblingDoc[field.name]).map(([locale, value]) =>\n (async () => {\n const hookedValue = await currentHook({\n collection,\n context,\n data: doc,\n draft,\n field,\n findMany,\n global,\n operation: 'read',\n originalDoc: doc,\n overrideAccess,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n showHiddenFields,\n siblingData: siblingDoc,\n value,\n })\n\n if (hookedValue !== undefined) {\n siblingDoc[field.name][locale] = hookedValue\n }\n })(),\n )\n\n await Promise.all(hookPromises)\n } else {\n const hookedValue = await currentHook({\n collection,\n context,\n data: doc,\n draft,\n field,\n findMany,\n global,\n operation: 'read',\n originalDoc: doc,\n overrideAccess,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n showHiddenFields,\n siblingData: siblingDoc,\n value: siblingDoc[field.name],\n })\n\n if (hookedValue !== undefined) {\n siblingDoc[field.name] = hookedValue\n }\n }\n }, Promise.resolve())\n }\n\n // Execute access control\n let allowDefaultValue = true\n if (triggerAccessControl && field.access && field.access.read) {\n const result = overrideAccess\n ? true\n : await field.access.read({\n id: doc.id as number | string,\n data: doc,\n doc,\n req,\n siblingData: siblingDoc,\n })\n\n if (!result) {\n allowDefaultValue = false\n delete siblingDoc[field.name]\n }\n }\n\n // Set defaultValue on the field for globals being returned without being first created\n // or collection documents created prior to having a default\n if (\n allowDefaultValue &&\n typeof siblingDoc[field.name] === 'undefined' &&\n typeof field.defaultValue !== 'undefined'\n ) {\n siblingDoc[field.name] = await getDefaultValue({\n defaultValue: field.defaultValue,\n locale,\n user: req.user,\n value: siblingDoc[field.name],\n })\n }\n\n if (field.type === 'relationship' || field.type === 'upload') {\n populationPromises.push(\n relationshipPopulationPromise({\n currentDepth,\n depth,\n draft,\n fallbackLocale,\n field,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n siblingDoc,\n }),\n )\n }\n }\n\n switch (field.type) {\n case 'group': {\n let groupDoc = siblingDoc[field.name] as JsonObject\n if (typeof siblingDoc[field.name] !== 'object') groupDoc = {}\n\n traverseFields({\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n path: fieldPath,\n populationPromises,\n req,\n schemaPath: fieldSchemaPath,\n showHiddenFields,\n siblingDoc: groupDoc,\n triggerAccessControl,\n triggerHooks,\n })\n\n break\n }\n\n case 'array': {\n const rows = siblingDoc[field.name] as JsonObject\n\n if (Array.isArray(rows)) {\n rows.forEach((row, i) => {\n traverseFields({\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n path: [...fieldPath, i],\n populationPromises,\n req,\n schemaPath: fieldSchemaPath,\n showHiddenFields,\n siblingDoc: row || {},\n triggerAccessControl,\n triggerHooks,\n })\n })\n } else if (!shouldHoistLocalizedValue && typeof rows === 'object' && rows !== null) {\n Object.values(rows).forEach((localeRows) => {\n if (Array.isArray(localeRows)) {\n localeRows.forEach((row, i) => {\n traverseFields({\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n path: [...fieldPath, i],\n populationPromises,\n req,\n schemaPath: fieldSchemaPath,\n showHiddenFields,\n siblingDoc: (row as JsonObject) || {},\n triggerAccessControl,\n triggerHooks,\n })\n })\n }\n })\n } else {\n siblingDoc[field.name] = []\n }\n break\n }\n\n case 'blocks': {\n const rows = siblingDoc[field.name]\n\n if (Array.isArray(rows)) {\n rows.forEach((row, i) => {\n const block = field.blocks.find(\n (blockType) => blockType.slug === (row as JsonObject).blockType,\n )\n\n if (block) {\n traverseFields({\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldPromises,\n fields: block.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n path: [...fieldPath, i],\n populationPromises,\n req,\n schemaPath: fieldSchemaPath,\n showHiddenFields,\n siblingDoc: (row as JsonObject) || {},\n triggerAccessControl,\n triggerHooks,\n })\n }\n })\n } else if (!shouldHoistLocalizedValue && typeof rows === 'object' && rows !== null) {\n Object.values(rows).forEach((localeRows) => {\n if (Array.isArray(localeRows)) {\n localeRows.forEach((row, i) => {\n const block = field.blocks.find(\n (blockType) => blockType.slug === (row as JsonObject).blockType,\n )\n\n if (block) {\n traverseFields({\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldPromises,\n fields: block.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n path: [...fieldPath, i],\n populationPromises,\n req,\n schemaPath: fieldSchemaPath,\n showHiddenFields,\n siblingDoc: (row as JsonObject) || {},\n triggerAccessControl,\n triggerHooks,\n })\n }\n })\n }\n })\n } else {\n siblingDoc[field.name] = []\n }\n\n break\n }\n\n case 'row':\n case 'collapsible': {\n traverseFields({\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n path: fieldPath,\n populationPromises,\n req,\n schemaPath: fieldSchemaPath,\n showHiddenFields,\n siblingDoc,\n triggerAccessControl,\n triggerHooks,\n })\n\n break\n }\n\n case 'tab': {\n let tabDoc = siblingDoc\n if (tabHasName(field)) {\n tabDoc = siblingDoc[field.name] as JsonObject\n if (typeof siblingDoc[field.name] !== 'object') tabDoc = {}\n }\n\n traverseFields({\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldPromises,\n fields: field.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n path: fieldPath,\n populationPromises,\n req,\n schemaPath: fieldSchemaPath,\n showHiddenFields,\n siblingDoc: tabDoc,\n triggerAccessControl,\n triggerHooks,\n })\n\n break\n }\n\n case 'tabs': {\n traverseFields({\n collection,\n context,\n currentDepth,\n depth,\n doc,\n draft,\n fallbackLocale,\n fieldPromises,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n path: fieldPath,\n populationPromises,\n req,\n schemaPath: fieldSchemaPath,\n showHiddenFields,\n siblingDoc,\n triggerAccessControl,\n triggerHooks,\n })\n break\n }\n\n case 'richText': {\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n if (typeof field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n const editor: RichTextAdapter = field?.editor\n\n if (editor?.hooks?.afterRead?.length) {\n await editor.hooks.afterRead.reduce(async (priorHook, currentHook) => {\n await priorHook\n\n const shouldRunHookOnAllLocales =\n field.localized &&\n (locale === 'all' || !flattenLocales) &&\n typeof siblingDoc[field.name] === 'object'\n\n if (shouldRunHookOnAllLocales) {\n const hookPromises = Object.entries(siblingDoc[field.name]).map(([locale, value]) =>\n (async () => {\n const hookedValue = await currentHook({\n collection,\n context,\n currentDepth,\n data: doc,\n depth,\n draft,\n fallbackLocale,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n global,\n locale,\n operation: 'read',\n originalDoc: doc,\n overrideAccess,\n path: fieldPath,\n populationPromises,\n req,\n schemaPath: fieldSchemaPath,\n showHiddenFields,\n siblingData: siblingDoc,\n triggerAccessControl,\n triggerHooks,\n value,\n })\n\n if (hookedValue !== undefined) {\n siblingDoc[field.name][locale] = hookedValue\n }\n })(),\n )\n\n await Promise.all(hookPromises)\n } else {\n const hookedValue = await currentHook({\n collection,\n context,\n currentDepth,\n data: doc,\n depth,\n draft,\n fallbackLocale,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n global,\n locale,\n operation: 'read',\n originalDoc: doc,\n overrideAccess,\n path: fieldPath,\n populationPromises,\n req,\n schemaPath: fieldSchemaPath,\n showHiddenFields,\n siblingData: siblingDoc,\n triggerAccessControl,\n triggerHooks,\n value: siblingDoc[field.name],\n })\n\n if (hookedValue !== undefined) {\n siblingDoc[field.name] = hookedValue\n }\n }\n }, Promise.resolve())\n }\n break\n }\n\n default: {\n break\n }\n }\n}\n"],"names":["MissingEditorProp","fieldAffectsData","tabHasName","getDefaultValue","getFieldPaths","relationshipPopulationPromise","traverseFields","promise","collection","context","currentDepth","depth","doc","draft","fallbackLocale","field","fieldPromises","findMany","flattenLocales","global","locale","overrideAccess","parentPath","parentSchemaPath","populationPromises","req","showHiddenFields","siblingDoc","triggerAccessControl","triggerHooks","path","fieldPath","schemaPath","fieldSchemaPath","hidden","name","shouldHoistLocalizedValue","localized","payload","config","localization","value","hoistedValue","fallbackValue","isNullOrUndefined","type","tabs","forEach","tab","editor","Error","pointDoc","Array","isArray","coordinates","length","undefined","hooks","afterRead","reduce","priorHook","currentHook","shouldRunHookOnAllLocales","hookPromises","Object","entries","map","hookedValue","data","operation","originalDoc","siblingData","Promise","all","resolve","allowDefaultValue","access","read","result","id","defaultValue","user","push","groupDoc","fields","rows","row","i","values","localeRows","block","blocks","find","blockType","slug","tabDoc"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"relationshipPopulationPromise.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/afterRead/relationshipPopulationPromise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAgG3E,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,EAAE,IAAI,GAAG,MAAM,CAAA;IAC7B,KAAK,EAAE,iBAAiB,GAAG,WAAW,CAAA;IACtC,MAAM,EAAE,IAAI,GAAG,MAAM,CAAA;IACrB,cAAc,EAAE,OAAO,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,EAAE,OAAO,CAAA;IACzB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,6BAA6B,sHAWvC,WAAW,KAAG,OAAO,CAAC,IAAI,CAqG5B,CAAA"}
1
+ {"version":3,"file":"relationshipPopulationPromise.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/afterRead/relationshipPopulationPromise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAgG3E,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,EAAE,IAAI,GAAG,MAAM,CAAA;IAC7B,KAAK,EAAE,iBAAiB,GAAG,WAAW,CAAA;IACtC,MAAM,EAAE,IAAI,GAAG,MAAM,CAAA;IACrB,cAAc,EAAE,OAAO,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,EAAE,OAAO,CAAA;IACzB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,6BAA6B,sHAWvC,WAAW,KAAG,OAAO,CAAC,IAAI,CAuG5B,CAAA"}
@@ -53,21 +53,21 @@ export const relationshipPopulationPromise = async ({ currentDepth, depth, draft
53
53
  const populateDepth = fieldHasMaxDepth(field) && field.maxDepth < depth ? field.maxDepth : depth;
54
54
  const rowPromises = [];
55
55
  if (fieldSupportsMany(field) && field.hasMany) {
56
- if (locale === 'all' && typeof siblingDoc[field.name] === 'object' && siblingDoc[field.name] !== null) {
57
- Object.keys(siblingDoc[field.name]).forEach((key)=>{
58
- if (Array.isArray(siblingDoc[field.name][key])) {
59
- siblingDoc[field.name][key].forEach((relatedDoc, index)=>{
56
+ if (field.localized && locale === 'all' && typeof siblingDoc[field.name] === 'object' && siblingDoc[field.name] !== null) {
57
+ Object.keys(siblingDoc[field.name]).forEach((localeKey)=>{
58
+ if (Array.isArray(siblingDoc[field.name][localeKey])) {
59
+ siblingDoc[field.name][localeKey].forEach((relatedDoc, index)=>{
60
60
  const rowPromise = async ()=>{
61
61
  await populate({
62
62
  currentDepth,
63
- data: siblingDoc[field.name][key][index],
63
+ data: siblingDoc[field.name][localeKey][index],
64
64
  dataReference: resultingDoc,
65
65
  depth: populateDepth,
66
66
  draft,
67
67
  fallbackLocale,
68
68
  field,
69
69
  index,
70
- key,
70
+ key: localeKey,
71
71
  locale,
72
72
  overrideAccess,
73
73
  req,
@@ -101,18 +101,18 @@ export const relationshipPopulationPromise = async ({ currentDepth, depth, draft
101
101
  rowPromises.push(rowPromise());
102
102
  });
103
103
  }
104
- } else if (typeof siblingDoc[field.name] === 'object' && siblingDoc[field.name] !== null && locale === 'all') {
105
- Object.keys(siblingDoc[field.name]).forEach((key)=>{
104
+ } else if (field.localized && locale === 'all' && typeof siblingDoc[field.name] === 'object' && siblingDoc[field.name] !== null) {
105
+ Object.keys(siblingDoc[field.name]).forEach((localeKey)=>{
106
106
  const rowPromise = async ()=>{
107
107
  await populate({
108
108
  currentDepth,
109
- data: siblingDoc[field.name][key],
109
+ data: siblingDoc[field.name][localeKey],
110
110
  dataReference: resultingDoc,
111
111
  depth: populateDepth,
112
112
  draft,
113
113
  fallbackLocale,
114
114
  field,
115
- key,
115
+ key: localeKey,
116
116
  locale,
117
117
  overrideAccess,
118
118
  req,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/fields/hooks/afterRead/relationshipPopulationPromise.ts"],"sourcesContent":["import type { PayloadRequest } from '../../../types/index.js'\nimport type { RelationshipField, UploadField } from '../../config/types.js'\n\nimport { createDataloaderCacheKey } from '../../../collections/dataloader.js'\nimport { fieldHasMaxDepth, fieldSupportsMany } from '../../config/types.js'\n\ntype PopulateArgs = {\n currentDepth: number\n data: Record<string, unknown>\n dataReference: Record<string, any>\n depth: number\n draft: boolean\n fallbackLocale: null | string\n field: RelationshipField | UploadField\n index?: number\n key?: string\n locale: null | string\n overrideAccess: boolean\n req: PayloadRequest\n showHiddenFields: boolean\n}\n\nconst populate = async ({\n currentDepth,\n data,\n dataReference,\n depth,\n draft,\n fallbackLocale,\n field,\n index,\n key,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n}: PopulateArgs) => {\n const dataToUpdate = dataReference\n const relation = Array.isArray(field.relationTo) ? (data.relationTo as string) : field.relationTo\n const relatedCollection = req.payload.collections[relation]\n\n if (relatedCollection) {\n let id = Array.isArray(field.relationTo) ? data.value : data\n let relationshipValue\n const shouldPopulate = depth && currentDepth <= depth\n\n if (\n typeof id !== 'string' &&\n typeof id !== 'number' &&\n typeof id?.toString === 'function' &&\n typeof id !== 'object'\n ) {\n id = id.toString()\n }\n\n if (shouldPopulate) {\n relationshipValue = await req.payloadDataLoader.load(\n createDataloaderCacheKey({\n collectionSlug: relatedCollection.config.slug,\n currentDepth: currentDepth + 1,\n depth,\n docID: id as string,\n draft,\n fallbackLocale,\n locale,\n overrideAccess,\n showHiddenFields,\n transactionID: req.transactionID,\n }),\n )\n }\n\n if (!relationshipValue) {\n // ids are visible regardless of access controls\n relationshipValue = id\n }\n\n if (typeof index === 'number' && typeof key === 'string') {\n if (Array.isArray(field.relationTo)) {\n dataToUpdate[field.name][key][index].value = relationshipValue\n } else {\n dataToUpdate[field.name][key][index] = relationshipValue\n }\n } else if (typeof index === 'number' || typeof key === 'string') {\n if (Array.isArray(field.relationTo)) {\n dataToUpdate[field.name][index ?? key].value = relationshipValue\n } else {\n dataToUpdate[field.name][index ?? key] = relationshipValue\n }\n } else if (Array.isArray(field.relationTo)) {\n dataToUpdate[field.name].value = relationshipValue\n } else {\n dataToUpdate[field.name] = relationshipValue\n }\n }\n}\n\ntype PromiseArgs = {\n currentDepth: number\n depth: number\n draft: boolean\n fallbackLocale: null | string\n field: RelationshipField | UploadField\n locale: null | string\n overrideAccess: boolean\n req: PayloadRequest\n showHiddenFields: boolean\n siblingDoc: Record<string, any>\n}\n\nexport const relationshipPopulationPromise = async ({\n currentDepth,\n depth,\n draft,\n fallbackLocale,\n field,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n siblingDoc,\n}: PromiseArgs): Promise<void> => {\n const resultingDoc = siblingDoc\n const populateDepth = fieldHasMaxDepth(field) && field.maxDepth < depth ? field.maxDepth : depth\n const rowPromises = []\n\n if (fieldSupportsMany(field) && field.hasMany) {\n if (\n locale === 'all' &&\n typeof siblingDoc[field.name] === 'object' &&\n siblingDoc[field.name] !== null\n ) {\n Object.keys(siblingDoc[field.name]).forEach((key) => {\n if (Array.isArray(siblingDoc[field.name][key])) {\n siblingDoc[field.name][key].forEach((relatedDoc, index) => {\n const rowPromise = async () => {\n await populate({\n currentDepth,\n data: siblingDoc[field.name][key][index],\n dataReference: resultingDoc,\n depth: populateDepth,\n draft,\n fallbackLocale,\n field,\n index,\n key,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n })\n }\n rowPromises.push(rowPromise())\n })\n }\n })\n } else if (Array.isArray(siblingDoc[field.name])) {\n siblingDoc[field.name].forEach((relatedDoc, index) => {\n const rowPromise = async () => {\n if (relatedDoc) {\n await populate({\n currentDepth,\n data: relatedDoc,\n dataReference: resultingDoc,\n depth: populateDepth,\n draft,\n fallbackLocale,\n field,\n index,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n })\n }\n }\n\n rowPromises.push(rowPromise())\n })\n }\n } else if (\n typeof siblingDoc[field.name] === 'object' &&\n siblingDoc[field.name] !== null &&\n locale === 'all'\n ) {\n Object.keys(siblingDoc[field.name]).forEach((key) => {\n const rowPromise = async () => {\n await populate({\n currentDepth,\n data: siblingDoc[field.name][key],\n dataReference: resultingDoc,\n depth: populateDepth,\n draft,\n fallbackLocale,\n field,\n key,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n })\n }\n rowPromises.push(rowPromise())\n })\n\n await Promise.all(rowPromises)\n } else if (siblingDoc[field.name]) {\n await populate({\n currentDepth,\n data: siblingDoc[field.name],\n dataReference: resultingDoc,\n depth: populateDepth,\n draft,\n fallbackLocale,\n field,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n })\n }\n await Promise.all(rowPromises)\n}\n"],"names":["createDataloaderCacheKey","fieldHasMaxDepth","fieldSupportsMany","populate","currentDepth","data","dataReference","depth","draft","fallbackLocale","field","index","key","locale","overrideAccess","req","showHiddenFields","dataToUpdate","relation","Array","isArray","relationTo","relatedCollection","payload","collections","id","value","relationshipValue","shouldPopulate","toString","payloadDataLoader","load","collectionSlug","config","slug","docID","transactionID","name","relationshipPopulationPromise","siblingDoc","resultingDoc","populateDepth","maxDepth","rowPromises","hasMany","Object","keys","forEach","relatedDoc","rowPromise","push","Promise","all"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/fields/hooks/afterRead/relationshipPopulationPromise.ts"],"sourcesContent":["import type { PayloadRequest } from '../../../types/index.js'\nimport type { RelationshipField, UploadField } from '../../config/types.js'\n\nimport { createDataloaderCacheKey } from '../../../collections/dataloader.js'\nimport { fieldHasMaxDepth, fieldSupportsMany } from '../../config/types.js'\n\ntype PopulateArgs = {\n currentDepth: number\n data: Record<string, unknown>\n dataReference: Record<string, any>\n depth: number\n draft: boolean\n fallbackLocale: null | string\n field: RelationshipField | UploadField\n index?: number\n key?: string\n locale: null | string\n overrideAccess: boolean\n req: PayloadRequest\n showHiddenFields: boolean\n}\n\nconst populate = async ({\n currentDepth,\n data,\n dataReference,\n depth,\n draft,\n fallbackLocale,\n field,\n index,\n key,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n}: PopulateArgs) => {\n const dataToUpdate = dataReference\n const relation = Array.isArray(field.relationTo) ? (data.relationTo as string) : field.relationTo\n const relatedCollection = req.payload.collections[relation]\n\n if (relatedCollection) {\n let id = Array.isArray(field.relationTo) ? data.value : data\n let relationshipValue\n const shouldPopulate = depth && currentDepth <= depth\n\n if (\n typeof id !== 'string' &&\n typeof id !== 'number' &&\n typeof id?.toString === 'function' &&\n typeof id !== 'object'\n ) {\n id = id.toString()\n }\n\n if (shouldPopulate) {\n relationshipValue = await req.payloadDataLoader.load(\n createDataloaderCacheKey({\n collectionSlug: relatedCollection.config.slug,\n currentDepth: currentDepth + 1,\n depth,\n docID: id as string,\n draft,\n fallbackLocale,\n locale,\n overrideAccess,\n showHiddenFields,\n transactionID: req.transactionID,\n }),\n )\n }\n\n if (!relationshipValue) {\n // ids are visible regardless of access controls\n relationshipValue = id\n }\n\n if (typeof index === 'number' && typeof key === 'string') {\n if (Array.isArray(field.relationTo)) {\n dataToUpdate[field.name][key][index].value = relationshipValue\n } else {\n dataToUpdate[field.name][key][index] = relationshipValue\n }\n } else if (typeof index === 'number' || typeof key === 'string') {\n if (Array.isArray(field.relationTo)) {\n dataToUpdate[field.name][index ?? key].value = relationshipValue\n } else {\n dataToUpdate[field.name][index ?? key] = relationshipValue\n }\n } else if (Array.isArray(field.relationTo)) {\n dataToUpdate[field.name].value = relationshipValue\n } else {\n dataToUpdate[field.name] = relationshipValue\n }\n }\n}\n\ntype PromiseArgs = {\n currentDepth: number\n depth: number\n draft: boolean\n fallbackLocale: null | string\n field: RelationshipField | UploadField\n locale: null | string\n overrideAccess: boolean\n req: PayloadRequest\n showHiddenFields: boolean\n siblingDoc: Record<string, any>\n}\n\nexport const relationshipPopulationPromise = async ({\n currentDepth,\n depth,\n draft,\n fallbackLocale,\n field,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n siblingDoc,\n}: PromiseArgs): Promise<void> => {\n const resultingDoc = siblingDoc\n const populateDepth = fieldHasMaxDepth(field) && field.maxDepth < depth ? field.maxDepth : depth\n const rowPromises = []\n\n if (fieldSupportsMany(field) && field.hasMany) {\n if (\n field.localized &&\n locale === 'all' &&\n typeof siblingDoc[field.name] === 'object' &&\n siblingDoc[field.name] !== null\n ) {\n Object.keys(siblingDoc[field.name]).forEach((localeKey) => {\n if (Array.isArray(siblingDoc[field.name][localeKey])) {\n siblingDoc[field.name][localeKey].forEach((relatedDoc, index) => {\n const rowPromise = async () => {\n await populate({\n currentDepth,\n data: siblingDoc[field.name][localeKey][index],\n dataReference: resultingDoc,\n depth: populateDepth,\n draft,\n fallbackLocale,\n field,\n index,\n key: localeKey,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n })\n }\n rowPromises.push(rowPromise())\n })\n }\n })\n } else if (Array.isArray(siblingDoc[field.name])) {\n siblingDoc[field.name].forEach((relatedDoc, index) => {\n const rowPromise = async () => {\n if (relatedDoc) {\n await populate({\n currentDepth,\n data: relatedDoc,\n dataReference: resultingDoc,\n depth: populateDepth,\n draft,\n fallbackLocale,\n field,\n index,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n })\n }\n }\n\n rowPromises.push(rowPromise())\n })\n }\n } else if (\n field.localized &&\n locale === 'all' &&\n typeof siblingDoc[field.name] === 'object' &&\n siblingDoc[field.name] !== null\n ) {\n Object.keys(siblingDoc[field.name]).forEach((localeKey) => {\n const rowPromise = async () => {\n await populate({\n currentDepth,\n data: siblingDoc[field.name][localeKey],\n dataReference: resultingDoc,\n depth: populateDepth,\n draft,\n fallbackLocale,\n field,\n key: localeKey,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n })\n }\n rowPromises.push(rowPromise())\n })\n\n await Promise.all(rowPromises)\n } else if (siblingDoc[field.name]) {\n await populate({\n currentDepth,\n data: siblingDoc[field.name],\n dataReference: resultingDoc,\n depth: populateDepth,\n draft,\n fallbackLocale,\n field,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n })\n }\n await Promise.all(rowPromises)\n}\n"],"names":["createDataloaderCacheKey","fieldHasMaxDepth","fieldSupportsMany","populate","currentDepth","data","dataReference","depth","draft","fallbackLocale","field","index","key","locale","overrideAccess","req","showHiddenFields","dataToUpdate","relation","Array","isArray","relationTo","relatedCollection","payload","collections","id","value","relationshipValue","shouldPopulate","toString","payloadDataLoader","load","collectionSlug","config","slug","docID","transactionID","name","relationshipPopulationPromise","siblingDoc","resultingDoc","populateDepth","maxDepth","rowPromises","hasMany","localized","Object","keys","forEach","localeKey","relatedDoc","rowPromise","push","Promise","all"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -288,6 +288,7 @@ export { migrateStatus } from './database/migrations/migrateStatus.js';
288
288
  export { migrationTemplate } from './database/migrations/migrationTemplate.js';
289
289
  export { migrationsCollection } from './database/migrations/migrationsCollection.js';
290
290
  export { readMigrationFiles } from './database/migrations/readMigrationFiles.js';
291
+ export { writeMigrationIndex } from './database/migrations/writeMigrationIndex.js';
291
292
  export type * from './database/queryValidation/types.js';
292
293
  export type { EntityPolicies, PathToQuery } from './database/queryValidation/types.js';
293
294
  export { validateQueryPaths } from './database/queryValidation/validateQueryPaths.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -414,6 +414,7 @@ export { migrateStatus } from './database/migrations/migrateStatus.js';
414
414
  export { migrationTemplate } from './database/migrations/migrationTemplate.js';
415
415
  export { migrationsCollection } from './database/migrations/migrationsCollection.js';
416
416
  export { readMigrationFiles } from './database/migrations/readMigrationFiles.js';
417
+ export { writeMigrationIndex } from './database/migrations/writeMigrationIndex.js';
417
418
  export { validateQueryPaths } from './database/queryValidation/validateQueryPaths.js';
418
419
  export { validateSearchParam } from './database/queryValidation/validateSearchParams.js';
419
420
  export { APIError, APIErrorName, AuthenticationError, DuplicateCollection, DuplicateFieldName, DuplicateGlobal, ErrorDeletingFile, FileRetrievalError, FileUploadError, Forbidden, InvalidConfiguration, InvalidFieldName, InvalidFieldRelationship, LockedAuth, MissingCollectionLabel, MissingEditorProp, MissingFieldInputOptions, MissingFieldType, MissingFile, NotFound, QueryError, ValidationError, ValidationErrorName } from './errors/index.js';