payload 3.0.0-beta.3 → 3.0.0-beta.4

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 (108) hide show
  1. package/dist/admin/RichText.d.ts +2 -0
  2. package/dist/admin/RichText.d.ts.map +1 -1
  3. package/dist/admin/RichText.js.map +1 -1
  4. package/dist/admin/elements/PreviewButton.d.ts +2 -1
  5. package/dist/admin/elements/PreviewButton.d.ts.map +1 -1
  6. package/dist/admin/elements/PreviewButton.js.map +1 -1
  7. package/dist/admin/elements/PublishButton.d.ts +2 -1
  8. package/dist/admin/elements/PublishButton.d.ts.map +1 -1
  9. package/dist/admin/elements/PublishButton.js.map +1 -1
  10. package/dist/admin/elements/SaveButton.d.ts +2 -1
  11. package/dist/admin/elements/SaveButton.d.ts.map +1 -1
  12. package/dist/admin/elements/SaveButton.js.map +1 -1
  13. package/dist/admin/elements/SaveDraftButton.d.ts +2 -1
  14. package/dist/admin/elements/SaveDraftButton.d.ts.map +1 -1
  15. package/dist/admin/elements/SaveDraftButton.js.map +1 -1
  16. package/dist/admin/elements/WithServerSideProps.d.ts +5 -0
  17. package/dist/admin/elements/WithServerSideProps.d.ts.map +1 -0
  18. package/dist/admin/elements/WithServerSideProps.js +3 -0
  19. package/dist/admin/elements/WithServerSideProps.js.map +1 -0
  20. package/dist/admin/forms/FieldDescription.d.ts +4 -2
  21. package/dist/admin/forms/FieldDescription.d.ts.map +1 -1
  22. package/dist/admin/forms/FieldDescription.js.map +1 -1
  23. package/dist/admin/forms/RowLabel.d.ts +2 -1
  24. package/dist/admin/forms/RowLabel.d.ts.map +1 -1
  25. package/dist/admin/forms/RowLabel.js.map +1 -1
  26. package/dist/admin/types.d.ts +1 -0
  27. package/dist/admin/types.d.ts.map +1 -1
  28. package/dist/admin/types.js.map +1 -1
  29. package/dist/auth/executeAuthStrategies.d.ts +3 -2
  30. package/dist/auth/executeAuthStrategies.d.ts.map +1 -1
  31. package/dist/auth/executeAuthStrategies.js.map +1 -1
  32. package/dist/auth/getFieldsToSign.d.ts +2 -2
  33. package/dist/auth/getFieldsToSign.d.ts.map +1 -1
  34. package/dist/auth/getFieldsToSign.js.map +1 -1
  35. package/dist/auth/operations/auth.d.ts +3 -2
  36. package/dist/auth/operations/auth.d.ts.map +1 -1
  37. package/dist/auth/operations/auth.js.map +1 -1
  38. package/dist/bin/loader/index.d.ts.map +1 -1
  39. package/dist/bin/loader/index.js +4 -0
  40. package/dist/bin/loader/index.js.map +1 -1
  41. package/dist/collections/config/client.d.ts +11 -11
  42. package/dist/collections/config/types.d.ts +7 -6
  43. package/dist/collections/config/types.d.ts.map +1 -1
  44. package/dist/collections/config/types.js.map +1 -1
  45. package/dist/collections/dataloader.d.ts.map +1 -1
  46. package/dist/collections/dataloader.js +3 -5
  47. package/dist/collections/dataloader.js.map +1 -1
  48. package/dist/collections/operations/create.d.ts.map +1 -1
  49. package/dist/collections/operations/create.js +1 -4
  50. package/dist/collections/operations/create.js.map +1 -1
  51. package/dist/config/types.d.ts +20 -14
  52. package/dist/config/types.d.ts.map +1 -1
  53. package/dist/config/types.js +3 -0
  54. package/dist/config/types.js.map +1 -1
  55. package/dist/exports/utilities.d.ts +1 -2
  56. package/dist/exports/utilities.d.ts.map +1 -1
  57. package/dist/exports/utilities.js +1 -2
  58. package/dist/exports/utilities.js.map +1 -1
  59. package/dist/fields/config/client.d.ts +102 -102
  60. package/dist/fields/config/sanitize.spec.js +4 -1
  61. package/dist/fields/config/sanitize.spec.js.map +1 -1
  62. package/dist/fields/config/types.d.ts +45 -46
  63. package/dist/fields/config/types.d.ts.map +1 -1
  64. package/dist/fields/config/types.js.map +1 -1
  65. package/dist/fields/getDefaultValue.d.ts +2 -2
  66. package/dist/fields/getDefaultValue.d.ts.map +1 -1
  67. package/dist/fields/getDefaultValue.js.map +1 -1
  68. package/dist/fields/validations.d.ts +4 -4
  69. package/dist/fields/validations.d.ts.map +1 -1
  70. package/dist/fields/validations.js +5 -9
  71. package/dist/fields/validations.js.map +1 -1
  72. package/dist/fields/validations.spec.js +6 -1
  73. package/dist/fields/validations.spec.js.map +1 -1
  74. package/dist/globals/config/types.d.ts +1 -2
  75. package/dist/globals/config/types.d.ts.map +1 -1
  76. package/dist/globals/config/types.js.map +1 -1
  77. package/dist/index.d.ts +3 -0
  78. package/dist/index.d.ts.map +1 -1
  79. package/dist/index.js +7 -1
  80. package/dist/index.js.map +1 -1
  81. package/dist/preferences/operations/update.d.ts +1 -1
  82. package/dist/preferences/types.d.ts +1 -2
  83. package/dist/preferences/types.d.ts.map +1 -1
  84. package/dist/preferences/types.js.map +1 -1
  85. package/dist/types/index.d.ts +4 -4
  86. package/dist/types/index.d.ts.map +1 -1
  87. package/dist/types/index.js.map +1 -1
  88. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  89. package/dist/utilities/configToJSONSchema.js +34 -1
  90. package/dist/utilities/configToJSONSchema.js.map +1 -1
  91. package/dist/utilities/isEntityHidden.d.ts +2 -2
  92. package/dist/utilities/isEntityHidden.d.ts.map +1 -1
  93. package/dist/utilities/isEntityHidden.js.map +1 -1
  94. package/dist/utilities/isReactComponent.d.ts +2 -0
  95. package/dist/utilities/isReactComponent.d.ts.map +1 -1
  96. package/dist/utilities/isReactComponent.js +8 -2
  97. package/dist/utilities/isReactComponent.js.map +1 -1
  98. package/dist/utilities/telemetry/events/adminInit.d.ts +2 -2
  99. package/dist/utilities/telemetry/events/adminInit.d.ts.map +1 -1
  100. package/dist/utilities/telemetry/events/adminInit.js.map +1 -1
  101. package/package.json +2 -2
  102. package/src/index.ts +12 -0
  103. package/utilities.d.ts +1 -2
  104. package/utilities.js +1 -2
  105. package/dist/utilities/getIDType.d.ts +0 -4
  106. package/dist/utilities/getIDType.d.ts.map +0 -1
  107. package/dist/utilities/getIDType.js +0 -8
  108. package/dist/utilities/getIDType.js.map +0 -1
@@ -1,7 +1,5 @@
1
- import { getIDType } from '../utilities/getIDType.js';
2
1
  import { isNumber } from '../utilities/isNumber.js';
3
2
  import { isValidID } from '../utilities/isValidID.js';
