payload 3.0.0-beta.71 → 3.0.0-beta.72

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 (74) hide show
  1. package/dist/auth/getAccessResults.d.ts.map +1 -1
  2. package/dist/auth/getAccessResults.js +2 -7
  3. package/dist/auth/getAccessResults.js.map +1 -1
  4. package/dist/auth/operations/access.d.ts.map +1 -1
  5. package/dist/auth/operations/access.js +1 -6
  6. package/dist/auth/operations/access.js.map +1 -1
  7. package/dist/auth/operations/resetPassword.d.ts.map +1 -1
  8. package/dist/auth/operations/resetPassword.js +2 -1
  9. package/dist/auth/operations/resetPassword.js.map +1 -1
  10. package/dist/auth/strategies/local/generatePasswordSaltHash.d.ts +3 -1
  11. package/dist/auth/strategies/local/generatePasswordSaltHash.d.ts.map +1 -1
  12. package/dist/auth/strategies/local/generatePasswordSaltHash.js +14 -8
  13. package/dist/auth/strategies/local/generatePasswordSaltHash.js.map +1 -1
  14. package/dist/auth/strategies/local/register.js +2 -1
  15. package/dist/auth/strategies/local/register.js.map +1 -1
  16. package/dist/collections/operations/count.d.ts.map +1 -1
  17. package/dist/collections/operations/count.js +0 -4
  18. package/dist/collections/operations/count.js.map +1 -1
  19. package/dist/collections/operations/delete.d.ts.map +1 -1
  20. package/dist/collections/operations/delete.js.map +1 -1
  21. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  22. package/dist/collections/operations/deleteByID.js.map +1 -1
  23. package/dist/collections/operations/docAccess.d.ts.map +1 -1
  24. package/dist/collections/operations/docAccess.js +0 -4
  25. package/dist/collections/operations/docAccess.js.map +1 -1
  26. package/dist/collections/operations/find.d.ts.map +1 -1
  27. package/dist/collections/operations/find.js +0 -4
  28. package/dist/collections/operations/find.js.map +1 -1
  29. package/dist/collections/operations/findByID.d.ts.map +1 -1
  30. package/dist/collections/operations/findByID.js +0 -4
  31. package/dist/collections/operations/findByID.js.map +1 -1
  32. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  33. package/dist/collections/operations/findVersionByID.js +0 -4
  34. package/dist/collections/operations/findVersionByID.js.map +1 -1
  35. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  36. package/dist/collections/operations/findVersions.js +0 -4
  37. package/dist/collections/operations/findVersions.js.map +1 -1
  38. package/dist/collections/operations/restoreVersion.d.ts +1 -0
  39. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  40. package/dist/collections/operations/restoreVersion.js +5 -6
  41. package/dist/collections/operations/restoreVersion.js.map +1 -1
  42. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  43. package/dist/collections/operations/updateByID.js +2 -1
  44. package/dist/collections/operations/updateByID.js.map +1 -1
  45. package/dist/fields/config/client.d.ts +141 -24
  46. package/dist/fields/config/client.d.ts.map +1 -1
  47. package/dist/fields/config/types.d.ts +26 -9
  48. package/dist/fields/config/types.d.ts.map +1 -1
  49. package/dist/fields/config/types.js.map +1 -1
  50. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  51. package/dist/fields/hooks/beforeChange/promise.js +2 -1
  52. package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
  53. package/dist/fields/validations.d.ts +3 -0
  54. package/dist/fields/validations.d.ts.map +1 -1
  55. package/dist/fields/validations.js +11 -1
  56. package/dist/fields/validations.js.map +1 -1
  57. package/dist/globals/operations/findOne.d.ts.map +1 -1
  58. package/dist/globals/operations/findOne.js +0 -7
  59. package/dist/globals/operations/findOne.js.map +1 -1
  60. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  61. package/dist/globals/operations/findVersionByID.js +0 -7
  62. package/dist/globals/operations/findVersionByID.js.map +1 -1
  63. package/dist/globals/operations/findVersions.d.ts +1 -0
  64. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  65. package/dist/globals/operations/findVersions.js +2 -5
  66. package/dist/globals/operations/findVersions.js.map +1 -1
  67. package/dist/globals/operations/restoreVersion.d.ts +1 -0
  68. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  69. package/dist/globals/operations/restoreVersion.js +15 -1
  70. package/dist/globals/operations/restoreVersion.js.map +1 -1
  71. package/dist/utilities/killTransaction.d.ts.map +1 -1
  72. package/dist/utilities/killTransaction.js +5 -1
  73. package/dist/utilities/killTransaction.js.map +1 -1
  74. package/package.json +2 -2
@@ -144,16 +144,17 @@ export type Labels = {
144
144
  plural: LabelFunction | LabelStatic;
145
145
  singular: LabelFunction | LabelStatic;
146
146
  };
