payload 3.0.0-beta.11 → 3.0.0-beta.13
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.
- package/dist/auth/cookies.d.ts +16 -4
- package/dist/auth/cookies.d.ts.map +1 -1
- package/dist/auth/cookies.js +45 -14
- package/dist/auth/cookies.js.map +1 -1
- package/dist/auth/operations/forgotPassword.js +3 -3
- package/dist/auth/operations/forgotPassword.js.map +1 -1
- package/dist/auth/operations/login.d.ts.map +1 -1
- package/dist/auth/operations/login.js +17 -1
- package/dist/auth/operations/login.js.map +1 -1
- package/dist/auth/sendVerificationEmail.d.ts +5 -6
- package/dist/auth/sendVerificationEmail.d.ts.map +1 -1
- package/dist/auth/sendVerificationEmail.js +4 -5
- package/dist/auth/sendVerificationEmail.js.map +1 -1
- package/dist/collections/config/client.d.ts +4 -1
- package/dist/collections/config/client.d.ts.map +1 -1
- package/dist/collections/config/client.js +2 -1
- package/dist/collections/config/client.js.map +1 -1
- package/dist/collections/config/defaults.d.ts +1 -0
- package/dist/collections/config/defaults.d.ts.map +1 -1
- package/dist/collections/config/defaults.js +1 -0
- package/dist/collections/config/defaults.js.map +1 -1
- package/dist/collections/config/schema.d.ts.map +1 -1
- package/dist/collections/config/schema.js +1 -0
- package/dist/collections/config/schema.js.map +1 -1
- package/dist/collections/config/types.d.ts +5 -2
- package/dist/collections/config/types.d.ts.map +1 -1
- package/dist/collections/config/types.js.map +1 -1
- package/dist/collections/operations/count.d.ts +13 -0
- package/dist/collections/operations/count.d.ts.map +1 -0
- package/dist/collections/operations/count.js +75 -0
- package/dist/collections/operations/count.js.map +1 -0
- package/dist/collections/operations/create.d.ts.map +1 -1
- package/dist/collections/operations/create.js +3 -4
- package/dist/collections/operations/create.js.map +1 -1
- package/dist/collections/operations/local/count.d.ts +20 -0
- package/dist/collections/operations/local/count.d.ts.map +1 -0
- package/dist/collections/operations/local/count.js +19 -0
- package/dist/collections/operations/local/count.js.map +1 -0
- package/dist/collections/operations/local/index.d.ts +2 -0
- package/dist/collections/operations/local/index.d.ts.map +1 -1
- package/dist/collections/operations/local/index.js +2 -0
- package/dist/collections/operations/local/index.js.map +1 -1
- package/dist/collections/operations/update.d.ts.map +1 -1
- package/dist/collections/operations/update.js +2 -2
- package/dist/collections/operations/update.js.map +1 -1
- package/dist/collections/operations/updateByID.js +1 -1
- package/dist/collections/operations/updateByID.js.map +1 -1
- package/dist/collections/operations/utils.d.ts +6 -0
- package/dist/collections/operations/utils.d.ts.map +1 -1
- package/dist/collections/operations/utils.js.map +1 -1
- package/dist/config/client.d.ts +2 -1
- package/dist/config/client.d.ts.map +1 -1
- package/dist/config/client.js +2 -1
- package/dist/config/client.js.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +1 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +1 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/config/types.d.ts +7 -36
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +0 -12
- package/dist/config/types.js.map +1 -1
- package/dist/database/types.d.ts +10 -0
- package/dist/database/types.d.ts.map +1 -1
- package/dist/database/types.js.map +1 -1
- package/dist/email/consoleEmailAdapter.d.ts +3 -0
- package/dist/email/consoleEmailAdapter.d.ts.map +1 -0
- package/dist/email/consoleEmailAdapter.js +16 -0
- package/dist/email/consoleEmailAdapter.js.map +1 -0
- package/dist/email/defaults.d.ts +2 -2
- package/dist/email/defaults.d.ts.map +1 -1
- package/dist/email/defaults.js +3 -3
- package/dist/email/defaults.js.map +1 -1
- package/dist/email/getStringifiedToAddress.d.ts +3 -0
- package/dist/email/getStringifiedToAddress.d.ts.map +1 -0
- package/dist/email/getStringifiedToAddress.js +20 -0
- package/dist/email/getStringifiedToAddress.js.map +1 -0
- package/dist/email/sendEmail.d.ts +3 -2
- package/dist/email/sendEmail.d.ts.map +1 -1
- package/dist/email/sendEmail.js +8 -4
- package/dist/email/sendEmail.js.map +1 -1
- package/dist/email/types.d.ts +25 -18
- package/dist/email/types.d.ts.map +1 -1
- package/dist/email/types.js +5 -1
- package/dist/email/types.js.map +1 -1
- package/dist/exports/database.d.ts +1 -1
- package/dist/exports/database.d.ts.map +1 -1
- package/dist/exports/database.js.map +1 -1
- package/dist/exports/node.d.ts +3 -0
- package/dist/exports/node.d.ts.map +1 -1
- package/dist/exports/node.js +3 -1
- package/dist/exports/node.js.map +1 -1
- package/dist/exports/operations.d.ts +1 -0
- package/dist/exports/operations.d.ts.map +1 -1
- package/dist/exports/operations.js +1 -0
- package/dist/exports/operations.js.map +1 -1
- package/dist/exports/types.d.ts +1 -0
- package/dist/exports/types.d.ts.map +1 -1
- package/dist/exports/types.js.map +1 -1
- package/dist/exports/utilities.d.ts +3 -0
- package/dist/exports/utilities.d.ts.map +1 -1
- package/dist/exports/utilities.js +3 -1
- package/dist/exports/utilities.js.map +1 -1
- package/dist/fields/config/client.d.ts +26 -1
- package/dist/fields/config/client.d.ts.map +1 -1
- package/dist/fields/config/client.js +2 -1
- package/dist/fields/config/client.js.map +1 -1
- package/dist/fields/config/schema.d.ts.map +1 -1
- package/dist/fields/config/schema.js +7 -1
- package/dist/fields/config/schema.js.map +1 -1
- package/dist/fields/config/types.d.ts +12 -3
- package/dist/fields/config/types.d.ts.map +1 -1
- package/dist/fields/config/types.js.map +1 -1
- package/dist/fields/validations.d.ts +2 -0
- package/dist/fields/validations.d.ts.map +1 -1
- package/dist/fields/validations.js +44 -1
- package/dist/fields/validations.js.map +1 -1
- package/dist/globals/config/client.d.ts +1 -1
- package/dist/globals/config/client.d.ts.map +1 -1
- package/dist/globals/config/client.js +2 -1
- package/dist/globals/config/client.js.map +1 -1
- package/dist/globals/config/schema.d.ts.map +1 -1
- package/dist/globals/config/schema.js +1 -0
- package/dist/globals/config/schema.js.map +1 -1
- package/dist/globals/config/types.d.ts +3 -1
- package/dist/globals/config/types.d.ts.map +1 -1
- package/dist/globals/config/types.js.map +1 -1
- package/dist/index.d.ts +13 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -13
- package/dist/index.js.map +1 -1
- package/dist/uploads/getExternalFile.d.ts +1 -1
- package/dist/uploads/getExternalFile.d.ts.map +1 -1
- package/dist/uploads/getExternalFile.js +1 -1
- package/dist/uploads/getExternalFile.js.map +1 -1
- package/dist/utilities/importWithoutClientFiles.d.ts.map +1 -1
- package/dist/utilities/importWithoutClientFiles.js +8 -5
- package/dist/utilities/importWithoutClientFiles.js.map +1 -1
- package/dist/utilities/telemetry/index.d.ts +3 -0
- package/dist/utilities/telemetry/index.d.ts.map +1 -1
- package/dist/utilities/telemetry/index.js +32 -6
- package/dist/utilities/telemetry/index.js.map +1 -1
- package/package.json +5 -5
- package/dist/email/build.d.ts +0 -5
- package/dist/email/build.d.ts.map +0 -1
- package/dist/email/build.js +0 -63
- package/dist/email/build.js.map +0 -1
- package/dist/email/mockHandler.d.ts +0 -5
- package/dist/email/mockHandler.d.ts.map +0 -1
- package/dist/email/mockHandler.js +0 -24
- package/dist/email/mockHandler.js.map +0 -1
- package/src/index.ts +0 -499
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import Ajv from 'ajv';
|
|
1
2
|
import { isNumber } from '../utilities/isNumber.js';
|
|
2
3
|
import { isValidID } from '../utilities/isValidID.js';
|
|
3
4
|
export const text = (value, { hasMany, maxLength: fieldMaxLength, maxRows, minLength, minRows, req: { payload: { config }, t }, required })=>{
|
|
@@ -93,13 +94,55 @@ export const code = (value, { req: { t }, required })=>{
|
|
|
93
94
|
}
|
|
94
95
|
return true;
|
|
95
96
|
};
|
|
96
|
-
export const json = (value, { jsonError, req: { t }, required })=>{
|
|
97
|
+
export const json = async (value, { jsonError, jsonSchema, req: { t }, required })=>{
|
|
98
|
+
const isNotEmpty = (value)=>{
|
|
99
|
+
if (value === undefined || value === null) {
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
if (Array.isArray(value) && value.length === 0) {
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
if (typeof value === 'object' && Object.keys(value).length === 0) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
return true;
|
|
109
|
+
};
|
|
110
|
+
const fetchSchema = ({ schema, uri })=>{
|
|
111
|
+
if (uri && schema) return schema;
|
|
112
|
+
// @ts-expect-error
|
|
113
|
+
return fetch(uri).then((response)=>{
|
|
114
|
+
if (!response.ok) {
|
|
115
|
+
throw new Error('Network response was not ok');
|
|
116
|
+
}
|
|
117
|
+
return response.json();
|
|
118
|
+
}).then((json)=>{
|
|
119
|
+
const jsonSchemaSanitizations = {
|
|
120
|
+
id: undefined,
|
|
121
|
+
$id: json.id,
|
|
122
|
+
$schema: 'http://json-schema.org/draft-07/schema#'
|
|
123
|
+
};
|
|
124
|
+
return Object.assign(json, jsonSchemaSanitizations);
|
|
125
|
+
});
|
|
126
|
+
};
|
|
97
127
|
if (required && !value) {
|
|
98
128
|
return t('validation:required');
|
|
99
129
|
}
|
|
100
130
|
if (jsonError !== undefined) {
|
|
101
131
|
return t('validation:invalidInput');
|
|
102
132
|
}
|
|
133
|
+
if (jsonSchema && isNotEmpty(value)) {
|
|
134
|
+
try {
|
|
135
|
+
jsonSchema.schema = await fetchSchema(jsonSchema);
|
|
136
|
+
const { schema } = jsonSchema;
|
|
137
|
+
// @ts-expect-error
|
|
138
|
+
const ajv = new Ajv();
|
|
139
|
+
if (!ajv.validate(schema, value)) {
|
|
140
|
+
return t(ajv.errorsText());
|
|
141
|
+
}
|
|
142
|
+
} catch (error) {
|
|
143
|
+
return t(error.message);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
103
146
|
return true;
|
|
104
147
|
};
|
|
105
148
|
export const checkbox = (value, { req: { t }, required })=>{
|
|
@@ -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 { 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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"}
|
|
1
|
+
{"version":3,"sources":["../../src/fields/validations.ts"],"sourcesContent":["import Ajv from 'ajv'\n\nimport 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 }> = async (\n value,\n { jsonError, jsonSchema, req: { t }, required },\n) => {\n const isNotEmpty = (value) => {\n if (value === undefined || value === null) {\n return false\n }\n\n if (Array.isArray(value) && value.length === 0) {\n return false\n }\n\n if (typeof value === 'object' && Object.keys(value).length === 0) {\n return false\n }\n\n return true\n }\n\n const fetchSchema = ({ schema, uri }: Record<string, unknown>) => {\n if (uri && schema) return schema\n // @ts-expect-error\n return fetch(uri)\n .then((response) => {\n if (!response.ok) {\n throw new Error('Network response was not ok')\n }\n return response.json()\n })\n .then((json) => {\n const jsonSchemaSanitizations = {\n id: undefined,\n $id: json.id,\n $schema: 'http://json-schema.org/draft-07/schema#',\n }\n\n return Object.assign(json, jsonSchemaSanitizations)\n })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n if (jsonError !== undefined) {\n return t('validation:invalidInput')\n }\n\n if (jsonSchema && isNotEmpty(value)) {\n try {\n jsonSchema.schema = await fetchSchema(jsonSchema)\n const { schema } = jsonSchema\n // @ts-expect-error\n const ajv = new Ajv()\n\n if (!ajv.validate(schema, value)) {\n return t(ajv.errorsText())\n }\n } catch (error) {\n return t(error.message)\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":["Ajv","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","jsonSchema","isNotEmpty","Object","keys","fetchSchema","schema","uri","fetch","then","response","ok","Error","jsonSchemaSanitizations","id","$id","$schema","assign","ajv","validate","errorsText","error","message","checkbox","date","isNaN","Date","parse","toString","richText","options","editor","arrayLength","count","number","max","min","numbersToValidate","numberValue","parseFloat","array","blocks","validateFilterOptions","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","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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"}
|
|
@@ -2,7 +2,7 @@ import type { TFunction } from '@payloadcms/translations';
|
|
|
2
2
|
import type { LivePreviewConfig, SanitizedConfig, ServerOnlyLivePreviewProperties } from '../../config/types.js';
|
|
3
3
|
import type { ClientFieldConfig } from '../../fields/config/client.js';
|
|
4
4
|
import type { SanitizedGlobalConfig } from './types.js';
|
|
5
|
-
export type ServerOnlyGlobalProperties = keyof Pick<SanitizedGlobalConfig, 'access' | 'admin' | 'endpoints' | 'fields' | 'hooks'>;
|
|
5
|
+
export type ServerOnlyGlobalProperties = keyof Pick<SanitizedGlobalConfig, 'access' | 'admin' | 'custom' | 'endpoints' | 'fields' | 'hooks'>;
|
|
6
6
|
export type ServerOnlyGlobalAdminProperties = keyof Pick<SanitizedGlobalConfig['admin'], 'components' | 'hidden' | 'preview'>;
|
|
7
7
|
export type ClientGlobalConfig = Omit<SanitizedGlobalConfig, 'admin' | 'fields' | ServerOnlyGlobalProperties> & {
|
|
8
8
|
admin: Omit<SanitizedGlobalConfig['admin'], ServerOnlyGlobalAdminProperties & 'fields' & 'livePreview'> & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/globals/config/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,+BAA+B,EAChC,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAIvD,MAAM,MAAM,0BAA0B,GAAG,MAAM,IAAI,CACjD,qBAAqB,EACrB,QAAQ,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/globals/config/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,+BAA+B,EAChC,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAIvD,MAAM,MAAM,0BAA0B,GAAG,MAAM,IAAI,CACjD,qBAAqB,EACrB,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,CACjE,CAAA;AACD,MAAM,MAAM,+BAA+B,GAAG,MAAM,IAAI,CACtD,qBAAqB,CAAC,OAAO,CAAC,EAC9B,YAAY,GAAG,QAAQ,GAAG,SAAS,CACpC,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,qBAAqB,EACrB,OAAO,GAAG,QAAQ,GAAG,0BAA0B,CAChD,GAAG;IACF,KAAK,EAAE,IAAI,CACT,qBAAqB,CAAC,OAAO,CAAC,EAC9B,+BAA+B,GAAG,QAAQ,GAAG,aAAa,CAC3D,GAAG;QACF,WAAW,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,+BAA+B,CAAC,CAAA;KACvE,CAAA;IACD,MAAM,EAAE,iBAAiB,EAAE,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,wBAAwB,mBAGlC;IACD,MAAM,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;IACrC,CAAC,EAAE,SAAS,CAAA;CACb,KAAG,kBAwCH,CAAA;AAED,eAAO,MAAM,yBAAyB,oBAGnC;IACD,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IACnC,CAAC,EAAE,SAAS,CAAA;CACb,KAAG,kBAAkB,EAAsE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/globals/config/client.ts"],"sourcesContent":["import type { TFunction } from '@payloadcms/translations'\n\nimport type {\n LivePreviewConfig,\n SanitizedConfig,\n ServerOnlyLivePreviewProperties,\n} from '../../config/types.js'\nimport type { ClientFieldConfig } from '../../fields/config/client.js'\nimport type { SanitizedGlobalConfig } from './types.js'\n\nimport { createClientFieldConfigs } from '../../fields/config/client.js'\n\nexport type ServerOnlyGlobalProperties = keyof Pick<\n SanitizedGlobalConfig,\n 'access' | 'admin' | 'endpoints' | 'fields' | 'hooks'\n>\nexport type ServerOnlyGlobalAdminProperties = keyof Pick<\n SanitizedGlobalConfig['admin'],\n 'components' | 'hidden' | 'preview'\n>\n\nexport type ClientGlobalConfig = Omit<\n SanitizedGlobalConfig,\n 'admin' | 'fields' | ServerOnlyGlobalProperties\n> & {\n admin: Omit<\n SanitizedGlobalConfig['admin'],\n ServerOnlyGlobalAdminProperties & 'fields' & 'livePreview'\n > & {\n livePreview?: Omit<LivePreviewConfig, ServerOnlyLivePreviewProperties>\n }\n fields: ClientFieldConfig[]\n}\n\nexport const createClientGlobalConfig = ({\n global,\n t,\n}: {\n global: SanitizedConfig['globals'][0]\n t: TFunction\n}): ClientGlobalConfig => {\n const sanitized = { ...global }\n sanitized.fields = createClientFieldConfigs({ fields: sanitized.fields, t })\n\n const serverOnlyProperties: Partial<ServerOnlyGlobalProperties>[] = [\n 'hooks',\n 'access',\n 'endpoints',\n // `admin` is handled separately\n ]\n\n serverOnlyProperties.forEach((key) => {\n if (key in sanitized) {\n delete sanitized[key]\n }\n })\n\n if ('admin' in sanitized) {\n sanitized.admin = { ...sanitized.admin }\n\n const serverOnlyGlobalAdminProperties: Partial<ServerOnlyGlobalAdminProperties>[] = [\n 'components',\n 'hidden',\n 'preview',\n ]\n\n serverOnlyGlobalAdminProperties.forEach((key) => {\n if (key in sanitized.admin) {\n delete sanitized.admin[key]\n }\n })\n\n if ('livePreview' in sanitized.admin) {\n sanitized.admin.livePreview = { ...sanitized.admin.livePreview }\n delete sanitized.admin.livePreview.url\n }\n }\n\n return sanitized\n}\n\nexport const createClientGlobalConfigs = ({\n globals,\n t,\n}: {\n globals: SanitizedConfig['globals']\n t: TFunction\n}): ClientGlobalConfig[] => globals.map((global) => createClientGlobalConfig({ global, t }))\n"],"names":["createClientFieldConfigs","createClientGlobalConfig","global","t","sanitized","fields","serverOnlyProperties","forEach","key","admin","serverOnlyGlobalAdminProperties","livePreview","url","createClientGlobalConfigs","globals","map"],"rangeMappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/globals/config/client.ts"],"sourcesContent":["import type { TFunction } from '@payloadcms/translations'\n\nimport type {\n LivePreviewConfig,\n SanitizedConfig,\n ServerOnlyLivePreviewProperties,\n} from '../../config/types.js'\nimport type { ClientFieldConfig } from '../../fields/config/client.js'\nimport type { SanitizedGlobalConfig } from './types.js'\n\nimport { createClientFieldConfigs } from '../../fields/config/client.js'\n\nexport type ServerOnlyGlobalProperties = keyof Pick<\n SanitizedGlobalConfig,\n 'access' | 'admin' | 'custom' | 'endpoints' | 'fields' | 'hooks'\n>\nexport type ServerOnlyGlobalAdminProperties = keyof Pick<\n SanitizedGlobalConfig['admin'],\n 'components' | 'hidden' | 'preview'\n>\n\nexport type ClientGlobalConfig = Omit<\n SanitizedGlobalConfig,\n 'admin' | 'fields' | ServerOnlyGlobalProperties\n> & {\n admin: Omit<\n SanitizedGlobalConfig['admin'],\n ServerOnlyGlobalAdminProperties & 'fields' & 'livePreview'\n > & {\n livePreview?: Omit<LivePreviewConfig, ServerOnlyLivePreviewProperties>\n }\n fields: ClientFieldConfig[]\n}\n\nexport const createClientGlobalConfig = ({\n global,\n t,\n}: {\n global: SanitizedConfig['globals'][0]\n t: TFunction\n}): ClientGlobalConfig => {\n const sanitized = { ...global }\n sanitized.fields = createClientFieldConfigs({ fields: sanitized.fields, t })\n\n const serverOnlyProperties: Partial<ServerOnlyGlobalProperties>[] = [\n 'hooks',\n 'access',\n 'endpoints',\n 'custom',\n // `admin` is handled separately\n ]\n\n serverOnlyProperties.forEach((key) => {\n if (key in sanitized) {\n delete sanitized[key]\n }\n })\n\n if ('admin' in sanitized) {\n sanitized.admin = { ...sanitized.admin }\n\n const serverOnlyGlobalAdminProperties: Partial<ServerOnlyGlobalAdminProperties>[] = [\n 'components',\n 'hidden',\n 'preview',\n ]\n\n serverOnlyGlobalAdminProperties.forEach((key) => {\n if (key in sanitized.admin) {\n delete sanitized.admin[key]\n }\n })\n\n if ('livePreview' in sanitized.admin) {\n sanitized.admin.livePreview = { ...sanitized.admin.livePreview }\n delete sanitized.admin.livePreview.url\n }\n }\n\n return sanitized\n}\n\nexport const createClientGlobalConfigs = ({\n globals,\n t,\n}: {\n globals: SanitizedConfig['globals']\n t: TFunction\n}): ClientGlobalConfig[] => globals.map((global) => createClientGlobalConfig({ global, t }))\n"],"names":["createClientFieldConfigs","createClientGlobalConfig","global","t","sanitized","fields","serverOnlyProperties","forEach","key","admin","serverOnlyGlobalAdminProperties","livePreview","url","createClientGlobalConfigs","globals","map"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAUA,SAASA,wBAAwB,QAAQ,gCAA+B;AAwBxE,OAAO,MAAMC,2BAA2B,CAAC,EACvCC,MAAM,EACNC,CAAC,EAIF;IACC,MAAMC,YAAY;QAAE,GAAGF,MAAM;IAAC;IAC9BE,UAAUC,MAAM,GAAGL,yBAAyB;QAAEK,QAAQD,UAAUC,MAAM;QAAEF;IAAE;IAE1E,MAAMG,uBAA8D;QAClE;QACA;QACA;QACA;KAED;IAEDA,qBAAqBC,OAAO,CAAC,CAACC;QAC5B,IAAIA,OAAOJ,WAAW;YACpB,OAAOA,SAAS,CAACI,IAAI;QACvB;IACF;IAEA,IAAI,WAAWJ,WAAW;QACxBA,UAAUK,KAAK,GAAG;YAAE,GAAGL,UAAUK,KAAK;QAAC;QAEvC,MAAMC,kCAA8E;YAClF;YACA;YACA;SACD;QAEDA,gCAAgCH,OAAO,CAAC,CAACC;YACvC,IAAIA,OAAOJ,UAAUK,KAAK,EAAE;gBAC1B,OAAOL,UAAUK,KAAK,CAACD,IAAI;YAC7B;QACF;QAEA,IAAI,iBAAiBJ,UAAUK,KAAK,EAAE;YACpCL,UAAUK,KAAK,CAACE,WAAW,GAAG;gBAAE,GAAGP,UAAUK,KAAK,CAACE,WAAW;YAAC;YAC/D,OAAOP,UAAUK,KAAK,CAACE,WAAW,CAACC,GAAG;QACxC;IACF;IAEA,OAAOR;AACT,EAAC;AAED,OAAO,MAAMS,4BAA4B,CAAC,EACxCC,OAAO,EACPX,CAAC,EAIF,GAA2BW,QAAQC,GAAG,CAAC,CAACb,SAAWD,yBAAyB;YAAEC;YAAQC;QAAE,IAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/globals/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AASrB,QAAA,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/globals/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AASrB,QAAA,MAAM,YAAY,uBAmFN,CAAA;AAEZ,eAAe,YAAY,CAAA"}
|
|
@@ -26,6 +26,7 @@ const globalSchema = joi.object().keys({
|
|
|
26
26
|
}))
|
|
27
27
|
})
|
|
28
28
|
}),
|
|
29
|
+
custom: joi.object().pattern(joi.string(), joi.any()),
|
|
29
30
|
description: joi.alternatives().try(joi.string(), componentSchema),
|
|
30
31
|
group: joi.alternatives().try(joi.string(), joi.object().pattern(joi.string(), [
|
|
31
32
|
joi.string()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/globals/config/schema.ts"],"sourcesContent":["import joi from 'joi'\n\nimport { endpointsSchema } from '../../config/schema.js'\nimport {\n componentSchema,\n customViewSchema,\n livePreviewSchema,\n} from '../../config/shared/componentSchema.js'\n\nconst globalSchema = joi\n .object()\n .keys({\n slug: joi.string().required(),\n access: joi.object({\n read: joi.func(),\n readVersions: joi.func(),\n update: joi.func(),\n }),\n admin: joi.object({\n components: joi.object({\n elements: joi.object({\n PreviewButton: componentSchema,\n PublishButton: componentSchema,\n SaveButton: componentSchema,\n SaveDraftButton: componentSchema,\n }),\n views: joi.object({\n Edit: joi.alternatives().try(\n componentSchema,\n joi.object({\n API: joi.alternatives().try(componentSchema, customViewSchema),\n Default: joi.alternatives().try(componentSchema, customViewSchema),\n Preview: joi.alternatives().try(componentSchema, customViewSchema),\n Version: joi.alternatives().try(componentSchema, customViewSchema),\n Versions: joi.alternatives().try(componentSchema, customViewSchema),\n // Relationships\n // References\n }),\n ),\n }),\n }),\n description: joi.alternatives().try(joi.string(), componentSchema),\n group: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n hidden: joi.alternatives().try(joi.boolean(), joi.func()),\n hideAPIURL: joi.boolean(),\n livePreview: joi.object(livePreviewSchema),\n preview: joi.func(),\n }),\n custom: joi.object().pattern(joi.string(), joi.any()),\n dbName: joi.alternatives().try(joi.string(), joi.func()),\n endpoints: endpointsSchema,\n fields: joi.array(),\n graphQL: joi.alternatives().try(\n joi.object().keys({\n name: joi.string(),\n }),\n joi.boolean(),\n ),\n hooks: joi.object({\n afterChange: joi.array().items(joi.func()),\n afterRead: joi.array().items(joi.func()),\n beforeChange: joi.array().items(joi.func()),\n beforeRead: joi.array().items(joi.func()),\n beforeValidate: joi.array().items(joi.func()),\n }),\n label: joi\n .alternatives()\n .try(joi.func(), joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n typescript: joi.object().keys({\n interface: joi.string(),\n }),\n versions: joi.alternatives().try(\n joi.object({\n drafts: joi.alternatives().try(\n joi.object({\n autosave: joi.alternatives().try(\n joi.boolean(),\n joi.object({\n interval: joi.number(),\n }),\n ),\n }),\n joi.boolean(),\n ),\n max: joi.number(),\n }),\n joi.boolean(),\n ),\n })\n .unknown()\n\nexport default globalSchema\n"],"names":["joi","endpointsSchema","componentSchema","customViewSchema","livePreviewSchema","globalSchema","object","keys","slug","string","required","access","read","func","readVersions","update","admin","components","elements","PreviewButton","PublishButton","SaveButton","SaveDraftButton","views","Edit","alternatives","try","API","Default","Preview","Version","Versions","
|
|
1
|
+
{"version":3,"sources":["../../../src/globals/config/schema.ts"],"sourcesContent":["import joi from 'joi'\n\nimport { endpointsSchema } from '../../config/schema.js'\nimport {\n componentSchema,\n customViewSchema,\n livePreviewSchema,\n} from '../../config/shared/componentSchema.js'\n\nconst globalSchema = joi\n .object()\n .keys({\n slug: joi.string().required(),\n access: joi.object({\n read: joi.func(),\n readVersions: joi.func(),\n update: joi.func(),\n }),\n admin: joi.object({\n components: joi.object({\n elements: joi.object({\n PreviewButton: componentSchema,\n PublishButton: componentSchema,\n SaveButton: componentSchema,\n SaveDraftButton: componentSchema,\n }),\n views: joi.object({\n Edit: joi.alternatives().try(\n componentSchema,\n joi.object({\n API: joi.alternatives().try(componentSchema, customViewSchema),\n Default: joi.alternatives().try(componentSchema, customViewSchema),\n Preview: joi.alternatives().try(componentSchema, customViewSchema),\n Version: joi.alternatives().try(componentSchema, customViewSchema),\n Versions: joi.alternatives().try(componentSchema, customViewSchema),\n // Relationships\n // References\n }),\n ),\n }),\n }),\n custom: joi.object().pattern(joi.string(), joi.any()),\n description: joi.alternatives().try(joi.string(), componentSchema),\n group: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n hidden: joi.alternatives().try(joi.boolean(), joi.func()),\n hideAPIURL: joi.boolean(),\n livePreview: joi.object(livePreviewSchema),\n preview: joi.func(),\n }),\n custom: joi.object().pattern(joi.string(), joi.any()),\n dbName: joi.alternatives().try(joi.string(), joi.func()),\n endpoints: endpointsSchema,\n fields: joi.array(),\n graphQL: joi.alternatives().try(\n joi.object().keys({\n name: joi.string(),\n }),\n joi.boolean(),\n ),\n hooks: joi.object({\n afterChange: joi.array().items(joi.func()),\n afterRead: joi.array().items(joi.func()),\n beforeChange: joi.array().items(joi.func()),\n beforeRead: joi.array().items(joi.func()),\n beforeValidate: joi.array().items(joi.func()),\n }),\n label: joi\n .alternatives()\n .try(joi.func(), joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n typescript: joi.object().keys({\n interface: joi.string(),\n }),\n versions: joi.alternatives().try(\n joi.object({\n drafts: joi.alternatives().try(\n joi.object({\n autosave: joi.alternatives().try(\n joi.boolean(),\n joi.object({\n interval: joi.number(),\n }),\n ),\n }),\n joi.boolean(),\n ),\n max: joi.number(),\n }),\n joi.boolean(),\n ),\n })\n .unknown()\n\nexport default globalSchema\n"],"names":["joi","endpointsSchema","componentSchema","customViewSchema","livePreviewSchema","globalSchema","object","keys","slug","string","required","access","read","func","readVersions","update","admin","components","elements","PreviewButton","PublishButton","SaveButton","SaveDraftButton","views","Edit","alternatives","try","API","Default","Preview","Version","Versions","custom","pattern","any","description","group","hidden","boolean","hideAPIURL","livePreview","preview","dbName","endpoints","fields","array","graphQL","name","hooks","afterChange","items","afterRead","beforeChange","beforeRead","beforeValidate","label","typescript","interface","versions","drafts","autosave","interval","number","max","unknown"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -85,6 +85,8 @@ export type GlobalAdminOptions = {
|
|
|
85
85
|
Edit?: EditConfig;
|
|
86
86
|
};
|
|
87
87
|
};
|
|
88
|
+
/** Extension point to add your custom data. Available in server and client. */
|
|
89
|
+
custom?: Record<string, any>;
|
|
88
90
|
/**
|
|
89
91
|
* Custom description for collection
|
|
90
92
|
*/
|
|
@@ -120,7 +122,7 @@ export type GlobalConfig = {
|
|
|
120
122
|
update?: Access;
|
|
121
123
|
};
|
|
122
124
|
admin?: GlobalAdminOptions;
|
|
123
|
-
/** Extension point to add your custom data. */
|
|
125
|
+
/** Extension point to add your custom data. Server only. */
|
|
124
126
|
custom?: Record<string, any>;
|
|
125
127
|
/**
|
|
126
128
|
* Customize the SQL table name
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/globals/config/types.ts"],"names":[],"mappings":"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
|
|
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: 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":"
|
|
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 /** Extension point to add your custom data. Available in server and client. */\n custom?: Record<string, any>\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. Server only. */\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":"AAyLA,WAWC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { ExecutionResult, GraphQLSchema, ValidationRule } from 'graphql';
|
|
2
2
|
import type { OperationArgs, Request as graphQLRequest } from 'graphql-http';
|
|
3
|
-
import type { SendMailOptions } from 'nodemailer';
|
|
4
3
|
import type pino from 'pino';
|
|
5
4
|
import type { AuthArgs } from './auth/operations/auth.js';
|
|
6
5
|
import type { Result as ForgotPasswordResult } from './auth/operations/forgotPassword.js';
|
|
@@ -13,6 +12,7 @@ import type { Result as LoginResult } from './auth/operations/login.js';
|
|
|
13
12
|
import type { Result as ResetPasswordResult } from './auth/operations/resetPassword.js';
|
|
14
13
|
import type { AuthStrategy } from './auth/types.js';
|
|
15
14
|
import type { BulkOperationResult, Collection, TypeWithID } from './collections/config/types.js';
|
|
15
|
+
import type { Options as CountOptions } from './collections/operations/local/count.js';
|
|
16
16
|
import type { Options as CreateOptions } from './collections/operations/local/create.js';
|
|
17
17
|
import type { ByIDOptions as DeleteByIDOptions, ManyOptions as DeleteManyOptions } from './collections/operations/local/delete.js';
|
|
18
18
|
import type { Options as DuplicateOptions } from './collections/operations/local/duplicate.js';
|
|
@@ -22,9 +22,9 @@ import type { Options as FindVersionByIDOptions } from './collections/operations
|
|
|
22
22
|
import type { Options as FindVersionsOptions } from './collections/operations/local/findVersions.js';
|
|
23
23
|
import type { Options as RestoreVersionOptions } from './collections/operations/local/restoreVersion.js';
|
|
24
24
|
import type { ByIDOptions as UpdateByIDOptions, ManyOptions as UpdateManyOptions } from './collections/operations/local/update.js';
|
|
25
|
-
import type {
|
|
25
|
+
import type { InitOptions, SanitizedConfig } from './config/types.js';
|
|
26
26
|
import type { BaseDatabaseAdapter, PaginatedDocs } from './database/types.js';
|
|
27
|
-
import type {
|
|
27
|
+
import type { InitializedEmailAdapter } from './email/types.js';
|
|
28
28
|
import type { TypeWithID as GlobalTypeWithID, Globals } from './globals/config/types.js';
|
|
29
29
|
import type { Options as FindGlobalOptions } from './globals/operations/local/findOne.js';
|
|
30
30
|
import type { Options as FindGlobalVersionByIDOptions } from './globals/operations/local/findVersionByID.js';
|
|
@@ -49,6 +49,14 @@ export declare class BasePayload<TGeneratedTypes extends GeneratedTypes> {
|
|
|
49
49
|
[slug: number | string | symbol]: Collection;
|
|
50
50
|
};
|
|
51
51
|
config: SanitizedConfig;
|
|
52
|
+
/**
|
|
53
|
+
* @description Performs count operation
|
|
54
|
+
* @param options
|
|
55
|
+
* @returns count of documents satisfying query
|
|
56
|
+
*/
|
|
57
|
+
count: <T extends keyof TGeneratedTypes["collections"]>(options: CountOptions<T>) => Promise<{
|
|
58
|
+
totalDocs: number;
|
|
59
|
+
}>;
|
|
52
60
|
/**
|
|
53
61
|
* @description Performs create operation
|
|
54
62
|
* @param options
|
|
@@ -58,8 +66,7 @@ export declare class BasePayload<TGeneratedTypes extends GeneratedTypes> {
|
|
|
58
66
|
db: DatabaseAdapter;
|
|
59
67
|
decrypt: typeof decrypt;
|
|
60
68
|
duplicate: <T extends keyof TGeneratedTypes["collections"]>(options: DuplicateOptions<T>) => Promise<TGeneratedTypes['collections'][T]>;
|
|
61
|
-
email:
|
|
62
|
-
emailOptions: EmailOptions;
|
|
69
|
+
email: InitializedEmailAdapter;
|
|
63
70
|
encrypt: typeof encrypt;
|
|
64
71
|
extensions: (args: {
|
|
65
72
|
args: OperationArgs<any>;
|
|
@@ -126,7 +133,7 @@ export declare class BasePayload<TGeneratedTypes extends GeneratedTypes> {
|
|
|
126
133
|
restoreVersion: <T extends keyof TGeneratedTypes["collections"]>(options: RestoreVersionOptions<T>) => Promise<TGeneratedTypes['collections'][T]>;
|
|
127
134
|
schema: GraphQLSchema;
|
|
128
135
|
secret: string;
|
|
129
|
-
sendEmail:
|
|
136
|
+
sendEmail: InitializedEmailAdapter['sendEmail'];
|
|
130
137
|
types: {
|
|
131
138
|
arrayTypes: any;
|
|
132
139
|
blockInputTypes: any;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4,9 +4,7 @@ import { APIKeyAuthentication } from './auth/strategies/apiKey.js';
|
|
|
4
4
|
import { JWTAuthentication } from './auth/strategies/jwt.js';
|
|
5
5
|
import localOperations from './collections/operations/local/index.js';
|
|
6
6
|
import { validateSchema } from './config/validate.js';
|
|
7
|
-
import
|
|
8
|
-
import { defaults as emailDefaults } from './email/defaults.js';
|
|
9
|
-
import sendEmail from './email/sendEmail.js';
|
|
7
|
+
import { consoleEmailAdapter } from './email/consoleEmailAdapter.js';
|
|
10
8
|
import { fieldAffectsData } from './exports/types.js';
|
|
11
9
|
import localGlobalOperations from './globals/operations/local/index.js';
|
|
12
10
|
import flattenFields from './utilities/flattenTopLevelFields.js';
|
|
@@ -28,6 +26,14 @@ import { serverInit as serverInitTelemetry } from './utilities/telemetry/events/
|
|
|
28
26
|
collections = {};
|
|
29
27
|
config;
|
|
30
28
|
/**
|
|
29
|
+
* @description Performs count operation
|
|
30
|
+
* @param options
|
|
31
|
+
* @returns count of documents satisfying query
|
|
32
|
+
*/ count = async (options)=>{
|
|
33
|
+
const { count } = localOperations;
|
|
34
|
+
return count(this, options);
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
31
37
|
* @description Performs create operation
|
|
32
38
|
* @param options
|
|
33
39
|
* @returns created document
|
|
@@ -42,7 +48,6 @@ import { serverInit as serverInitTelemetry } from './utilities/telemetry/events/
|
|
|
42
48
|
return duplicate(this, options);
|
|
43
49
|
};
|
|
44
50
|
email;
|
|
45
|
-
emailOptions;
|
|
46
51
|
// TODO: re-implement or remove?
|
|
47
52
|
// errorHandler: ErrorHandler
|
|
48
53
|
encrypt = encrypt;
|
|
@@ -191,16 +196,23 @@ import { serverInit as serverInitTelemetry } from './utilities/telemetry/events/
|
|
|
191
196
|
if (!options.disableDBConnect && this.db.connect) {
|
|
192
197
|
await this.db.connect();
|
|
193
198
|
}
|
|
194
|
-
//
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
199
|
+
// Load email adapter
|
|
200
|
+
if (this.config.email instanceof Promise) {
|
|
201
|
+
const awaitedAdapter = await this.config.email;
|
|
202
|
+
this.email = awaitedAdapter({
|
|
203
|
+
payload: this
|
|
204
|
+
});
|
|
205
|
+
} else if (this.config.email) {
|
|
206
|
+
this.email = this.config.email({
|
|
207
|
+
payload: this
|
|
208
|
+
});
|
|
209
|
+
} else {
|
|
210
|
+
this.logger.warn(`No email adapter provided. Email will be written to console. More info at https://payloadcms.com/docs/email/overview.`);
|
|
211
|
+
this.email = consoleEmailAdapter({
|
|
212
|
+
payload: this
|
|
213
|
+
});
|
|
200
214
|
}
|
|
201
|
-
this.
|
|
202
|
-
this.email = buildEmail(this.emailOptions, this.logger);
|
|
203
|
-
this.sendEmail = sendEmail.bind(this);
|
|
215
|
+
this.sendEmail = this.email['sendEmail'];
|
|
204
216
|
serverInitTelemetry(this);
|
|
205
217
|
// 1. loop over collections, if collection has auth strategy, initialize and push to array
|
|
206
218
|
let jwtStrategyEnabled = false;
|