4
- import { fieldAffectsData } from './config/types.js';
5
3
  export const text = (value, { hasMany, maxLength: fieldMaxLength, maxRows, minLength, minRows, req: { payload: { config }, t }, required })=>{
6
4
  let maxLength;
7
5
  if (!required) {
@@ -304,16 +302,15 @@ export const upload = (value, options)=>{
304
302
  return options?.req?.t('validation:required');
305
303
  }
306
304
  if (typeof value !== 'undefined' && value !== null) {
307
- const idField = options?.req?.payload?.config?.collections?.find((collection)=>collection.slug === options.relationTo)?.fields?.find((field)=>fieldAffectsData(field) && field.name === 'id');
308
- const type = getIDType(idField, options?.req?.payload?.db?.defaultIDType);
309
- if (!isValidID(value, type)) {
305
+ const idType = options?.req?.payload?.collections[options.relationTo]?.customIDType || options?.req?.payload?.db?.defaultIDType;
306
+ if (!isValidID(value, idType)) {
310
307
  return options.req?.t('validation:validUploadID');
311
308
  }
312
309
  }
313
310
  return validateFilterOptions(value, options);
314
311
  };
315
312
  export const relationship = async (value, options)=>{
316
- const { maxRows, minRows, relationTo, req: { payload, payload: { config }, t }, required } = options;
313
+ const { maxRows, minRows, relationTo, req: { payload, t }, required } = options;
317
314
  if ((!value || Array.isArray(value) && value.length === 0) && required) {
318
315
  return t('validation:required');
319
316
  }
@@ -352,9 +349,8 @@ export const relationship = async (value, options)=>{
352
349
  requestedID = val.value;
353
350
  }
354
351
  if (requestedID === null) return false;
355
- const idField = config?.collections?.find((collection)=>collection.slug === collectionSlug)?.fields?.find((field)=>fieldAffectsData(field) && field.name === 'id');
356
- const type = getIDType(idField, payload?.db?.defaultIDType);
357
- return !isValidID(requestedID, type);
352
+ const idType = payload.collections[collectionSlug]?.customIDType || payload?.db?.defaultIDType || 'text';
353
+ return !isValidID(requestedID, idType);
358
354
  });
359
355
  if (invalidRelationships.length > 0) {
360
356
  return `This relationship field has the following invalid relationships: ${invalidRelationships.map((err, invalid)=>{
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/fields/validations.ts"],"sourcesContent":["import type { RichTextAdapter } from '../admin/types.js'\nimport type { Where } from '../types/index.js'\nimport type {\n ArrayField,\n BlockField,\n CheckboxField,\n CodeField,\n DateField,\n EmailField,\n JSONField,\n NumberField,\n PointField,\n RadioField,\n RelationshipField,\n RelationshipValue,\n RichTextField,\n SelectField,\n TextField,\n TextareaField,\n UploadField,\n Validate,\n} from './config/types.js'\n\nimport { getIDType } from '../utilities/getIDType.js'\nimport { isNumber } from '../utilities/isNumber.js'\nimport { isValidID } from '../utilities/isValidID.js'\nimport { fieldAffectsData } from './config/types.js'\n\nexport const text: Validate<string | string[], unknown, unknown, TextField> = (\n value,\n {\n hasMany,\n maxLength: fieldMaxLength,\n maxRows,\n minLength,\n minRows,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (!required) {\n if (!value) return true\n }\n\n if (hasMany === true) {\n const lengthValidationResult = validateArrayLength(value, { maxRows, minRows, required, t })\n if (typeof lengthValidationResult === 'string') return lengthValidationResult\n }\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n\n const stringsToValidate: string[] = Array.isArray(value) ? value : [value]\n\n for (const stringValue of stringsToValidate) {\n const length = stringValue?.length || 0\n\n if (typeof maxLength === 'number' && length > maxLength) {\n return t('validation:shorterThanMax', { label: t('value'), maxLength, stringValue })\n }\n\n if (typeof minLength === 'number' && length < minLength) {\n return t('validation:longerThanMin', { label: t('value'), minLength, stringValue })\n }\n }\n\n if (required) {\n if (!(typeof value === 'string' || Array.isArray(value)) || value?.length === 0) {\n return t('validation:required')\n }\n }\n\n return true\n}\n\nexport const password: Validate<string, unknown, unknown, TextField> = (\n value,\n {\n maxLength: fieldMaxLength,\n minLength,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n\n if (value && maxLength && value.length > maxLength) {\n return t('validation:shorterThanMax', { maxLength })\n }\n\n if (value && minLength && value.length < minLength) {\n return t('validation:longerThanMin', { minLength })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const email: Validate<string, unknown, unknown, EmailField> = (\n value,\n { req: { t }, required },\n) => {\n if ((value && !/\\S[^\\s@]*@\\S+\\.\\S+/.test(value)) || (!value && required)) {\n return t('validation:emailAddress')\n }\n\n return true\n}\n\nexport const textarea: Validate<string, unknown, unknown, TextareaField> = (\n value,\n {\n maxLength: fieldMaxLength,\n minLength,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n if (value && maxLength && value.length > maxLength) {\n return t('validation:shorterThanMax', { maxLength })\n }\n\n if (value && minLength && value.length < minLength) {\n return t('validation:longerThanMin', { minLength })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const code: Validate<string, unknown, unknown, CodeField> = (\n value,\n { req: { t }, required },\n) => {\n if (required && value === undefined) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const json: Validate<string, unknown, unknown, JSONField & { jsonError?: string }> = (\n value,\n { jsonError, req: { t }, required },\n) => {\n if (required && !value) {\n return t('validation:required')\n }\n\n if (jsonError !== undefined) {\n return t('validation:invalidInput')\n }\n\n return true\n}\n\nexport const checkbox: Validate<boolean, unknown, unknown, CheckboxField> = (\n value,\n { req: { t }, required },\n) => {\n if ((value && typeof value !== 'boolean') || (required && typeof value !== 'boolean')) {\n return t('validation:trueOrFalse')\n }\n\n return true\n}\n\nexport const date: Validate<Date, unknown, unknown, DateField> = (\n value,\n { req: { t }, required },\n) => {\n if (value && !isNaN(Date.parse(value.toString()))) {\n /* eslint-disable-line */\n return true\n }\n\n if (value) {\n return t('validation:notValidDate', { value })\n }\n\n if (required) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const richText: Validate<object, unknown, unknown, RichTextField> = async (\n value,\n options,\n) => {\n const editor: RichTextAdapter = options?.editor\n\n return editor.validate(value, options)\n}\n\nconst validateArrayLength = (\n value,\n options: {\n maxRows?: number\n minRows?: number\n required?: boolean\n t: (key: string, options?: { [key: string]: number | string }) => string\n },\n) => {\n const { maxRows, minRows, required, t } = options\n\n const arrayLength = Array.isArray(value) ? value.length : value || 0\n\n if (!required && arrayLength === 0) return true\n\n if (minRows && arrayLength < minRows) {\n return t('validation:requiresAtLeast', { count: minRows, label: t('general:rows') })\n }\n\n if (maxRows && arrayLength > maxRows) {\n return t('validation:requiresNoMoreThan', { count: maxRows, label: t('general:rows') })\n }\n\n if (required && !arrayLength) {\n return t('validation:requiresAtLeast', { count: 1, label: t('general:row') })\n }\n\n return true\n}\n\nexport const number: Validate<number | number[], unknown, unknown, NumberField> = (\n value,\n { hasMany, max, maxRows, min, minRows, req: { t }, required },\n) => {\n if (hasMany === true) {\n const lengthValidationResult = validateArrayLength(value, { maxRows, minRows, required, t })\n if (typeof lengthValidationResult === 'string') return lengthValidationResult\n }\n\n if (!value && !isNumber(value)) {\n // if no value is present, validate based on required\n if (required) return t('validation:required')\n if (!required) return true\n }\n\n const numbersToValidate: number[] = Array.isArray(value) ? value : [value]\n\n for (const number of numbersToValidate) {\n if (!isNumber(number)) return t('validation:enterNumber')\n\n const numberValue = parseFloat(number as unknown as string)\n\n if (typeof max === 'number' && numberValue > max) {\n return t('validation:greaterThanMax', { label: t('general:value'), max, value })\n }\n\n if (typeof min === 'number' && numberValue < min) {\n return t('validation:lessThanMin', { label: t('general:value'), min, value })\n }\n }\n\n return true\n}\n\nexport const array: Validate<unknown[], unknown, unknown, ArrayField> = (\n value,\n { maxRows, minRows, req: { t }, required },\n) => {\n return validateArrayLength(value, { maxRows, minRows, required, t })\n}\n\nexport const blocks: Validate<unknown, unknown, unknown, BlockField> = (\n value,\n { maxRows, minRows, req: { t }, required },\n) => {\n return validateArrayLength(value, { maxRows, minRows, required, t })\n}\n\nconst validateFilterOptions: Validate<\n unknown,\n unknown,\n unknown,\n RelationshipField | UploadField\n> = async (\n value,\n { id, data, filterOptions, relationTo, req, req: { payload, t, user }, siblingData },\n) => {\n if (typeof filterOptions !== 'undefined' && value) {\n const options: {\n [collection: string]: (number | string)[]\n } = {}\n\n const falseCollections: string[] = []\n const collections = typeof relationTo === 'string' ? [relationTo] : relationTo\n const values = Array.isArray(value) ? value : [value]\n\n for (const collection of collections) {\n try {\n let optionFilter =\n typeof filterOptions === 'function'\n ? await filterOptions({\n id,\n data,\n relationTo: collection,\n siblingData,\n user,\n })\n : filterOptions\n\n if (optionFilter === true) {\n optionFilter = null\n }\n\n const valueIDs: (number | string)[] = []\n\n values.forEach((val) => {\n if (typeof val === 'object' && val?.value) {\n valueIDs.push(val.value)\n }\n\n if (typeof val === 'string' || typeof val === 'number') {\n valueIDs.push(val)\n }\n })\n\n if (valueIDs.length > 0) {\n const findWhere: Where = {\n and: [{ id: { in: valueIDs } }],\n }\n\n if (optionFilter && optionFilter !== true) findWhere.and.push(optionFilter)\n\n if (optionFilter === false) {\n falseCollections.push(collection)\n }\n\n const result = await payload.find({\n collection,\n depth: 0,\n limit: 0,\n pagination: false,\n req,\n where: findWhere,\n })\n\n options[collection] = result.docs.map((doc) => doc.id)\n } else {\n options[collection] = []\n }\n } catch (err) {\n req.payload.logger.error({\n err,\n msg: `Error validating filter options for collection ${collection}`,\n })\n options[collection] = []\n }\n }\n\n const invalidRelationships = values.filter((val) => {\n let collection: string\n let requestedID: number | string\n\n if (typeof relationTo === 'string') {\n collection = relationTo\n\n if (typeof val === 'string' || typeof val === 'number') {\n requestedID = val\n }\n }\n\n if (Array.isArray(relationTo) && typeof val === 'object' && val?.relationTo) {\n collection = val.relationTo\n requestedID = val.value\n }\n\n if (falseCollections.find((slug) => relationTo === slug)) {\n return true\n }\n\n if (!options[collection]) return true\n\n return options[collection].indexOf(requestedID) === -1\n })\n\n if (invalidRelationships.length > 0) {\n return invalidRelationships.reduce((err, invalid, i) => {\n return `${err} ${JSON.stringify(invalid)}${\n invalidRelationships.length === i + 1 ? ',' : ''\n } `\n }, t('validation:invalidSelections')) as string\n }\n\n return true\n }\n\n return true\n}\n\nexport const upload: Validate<unknown, unknown, unknown, UploadField> = (\n value: string,\n options,\n) => {\n if (!value && options.required) {\n return options?.req?.t('validation:required')\n }\n\n if (typeof value !== 'undefined' && value !== null) {\n const idField = options?.req?.payload?.config?.collections\n ?.find((collection) => collection.slug === options.relationTo)\n ?.fields?.find((field) => fieldAffectsData(field) && field.name === 'id')\n\n const type = getIDType(idField, options?.req?.payload?.db?.defaultIDType)\n\n if (!isValidID(value, type)) {\n return options.req?.t('validation:validUploadID')\n }\n }\n\n return validateFilterOptions(value, options)\n}\n\nexport const relationship: Validate<\n RelationshipValue,\n unknown,\n unknown,\n RelationshipField\n> = async (value, options) => {\n const {\n maxRows,\n minRows,\n relationTo,\n req: {\n payload,\n payload: { config },\n t,\n },\n required,\n } = options\n\n if ((!value || (Array.isArray(value) && value.length === 0)) && required) {\n return t('validation:required')\n }\n\n if (Array.isArray(value) && value.length > 0) {\n if (minRows && value.length < minRows) {\n return t('validation:lessThanMin', {\n label: t('general:rows'),\n min: minRows,\n value: value.length,\n })\n }\n\n if (maxRows && value.length > maxRows) {\n return t('validation:greaterThanMax', {\n label: t('general:rows'),\n max: maxRows,\n value: value.length,\n })\n }\n }\n\n if (typeof value !== 'undefined' && value !== null) {\n const values = Array.isArray(value) ? value : [value]\n\n const invalidRelationships = values.filter((val) => {\n let collectionSlug: string\n let requestedID\n\n if (typeof relationTo === 'string') {\n collectionSlug = relationTo\n\n // custom id\n if (val) {\n requestedID = val\n }\n }\n\n if (Array.isArray(relationTo) && typeof val === 'object' && val?.relationTo) {\n collectionSlug = val.relationTo\n requestedID = val.value\n }\n\n if (requestedID === null) return false\n\n const idField = config?.collections\n ?.find((collection) => collection.slug === collectionSlug)\n ?.fields?.find((field) => fieldAffectsData(field) && field.name === 'id')\n\n const type = getIDType(idField, payload?.db?.defaultIDType)\n\n return !isValidID(requestedID, type)\n })\n\n if (invalidRelationships.length > 0) {\n return `This relationship field has the following invalid relationships: ${invalidRelationships\n .map((err, invalid) => {\n return `${err} ${JSON.stringify(invalid)}`\n })\n .join(', ')}`\n }\n }\n\n return validateFilterOptions(value, options)\n}\n\nexport const select: Validate<unknown, unknown, unknown, SelectField> = (\n value,\n { hasMany, options, req: { t }, required },\n) => {\n if (\n Array.isArray(value) &&\n value.some(\n (input) =>\n !options.some(\n (option) => option === input || (typeof option !== 'string' && option?.value === input),\n ),\n )\n ) {\n return t('validation:invalidSelection')\n }\n\n if (\n typeof value === 'string' &&\n !options.some(\n (option) => option === value || (typeof option !== 'string' && option.value === value),\n )\n ) {\n return t('validation:invalidSelection')\n }\n\n if (\n required &&\n (typeof value === 'undefined' ||\n value === null ||\n (hasMany && Array.isArray(value) && (value as [])?.length === 0))\n ) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const radio: Validate<unknown, unknown, unknown, RadioField> = (\n value,\n { options, req: { t }, required },\n) => {\n if (value) {\n const valueMatchesOption = options.some(\n (option) => option === value || (typeof option !== 'string' && option.value === value),\n )\n return valueMatchesOption || t('validation:invalidSelection')\n }\n\n return required ? t('validation:required') : true\n}\n\nexport const point: Validate<[number | string, number | string], unknown, unknown, PointField> = (\n value = ['', ''],\n { req: { t }, required },\n) => {\n const lng = parseFloat(String(value[0]))\n const lat = parseFloat(String(value[1]))\n if (\n required &&\n ((value[0] && value[1] && typeof lng !== 'number' && typeof lat !== 'number') ||\n Number.isNaN(lng) ||\n Number.isNaN(lat) ||\n (Array.isArray(value) && value.length !== 2))\n ) {\n return t('validation:requiresTwoNumbers')\n }\n\n if ((value[1] && Number.isNaN(lng)) || (value[0] && Number.isNaN(lat))) {\n return t('validation:invalidInput')\n }\n\n return true\n}\n\nexport default {\n array,\n blocks,\n checkbox,\n code,\n date,\n email,\n json,\n number,\n password,\n point,\n radio,\n relationship,\n richText,\n select,\n text,\n textarea,\n upload,\n}\n"],"names":["getIDType","isNumber","isValidID","fieldAffectsData","text","value","hasMany","maxLength","fieldMaxLength","maxRows","minLength","minRows","req","payload","config","t","required","lengthValidationResult","validateArrayLength","defaultMaxTextLength","stringsToValidate","Array","isArray","stringValue","length","label","password","email","test","textarea","code","undefined","json","jsonError","checkbox","date","isNaN","Date","parse","toString","richText","options","editor","validate","arrayLength","count","number","max","min","numbersToValidate","numberValue","parseFloat","array","blocks","validateFilterOptions","id","data","filterOptions","relationTo","user","siblingData","falseCollections","collections","values","collection","optionFilter","valueIDs","forEach","val","push","findWhere","and","in","result","find","depth","limit","pagination","where","docs","map","doc","err","logger","error","msg","invalidRelationships","filter","requestedID","slug","indexOf","reduce","invalid","i","JSON","stringify","upload","idField","fields","field","name","type","db","defaultIDType","relationship","collectionSlug","join","select","some","input","option","radio","valueMatchesOption","point","lng","String","lat","Number"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAuBA,SAASA,SAAS,QAAQ,4BAA2B;AACrD,SAASC,QAAQ,QAAQ,2BAA0B;AACnD,SAASC,SAAS,QAAQ,4BAA2B;AACrD,SAASC,gBAAgB,QAAQ,oBAAmB;AAEpD,OAAO,MAAMC,OAAiE,CAC5EC,OACA,EACEC,OAAO,EACPC,WAAWC,cAAc,EACzBC,OAAO,EACPC,SAAS,EACTC,OAAO,EACPC,KAAK,EACHC,SAAS,EAAEC,MAAM,EAAE,EACnBC,CAAC,EACF,EACDC,QAAQ,EACT;IAED,IAAIT;IAEJ,IAAI,CAACS,UAAU;QACb,IAAI,CAACX,OAAO,OAAO;IACrB;IAEA,IAAIC,YAAY,MAAM;QACpB,MAAMW,yBAAyBC,oBAAoBb,OAAO;YAAEI;YAASE;YAASK;YAAUD;QAAE;QAC1F,IAAI,OAAOE,2BAA2B,UAAU,OAAOA;IACzD;IAEA,IAAI,OAAOH,QAAQK,yBAAyB,UAAUZ,YAAYO,OAAOK,oBAAoB;IAC7F,IAAI,OAAOX,mBAAmB,UAAUD,YAAYC;IAEpD,MAAMY,oBAA8BC,MAAMC,OAAO,CAACjB,SAASA,QAAQ;QAACA;KAAM;IAE1E,KAAK,MAAMkB,eAAeH,kBAAmB;QAC3C,MAAMI,SAASD,aAAaC,UAAU;QAEtC,IAAI,OAAOjB,cAAc,YAAYiB,SAASjB,WAAW;YACvD,OAAOQ,EAAE,6BAA6B;gBAAEU,OAAOV,EAAE;gBAAUR;gBAAWgB;YAAY;QACpF;QAEA,IAAI,OAAOb,cAAc,YAAYc,SAASd,WAAW;YACvD,OAAOK,EAAE,4BAA4B;gBAAEU,OAAOV,EAAE;gBAAUL;gBAAWa;YAAY;QACnF;IACF;IAEA,IAAIP,UAAU;QACZ,IAAI,CAAE,CAAA,OAAOX,UAAU,YAAYgB,MAAMC,OAAO,CAACjB,MAAK,KAAMA,OAAOmB,WAAW,GAAG;YAC/E,OAAOT,EAAE;QACX;IACF;IAEA,OAAO;AACT,EAAC;AAED,OAAO,MAAMW,WAA0D,CACrErB,OACA,EACEE,WAAWC,cAAc,EACzBE,SAAS,EACTE,KAAK,EACHC,SAAS,EAAEC,MAAM,EAAE,EACnBC,CAAC,EACF,EACDC,QAAQ,EACT;IAED,IAAIT;IAEJ,IAAI,OAAOO,QAAQK,yBAAyB,UAAUZ,YAAYO,OAAOK,oBAAoB;IAC7F,IAAI,OAAOX,mBAAmB,UAAUD,YAAYC;IAEpD,IAAIH,SAASE,aAAaF,MAAMmB,MAAM,GAAGjB,WAAW;QAClD,OAAOQ,EAAE,6BAA6B;YAAER;QAAU;IACpD;IAEA,IAAIF,SAASK,aAAaL,MAAMmB,MAAM,GAAGd,WAAW;QAClD,OAAOK,EAAE,4BAA4B;YAAEL;QAAU;IACnD;IAEA,IAAIM,YAAY,CAACX,OAAO;QACtB,OAAOU,EAAE;IACX;IAEA,OAAO;AACT,EAAC;AAED,OAAO,MAAMY,QAAwD,CACnEtB,OACA,EAAEO,KAAK,EAAEG,CAAC,EAAE,EAAEC,QAAQ,EAAE;IAExB,IAAI,AAACX,SAAS,CAAC,qBAAqBuB,IAAI,CAACvB,UAAY,CAACA,SAASW,UAAW;QACxE,OAAOD,EAAE;IACX;IAEA,OAAO;AACT,EAAC;AAED,OAAO,MAAMc,WAA8D,CACzExB,OACA,EACEE,WAAWC,cAAc,EACzBE,SAAS,EACTE,KAAK,EACHC,SAAS,EAAEC,MAAM,EAAE,EACnBC,CAAC,EACF,EACDC,QAAQ,EACT;IAED,IAAIT;IAEJ,IAAI,OAAOO,QAAQK,yBAAyB,UAAUZ,YAAYO,OAAOK,oBAAoB;IAC7F,IAAI,OAAOX,mBAAmB,UAAUD,YAAYC;IACpD,IAAIH,SAASE,aAAaF,MAAMmB,MAAM,GAAGjB,WAAW;QAClD,OAAOQ,EAAE,6BAA6B;YAAER;QAAU;IACpD;IAEA,IAAIF,SAASK,aAAaL,MAAMmB,MAAM,GAAGd,WAAW;QAClD,OAAOK,EAAE,4BAA4B;YAAEL;QAAU;IACnD;IAEA,IAAIM,YAAY,CAACX,OAAO;QACtB,OAAOU,EAAE;IACX;IAEA,OAAO;AACT,EAAC;AAED,OAAO,MAAMe,OAAsD,CACjEzB,OACA,EAAEO,KAAK,EAAEG,CAAC,EAAE,EAAEC,QAAQ,EAAE;IAExB,IAAIA,YAAYX,UAAU0B,WAAW;QACnC,OAAOhB,EAAE;IACX;IAEA,OAAO;AACT,EAAC;AAED,OAAO,MAAMiB,OAA+E,CAC1F3B,OACA,EAAE4B,SAAS,EAAErB,KAAK,EAAEG,CAAC,EAAE,EAAEC,QAAQ,EAAE;IAEnC,IAAIA,YAAY,CAACX,OAAO;QACtB,OAAOU,EAAE;IACX;IAEA,IAAIkB,cAAcF,WAAW;QAC3B,OAAOhB,EAAE;IACX;IAEA,OAAO;AACT,EAAC;AAED,OAAO,MAAMmB,WAA+D,CAC1E7B,OACA,EAAEO,KAAK,EAAEG,CAAC,EAAE,EAAEC,QAAQ,EAAE;IAExB,IAAI,AAACX,SAAS,OAAOA,UAAU,aAAeW,YAAY,OAAOX,UAAU,WAAY;QACrF,OAAOU,EAAE;IACX;IAEA,OAAO;AACT,EAAC;AAED,OAAO,MAAMoB,OAAoD,CAC/D9B,OACA,EAAEO,KAAK,EAAEG,CAAC,EAAE,EAAEC,QAAQ,EAAE;IAExB,IAAIX,SAAS,CAAC+B,MAAMC,KAAKC,KAAK,CAACjC,MAAMkC,QAAQ,MAAM;QACjD,uBAAuB,GACvB,OAAO;IACT;IAEA,IAAIlC,OAAO;QACT,OAAOU,EAAE,2BAA2B;YAAEV;QAAM;IAC9C;IAEA,IAAIW,UAAU;QACZ,OAAOD,EAAE;IACX;IAEA,OAAO;AACT,EAAC;AAED,OAAO,MAAMyB,WAA8D,OACzEnC,OACAoC;IAEA,MAAMC,SAA0BD,SAASC;IAEzC,OAAOA,OAAOC,QAAQ,CAACtC,OAAOoC;AAChC,EAAC;AAED,MAAMvB,sBAAsB,CAC1Bb,OACAoC;IAOA,MAAM,EAAEhC,OAAO,EAAEE,OAAO,EAAEK,QAAQ,EAAED,CAAC,EAAE,GAAG0B;IAE1C,MAAMG,cAAcvB,MAAMC,OAAO,CAACjB,SAASA,MAAMmB,MAAM,GAAGnB,SAAS;IAEnE,IAAI,CAACW,YAAY4B,gBAAgB,GAAG,OAAO;IAE3C,IAAIjC,WAAWiC,cAAcjC,SAAS;QACpC,OAAOI,EAAE,8BAA8B;YAAE8B,OAAOlC;YAASc,OAAOV,EAAE;QAAgB;IACpF;IAEA,IAAIN,WAAWmC,cAAcnC,SAAS;QACpC,OAAOM,EAAE,iCAAiC;YAAE8B,OAAOpC;YAASgB,OAAOV,EAAE;QAAgB;IACvF;IAEA,IAAIC,YAAY,CAAC4B,aAAa;QAC5B,OAAO7B,EAAE,8BAA8B;YAAE8B,OAAO;YAAGpB,OAAOV,EAAE;QAAe;IAC7E;IAEA,OAAO;AACT;AAEA,OAAO,MAAM+B,SAAqE,CAChFzC,OACA,EAAEC,OAAO,EAAEyC,GAAG,EAAEtC,OAAO,EAAEuC,GAAG,EAAErC,OAAO,EAAEC,KAAK,EAAEG,CAAC,EAAE,EAAEC,QAAQ,EAAE;IAE7D,IAAIV,YAAY,MAAM;QACpB,MAAMW,yBAAyBC,oBAAoBb,OAAO;YAAEI;YAASE;YAASK;YAAUD;QAAE;QAC1F,IAAI,OAAOE,2BAA2B,UAAU,OAAOA;IACzD;IAEA,IAAI,CAACZ,SAAS,CAACJ,SAASI,QAAQ;QAC9B,qDAAqD;QACrD,IAAIW,UAAU,OAAOD,EAAE;QACvB,IAAI,CAACC,UAAU,OAAO;IACxB;IAEA,MAAMiC,oBAA8B5B,MAAMC,OAAO,CAACjB,SAASA,QAAQ;QAACA;KAAM;IAE1E,KAAK,MAAMyC,UAAUG,kBAAmB;QACtC,IAAI,CAAChD,SAAS6C,SAAS,OAAO/B,EAAE;QAEhC,MAAMmC,cAAcC,WAAWL;QAE/B,IAAI,OAAOC,QAAQ,YAAYG,cAAcH,KAAK;YAChD,OAAOhC,EAAE,6BAA6B;gBAAEU,OAAOV,EAAE;gBAAkBgC;gBAAK1C;YAAM;QAChF;QAEA,IAAI,OAAO2C,QAAQ,YAAYE,cAAcF,KAAK;YAChD,OAAOjC,EAAE,0BAA0B;gBAAEU,OAAOV,EAAE;gBAAkBiC;gBAAK3C;YAAM;QAC7E;IACF;IAEA,OAAO;AACT,EAAC;AAED,OAAO,MAAM+C,QAA2D,CACtE/C,OACA,EAAEI,OAAO,EAAEE,OAAO,EAAEC,KAAK,EAAEG,CAAC,EAAE,EAAEC,QAAQ,EAAE;IAE1C,OAAOE,oBAAoBb,OAAO;QAAEI;QAASE;QAASK;QAAUD;IAAE;AACpE,EAAC;AAED,OAAO,MAAMsC,SAA0D,CACrEhD,OACA,EAAEI,OAAO,EAAEE,OAAO,EAAEC,KAAK,EAAEG,CAAC,EAAE,EAAEC,QAAQ,EAAE;IAE1C,OAAOE,oBAAoBb,OAAO;QAAEI;QAASE;QAASK;QAAUD;IAAE;AACpE,EAAC;AAED,MAAMuC,wBAKF,OACFjD,OACA,EAAEkD,EAAE,EAAEC,IAAI,EAAEC,aAAa,EAAEC,UAAU,EAAE9C,GAAG,EAAEA,KAAK,EAAEC,OAAO,EAAEE,CAAC,EAAE4C,IAAI,EAAE,EAAEC,WAAW,EAAE;IAEpF,IAAI,OAAOH,kBAAkB,eAAepD,OAAO;QACjD,MAAMoC,UAEF,CAAC;QAEL,MAAMoB,mBAA6B,EAAE;QACrC,MAAMC,cAAc,OAAOJ,eAAe,WAAW;YAACA;SAAW,GAAGA;QACpE,MAAMK,SAAS1C,MAAMC,OAAO,CAACjB,SAASA,QAAQ;YAACA;SAAM;QAErD,KAAK,MAAM2D,cAAcF,YAAa;YACpC,IAAI;gBACF,IAAIG,eACF,OAAOR,kBAAkB,aACrB,MAAMA,cAAc;oBAClBF;oBACAC;oBACAE,YAAYM;oBACZJ;oBACAD;gBACF,KACAF;gBAEN,IAAIQ,iBAAiB,MAAM;oBACzBA,eAAe;gBACjB;gBAEA,MAAMC,WAAgC,EAAE;gBAExCH,OAAOI,OAAO,CAAC,CAACC;oBACd,IAAI,OAAOA,QAAQ,YAAYA,KAAK/D,OAAO;wBACzC6D,SAASG,IAAI,CAACD,IAAI/D,KAAK;oBACzB;oBAEA,IAAI,OAAO+D,QAAQ,YAAY,OAAOA,QAAQ,UAAU;wBACtDF,SAASG,IAAI,CAACD;oBAChB;gBACF;gBAEA,IAAIF,SAAS1C,MAAM,GAAG,GAAG;oBACvB,MAAM8C,YAAmB;wBACvBC,KAAK;4BAAC;gCAAEhB,IAAI;oCAAEiB,IAAIN;gCAAS;4BAAE;yBAAE;oBACjC;oBAEA,IAAID,gBAAgBA,iBAAiB,MAAMK,UAAUC,GAAG,CAACF,IAAI,CAACJ;oBAE9D,IAAIA,iBAAiB,OAAO;wBAC1BJ,iBAAiBQ,IAAI,CAACL;oBACxB;oBAEA,MAAMS,SAAS,MAAM5D,QAAQ6D,IAAI,CAAC;wBAChCV;wBACAW,OAAO;wBACPC,OAAO;wBACPC,YAAY;wBACZjE;wBACAkE,OAAOR;oBACT;oBAEA7B,OAAO,CAACuB,WAAW,GAAGS,OAAOM,IAAI,CAACC,GAAG,CAAC,CAACC,MAAQA,IAAI1B,EAAE;gBACvD,OAAO;oBACLd,OAAO,CAACuB,WAAW,GAAG,EAAE;gBAC1B;YACF,EAAE,OAAOkB,KAAK;gBACZtE,IAAIC,OAAO,CAACsE,MAAM,CAACC,KAAK,CAAC;oBACvBF;oBACAG,KAAK,CAAC,+CAA+C,EAAErB,WAAW,CAAC;gBACrE;gBACAvB,OAAO,CAACuB,WAAW,GAAG,EAAE;YAC1B;QACF;QAEA,MAAMsB,uBAAuBvB,OAAOwB,MAAM,CAAC,CAACnB;YAC1C,IAAIJ;YACJ,IAAIwB;YAEJ,IAAI,OAAO9B,eAAe,UAAU;gBAClCM,aAAaN;gBAEb,IAAI,OAAOU,QAAQ,YAAY,OAAOA,QAAQ,UAAU;oBACtDoB,cAAcpB;gBAChB;YACF;YAEA,IAAI/C,MAAMC,OAAO,CAACoC,eAAe,OAAOU,QAAQ,YAAYA,KAAKV,YAAY;gBAC3EM,aAAaI,IAAIV,UAAU;gBAC3B8B,cAAcpB,IAAI/D,KAAK;YACzB;YAEA,IAAIwD,iBAAiBa,IAAI,CAAC,CAACe,OAAS/B,eAAe+B,OAAO;gBACxD,OAAO;YACT;YAEA,IAAI,CAAChD,OAAO,CAACuB,WAAW,EAAE,OAAO;YAEjC,OAAOvB,OAAO,CAACuB,WAAW,CAAC0B,OAAO,CAACF,iBAAiB,CAAC;QACvD;QAEA,IAAIF,qBAAqB9D,MAAM,GAAG,GAAG;YACnC,OAAO8D,qBAAqBK,MAAM,CAAC,CAACT,KAAKU,SAASC;gBAChD,OAAO,CAAC,EAAEX,IAAI,CAAC,EAAEY,KAAKC,SAAS,CAACH,SAAS,EACvCN,qBAAqB9D,MAAM,KAAKqE,IAAI,IAAI,MAAM,GAC/C,CAAC,CAAC;YACL,GAAG9E,EAAE;QACP;QAEA,OAAO;IACT;IAEA,OAAO;AACT;AAEA,OAAO,MAAMiF,SAA2D,CACtE3F,OACAoC;IAEA,IAAI,CAACpC,SAASoC,QAAQzB,QAAQ,EAAE;QAC9B,OAAOyB,SAAS7B,KAAKG,EAAE;IACzB;IAEA,IAAI,OAAOV,UAAU,eAAeA,UAAU,MAAM;QAClD,MAAM4F,UAAUxD,SAAS7B,KAAKC,SAASC,QAAQgD,aAC3CY,KAAK,CAACV,aAAeA,WAAWyB,IAAI,KAAKhD,QAAQiB,UAAU,GAC3DwC,QAAQxB,KAAK,CAACyB,QAAUhG,iBAAiBgG,UAAUA,MAAMC,IAAI,KAAK;QAEtE,MAAMC,OAAOrG,UAAUiG,SAASxD,SAAS7B,KAAKC,SAASyF,IAAIC;QAE3D,IAAI,CAACrG,UAAUG,OAAOgG,OAAO;YAC3B,OAAO5D,QAAQ7B,GAAG,EAAEG,EAAE;QACxB;IACF;IAEA,OAAOuC,sBAAsBjD,OAAOoC;AACtC,EAAC;AAED,OAAO,MAAM+D,eAKT,OAAOnG,OAAOoC;IAChB,MAAM,EACJhC,OAAO,EACPE,OAAO,EACP+C,UAAU,EACV9C,KAAK,EACHC,OAAO,EACPA,SAAS,EAAEC,MAAM,EAAE,EACnBC,CAAC,EACF,EACDC,QAAQ,EACT,GAAGyB;IAEJ,IAAI,AAAC,CAAA,CAACpC,SAAUgB,MAAMC,OAAO,CAACjB,UAAUA,MAAMmB,MAAM,KAAK,CAAC,KAAMR,UAAU;QACxE,OAAOD,EAAE;IACX;IAEA,IAAIM,MAAMC,OAAO,CAACjB,UAAUA,MAAMmB,MAAM,GAAG,GAAG;QAC5C,IAAIb,WAAWN,MAAMmB,MAAM,GAAGb,SAAS;YACrC,OAAOI,EAAE,0BAA0B;gBACjCU,OAAOV,EAAE;gBACTiC,KAAKrC;gBACLN,OAAOA,MAAMmB,MAAM;YACrB;QACF;QAEA,IAAIf,WAAWJ,MAAMmB,MAAM,GAAGf,SAAS;YACrC,OAAOM,EAAE,6BAA6B;gBACpCU,OAAOV,EAAE;gBACTgC,KAAKtC;gBACLJ,OAAOA,MAAMmB,MAAM;YACrB;QACF;IACF;IAEA,IAAI,OAAOnB,UAAU,eAAeA,UAAU,MAAM;QAClD,MAAM0D,SAAS1C,MAAMC,OAAO,CAACjB,SAASA,QAAQ;YAACA;SAAM;QAErD,MAAMiF,uBAAuBvB,OAAOwB,MAAM,CAAC,CAACnB;YAC1C,IAAIqC;YACJ,IAAIjB;YAEJ,IAAI,OAAO9B,eAAe,UAAU;gBAClC+C,iBAAiB/C;gBAEjB,YAAY;gBACZ,IAAIU,KAAK;oBACPoB,cAAcpB;gBAChB;YACF;YAEA,IAAI/C,MAAMC,OAAO,CAACoC,eAAe,OAAOU,QAAQ,YAAYA,KAAKV,YAAY;gBAC3E+C,iBAAiBrC,IAAIV,UAAU;gBAC/B8B,cAAcpB,IAAI/D,KAAK;YACzB;YAEA,IAAImF,gBAAgB,MAAM,OAAO;YAEjC,MAAMS,UAAUnF,QAAQgD,aACpBY,KAAK,CAACV,aAAeA,WAAWyB,IAAI,KAAKgB,iBACzCP,QAAQxB,KAAK,CAACyB,QAAUhG,iBAAiBgG,UAAUA,MAAMC,IAAI,KAAK;YAEtE,MAAMC,OAAOrG,UAAUiG,SAASpF,SAASyF,IAAIC;YAE7C,OAAO,CAACrG,UAAUsF,aAAaa;QACjC;QAEA,IAAIf,qBAAqB9D,MAAM,GAAG,GAAG;YACnC,OAAO,CAAC,iEAAiE,EAAE8D,qBACxEN,GAAG,CAAC,CAACE,KAAKU;gBACT,OAAO,CAAC,EAAEV,IAAI,CAAC,EAAEY,KAAKC,SAAS,CAACH,SAAS,CAAC;YAC5C,GACCc,IAAI,CAAC,MAAM,CAAC;QACjB;IACF;IAEA,OAAOpD,sBAAsBjD,OAAOoC;AACtC,EAAC;AAED,OAAO,MAAMkE,SAA2D,CACtEtG,OACA,EAAEC,OAAO,EAAEmC,OAAO,EAAE7B,KAAK,EAAEG,CAAC,EAAE,EAAEC,QAAQ,EAAE;IAE1C,IACEK,MAAMC,OAAO,CAACjB,UACdA,MAAMuG,IAAI,CACR,CAACC,QACC,CAACpE,QAAQmE,IAAI,CACX,CAACE,SAAWA,WAAWD,SAAU,OAAOC,WAAW,YAAYA,QAAQzG,UAAUwG,SAGvF;QACA,OAAO9F,EAAE;IACX;IAEA,IACE,OAAOV,UAAU,YACjB,CAACoC,QAAQmE,IAAI,CACX,CAACE,SAAWA,WAAWzG,SAAU,OAAOyG,WAAW,YAAYA,OAAOzG,KAAK,KAAKA,QAElF;QACA,OAAOU,EAAE;IACX;IAEA,IACEC,YACC,CAAA,OAAOX,UAAU,eAChBA,UAAU,QACTC,WAAWe,MAAMC,OAAO,CAACjB,UAAU,AAACA,OAAcmB,WAAW,CAAC,GACjE;QACA,OAAOT,EAAE;IACX;IAEA,OAAO;AACT,EAAC;AAED,OAAO,MAAMgG,QAAyD,CACpE1G,OACA,EAAEoC,OAAO,EAAE7B,KAAK,EAAEG,CAAC,EAAE,EAAEC,QAAQ,EAAE;IAEjC,IAAIX,OAAO;QACT,MAAM2G,qBAAqBvE,QAAQmE,IAAI,CACrC,CAACE,SAAWA,WAAWzG,SAAU,OAAOyG,WAAW,YAAYA,OAAOzG,KAAK,KAAKA;QAElF,OAAO2G,sBAAsBjG,EAAE;IACjC;IAEA,OAAOC,WAAWD,EAAE,yBAAyB;AAC/C,EAAC;AAED,OAAO,MAAMkG,QAAoF,CAC/F5G,QAAQ;IAAC;IAAI;CAAG,EAChB,EAAEO,KAAK,EAAEG,CAAC,EAAE,EAAEC,QAAQ,EAAE;IAExB,MAAMkG,MAAM/D,WAAWgE,OAAO9G,KAAK,CAAC,EAAE;IACtC,MAAM+G,MAAMjE,WAAWgE,OAAO9G,KAAK,CAAC,EAAE;IACtC,IACEW,YACC,CAAA,AAACX,KAAK,CAAC,EAAE,IAAIA,KAAK,CAAC,EAAE,IAAI,OAAO6G,QAAQ,YAAY,OAAOE,QAAQ,YAClEC,OAAOjF,KAAK,CAAC8E,QACbG,OAAOjF,KAAK,CAACgF,QACZ/F,MAAMC,OAAO,CAACjB,UAAUA,MAAMmB,MAAM,KAAK,CAAC,GAC7C;QACA,OAAOT,EAAE;IACX;IAEA,IAAI,AAACV,KAAK,CAAC,EAAE,IAAIgH,OAAOjF,KAAK,CAAC8E,QAAU7G,KAAK,CAAC,EAAE,IAAIgH,OAAOjF,KAAK,CAACgF,MAAO;QACtE,OAAOrG,EAAE;IACX;IAEA,OAAO;AACT,EAAC;AAED,eAAe;IACbqC;IACAC;IACAnB;IACAJ;IACAK;IACAR;IACAK;IACAc;IACApB;IACAuF;IACAF;IACAP;IACAhE;IACAmE;IACAvG;IACAyB;IACAmE;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/fields/validations.ts"],"sourcesContent":["import type { RichTextAdapter } from '../admin/types.js'\nimport type { Where } from '../types/index.js'\nimport type {\n ArrayField,\n BlockField,\n CheckboxField,\n CodeField,\n DateField,\n EmailField,\n JSONField,\n NumberField,\n PointField,\n RadioField,\n RelationshipField,\n RelationshipValue,\n RichTextField,\n SelectField,\n TextField,\n TextareaField,\n UploadField,\n Validate,\n} from './config/types.js'\n\nimport { isNumber } from '../utilities/isNumber.js'\nimport { isValidID } from '../utilities/isValidID.js'\n\nexport const text: Validate<string | string[], unknown, unknown, TextField> = (\n value,\n {\n hasMany,\n maxLength: fieldMaxLength,\n maxRows,\n minLength,\n minRows,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (!required) {\n if (!value) return true\n }\n\n if (hasMany === true) {\n const lengthValidationResult = validateArrayLength(value, { maxRows, minRows, required, t })\n if (typeof lengthValidationResult === 'string') return lengthValidationResult\n }\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n\n const stringsToValidate: string[] = Array.isArray(value) ? value : [value]\n\n for (const stringValue of stringsToValidate) {\n const length = stringValue?.length || 0\n\n if (typeof maxLength === 'number' && length > maxLength) {\n return t('validation:shorterThanMax', { label: t('value'), maxLength, stringValue })\n }\n\n if (typeof minLength === 'number' && length < minLength) {\n return t('validation:longerThanMin', { label: t('value'), minLength, stringValue })\n }\n }\n\n if (required) {\n if (!(typeof value === 'string' || Array.isArray(value)) || value?.length === 0) {\n return t('validation:required')\n }\n }\n\n return true\n}\n\nexport const password: Validate<string, unknown, unknown, TextField> = (\n value,\n {\n maxLength: fieldMaxLength,\n minLength,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n\n if (value && maxLength && value.length > maxLength) {\n return t('validation:shorterThanMax', { maxLength })\n }\n\n if (value && minLength && value.length < minLength) {\n return t('validation:longerThanMin', { minLength })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const email: Validate<string, unknown, unknown, EmailField> = (\n value,\n { req: { t }, required },\n) => {\n if ((value && !/\\S[^\\s@]*@\\S+\\.\\S+/.test(value)) || (!value && required)) {\n return t('validation:emailAddress')\n }\n\n return true\n}\n\nexport const textarea: Validate<string, unknown, unknown, TextareaField> = (\n value,\n {\n maxLength: fieldMaxLength,\n minLength,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n if (value && maxLength && value.length > maxLength) {\n return t('validation:shorterThanMax', { maxLength })\n }\n\n if (value && minLength && value.length < minLength) {\n return t('validation:longerThanMin', { minLength })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const code: Validate<string, unknown, unknown, CodeField> = (\n value,\n { req: { t }, required },\n) => {\n if (required && value === undefined) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const json: Validate<string, unknown, unknown, JSONField & { jsonError?: string }> = (\n value,\n { jsonError, req: { t }, required },\n) => {\n if (required && !value) {\n return t('validation:required')\n }\n\n if (jsonError !== undefined) {\n return t('validation:invalidInput')\n }\n\n return true\n}\n\nexport const checkbox: Validate<boolean, unknown, unknown, CheckboxField> = (\n value,\n { req: { t }, required },\n) => {\n if ((value && typeof value !== 'boolean') || (required && typeof value !== 'boolean')) {\n return t('validation:trueOrFalse')\n }\n\n return true\n}\n\nexport const date: Validate<Date, unknown, unknown, DateField> = (\n value,\n { req: { t }, required },\n) => {\n if (value && !isNaN(Date.parse(value.toString()))) {\n /* eslint-disable-line */\n return true\n }\n\n if (value) {\n return t('validation:notValidDate', { value })\n }\n\n if (required) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const richText: Validate<object, unknown, unknown, RichTextField> = async (\n value,\n options,\n) => {\n const editor: RichTextAdapter = options?.editor\n\n return editor.validate(value, options)\n}\n\nconst validateArrayLength = (\n value,\n options: {\n maxRows?: number\n minRows?: number\n required?: boolean\n t: (key: string, options?: { [key: string]: number | string }) => string\n },\n) => {\n const { maxRows, minRows, required, t } = options\n\n const arrayLength = Array.isArray(value) ? value.length : value || 0\n\n if (!required && arrayLength === 0) return true\n\n if (minRows && arrayLength < minRows) {\n return t('validation:requiresAtLeast', { count: minRows, label: t('general:rows') })\n }\n\n if (maxRows && arrayLength > maxRows) {\n return t('validation:requiresNoMoreThan', { count: maxRows, label: t('general:rows') })\n }\n\n if (required && !arrayLength) {\n return t('validation:requiresAtLeast', { count: 1, label: t('general:row') })\n }\n\n return true\n}\n\nexport const number: Validate<number | number[], unknown, unknown, NumberField> = (\n value,\n { hasMany, max, maxRows, min, minRows, req: { t }, required },\n) => {\n if (hasMany === true) {\n const lengthValidationResult = validateArrayLength(value, { maxRows, minRows, required, t })\n if (typeof lengthValidationResult === 'string') return lengthValidationResult\n }\n\n if (!value && !isNumber(value)) {\n // if no value is present, validate based on required\n if (required) return t('validation:required')\n if (!required) return true\n }\n\n const numbersToValidate: number[] = Array.isArray(value) ? value : [value]\n\n for (const number of numbersToValidate) {\n if (!isNumber(number)) return t('validation:enterNumber')\n\n const numberValue = parseFloat(number as unknown as string)\n\n if (typeof max === 'number' && numberValue > max) {\n return t('validation:greaterThanMax', { label: t('general:value'), max, value })\n }\n\n if (typeof min === 'number' && numberValue < min) {\n return t('validation:lessThanMin', { label: t('general:value'), min, value })\n }\n }\n\n return true\n}\n\nexport const array: Validate<unknown[], unknown, unknown, ArrayField> = (\n value,\n { maxRows, minRows, req: { t }, required },\n) => {\n return validateArrayLength(value, { maxRows, minRows, required, t })\n}\n\nexport const blocks: Validate<unknown, unknown, unknown, BlockField> = (\n value,\n { maxRows, minRows, req: { t }, required },\n) => {\n return validateArrayLength(value, { maxRows, minRows, required, t })\n}\n\nconst validateFilterOptions: Validate<\n unknown,\n unknown,\n unknown,\n RelationshipField | UploadField\n> = async (\n value,\n { id, data, filterOptions, relationTo, req, req: { payload, t, user }, siblingData },\n) => {\n if (typeof filterOptions !== 'undefined' && value) {\n const options: {\n [collection: string]: (number | string)[]\n } = {}\n\n const falseCollections: string[] = []\n const collections = typeof relationTo === 'string' ? [relationTo] : relationTo\n const values = Array.isArray(value) ? value : [value]\n\n for (const collection of collections) {\n try {\n let optionFilter =\n typeof filterOptions === 'function'\n ? await filterOptions({\n id,\n data,\n relationTo: collection,\n siblingData,\n user,\n })\n : filterOptions\n\n if (optionFilter === true) {\n optionFilter = null\n }\n\n const valueIDs: (number | string)[] = []\n\n values.forEach((val) => {\n if (typeof val === 'object' && val?.value) {\n valueIDs.push(val.value)\n }\n\n if (typeof val === 'string' || typeof val === 'number') {\n valueIDs.push(val)\n }\n })\n\n if (valueIDs.length > 0) {\n const findWhere: Where = {\n and: [{ id: { in: valueIDs } }],\n }\n\n if (optionFilter && optionFilter !== true) findWhere.and.push(optionFilter)\n\n if (optionFilter === false) {\n falseCollections.push(collection)\n }\n\n const result = await payload.find({\n collection,\n depth: 0,\n limit: 0,\n pagination: false,\n req,\n where: findWhere,\n })\n\n options[collection] = result.docs.map((doc) => doc.id)\n } else {\n options[collection] = []\n }\n } catch (err) {\n req.payload.logger.error({\n err,\n msg: `Error validating filter options for collection ${collection}`,\n })\n options[collection] = []\n }\n }\n\n const invalidRelationships = values.filter((val) => {\n let collection: string\n let requestedID: number | string\n\n if (typeof relationTo === 'string') {\n collection = relationTo\n\n if (typeof val === 'string' || typeof val === 'number') {\n requestedID = val\n }\n }\n\n if (Array.isArray(relationTo) && typeof val === 'object' && val?.relationTo) {\n collection = val.relationTo\n requestedID = val.value\n }\n\n if (falseCollections.find((slug) => relationTo === slug)) {\n return true\n }\n\n if (!options[collection]) return true\n\n return options[collection].indexOf(requestedID) === -1\n })\n\n if (invalidRelationships.length > 0) {\n return invalidRelationships.reduce((err, invalid, i) => {\n return `${err} ${JSON.stringify(invalid)}${\n invalidRelationships.length === i + 1 ? ',' : ''\n } `\n }, t('validation:invalidSelections')) as string\n }\n\n return true\n }\n\n return true\n}\n\nexport const upload: Validate<unknown, unknown, unknown, UploadField> = (\n value: string,\n options,\n) => {\n if (!value && options.required) {\n return options?.req?.t('validation:required')\n }\n\n if (typeof value !== 'undefined' && value !== null) {\n const idType =\n options?.req?.payload?.collections[options.relationTo]?.customIDType ||\n options?.req?.payload?.db?.defaultIDType\n\n if (!isValidID(value, idType)) {\n return options.req?.t('validation:validUploadID')\n }\n }\n\n return validateFilterOptions(value, options)\n}\n\nexport const relationship: Validate<\n RelationshipValue,\n unknown,\n unknown,\n RelationshipField\n> = async (value, options) => {\n const {\n maxRows,\n minRows,\n relationTo,\n req: { payload, t },\n required,\n } = options\n\n if ((!value || (Array.isArray(value) && value.length === 0)) && required) {\n return t('validation:required')\n }\n\n if (Array.isArray(value) && value.length > 0) {\n if (minRows && value.length < minRows) {\n return t('validation:lessThanMin', {\n label: t('general:rows'),\n min: minRows,\n value: value.length,\n })\n }\n\n if (maxRows && value.length > maxRows) {\n return t('validation:greaterThanMax', {\n label: t('general:rows'),\n max: maxRows,\n value: value.length,\n })\n }\n }\n\n if (typeof value !== 'undefined' && value !== null) {\n const values = Array.isArray(value) ? value : [value]\n\n const invalidRelationships = values.filter((val) => {\n let collectionSlug: string\n let requestedID\n\n if (typeof relationTo === 'string') {\n collectionSlug = relationTo\n\n // custom id\n if (val) {\n requestedID = val\n }\n }\n\n if (Array.isArray(relationTo) && typeof val === 'object' && val?.relationTo) {\n collectionSlug = val.relationTo\n requestedID = val.value\n }\n\n if (requestedID === null) return false\n\n const idType =\n payload.collections[collectionSlug]?.customIDType || payload?.db?.defaultIDType || 'text'\n\n return !isValidID(requestedID, idType)\n })\n\n if (invalidRelationships.length > 0) {\n return `This relationship field has the following invalid relationships: ${invalidRelationships\n .map((err, invalid) => {\n return `${err} ${JSON.stringify(invalid)}`\n })\n .join(', ')}`\n }\n }\n\n return validateFilterOptions(value, options)\n}\n\nexport const select: Validate<unknown, unknown, unknown, SelectField> = (\n value,\n { hasMany, options, req: { t }, required },\n) => {\n if (\n Array.isArray(value) &&\n value.some(\n (input) =>\n !options.some(\n (option) => option === input || (typeof option !== 'string' && option?.value === input),\n ),\n )\n ) {\n return t('validation:invalidSelection')\n }\n\n if (\n typeof value === 'string' &&\n !options.some(\n (option) => option === value || (typeof option !== 'string' && option.value === value),\n )\n ) {\n return t('validation:invalidSelection')\n }\n\n if (\n required &&\n (typeof value === 'undefined' ||\n value === null ||\n (hasMany && Array.isArray(value) && (value as [])?.length === 0))\n ) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const radio: Validate<unknown, unknown, unknown, RadioField> = (\n value,\n { options, req: { t }, required },\n) => {\n if (value) {\n const valueMatchesOption = options.some(\n (option) => option === value || (typeof option !== 'string' && option.value === value),\n )\n return valueMatchesOption || t('validation:invalidSelection')\n }\n\n return required ? t('validation:required') : true\n}\n\nexport const point: Validate<[number | string, number | string], unknown, unknown, PointField> = (\n value = ['', ''],\n { req: { t }, required },\n) => {\n const lng = parseFloat(String(value[0]))\n const lat = parseFloat(String(value[1]))\n if (\n required &&\n ((value[0] && value[1] && typeof lng !== 'number' && typeof lat !== 'number') ||\n Number.isNaN(lng) ||\n Number.isNaN(lat) ||\n (Array.isArray(value) && value.length !== 2))\n ) {\n return t('validation:requiresTwoNumbers')\n }\n\n if ((value[1] && Number.isNaN(lng)) || (value[0] && Number.isNaN(lat))) {\n return t('validation:invalidInput')\n }\n\n return true\n}\n\nexport default {\n array,\n blocks,\n checkbox,\n code,\n date,\n email,\n json,\n number,\n password,\n point,\n radio,\n relationship,\n richText,\n select,\n text,\n textarea,\n upload,\n}\n"],"names":["isNumber","isValidID","text","value","hasMany","maxLength","fieldMaxLength","maxRows","minLength","minRows","req","payload","config","t","required","lengthValidationResult","validateArrayLength","defaultMaxTextLength","stringsToValidate","Array","isArray","stringValue","length","label","password","email","test","textarea","code","undefined","json","jsonError","checkbox","date","isNaN","Date","parse","toString","richText","options","editor","validate","arrayLength","count","number","max","min","numbersToValidate","numberValue","parseFloat","array","blocks","validateFilterOptions","id","data","filterOptions","relationTo","user","siblingData","falseCollections","collections","values","collection","optionFilter","valueIDs","forEach","val","push","findWhere","and","in","result","find","depth","limit","pagination","where","docs","map","doc","err","logger","error","msg","invalidRelationships","filter","requestedID","slug","indexOf","reduce","invalid","i","JSON","stringify","upload","idType","customIDType","db","defaultIDType","relationship","collectionSlug","join","select","some","input","option","radio","valueMatchesOption","point","lng","String","lat","Number"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -8,7 +8,12 @@ let options = {
8
8
  t,
9
9
  context: {},
10
10
  payload: {
11
- config: {}
11
+ config: {
12
+ db: {
13
+ defaultIDType: 'text',
14
+ init: ()=>null
15
+ }
16
+ }
12
17
  }
13
18
  }
14
19
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/fields/validations.spec.ts"],"sourcesContent":["import type { ValidateOptions } from './config/types.js'\n\nimport { number, password, point, relationship, select, text, textarea } from './validations.js'\n\nconst t = jest.fn((string) => string)\n\nlet options: ValidateOptions<any, any> = {\n data: undefined,\n operation: 'create',\n siblingData: undefined,\n req: {\n t,\n context: {},\n payload: {\n config: {},\n },\n },\n}\n\ndescribe('Field Validations', () => {\n describe('text', () => {\n it('should validate', () => {\n const val = 'test'\n const result = text(val, options)\n expect(result).toBe(true)\n })\n it('should show required message', () => {\n const val = undefined\n const result = text(val, { ...options, required: true })\n expect(result).toBe('validation:required')\n })\n it('should handle undefined', () => {\n const val = undefined\n const result = text(val, options)\n expect(result).toBe(true)\n })\n it('should validate maxLength', () => {\n const val = 'toolong'\n const result = text(val, { ...options, maxLength: 5 })\n expect(result).toBe('validation:shorterThanMax')\n })\n it('should validate minLength', () => {\n const val = 'short'\n const result = text(val, { ...options, minLength: 10 })\n expect(result).toBe('validation:longerThanMin')\n })\n it('should validate maxLength with no value', () => {\n const val = undefined\n const result = text(val, { ...options, maxLength: 5 })\n expect(result).toBe(true)\n })\n it('should validate minLength with no value', () => {\n const val = undefined\n const result = text(val, { ...options, minLength: 10 })\n expect(result).toBe(true)\n })\n it('should validate an array of texts', async () => {\n const val = ['test']\n const result = text(val, { ...options, hasMany: true })\n expect(result).toBe(true)\n })\n it('should handle required array of texts', async () => {\n const val = ['test']\n const result = text(val, { ...options, hasMany: true, required: true })\n expect(result).toBe(true)\n })\n })\n\n describe('textarea', () => {\n options = { ...options, field: { name: 'test', type: 'textarea' } }\n it('should validate', () => {\n const val = 'test'\n const result = textarea(val, options)\n expect(result).toBe(true)\n })\n it('should show required message', () => {\n const val = undefined\n const result = textarea(val, { ...options, required: true })\n expect(result).toBe('validation:required')\n })\n\n it('should handle undefined', () => {\n const val = undefined\n const result = textarea(val, options)\n expect(result).toBe(true)\n })\n it('should validate maxLength', () => {\n const val = 'toolong'\n const result = textarea(val, { ...options, maxLength: 5 })\n expect(result).toBe('validation:shorterThanMax')\n })\n\n it('should validate minLength', () => {\n const val = 'short'\n const result = textarea(val, { ...options, minLength: 10 })\n expect(result).toBe('validation:longerThanMin')\n })\n it('should validate maxLength with no value', () => {\n const val = undefined\n const result = textarea(val, { ...options, maxLength: 5 })\n expect(result).toBe(true)\n })\n it('should validate minLength with no value', () => {\n const val = undefined\n const result = textarea(val, { ...options, minLength: 10 })\n expect(result).toBe(true)\n })\n })\n\n describe('password', () => {\n const passwordOptions = {\n ...options,\n name: 'test',\n type: 'password',\n }\n it('should validate', () => {\n const val = 'test'\n const result = password(val, passwordOptions)\n expect(result).toBe(true)\n })\n it('should show required message', () => {\n const val = undefined\n const result = password(val, { ...passwordOptions, required: true })\n expect(result).toBe('validation:required')\n })\n it('should handle undefined', () => {\n const val = undefined\n const result = password(val, passwordOptions)\n expect(result).toBe(true)\n })\n it('should validate maxLength', () => {\n const val = 'toolong'\n const result = password(val, { ...passwordOptions, maxLength: 5 })\n expect(result).toBe('validation:shorterThanMax')\n })\n it('should validate minLength', () => {\n const val = 'short'\n const result = password(val, { ...passwordOptions, minLength: 10 })\n expect(result).toBe('validation:longerThanMin')\n })\n it('should validate maxLength with no value', () => {\n const val = undefined\n const result = password(val, { ...passwordOptions, maxLength: 5 })\n expect(result).toBe(true)\n })\n it('should validate minLength with no value', () => {\n const val = undefined\n const result = password(val, { ...passwordOptions, minLength: 10 })\n expect(result).toBe(true)\n })\n })\n\n describe('point', () => {\n const pointOptions = {\n ...options,\n name: 'point',\n type: 'point',\n }\n it('should validate numbers', () => {\n const val = ['0.1', '0.2']\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should validate strings that could be numbers', () => {\n const val = ['0.1', '0.2']\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should show required message when undefined', () => {\n const val = undefined\n const result = point(val, { ...pointOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should show required message when array', () => {\n const val = []\n const result = point(val, { ...pointOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should show required message when array of undefined', () => {\n const val = [undefined, undefined]\n const result = point(val, { ...pointOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should handle undefined not required', () => {\n const val = undefined\n const result = password(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should handle empty array not required', () => {\n const val = []\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should handle array of undefined not required', () => {\n const val = [undefined, undefined]\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should prevent text input', () => {\n const val = ['bad', 'input']\n const result = point(val, pointOptions)\n expect(result).not.toBe(true)\n })\n it('should prevent missing value', () => {\n const val = [0.1]\n const result = point(val, pointOptions)\n expect(result).not.toBe(true)\n })\n })\n\n describe('relationship', () => {\n const relationCollection = {\n fields: [\n {\n name: 'id',\n type: 'text',\n },\n ],\n slug: 'relation',\n }\n\n const relationshipOptions = {\n ...options,\n req: {\n ...options.req,\n payload: {\n ...options.req.payload,\n config: {\n collections: [relationCollection],\n },\n collections: {\n relation: {\n config: relationCollection,\n },\n },\n },\n },\n relationTo: 'relation',\n }\n it('should handle required', async () => {\n const val = undefined\n const result = await relationship(val, { ...relationshipOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should handle required with hasMany', async () => {\n const val = []\n const result = await relationship(val, {\n ...relationshipOptions,\n hasMany: true,\n required: true,\n })\n expect(result).not.toBe(true)\n })\n it('should enforce hasMany min', async () => {\n const minOptions = {\n ...relationshipOptions,\n hasMany: true,\n minRows: 2,\n }\n\n const val = ['a']\n\n const result = await relationship(val, minOptions)\n expect(result).not.toBe(true)\n\n const allowed = await relationship(['a', 'b'], minOptions)\n expect(allowed).toStrictEqual(true)\n })\n it('should enforce hasMany max', async () => {\n const maxOptions = {\n ...relationshipOptions,\n hasMany: true,\n maxRows: 2,\n }\n let val = ['a', 'b', 'c']\n\n const result = await relationship(val, maxOptions)\n expect(result).not.toBe(true)\n\n val = ['a']\n const allowed = await relationship(val, maxOptions)\n expect(allowed).toStrictEqual(true)\n })\n })\n\n describe('select', () => {\n const selectOptions = {\n ...options,\n options: ['one', 'two', 'three'],\n type: 'select',\n }\n const optionsRequired = {\n ...selectOptions,\n options: [\n {\n label: 'One',\n value: 'one',\n },\n {\n label: 'two',\n value: 'two',\n },\n {\n label: 'three',\n value: 'three',\n },\n ],\n required: true,\n }\n const optionsWithEmptyString = {\n ...selectOptions,\n options: [\n {\n label: 'None',\n value: '',\n },\n {\n label: 'Option',\n value: 'option',\n },\n ],\n }\n it('should allow valid input', () => {\n const val = 'one'\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input', () => {\n const val = 'bad'\n const result = select(val, selectOptions)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow null input', () => {\n const val = null\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should allow undefined input', () => {\n let val\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should prevent empty string input', () => {\n const val = ''\n const result = select(val, selectOptions)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent undefined input with required', () => {\n let val\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent empty string input with required', () => {\n const result = select('', optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent undefined input with required and hasMany', () => {\n let val\n options.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent empty array input with required and hasMany', () => {\n optionsRequired.hasMany = true\n const result = select([], optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent empty string array input with required and hasMany', () => {\n options.hasMany = true\n const result = select([''], optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent null input with required and hasMany', () => {\n const val = null\n options.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow valid input with option objects', () => {\n const val = 'one'\n options.hasMany = false\n const result = select(val, optionsRequired)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input with option objects', () => {\n const val = 'bad'\n options.hasMany = false\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow empty string input with option object', () => {\n const val = ''\n const result = select(val, optionsWithEmptyString)\n expect(result).toStrictEqual(true)\n })\n it('should allow empty string input with option object and required', () => {\n const val = ''\n optionsWithEmptyString.required = true\n const result = select(val, optionsWithEmptyString)\n expect(result).toStrictEqual(true)\n })\n it('should allow valid input with hasMany', () => {\n const val = ['one', 'two']\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input with hasMany', () => {\n const val = ['one', 'bad']\n const result = select(val, selectOptions)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow valid input with hasMany option objects', () => {\n const val = ['one', 'three']\n optionsRequired.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input with hasMany option objects', () => {\n const val = ['three', 'bad']\n optionsRequired.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n })\n describe('number', () => {\n const numberOptions = {\n ...options,\n name: 'test',\n type: 'number',\n }\n it('should validate', () => {\n const val = 1\n const result = number(val, numberOptions)\n expect(result).toBe(true)\n })\n it('should validate 0', () => {\n const val = 0\n const result = number(val, { ...numberOptions, required: true })\n expect(result).toBe(true)\n })\n it('should validate 2', () => {\n const val = 1.5\n const result = number(val, numberOptions)\n expect(result).toBe(true)\n })\n it('should show invalid number message', () => {\n const val = 'test'\n const result = number(val, { ...numberOptions })\n expect(result).toBe('validation:enterNumber')\n })\n it('should handle empty value', () => {\n const val = ''\n const result = number(val, { ...numberOptions })\n expect(result).toBe(true)\n })\n it('should handle required value', () => {\n const val = ''\n const result = number(val, { ...numberOptions, required: true })\n expect(result).toBe('validation:required')\n })\n it('should validate minValue', () => {\n const val = 2.4\n const result = number(val, { ...numberOptions, min: 2.5 })\n expect(result).toBe('validation:lessThanMin')\n })\n it('should validate maxValue', () => {\n const val = 1.25\n const result = number(val, { ...numberOptions, max: 1 })\n expect(result).toBe('validation:greaterThanMax')\n })\n it('should validate an array of numbers', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true })\n expect(result).toBe(true)\n })\n it('should validate an array of numbers using min', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true, min: 3 })\n expect(result).toBe('validation:lessThanMin')\n })\n it('should validate an array of numbers using max', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true, max: 1 })\n expect(result).toBe('validation:greaterThanMax')\n })\n it('should validate an array of numbers using minRows', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true, minRows: 4 })\n expect(result).toBe('validation:requiresAtLeast')\n })\n it('should validate an array of numbers using maxRows', async () => {\n const val = [1.25, 2.5, 3.5]\n const result = number(val, { ...numberOptions, hasMany: true, maxRows: 2 })\n expect(result).toBe('validation:requiresNoMoreThan')\n })\n })\n})\n"],"names":["number","password","point","relationship","select","text","textarea","t","jest","fn","string","options","data","undefined","operation","siblingData","req","context","payload","config","describe","it","val","result","expect","toBe","required","maxLength","minLength","hasMany","field","name","type","passwordOptions","pointOptions","not","relationCollection","fields","slug","relationshipOptions","collections","relation","relationTo","minOptions","minRows","allowed","toStrictEqual","maxOptions","maxRows","selectOptions","optionsRequired","label","value","optionsWithEmptyString","numberOptions","min","max"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/fields/validations.spec.ts"],"sourcesContent":["import type { ValidateOptions } from './config/types.js'\n\nimport { number, password, point, relationship, select, text, textarea } from './validations.js'\n\nconst t = jest.fn((string) => string)\n\nlet options: ValidateOptions<any, any> = {\n data: undefined,\n operation: 'create',\n siblingData: undefined,\n req: {\n t,\n context: {},\n payload: {\n config: {\n db: {\n defaultIDType: 'text',\n init: () => null,\n },\n },\n },\n },\n}\n\ndescribe('Field Validations', () => {\n describe('text', () => {\n it('should validate', () => {\n const val = 'test'\n const result = text(val, options)\n expect(result).toBe(true)\n })\n it('should show required message', () => {\n const val = undefined\n const result = text(val, { ...options, required: true })\n expect(result).toBe('validation:required')\n })\n it('should handle undefined', () => {\n const val = undefined\n const result = text(val, options)\n expect(result).toBe(true)\n })\n it('should validate maxLength', () => {\n const val = 'toolong'\n const result = text(val, { ...options, maxLength: 5 })\n expect(result).toBe('validation:shorterThanMax')\n })\n it('should validate minLength', () => {\n const val = 'short'\n const result = text(val, { ...options, minLength: 10 })\n expect(result).toBe('validation:longerThanMin')\n })\n it('should validate maxLength with no value', () => {\n const val = undefined\n const result = text(val, { ...options, maxLength: 5 })\n expect(result).toBe(true)\n })\n it('should validate minLength with no value', () => {\n const val = undefined\n const result = text(val, { ...options, minLength: 10 })\n expect(result).toBe(true)\n })\n it('should validate an array of texts', async () => {\n const val = ['test']\n const result = text(val, { ...options, hasMany: true })\n expect(result).toBe(true)\n })\n it('should handle required array of texts', async () => {\n const val = ['test']\n const result = text(val, { ...options, hasMany: true, required: true })\n expect(result).toBe(true)\n })\n })\n\n describe('textarea', () => {\n options = { ...options, field: { name: 'test', type: 'textarea' } }\n it('should validate', () => {\n const val = 'test'\n const result = textarea(val, options)\n expect(result).toBe(true)\n })\n it('should show required message', () => {\n const val = undefined\n const result = textarea(val, { ...options, required: true })\n expect(result).toBe('validation:required')\n })\n\n it('should handle undefined', () => {\n const val = undefined\n const result = textarea(val, options)\n expect(result).toBe(true)\n })\n it('should validate maxLength', () => {\n const val = 'toolong'\n const result = textarea(val, { ...options, maxLength: 5 })\n expect(result).toBe('validation:shorterThanMax')\n })\n\n it('should validate minLength', () => {\n const val = 'short'\n const result = textarea(val, { ...options, minLength: 10 })\n expect(result).toBe('validation:longerThanMin')\n })\n it('should validate maxLength with no value', () => {\n const val = undefined\n const result = textarea(val, { ...options, maxLength: 5 })\n expect(result).toBe(true)\n })\n it('should validate minLength with no value', () => {\n const val = undefined\n const result = textarea(val, { ...options, minLength: 10 })\n expect(result).toBe(true)\n })\n })\n\n describe('password', () => {\n const passwordOptions = {\n ...options,\n name: 'test',\n type: 'password',\n }\n it('should validate', () => {\n const val = 'test'\n const result = password(val, passwordOptions)\n expect(result).toBe(true)\n })\n it('should show required message', () => {\n const val = undefined\n const result = password(val, { ...passwordOptions, required: true })\n expect(result).toBe('validation:required')\n })\n it('should handle undefined', () => {\n const val = undefined\n const result = password(val, passwordOptions)\n expect(result).toBe(true)\n })\n it('should validate maxLength', () => {\n const val = 'toolong'\n const result = password(val, { ...passwordOptions, maxLength: 5 })\n expect(result).toBe('validation:shorterThanMax')\n })\n it('should validate minLength', () => {\n const val = 'short'\n const result = password(val, { ...passwordOptions, minLength: 10 })\n expect(result).toBe('validation:longerThanMin')\n })\n it('should validate maxLength with no value', () => {\n const val = undefined\n const result = password(val, { ...passwordOptions, maxLength: 5 })\n expect(result).toBe(true)\n })\n it('should validate minLength with no value', () => {\n const val = undefined\n const result = password(val, { ...passwordOptions, minLength: 10 })\n expect(result).toBe(true)\n })\n })\n\n describe('point', () => {\n const pointOptions = {\n ...options,\n name: 'point',\n type: 'point',\n }\n it('should validate numbers', () => {\n const val = ['0.1', '0.2']\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should validate strings that could be numbers', () => {\n const val = ['0.1', '0.2']\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should show required message when undefined', () => {\n const val = undefined\n const result = point(val, { ...pointOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should show required message when array', () => {\n const val = []\n const result = point(val, { ...pointOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should show required message when array of undefined', () => {\n const val = [undefined, undefined]\n const result = point(val, { ...pointOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should handle undefined not required', () => {\n const val = undefined\n const result = password(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should handle empty array not required', () => {\n const val = []\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should handle array of undefined not required', () => {\n const val = [undefined, undefined]\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should prevent text input', () => {\n const val = ['bad', 'input']\n const result = point(val, pointOptions)\n expect(result).not.toBe(true)\n })\n it('should prevent missing value', () => {\n const val = [0.1]\n const result = point(val, pointOptions)\n expect(result).not.toBe(true)\n })\n })\n\n describe('relationship', () => {\n const relationCollection = {\n fields: [\n {\n name: 'id',\n type: 'text',\n },\n ],\n slug: 'relation',\n }\n\n const relationshipOptions = {\n ...options,\n req: {\n ...options.req,\n payload: {\n ...options.req.payload,\n config: {\n collections: [relationCollection],\n },\n collections: {\n relation: {\n config: relationCollection,\n },\n },\n },\n },\n relationTo: 'relation',\n }\n it('should handle required', async () => {\n const val = undefined\n const result = await relationship(val, { ...relationshipOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should handle required with hasMany', async () => {\n const val = []\n const result = await relationship(val, {\n ...relationshipOptions,\n hasMany: true,\n required: true,\n })\n expect(result).not.toBe(true)\n })\n it('should enforce hasMany min', async () => {\n const minOptions = {\n ...relationshipOptions,\n hasMany: true,\n minRows: 2,\n }\n\n const val = ['a']\n\n const result = await relationship(val, minOptions)\n expect(result).not.toBe(true)\n\n const allowed = await relationship(['a', 'b'], minOptions)\n expect(allowed).toStrictEqual(true)\n })\n it('should enforce hasMany max', async () => {\n const maxOptions = {\n ...relationshipOptions,\n hasMany: true,\n maxRows: 2,\n }\n let val = ['a', 'b', 'c']\n\n const result = await relationship(val, maxOptions)\n expect(result).not.toBe(true)\n\n val = ['a']\n const allowed = await relationship(val, maxOptions)\n expect(allowed).toStrictEqual(true)\n })\n })\n\n describe('select', () => {\n const selectOptions = {\n ...options,\n options: ['one', 'two', 'three'],\n type: 'select',\n }\n const optionsRequired = {\n ...selectOptions,\n options: [\n {\n label: 'One',\n value: 'one',\n },\n {\n label: 'two',\n value: 'two',\n },\n {\n label: 'three',\n value: 'three',\n },\n ],\n required: true,\n }\n const optionsWithEmptyString = {\n ...selectOptions,\n options: [\n {\n label: 'None',\n value: '',\n },\n {\n label: 'Option',\n value: 'option',\n },\n ],\n }\n it('should allow valid input', () => {\n const val = 'one'\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input', () => {\n const val = 'bad'\n const result = select(val, selectOptions)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow null input', () => {\n const val = null\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should allow undefined input', () => {\n let val\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should prevent empty string input', () => {\n const val = ''\n const result = select(val, selectOptions)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent undefined input with required', () => {\n let val\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent empty string input with required', () => {\n const result = select('', optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent undefined input with required and hasMany', () => {\n let val\n options.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent empty array input with required and hasMany', () => {\n optionsRequired.hasMany = true\n const result = select([], optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent empty string array input with required and hasMany', () => {\n options.hasMany = true\n const result = select([''], optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent null input with required and hasMany', () => {\n const val = null\n options.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow valid input with option objects', () => {\n const val = 'one'\n options.hasMany = false\n const result = select(val, optionsRequired)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input with option objects', () => {\n const val = 'bad'\n options.hasMany = false\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow empty string input with option object', () => {\n const val = ''\n const result = select(val, optionsWithEmptyString)\n expect(result).toStrictEqual(true)\n })\n it('should allow empty string input with option object and required', () => {\n const val = ''\n optionsWithEmptyString.required = true\n const result = select(val, optionsWithEmptyString)\n expect(result).toStrictEqual(true)\n })\n it('should allow valid input with hasMany', () => {\n const val = ['one', 'two']\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input with hasMany', () => {\n const val = ['one', 'bad']\n const result = select(val, selectOptions)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow valid input with hasMany option objects', () => {\n const val = ['one', 'three']\n optionsRequired.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input with hasMany option objects', () => {\n const val = ['three', 'bad']\n optionsRequired.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n })\n describe('number', () => {\n const numberOptions = {\n ...options,\n name: 'test',\n type: 'number',\n }\n it('should validate', () => {\n const val = 1\n const result = number(val, numberOptions)\n expect(result).toBe(true)\n })\n it('should validate 0', () => {\n const val = 0\n const result = number(val, { ...numberOptions, required: true })\n expect(result).toBe(true)\n })\n it('should validate 2', () => {\n const val = 1.5\n const result = number(val, numberOptions)\n expect(result).toBe(true)\n })\n it('should show invalid number message', () => {\n const val = 'test'\n const result = number(val, { ...numberOptions })\n expect(result).toBe('validation:enterNumber')\n })\n it('should handle empty value', () => {\n const val = ''\n const result = number(val, { ...numberOptions })\n expect(result).toBe(true)\n })\n it('should handle required value', () => {\n const val = ''\n const result = number(val, { ...numberOptions, required: true })\n expect(result).toBe('validation:required')\n })\n it('should validate minValue', () => {\n const val = 2.4\n const result = number(val, { ...numberOptions, min: 2.5 })\n expect(result).toBe('validation:lessThanMin')\n })\n it('should validate maxValue', () => {\n const val = 1.25\n const result = number(val, { ...numberOptions, max: 1 })\n expect(result).toBe('validation:greaterThanMax')\n })\n it('should validate an array of numbers', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true })\n expect(result).toBe(true)\n })\n it('should validate an array of numbers using min', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true, min: 3 })\n expect(result).toBe('validation:lessThanMin')\n })\n it('should validate an array of numbers using max', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true, max: 1 })\n expect(result).toBe('validation:greaterThanMax')\n })\n it('should validate an array of numbers using minRows', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true, minRows: 4 })\n expect(result).toBe('validation:requiresAtLeast')\n })\n it('should validate an array of numbers using maxRows', async () => {\n const val = [1.25, 2.5, 3.5]\n const result = number(val, { ...numberOptions, hasMany: true, maxRows: 2 })\n expect(result).toBe('validation:requiresNoMoreThan')\n })\n })\n})\n"],"names":["number","password","point","relationship","select","text","textarea","t","jest","fn","string","options","data","undefined","operation","siblingData","req","context","payload","config","db","defaultIDType","init","describe","it","val","result","expect","toBe","required","maxLength","minLength","hasMany","field","name","type","passwordOptions","pointOptions","not","relationCollection","fields","slug","relationshipOptions","collections","relation","relationTo","minOptions","minRows","allowed","toStrictEqual","maxOptions","maxRows","selectOptions","optionsRequired","label","value","optionsWithEmptyString","numberOptions","min","max"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import type { GraphQLNonNull, GraphQLObjectType } from 'graphql';
2
2
  import type { DeepRequired } from 'ts-essentials';
3
3
  import type { CustomPreviewButton, CustomPublishButton, CustomSaveButton, CustomSaveDraftButton } from '../../admin/types.js';
4
- import type { User } from '../../auth/types.js';
5
4
  import type { Access, EditConfig, Endpoint, EntityDescription, GeneratePreviewURL, LivePreviewConfig } from '../../config/types.js';
6
5
  import type { DBIdentifierName } from '../../database/types.js';
7
6
  import type { Field } from '../../fields/config/types.js';
@@ -98,7 +97,7 @@ export type GlobalAdminOptions = {
98
97
  * Exclude the global from the admin nav and routes
99
98
  */
100
99
  hidden?: ((args: {
101
- user: User;
100
+ user: PayloadRequest['user'];
102
101
  }) => boolean) | boolean;
103
102
  /**
104
103
  * Hide the API URL within the Edit view
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/globals/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,KAAK,EACV,MAAM,EACN,UAAU,EACV,QAAQ,EACR,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAE9F,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE;IACtC,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,iDAAiD;IACjD,MAAM,EAAE,qBAAqB,CAAA;IAC7B,WAAW,CAAC,EAAE,GAAG,CAAA;IACjB,GAAG,EAAE,cAAc,CAAA;CACpB,KAAK,GAAG,CAAA;AAET,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE;IACpC,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,GAAG,CAAA;IACT,iDAAiD;IACjD,MAAM,EAAE,qBAAqB,CAAA;IAC7B,WAAW,CAAC,EAAE,GAAG,CAAA;IACjB,GAAG,EAAE,cAAc,CAAA;CACpB,KAAK,GAAG,CAAA;AAET,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE;IACnC,OAAO,EAAE,cAAc,CAAA;IACvB,GAAG,EAAE,GAAG,CAAA;IACR,iDAAiD;IACjD,MAAM,EAAE,qBAAqB,CAAA;IAC7B,WAAW,EAAE,GAAG,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;CACpB,KAAK,GAAG,CAAA;AAET,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE;IAClC,OAAO,EAAE,cAAc,CAAA;IACvB,GAAG,EAAE,GAAG,CAAA;IACR,iDAAiD;IACjD,MAAM,EAAE,qBAAqB,CAAA;IAC7B,GAAG,EAAE,cAAc,CAAA;CACpB,KAAK,GAAG,CAAA;AAET,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE;IACjC,OAAO,EAAE,cAAc,CAAA;IACvB,GAAG,EAAE,GAAG,CAAA;IACR,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,iDAAiD;IACjD,MAAM,EAAE,qBAAqB,CAAA;IAC7B,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,GAAG,EAAE,cAAc,CAAA;CACpB,KAAK,GAAG,CAAA;AAET,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;OAEG;IACH,UAAU,CAAC,EAAE;QACX,QAAQ,CAAC,EAAE;YACT;;eAEG;YACH,aAAa,CAAC,EAAE,mBAAmB,CAAA;YACnC;;;eAGG;YACH,aAAa,CAAC,EAAE,mBAAmB,CAAA;YACnC;;;eAGG;YACH,UAAU,CAAC,EAAE,gBAAgB,CAAA;YAC7B;;;;eAIG;YACH,eAAe,CAAC,EAAE,qBAAqB,CAAA;SACxC,CAAA;QACD,KAAK,CAAC,EAAE;YACN;;;eAGG;YACH,IAAI,CAAC,EAAE,UAAU,CAAA;SAClB,CAAA;KACF,CAAA;IACD;;OAEG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAA;IAC/B;;SAEK;IACL,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IACvC;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,OAAO,CAAA;IACtD;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAA;IAC/B;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,KAAK,CAAC,EAAE,kBAAkB,CAAA;IAC1B,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5B;;OAEG;IACH,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,SAAS,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,GAAG,KAAK,CAAA;IAC5C,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,OAAO,CAAC,EACJ;QACE,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,GACD,KAAK,CAAA;IACT,KAAK,CAAC,EAAE;QACN,WAAW,CAAC,EAAE,eAAe,EAAE,CAAA;QAC/B,SAAS,CAAC,EAAE,aAAa,EAAE,CAAA;QAC3B,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAA;QACjC,UAAU,CAAC,EAAE,cAAc,EAAE,CAAA;QAC7B,cAAc,CAAC,EAAE,kBAAkB,EAAE,CAAA;KACtC,CAAA;IACD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,UAAU,CAAC,EAAE;QACX;;WAEG;QACH,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,QAAQ,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAA;CAC5C,CAAA;AAED,MAAM,WAAW,qBACf,SAAQ,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC7E,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAA;IAC7B,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,QAAQ,EAAE,uBAAuB,CAAA;CAClC;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,qBAAqB,EAAE,CAAA;IAC/B,OAAO,CAAC,EACJ;QACE,CAAC,IAAI,EAAE,MAAM,GAAG;YACd,iBAAiB,EAAE,cAAc,CAAC,GAAG,CAAC,CAAA;YACtC,IAAI,EAAE,iBAAiB,CAAA;YACvB,WAAW,CAAC,EAAE,iBAAiB,CAAA;SAChC,CAAA;KACF,GACD,KAAK,CAAA;CACV,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/globals/config/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/globals/config/types.ts"],"sourcesContent":["import type { GraphQLNonNull, GraphQLObjectType } from 'graphql'\nimport type { DeepRequired } from 'ts-essentials'\n\nimport type {\n CustomPreviewButton,\n CustomPublishButton,\n CustomSaveButton,\n CustomSaveDraftButton,\n} from '../../admin/types.js'\nimport type { User } from '../../auth/types.js'\nimport type {\n Access,\n EditConfig,\n Endpoint,\n EntityDescription,\n GeneratePreviewURL,\n LivePreviewConfig,\n} from '../../config/types.js'\nimport type { DBIdentifierName } from '../../database/types.js'\nimport type { Field } from '../../fields/config/types.js'\nimport type { PayloadRequest, RequestContext } from '../../types/index.js'\nimport type { Where } from '../../types/index.js'\nimport type { IncomingGlobalVersions, SanitizedGlobalVersions } from '../../versions/types.js'\n\nexport type TypeWithID = {\n id: number | string\n}\n\nexport type BeforeValidateHook = (args: {\n context: RequestContext\n data?: any\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n originalDoc?: any\n req: PayloadRequest\n}) => any\n\nexport type BeforeChangeHook = (args: {\n context: RequestContext\n data: any\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n originalDoc?: any\n req: PayloadRequest\n}) => any\n\nexport type AfterChangeHook = (args: {\n context: RequestContext\n doc: any\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n previousDoc: any\n req: PayloadRequest\n}) => any\n\nexport type BeforeReadHook = (args: {\n context: RequestContext\n doc: any\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n req: PayloadRequest\n}) => any\n\nexport type AfterReadHook = (args: {\n context: RequestContext\n doc: any\n findMany?: boolean\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n query?: Where\n req: PayloadRequest\n}) => any\n\nexport type GlobalAdminOptions = {\n /**\n * Custom admin components\n */\n components?: {\n elements?: {\n /**\n * Replaces the \"Preview\" button\n */\n PreviewButton?: CustomPreviewButton\n /**\n * Replaces the \"Publish\" button\n * + drafts must be enabled\n */\n PublishButton?: CustomPublishButton\n /**\n * Replaces the \"Save\" button\n * + drafts must be disabled\n */\n SaveButton?: CustomSaveButton\n /**\n * Replaces the \"Save Draft\" button\n * + drafts must be enabled\n * + autosave must be disabled\n */\n SaveDraftButton?: CustomSaveDraftButton\n }\n views?: {\n /**\n * Set to a React component to replace the entire \"Edit\" view, including all nested routes.\n * Set to an object to replace or modify individual nested routes, or to add new ones.\n */\n Edit?: EditConfig\n }\n }\n /**\n * Custom description for collection\n */\n description?: EntityDescription\n /**\n * Place globals into a navigational group\n * */\n group?: Record<string, string> | string\n /**\n * Exclude the global from the admin nav and routes\n */\n hidden?: ((args: { user: User }) => boolean) | boolean\n /**\n * Hide the API URL within the Edit view\n */\n hideAPIURL?: boolean\n /**\n * Live preview options\n */\n livePreview?: LivePreviewConfig\n /**\n * Function to generate custom preview URL\n */\n preview?: GeneratePreviewURL\n}\n\nexport type GlobalConfig = {\n access?: {\n read?: Access\n readDrafts?: Access\n readVersions?: Access\n update?: Access\n }\n admin?: GlobalAdminOptions\n /** Extension point to add your custom data. */\n custom?: Record<string, any>\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n endpoints?: Omit<Endpoint, 'root'>[] | false\n fields: Field[]\n graphQL?:\n | {\n name?: string\n }\n | false\n hooks?: {\n afterChange?: AfterChangeHook[]\n afterRead?: AfterReadHook[]\n beforeChange?: BeforeChangeHook[]\n beforeRead?: BeforeReadHook[]\n beforeValidate?: BeforeValidateHook[]\n }\n label?: Record<string, string> | string\n slug: string\n /**\n * Options used in typescript generation\n */\n typescript?: {\n /**\n * Typescript generation name given to the interface type\n */\n interface?: string\n }\n versions?: IncomingGlobalVersions | boolean\n}\n\nexport interface SanitizedGlobalConfig\n extends Omit<DeepRequired<GlobalConfig>, 'endpoints' | 'fields' | 'versions'> {\n endpoints: Endpoint[] | false\n fields: Field[]\n versions: SanitizedGlobalVersions\n}\n\nexport type Globals = {\n config: SanitizedGlobalConfig[]\n graphQL?:\n | {\n [slug: string]: {\n mutationInputType: GraphQLNonNull<any>\n type: GraphQLObjectType\n versionType?: GraphQLObjectType\n }\n }\n | false\n}\n"],"names":[],"rangeMappings":"","mappings":"AAuLA,WAWC"}
1
+ {"version":3,"sources":["../../../src/globals/config/types.ts"],"sourcesContent":["import type { GraphQLNonNull, GraphQLObjectType } from 'graphql'\nimport type { DeepRequired } from 'ts-essentials'\n\nimport type {\n CustomPreviewButton,\n CustomPublishButton,\n CustomSaveButton,\n CustomSaveDraftButton,\n} from '../../admin/types.js'\nimport type { User } from '../../auth/types.js'\nimport type {\n Access,\n EditConfig,\n Endpoint,\n EntityDescription,\n GeneratePreviewURL,\n LivePreviewConfig,\n} from '../../config/types.js'\nimport type { DBIdentifierName } from '../../database/types.js'\nimport type { Field } from '../../fields/config/types.js'\nimport type { PayloadRequest, RequestContext } from '../../types/index.js'\nimport type { Where } from '../../types/index.js'\nimport type { IncomingGlobalVersions, SanitizedGlobalVersions } from '../../versions/types.js'\n\nexport type TypeWithID = {\n id: number | string\n}\n\nexport type BeforeValidateHook = (args: {\n context: RequestContext\n data?: any\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n originalDoc?: any\n req: PayloadRequest\n}) => any\n\nexport type BeforeChangeHook = (args: {\n context: RequestContext\n data: any\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n originalDoc?: any\n req: PayloadRequest\n}) => any\n\nexport type AfterChangeHook = (args: {\n context: RequestContext\n doc: any\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n previousDoc: any\n req: PayloadRequest\n}) => any\n\nexport type BeforeReadHook = (args: {\n context: RequestContext\n doc: any\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n req: PayloadRequest\n}) => any\n\nexport type AfterReadHook = (args: {\n context: RequestContext\n doc: any\n findMany?: boolean\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n query?: Where\n req: PayloadRequest\n}) => any\n\nexport type GlobalAdminOptions = {\n /**\n * Custom admin components\n */\n components?: {\n elements?: {\n /**\n * Replaces the \"Preview\" button\n */\n PreviewButton?: CustomPreviewButton\n /**\n * Replaces the \"Publish\" button\n * + drafts must be enabled\n */\n PublishButton?: CustomPublishButton\n /**\n * Replaces the \"Save\" button\n * + drafts must be disabled\n */\n SaveButton?: CustomSaveButton\n /**\n * Replaces the \"Save Draft\" button\n * + drafts must be enabled\n * + autosave must be disabled\n */\n SaveDraftButton?: CustomSaveDraftButton\n }\n views?: {\n /**\n * Set to a React component to replace the entire \"Edit\" view, including all nested routes.\n * Set to an object to replace or modify individual nested routes, or to add new ones.\n */\n Edit?: EditConfig\n }\n }\n /**\n * Custom description for collection\n */\n description?: EntityDescription\n /**\n * Place globals into a navigational group\n * */\n group?: Record<string, string> | string\n /**\n * Exclude the global from the admin nav and routes\n */\n hidden?: ((args: { user: PayloadRequest['user'] }) => boolean) | boolean\n /**\n * Hide the API URL within the Edit view\n */\n hideAPIURL?: boolean\n /**\n * Live preview options\n */\n livePreview?: LivePreviewConfig\n /**\n * Function to generate custom preview URL\n */\n preview?: GeneratePreviewURL\n}\n\nexport type GlobalConfig = {\n access?: {\n read?: Access\n readDrafts?: Access\n readVersions?: Access\n update?: Access\n }\n admin?: GlobalAdminOptions\n /** Extension point to add your custom data. */\n custom?: Record<string, any>\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n endpoints?: Omit<Endpoint, 'root'>[] | false\n fields: Field[]\n graphQL?:\n | {\n name?: string\n }\n | false\n hooks?: {\n afterChange?: AfterChangeHook[]\n afterRead?: AfterReadHook[]\n beforeChange?: BeforeChangeHook[]\n beforeRead?: BeforeReadHook[]\n beforeValidate?: BeforeValidateHook[]\n }\n label?: Record<string, string> | string\n slug: string\n /**\n * Options used in typescript generation\n */\n typescript?: {\n /**\n * Typescript generation name given to the interface type\n */\n interface?: string\n }\n versions?: IncomingGlobalVersions | boolean\n}\n\nexport interface SanitizedGlobalConfig\n extends Omit<DeepRequired<GlobalConfig>, 'endpoints' | 'fields' | 'versions'> {\n endpoints: Endpoint[] | false\n fields: Field[]\n versions: SanitizedGlobalVersions\n}\n\nexport type Globals = {\n config: SanitizedGlobalConfig[]\n graphQL?:\n | {\n [slug: string]: {\n mutationInputType: GraphQLNonNull<any>\n type: GraphQLObjectType\n versionType?: GraphQLObjectType\n }\n }\n | false\n}\n"],"names":[],"rangeMappings":"","mappings":"AAuLA,WAWC"}
package/dist/index.d.ts CHANGED
@@ -173,6 +173,9 @@ type GeneratedTypes = {
173
173
  globals: {
174
174
  [slug: number | string | symbol]: GlobalTypeWithID & Record<string, unknown>;
175
175
  };
176
+ user: TypeWithID & Record<string, unknown> & {
177
+ collection: string;
178
+ };
176
179
  };
177
180
  type Payload = BasePayload<GeneratedTypes>;
178
181
  interface RequestContext {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -7,7 +7,9 @@ import { validateSchema } from './config/validate.js';
7
7
  import buildEmail from './email/build.js';
8
8
  import { defaults as emailDefaults } from './email/defaults.js';
9
9
  import sendEmail from './email/sendEmail.js';
10
+ import { fieldAffectsData } from './exports/types.js';
10
11
  import localGlobalOperations from './globals/operations/local/index.js';
12
+ import flattenFields from './utilities/flattenTopLevelFields.js';
11
13
  import Logger from './utilities/logger.js';
12
14
  import { serverInit as serverInitTelemetry } from './utilities/telemetry/events/serverInit.js';
13
15
  /**
@@ -171,8 +173,12 @@ import { serverInit as serverInitTelemetry } from './utilities/telemetry/events/
171
173
  config: this.config.globals
172
174
  };
173
175
  this.config.collections.forEach((collection)=>{
176
+ const customID = flattenFields(collection.fields).find((field)=>fieldAffectsData(field) && field.name === 'id');
177
+ let customIDType;
178
+ if (customID?.type === 'number' || customID?.type === 'text') customIDType = customID.type;
174
179
  this.collections[collection.slug] = {
175
- config: collection
180
+ config: collection,
181
+ customIDType
176
182
  };
177
183
  });
178
184
  this.db = this.config.db.init({