147
- export type BaseValidateOptions<TData, TSiblingData> = {
147
+ export type BaseValidateOptions<TData, TSiblingData, TValue> = {
148
148
  data: Partial<TData>;
149
149
  id?: number | string;
150
150
  operation?: Operation;
151
151
  preferences: DocumentPreferences;
152
+ previousValue?: TValue;
152
153
  req: PayloadRequest;
153
154
  siblingData: Partial<TSiblingData>;
154
155
  };
155
- export type ValidateOptions<TData, TSiblingData, TFieldConfig extends object> = BaseValidateOptions<TData, TSiblingData> & TFieldConfig;
156
- export type Validate<TValue = any, TData = any, TSiblingData = any, TFieldConfig extends object = object> = (value: TValue, options: ValidateOptions<TData, TSiblingData, TFieldConfig>) => Promise<string | true> | string | true;
156
+ export type ValidateOptions<TData, TSiblingData, TFieldConfig extends object, TValue> = BaseValidateOptions<TData, TSiblingData, TValue> & TFieldConfig;
157
+ export type Validate<TValue = any, TData = any, TSiblingData = any, TFieldConfig extends object = object> = (value: TValue, options: ValidateOptions<TData, TSiblingData, TFieldConfig, TValue>) => Promise<string | true> | string | true;
157
158
  export type ClientValidate = Omit<Validate, 'req'>;
158
159
  export type OptionObject = {
159
160
  label: LabelFunction | LabelStatic;
@@ -218,11 +219,12 @@ export type NumberField = {
218
219
  /** Set a value for the number field to increment / decrement using browser controls. */
219
220
  step?: number;
220
221
  } & Admin;
221
- /** Maximum value accepted. Used in the default `validation` function. */
222
+ /** Maximum value accepted. Used in the default `validate` function. */
222
223
  max?: number;
223
- /** Minimum value accepted. Used in the default `validation` function. */
224
+ /** Minimum value accepted. Used in the default `validate` function. */
224
225
  min?: number;
225
226
  type: 'number';
227
+ validate?: Validate<number | number[], unknown, unknown, NumberField>;
226
228
  } & ({
227
229
  /** Makes this field an ordered array of numbers instead of just a single number. */
228
230
  hasMany: true;
@@ -253,6 +255,7 @@ export type TextField = {
253
255
  maxLength?: number;
254
256
  minLength?: number;
255
257
  type: 'text';
258
+ validate?: Validate<string | string[], unknown, unknown, TextField>;
256
259
  } & ({
257
260
  /** Makes this field an ordered array of strings instead of just a single string. */
258
261
  hasMany: true;
@@ -280,6 +283,7 @@ export type EmailField = {
280
283
  placeholder?: Record<string, string> | string;
281
284
  } & Admin;
282
285
  type: 'email';
286
+ validate?: Validate<string, unknown, unknown, EmailField>;
283
287
  } & FieldBase;
284
288
  export type TextareaField = {
285
289
  admin?: {
@@ -296,6 +300,7 @@ export type TextareaField = {
296
300
  maxLength?: number;
297
301
  minLength?: number;
298
302
  type: 'textarea';
303
+ validate?: Validate<string, unknown, unknown, TextareaField>;
299
304
  } & FieldBase;
300
305
  export type CheckboxField = {
301
306
  admin?: {
@@ -307,6 +312,7 @@ export type CheckboxField = {
307
312
  };
308
313
  } & Admin;
309
314
  type: 'checkbox';
315
+ validate?: Validate<unknown, unknown, unknown, CheckboxField>;
310
316
  } & FieldBase;
311
317
  export type DateField = {
312
318
  admin?: {
@@ -320,6 +326,7 @@ export type DateField = {
320
326
  placeholder?: Record<string, string> | string;
321
327
  } & Admin;
322
328
  type: 'date';
329
+ validate?: Validate<unknown, unknown, unknown, DateField>;
323
330
  } & FieldBase;
324
331
  export type GroupField = {
325
332
  admin?: {
@@ -334,13 +341,14 @@ export type GroupField = {
334
341
  */
335
342
  interfaceName?: string;
336
343
  type: 'group';
337
- } & Omit<FieldBase, 'required' | 'validation'>;
344
+ validate?: Validate<unknown, unknown, unknown, GroupField>;
345
+ } & Omit<FieldBase, 'required'>;
338
346
  export type RowAdmin = Omit<Admin, 'description'>;
339
347
  export type RowField = {
340
348
  admin?: RowAdmin;
341
349
  fields: Field[];
342
350
  type: 'row';
343
- } & Omit<FieldBase, 'admin' | 'label' | 'name'>;
351
+ } & Omit<FieldBase, 'admin' | 'label' | 'name' | 'validate'>;
344
352
  export type CollapsibleField = {
345
353
  fields: Field[];
346
354
  type: 'collapsible';
@@ -357,14 +365,14 @@ export type CollapsibleField = {
357
365
  initCollapsed?: boolean;
358
366
  } & Admin;
359
367
  label: Required<FieldBase['label']>;
360
- }) & Omit<FieldBase, 'label' | 'name'>;
368
+ }) & Omit<FieldBase, 'label' | 'name' | 'validate'>;
361
369
  export type TabsAdmin = Omit<Admin, 'description'>;
362
370
  type TabBase = {
363
371
  description?: Description;
364
372
  fields: Field[];
365
373
  interfaceName?: string;
366
374
  saveToJWT?: boolean | string;
367
- } & Omit<FieldBase, 'required' | 'validation'>;
375
+ } & Omit<FieldBase, 'required' | 'validate'>;
368
376
  export type NamedTab = {
369
377
  /** Customize generated GraphQL and Typescript schema names.
370
378
  * The slug is used by default.
@@ -440,6 +448,7 @@ export type UploadField = {
440
448
  maxDepth?: number;
441
449
  relationTo: CollectionSlug;
442
450
  type: 'upload';
451
+ validate?: Validate<unknown, unknown, unknown, UploadField>;
443
452
  } & FieldBase;
444
453
  type CodeAdmin = {
445
454
  components?: {
@@ -454,6 +463,7 @@ export type CodeField = {
454
463
  maxLength?: number;
455
464
  minLength?: number;
456
465
  type: 'code';
466
+ validate?: Validate<string, unknown, unknown, CodeField>;
457
467
  } & Omit<FieldBase, 'admin'>;
458
468
  type JSONAdmin = {
459
469
  components?: {
@@ -470,6 +480,7 @@ export type JSONField = {
470
480
  uri: string;
471
481
  };
472
482
  type: 'json';
483
+ validate?: Validate<Record<string, unknown>, unknown, unknown, JSONField>;
473
484
  } & Omit<FieldBase, 'admin'>;
474
485
  export type SelectField = {
475
486
  admin?: {
@@ -491,6 +502,7 @@ export type SelectField = {
491
502
  hasMany?: boolean;
492
503
  options: Option[];
493
504
  type: 'select';
505
+ validate?: Validate<string, unknown, unknown, SelectField>;
494
506
  } & FieldBase;
495
507
  type SharedRelationshipProperties = {
496
508
  filterOptions?: FilterOptions;
@@ -502,6 +514,7 @@ type SharedRelationshipProperties = {
502
514
  */
503
515
  maxDepth?: number;
504
516
  type: 'relationship';
517
+ validate?: Validate<unknown, unknown, unknown, SharedRelationshipProperties>;
505
518
  } & ({
506
519
  hasMany: true;
507
520
  /**
@@ -599,6 +612,7 @@ export type ArrayField = {
599
612
  maxRows?: number;
600
613
  minRows?: number;
601
614
  type: 'array';
615
+ validate?: Validate<unknown[], unknown, unknown, ArrayField>;
602
616
  } & FieldBase;
603
617
  export type RadioField = {
604
618
  admin?: {
@@ -618,6 +632,7 @@ export type RadioField = {
618
632
  enumName?: DBIdentifierName;
619
633
  options: Option[];
620
634
  type: 'radio';
635
+ validate?: Validate<string, unknown, unknown, RadioField>;
621
636
  } & FieldBase;
622
637
  export type Block = {
623
638
  admin?: {
@@ -670,9 +685,11 @@ export type BlockField = {
670
685
  maxRows?: number;
671
686
  minRows?: number;
672
687
  type: 'blocks';
688
+ validate?: Validate<string, unknown, unknown, BlockField>;
673
689
  } & FieldBase;
674
690
  export type PointField = {
675
691
  type: 'point';
692
+ validate?: Validate<unknown, unknown, unknown, PointField>;
676
693
  } & FieldBase;
677
694
  export type Field = ArrayField | BlockField | CheckboxField | CodeField | CollapsibleField | DateField | EmailField | GroupField | JSONField | NumberField | PointField | RadioField | RelationshipField | RichTextField | RowField | SelectField | TabsField | TextField | TextareaField | UIField | UploadField;
678
695
  export type FieldAffectingData = ArrayField | BlockField | CheckboxField | CodeField | DateField | EmailField | GroupField | JSONField | NumberField | PointField | RadioField | RelationshipField | RichTextField | SelectField | TabAsField | TextField | TextareaField | UploadField;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/fields/config/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/fields/config/types.ts"],"names":[],"mappings":"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"}
@@ -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'\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> = {\n data: Partial<TData>\n id?: number | string\n operation?: Operation\n preferences: DocumentPreferences\n req: PayloadRequest\n siblingData: Partial<TSiblingData>\n}\n\nexport type ValidateOptions<TData, TSiblingData, TFieldConfig extends object> = BaseValidateOptions<\n TData,\n TSiblingData\n> &\n 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>,\n) => Promise<string | true> | string | true\n\nexport type ClientValidate = Omit<Validate, 'req'>\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 `validation` function. */\n max?: number\n /** Minimum value accepted. Used in the default `validation` function. */\n min?: number\n type: 'number'\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} & (\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} & 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} & 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} & 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} & 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} & Omit<FieldBase, 'required' | 'validation'>\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'>\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'>\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' | 'validation'>\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 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} & 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} & 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} & 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} & 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} & (\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\nexport type PolymorphicRelationshipField = {\n admin?: {\n sortOptions?: { [collectionSlug: CollectionSlug]: string }\n } & RelationshipAdmin\n relationTo: CollectionSlug[]\n} & SharedRelationshipProperties\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} & 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} & 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} & FieldBase\n\nexport type PointField = {\n type: 'point'\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,GAwoBrD,OAAO,SAASA,yBAAyBC,KAAc;IACrD,OAAOA,UAAU,QAAQ,OAAOA,UAAU,YAAY,gBAAgBA,SAAS,WAAWA;AAC5F;AAwNA,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 /** 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 data: Partial<TData>\n id?: number | string\n operation?: Operation\n preferences: DocumentPreferences\n previousValue?: TValue\n req: PayloadRequest\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 ClientValidate = Omit<Validate, 'req'>\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 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,GAwpBrD,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/beforeChange/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,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACpG,OAAO,KAAK,EAAE,KAAK,EAAiB,UAAU,EAAmB,MAAM,uBAAuB,CAAA;AAU9F,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,UAAU,CAAA;IAChB,GAAG,EAAE,UAAU,CAAA;IACf,cAAc,EAAE,UAAU,CAAA;IAC1B,SAAS,EAAE,OAAO,CAAA;IAClB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC5C,KAAK,EAAE,KAAK,GAAG,UAAU,CAAA;IACzB,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,kBAAkB,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAA;IAC3C,SAAS,EAAE,SAAS,CAAA;IACpB;;OAEG;IACH,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IAC/B;;OAEG;IACH,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,GAAG,EAAE,cAAc,CAAA;IACnB,WAAW,EAAE,UAAU,CAAA;IACvB,UAAU,EAAE,UAAU,CAAA;IACtB,qBAAqB,CAAC,EAAE,UAAU,CAAA;IAClC,cAAc,EAAE,OAAO,CAAA;CACxB,CAAA;AAUD,eAAO,MAAM,OAAO,gOAoBjB,IAAI,KAAG,OAAO,CAAC,IAAI,CAyarB,CAAA"}
1
+ {"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeChange/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,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACpG,OAAO,KAAK,EAAE,KAAK,EAAiB,UAAU,EAAmB,MAAM,uBAAuB,CAAA;AAU9F,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,UAAU,CAAA;IAChB,GAAG,EAAE,UAAU,CAAA;IACf,cAAc,EAAE,UAAU,CAAA;IAC1B,SAAS,EAAE,OAAO,CAAA;IAClB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC5C,KAAK,EAAE,KAAK,GAAG,UAAU,CAAA;IACzB,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,kBAAkB,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAA;IAC3C,SAAS,EAAE,SAAS,CAAA;IACpB;;OAEG;IACH,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IAC/B;;OAEG;IACH,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,GAAG,EAAE,cAAc,CAAA;IACnB,WAAW,EAAE,UAAU,CAAA;IACvB,UAAU,EAAE,UAAU,CAAA;IACtB,qBAAqB,CAAC,EAAE,UAAU,CAAA;IAClC,cAAc,EAAE,OAAO,CAAA;CACxB,CAAA;AAUD,eAAO,MAAM,OAAO,gOAoBjB,IAAI,KAAG,OAAO,CAAC,IAAI,CA0arB,CAAA"}
@@ -62,7 +62,7 @@ export const promise = async ({ id, collection, context, data, doc, docWithLocal
62
62
  }, Promise.resolve());
63
63
  }
64
64
  // Validate
65
- if (!skipValidationFromHere && field.validate) {
65
+ if (!skipValidationFromHere && 'validate' in field && field.validate) {
66
66
  const valueToValidate = siblingData[field.name];
67
67
  let jsonError;
68
68
  if (field.type === 'json' && typeof siblingData[field.name] === 'string') {
@@ -81,6 +81,7 @@ export const promise = async ({ id, collection, context, data, doc, docWithLocal
81
81
  preferences: {
82
82
  fields: {}
83
83
  },
84
+ previousValue: siblingDoc[field.name],
84
85
  req,
85
86
  siblingData: deepMergeWithSourceArrays(siblingDoc, siblingData)
86
87
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/fields/hooks/beforeChange/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, Operation, PayloadRequest, RequestContext } from '../../../types/index.js'\nimport type { Field, FieldHookArgs, TabAsField, ValidateOptions } from '../../config/types.js'\n\nimport { MissingEditorProp } from '../../../errors/index.js'\nimport { deepMergeWithSourceArrays } from '../../../utilities/deepMerge.js'\nimport { fieldAffectsData, tabHasName } from '../../config/types.js'\nimport { getFieldPaths } from '../../getFieldPaths.js'\nimport { beforeDuplicate } from './beforeDuplicate.js'\nimport { getExistingRowDoc } from './getExistingRowDoc.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n collection: SanitizedCollectionConfig | null\n context: RequestContext\n data: JsonObject\n doc: JsonObject\n docWithLocales: JsonObject\n duplicate: boolean\n errors: { field: string; message: string }[]\n field: Field | TabAsField\n global: SanitizedGlobalConfig | null\n id?: number | string\n mergeLocaleActions: (() => Promise<void>)[]\n operation: Operation\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 req: PayloadRequest\n siblingData: JsonObject\n siblingDoc: JsonObject\n siblingDocWithLocales?: JsonObject\n skipValidation: boolean\n}\n\n// This function is responsible for the following actions, in order:\n// - Run condition\n// - Execute field hooks\n// - Validate data\n// - Transform data for storage\n// - beforeDuplicate hooks (if duplicate)\n// - Unflatten locales\n\nexport const promise = async ({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n field,\n global,\n mergeLocaleActions,\n operation,\n parentPath,\n parentSchemaPath,\n req,\n siblingData,\n siblingDoc,\n siblingDocWithLocales,\n skipValidation,\n}: Args): Promise<void> => {\n const passesCondition = field.admin?.condition\n ? Boolean(field.admin.condition(data, siblingData, { user: req.user }))\n : true\n let skipValidationFromHere = skipValidation || !passesCondition\n const { localization } = req.payload.config\n const defaultLocale = localization ? localization?.defaultLocale : 'en'\n const operationLocale = req.locale || defaultLocale\n\n const { path: fieldPath, schemaPath: fieldSchemaPath } = getFieldPaths({\n field,\n parentPath,\n parentSchemaPath,\n })\n\n if (fieldAffectsData(field)) {\n // skip validation if the field is localized and the incoming data is null\n if (field.localized && operationLocale !== defaultLocale) {\n if (['array', 'blocks'].includes(field.type) && siblingData[field.name] === null) {\n skipValidationFromHere = true\n }\n }\n\n // Execute hooks\n if (field.hooks?.beforeChange) {\n await field.hooks.beforeChange.reduce(async (priorHook, currentHook) => {\n await priorHook\n\n const hookedValue = await currentHook({\n collection,\n context,\n data,\n field,\n global,\n operation,\n originalDoc: doc,\n path: fieldPath,\n previousSiblingDoc: siblingDoc,\n previousValue: siblingDoc[field.name],\n req,\n schemaPath: parentSchemaPath,\n siblingData,\n siblingDocWithLocales,\n value: siblingData[field.name],\n })\n\n if (hookedValue !== undefined) {\n siblingData[field.name] = hookedValue\n }\n }, Promise.resolve())\n }\n\n // Validate\n if (!skipValidationFromHere && field.validate) {\n const valueToValidate = siblingData[field.name]\n let jsonError: object\n\n if (field.type === 'json' && typeof siblingData[field.name] === 'string') {\n try {\n JSON.parse(siblingData[field.name] as string)\n } catch (e) {\n jsonError = e\n }\n }\n\n const validationResult = await field.validate(valueToValidate, {\n ...field,\n id,\n data: deepMergeWithSourceArrays(doc, data),\n jsonError,\n operation,\n preferences: { fields: {} },\n req,\n siblingData: deepMergeWithSourceArrays(siblingDoc, siblingData),\n } as ValidateOptions<any, any, { jsonError: object }>)\n\n if (typeof validationResult === 'string') {\n errors.push({\n field: fieldPath.join('.'),\n message: validationResult,\n })\n }\n }\n\n const beforeDuplicateArgs: FieldHookArgs = {\n collection,\n context,\n data,\n field,\n global: undefined,\n path: fieldPath,\n previousSiblingDoc: siblingDoc,\n previousValue: siblingDoc[field.name],\n req,\n schemaPath: parentSchemaPath,\n siblingData,\n siblingDocWithLocales,\n value: siblingData[field.name],\n }\n\n // Push merge locale action if applicable\n if (localization && field.localized) {\n mergeLocaleActions.push(async () => {\n const localeData = await localization.localeCodes.reduce(\n async (localizedValuesPromise: Promise<JsonObject>, locale) => {\n const localizedValues = await localizedValuesPromise\n let fieldValue =\n locale === req.locale\n ? siblingData[field.name]\n : siblingDocWithLocales?.[field.name]?.[locale]\n\n if (duplicate && field.hooks?.beforeDuplicate?.length) {\n beforeDuplicateArgs.value = fieldValue\n fieldValue = await beforeDuplicate(beforeDuplicateArgs)\n }\n\n // const result = await localizedValues\n // update locale value if it's not undefined\n if (typeof fieldValue !== 'undefined') {\n return {\n ...localizedValues,\n [locale]: fieldValue,\n }\n }\n\n return localizedValuesPromise\n },\n Promise.resolve({}),\n )\n\n // If there are locales with data, set the data\n if (Object.keys(localeData).length > 0) {\n siblingData[field.name] = localeData\n }\n })\n } else if (duplicate && field.hooks?.beforeDuplicate?.length) {\n mergeLocaleActions.push(async () => {\n siblingData[field.name] = await beforeDuplicate(beforeDuplicateArgs)\n })\n }\n }\n\n switch (field.type) {\n case 'point': {\n // Transform point data for storage\n if (\n Array.isArray(siblingData[field.name]) &&\n siblingData[field.name][0] !== null &&\n siblingData[field.name][1] !== null\n ) {\n siblingData[field.name] = {\n type: 'Point',\n coordinates: [\n parseFloat(siblingData[field.name][0]),\n parseFloat(siblingData[field.name][1]),\n ],\n }\n }\n\n break\n }\n\n case 'group': {\n if (typeof siblingData[field.name] !== 'object') siblingData[field.name] = {}\n if (typeof siblingDoc[field.name] !== 'object') siblingDoc[field.name] = {}\n if (typeof siblingDocWithLocales[field.name] !== 'object')\n siblingDocWithLocales[field.name] = {}\n\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields: field.fields,\n global,\n mergeLocaleActions,\n operation,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData: siblingData[field.name] as JsonObject,\n siblingDoc: siblingDoc[field.name] as JsonObject,\n siblingDocWithLocales: siblingDocWithLocales[field.name] as JsonObject,\n skipValidation: skipValidationFromHere,\n })\n\n break\n }\n\n case 'array': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n rows.forEach((row, i) => {\n promises.push(\n traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields: field.fields,\n global,\n mergeLocaleActions,\n operation,\n path: [...fieldPath, i],\n req,\n schemaPath: fieldSchemaPath,\n siblingData: row as JsonObject,\n siblingDoc: getExistingRowDoc(row as JsonObject, siblingDoc[field.name]),\n siblingDocWithLocales: getExistingRowDoc(\n row as JsonObject,\n siblingDocWithLocales[field.name],\n ),\n skipValidation: skipValidationFromHere,\n }),\n )\n })\n\n await Promise.all(promises)\n }\n\n break\n }\n\n case 'blocks': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n rows.forEach((row, i) => {\n const rowSiblingDoc = getExistingRowDoc(row as JsonObject, siblingDoc[field.name])\n const rowSiblingDocWithLocales = getExistingRowDoc(\n row as JsonObject,\n siblingDocWithLocales[field.name],\n )\n\n const blockTypeToMatch = (row as JsonObject).blockType || rowSiblingDoc.blockType\n const block = field.blocks.find((blockType) => blockType.slug === blockTypeToMatch)\n\n if (block) {\n promises.push(\n traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields: block.fields,\n global,\n mergeLocaleActions,\n operation,\n path: [...fieldPath, i],\n req,\n schemaPath: fieldSchemaPath,\n siblingData: row as JsonObject,\n siblingDoc: rowSiblingDoc,\n siblingDocWithLocales: rowSiblingDocWithLocales,\n skipValidation: skipValidationFromHere,\n }),\n )\n }\n })\n\n await Promise.all(promises)\n }\n\n break\n }\n\n case 'row':\n case 'collapsible': {\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields: field.fields,\n global,\n mergeLocaleActions,\n operation,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData,\n siblingDoc,\n siblingDocWithLocales,\n skipValidation: skipValidationFromHere,\n })\n\n break\n }\n\n case 'tab': {\n let tabSiblingData = siblingData\n let tabSiblingDoc = siblingDoc\n let tabSiblingDocWithLocales = siblingDocWithLocales\n\n if (tabHasName(field)) {\n if (typeof siblingData[field.name] !== 'object') siblingData[field.name] = {}\n if (typeof siblingDoc[field.name] !== 'object') siblingDoc[field.name] = {}\n if (typeof siblingDocWithLocales[field.name] !== 'object')\n siblingDocWithLocales[field.name] = {}\n\n tabSiblingData = siblingData[field.name] as JsonObject\n tabSiblingDoc = siblingDoc[field.name] as JsonObject\n tabSiblingDocWithLocales = siblingDocWithLocales[field.name] as JsonObject\n }\n\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields: field.fields,\n global,\n mergeLocaleActions,\n operation,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData: tabSiblingData,\n siblingDoc: tabSiblingDoc,\n siblingDocWithLocales: tabSiblingDocWithLocales,\n skipValidation: skipValidationFromHere,\n })\n\n break\n }\n\n case 'tabs': {\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n global,\n mergeLocaleActions,\n operation,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData,\n siblingDoc,\n siblingDocWithLocales,\n skipValidation: skipValidationFromHere,\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 const editor: RichTextAdapter = field?.editor\n\n if (editor?.hooks?.beforeChange?.length) {\n await editor.hooks.beforeChange.reduce(async (priorHook, currentHook) => {\n await priorHook\n\n const hookedValue = await currentHook({\n collection,\n context,\n data,\n docWithLocales,\n duplicate,\n errors,\n field,\n global,\n mergeLocaleActions,\n operation,\n originalDoc: doc,\n path: fieldPath,\n previousSiblingDoc: siblingDoc,\n previousValue: siblingDoc[field.name],\n req,\n schemaPath: parentSchemaPath,\n siblingData,\n siblingDocWithLocales,\n skipValidation,\n value: siblingData[field.name],\n })\n\n if (hookedValue !== undefined) {\n siblingData[field.name] = hookedValue\n }\n }, Promise.resolve())\n }\n\n break\n }\n\n default: {\n break\n }\n }\n}\n"],"names":["MissingEditorProp","deepMergeWithSourceArrays","fieldAffectsData","tabHasName","getFieldPaths","beforeDuplicate","getExistingRowDoc","traverseFields","promise","id","collection","context","data","doc","docWithLocales","duplicate","errors","field","global","mergeLocaleActions","operation","parentPath","parentSchemaPath","req","siblingData","siblingDoc","siblingDocWithLocales","skipValidation","passesCondition","admin","condition","Boolean","user","skipValidationFromHere","localization","payload","config","defaultLocale","operationLocale","locale","path","fieldPath","schemaPath","fieldSchemaPath","localized","includes","type","name","hooks","beforeChange","reduce","priorHook","currentHook","hookedValue","originalDoc","previousSiblingDoc","previousValue","value","undefined","Promise","resolve","validate","valueToValidate","jsonError","JSON","parse","e","validationResult","preferences","fields","push","join","message","beforeDuplicateArgs","localeData","localeCodes","localizedValuesPromise","localizedValues","fieldValue","length","Object","keys","Array","isArray","coordinates","parseFloat","rows","promises","forEach","row","i","all","rowSiblingDoc","rowSiblingDocWithLocales","blockTypeToMatch","blockType","block","blocks","find","slug","tabSiblingData","tabSiblingDoc","tabSiblingDocWithLocales","tabs","map","tab","editor","Error"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/fields/hooks/beforeChange/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, Operation, PayloadRequest, RequestContext } from '../../../types/index.js'\nimport type { Field, FieldHookArgs, TabAsField, ValidateOptions } from '../../config/types.js'\n\nimport { MissingEditorProp } from '../../../errors/index.js'\nimport { deepMergeWithSourceArrays } from '../../../utilities/deepMerge.js'\nimport { fieldAffectsData, tabHasName } from '../../config/types.js'\nimport { getFieldPaths } from '../../getFieldPaths.js'\nimport { beforeDuplicate } from './beforeDuplicate.js'\nimport { getExistingRowDoc } from './getExistingRowDoc.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n collection: SanitizedCollectionConfig | null\n context: RequestContext\n data: JsonObject\n doc: JsonObject\n docWithLocales: JsonObject\n duplicate: boolean\n errors: { field: string; message: string }[]\n field: Field | TabAsField\n global: SanitizedGlobalConfig | null\n id?: number | string\n mergeLocaleActions: (() => Promise<void>)[]\n operation: Operation\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 req: PayloadRequest\n siblingData: JsonObject\n siblingDoc: JsonObject\n siblingDocWithLocales?: JsonObject\n skipValidation: boolean\n}\n\n// This function is responsible for the following actions, in order:\n// - Run condition\n// - Execute field hooks\n// - Validate data\n// - Transform data for storage\n// - beforeDuplicate hooks (if duplicate)\n// - Unflatten locales\n\nexport const promise = async ({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n field,\n global,\n mergeLocaleActions,\n operation,\n parentPath,\n parentSchemaPath,\n req,\n siblingData,\n siblingDoc,\n siblingDocWithLocales,\n skipValidation,\n}: Args): Promise<void> => {\n const passesCondition = field.admin?.condition\n ? Boolean(field.admin.condition(data, siblingData, { user: req.user }))\n : true\n let skipValidationFromHere = skipValidation || !passesCondition\n const { localization } = req.payload.config\n const defaultLocale = localization ? localization?.defaultLocale : 'en'\n const operationLocale = req.locale || defaultLocale\n\n const { path: fieldPath, schemaPath: fieldSchemaPath } = getFieldPaths({\n field,\n parentPath,\n parentSchemaPath,\n })\n\n if (fieldAffectsData(field)) {\n // skip validation if the field is localized and the incoming data is null\n if (field.localized && operationLocale !== defaultLocale) {\n if (['array', 'blocks'].includes(field.type) && siblingData[field.name] === null) {\n skipValidationFromHere = true\n }\n }\n\n // Execute hooks\n if (field.hooks?.beforeChange) {\n await field.hooks.beforeChange.reduce(async (priorHook, currentHook) => {\n await priorHook\n\n const hookedValue = await currentHook({\n collection,\n context,\n data,\n field,\n global,\n operation,\n originalDoc: doc,\n path: fieldPath,\n previousSiblingDoc: siblingDoc,\n previousValue: siblingDoc[field.name],\n req,\n schemaPath: parentSchemaPath,\n siblingData,\n siblingDocWithLocales,\n value: siblingData[field.name],\n })\n\n if (hookedValue !== undefined) {\n siblingData[field.name] = hookedValue\n }\n }, Promise.resolve())\n }\n\n // Validate\n if (!skipValidationFromHere && 'validate' in field && field.validate) {\n const valueToValidate = siblingData[field.name]\n let jsonError: object\n\n if (field.type === 'json' && typeof siblingData[field.name] === 'string') {\n try {\n JSON.parse(siblingData[field.name] as string)\n } catch (e) {\n jsonError = e\n }\n }\n\n const validationResult = await field.validate(valueToValidate, {\n ...field,\n id,\n data: deepMergeWithSourceArrays(doc, data),\n jsonError,\n operation,\n preferences: { fields: {} },\n previousValue: siblingDoc[field.name],\n req,\n siblingData: deepMergeWithSourceArrays(siblingDoc, siblingData),\n } as ValidateOptions<any, any, { jsonError: object }, any>)\n\n if (typeof validationResult === 'string') {\n errors.push({\n field: fieldPath.join('.'),\n message: validationResult,\n })\n }\n }\n\n const beforeDuplicateArgs: FieldHookArgs = {\n collection,\n context,\n data,\n field,\n global: undefined,\n path: fieldPath,\n previousSiblingDoc: siblingDoc,\n previousValue: siblingDoc[field.name],\n req,\n schemaPath: parentSchemaPath,\n siblingData,\n siblingDocWithLocales,\n value: siblingData[field.name],\n }\n\n // Push merge locale action if applicable\n if (localization && field.localized) {\n mergeLocaleActions.push(async () => {\n const localeData = await localization.localeCodes.reduce(\n async (localizedValuesPromise: Promise<JsonObject>, locale) => {\n const localizedValues = await localizedValuesPromise\n let fieldValue =\n locale === req.locale\n ? siblingData[field.name]\n : siblingDocWithLocales?.[field.name]?.[locale]\n\n if (duplicate && field.hooks?.beforeDuplicate?.length) {\n beforeDuplicateArgs.value = fieldValue\n fieldValue = await beforeDuplicate(beforeDuplicateArgs)\n }\n\n // const result = await localizedValues\n // update locale value if it's not undefined\n if (typeof fieldValue !== 'undefined') {\n return {\n ...localizedValues,\n [locale]: fieldValue,\n }\n }\n\n return localizedValuesPromise\n },\n Promise.resolve({}),\n )\n\n // If there are locales with data, set the data\n if (Object.keys(localeData).length > 0) {\n siblingData[field.name] = localeData\n }\n })\n } else if (duplicate && field.hooks?.beforeDuplicate?.length) {\n mergeLocaleActions.push(async () => {\n siblingData[field.name] = await beforeDuplicate(beforeDuplicateArgs)\n })\n }\n }\n\n switch (field.type) {\n case 'point': {\n // Transform point data for storage\n if (\n Array.isArray(siblingData[field.name]) &&\n siblingData[field.name][0] !== null &&\n siblingData[field.name][1] !== null\n ) {\n siblingData[field.name] = {\n type: 'Point',\n coordinates: [\n parseFloat(siblingData[field.name][0]),\n parseFloat(siblingData[field.name][1]),\n ],\n }\n }\n\n break\n }\n\n case 'group': {\n if (typeof siblingData[field.name] !== 'object') siblingData[field.name] = {}\n if (typeof siblingDoc[field.name] !== 'object') siblingDoc[field.name] = {}\n if (typeof siblingDocWithLocales[field.name] !== 'object')\n siblingDocWithLocales[field.name] = {}\n\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields: field.fields,\n global,\n mergeLocaleActions,\n operation,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData: siblingData[field.name] as JsonObject,\n siblingDoc: siblingDoc[field.name] as JsonObject,\n siblingDocWithLocales: siblingDocWithLocales[field.name] as JsonObject,\n skipValidation: skipValidationFromHere,\n })\n\n break\n }\n\n case 'array': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n rows.forEach((row, i) => {\n promises.push(\n traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields: field.fields,\n global,\n mergeLocaleActions,\n operation,\n path: [...fieldPath, i],\n req,\n schemaPath: fieldSchemaPath,\n siblingData: row as JsonObject,\n siblingDoc: getExistingRowDoc(row as JsonObject, siblingDoc[field.name]),\n siblingDocWithLocales: getExistingRowDoc(\n row as JsonObject,\n siblingDocWithLocales[field.name],\n ),\n skipValidation: skipValidationFromHere,\n }),\n )\n })\n\n await Promise.all(promises)\n }\n\n break\n }\n\n case 'blocks': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n rows.forEach((row, i) => {\n const rowSiblingDoc = getExistingRowDoc(row as JsonObject, siblingDoc[field.name])\n const rowSiblingDocWithLocales = getExistingRowDoc(\n row as JsonObject,\n siblingDocWithLocales[field.name],\n )\n\n const blockTypeToMatch = (row as JsonObject).blockType || rowSiblingDoc.blockType\n const block = field.blocks.find((blockType) => blockType.slug === blockTypeToMatch)\n\n if (block) {\n promises.push(\n traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields: block.fields,\n global,\n mergeLocaleActions,\n operation,\n path: [...fieldPath, i],\n req,\n schemaPath: fieldSchemaPath,\n siblingData: row as JsonObject,\n siblingDoc: rowSiblingDoc,\n siblingDocWithLocales: rowSiblingDocWithLocales,\n skipValidation: skipValidationFromHere,\n }),\n )\n }\n })\n\n await Promise.all(promises)\n }\n\n break\n }\n\n case 'row':\n case 'collapsible': {\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields: field.fields,\n global,\n mergeLocaleActions,\n operation,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData,\n siblingDoc,\n siblingDocWithLocales,\n skipValidation: skipValidationFromHere,\n })\n\n break\n }\n\n case 'tab': {\n let tabSiblingData = siblingData\n let tabSiblingDoc = siblingDoc\n let tabSiblingDocWithLocales = siblingDocWithLocales\n\n if (tabHasName(field)) {\n if (typeof siblingData[field.name] !== 'object') siblingData[field.name] = {}\n if (typeof siblingDoc[field.name] !== 'object') siblingDoc[field.name] = {}\n if (typeof siblingDocWithLocales[field.name] !== 'object')\n siblingDocWithLocales[field.name] = {}\n\n tabSiblingData = siblingData[field.name] as JsonObject\n tabSiblingDoc = siblingDoc[field.name] as JsonObject\n tabSiblingDocWithLocales = siblingDocWithLocales[field.name] as JsonObject\n }\n\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields: field.fields,\n global,\n mergeLocaleActions,\n operation,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData: tabSiblingData,\n siblingDoc: tabSiblingDoc,\n siblingDocWithLocales: tabSiblingDocWithLocales,\n skipValidation: skipValidationFromHere,\n })\n\n break\n }\n\n case 'tabs': {\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n docWithLocales,\n duplicate,\n errors,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n global,\n mergeLocaleActions,\n operation,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData,\n siblingDoc,\n siblingDocWithLocales,\n skipValidation: skipValidationFromHere,\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 const editor: RichTextAdapter = field?.editor\n\n if (editor?.hooks?.beforeChange?.length) {\n await editor.hooks.beforeChange.reduce(async (priorHook, currentHook) => {\n await priorHook\n\n const hookedValue = await currentHook({\n collection,\n context,\n data,\n docWithLocales,\n duplicate,\n errors,\n field,\n global,\n mergeLocaleActions,\n operation,\n originalDoc: doc,\n path: fieldPath,\n previousSiblingDoc: siblingDoc,\n previousValue: siblingDoc[field.name],\n req,\n schemaPath: parentSchemaPath,\n siblingData,\n siblingDocWithLocales,\n skipValidation,\n value: siblingData[field.name],\n })\n\n if (hookedValue !== undefined) {\n siblingData[field.name] = hookedValue\n }\n }, Promise.resolve())\n }\n\n break\n }\n\n default: {\n break\n }\n }\n}\n"],"names":["MissingEditorProp","deepMergeWithSourceArrays","fieldAffectsData","tabHasName","getFieldPaths","beforeDuplicate","getExistingRowDoc","traverseFields","promise","id","collection","context","data","doc","docWithLocales","duplicate","errors","field","global","mergeLocaleActions","operation","parentPath","parentSchemaPath","req","siblingData","siblingDoc","siblingDocWithLocales","skipValidation","passesCondition","admin","condition","Boolean","user","skipValidationFromHere","localization","payload","config","defaultLocale","operationLocale","locale","path","fieldPath","schemaPath","fieldSchemaPath","localized","includes","type","name","hooks","beforeChange","reduce","priorHook","currentHook","hookedValue","originalDoc","previousSiblingDoc","previousValue","value","undefined","Promise","resolve","validate","valueToValidate","jsonError","JSON","parse","e","validationResult","preferences","fields","push","join","message","beforeDuplicateArgs","localeData","localeCodes","localizedValuesPromise","localizedValues","fieldValue","length","Object","keys","Array","isArray","coordinates","parseFloat","rows","promises","forEach","row","i","all","rowSiblingDoc","rowSiblingDocWithLocales","blockTypeToMatch","blockType","block","blocks","find","slug","tabSiblingData","tabSiblingDoc","tabSiblingDocWithLocales","tabs","map","tab","editor","Error"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { ArrayField, BlockField, CheckboxField, CodeField, DateField, EmailField, JSONField, NumberField, PointField, RadioField, RelationshipField, RelationshipValue, RichTextField, SelectField, TextField, TextareaField, UploadField, Validate } from './config/types.js';
2
2
  export declare const text: Validate<string | string[], unknown, unknown, TextField>;
3
3
  export declare const password: Validate<string, unknown, unknown, TextField>;
4
+ export declare const confirmPassword: Validate<string, unknown, unknown, TextField>;
4
5
  export declare const email: Validate<string, unknown, unknown, EmailField>;
5
6
  export declare const username: Validate<string, unknown, unknown, TextField>;
6
7
  export declare const textarea: Validate<string, unknown, unknown, TextareaField>;
@@ -24,6 +25,7 @@ declare const _default: {
24
25
  blocks: Validate<unknown, unknown, unknown, BlockField>;
25
26
  checkbox: Validate<boolean, unknown, unknown, CheckboxField>;
26
27
  code: Validate<string, unknown, unknown, CodeField>;
28
+ confirmPassword: Validate<string, unknown, unknown, TextField>;
27
29
  date: Validate<Date, unknown, unknown, DateField>;
28
30
  email: Validate<string, unknown, unknown, EmailField>;
29
31
  json: Validate<string, unknown, unknown, {
@@ -62,6 +64,7 @@ declare const _default: {
62
64
  uri: string;
63
65
  };
64
66
  type: "json";
67
+ validate?: Validate<Record<string, unknown>, unknown, unknown, JSONField>;
65
68
  } & Omit<import("./config/types.js").FieldBase, "admin">>;
66
69
  number: Validate<number | number[], unknown, unknown, NumberField>;
67
70
  password: Validate<string, unknown, unknown, TextField>;
@@ -1 +1 @@
1
- {"version":3,"file":"validations.d.ts","sourceRoot":"","sources":["../../src/fields/validations.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACT,MAAM,mBAAmB,CAAA;AAK1B,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAkDzE,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CA8BlE,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAShE,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAuBlE,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CA6BtE,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAS9D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAgEvF,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CASvE,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAiB5D,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CActE,CAAA;AAgCD,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAgC7E,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAKnE,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAKlE,CAAA;AAkID,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAmBnE,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,QAAQ,CACjC,iBAAiB,EACjB,OAAO,EACP,OAAO,EACP,iBAAiB,CA0ElB,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAmCnE,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAYjE,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAqB5F,CAAA;;;;;;;;;oBA3emE,MAAM;;;;qBA0exE,CADF;qBAIQ,CAAC;;;;;;oBAtaG,CAAC;2BAGX,CAAC;qBAGgB,CAAA;sBAIV,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4ZV,wBAkBC"}
1
+ {"version":3,"file":"validations.d.ts","sourceRoot":"","sources":["../../src/fields/validations.ts"],"names":[],"mappings":"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"}