payload 3.10.0 → 3.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/fields/baseFields/baseIDField.d.ts.map +1 -1
- package/dist/fields/baseFields/baseIDField.js +2 -12
- package/dist/fields/baseFields/baseIDField.js.map +1 -1
- package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
- package/dist/fields/hooks/beforeValidate/promise.js +0 -4
- package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
- package/dist/fields/validations.d.ts.map +1 -1
- package/dist/fields/validations.js +4 -8
- package/dist/fields/validations.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/utilities/traverseFields.d.ts +4 -34
- package/dist/utilities/traverseFields.d.ts.map +1 -1
- package/dist/utilities/traverseFields.js +6 -15
- package/dist/utilities/traverseFields.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseIDField.d.ts","sourceRoot":"","sources":["../../../src/fields/baseFields/baseIDField.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAKnD,eAAO,MAAM,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"baseIDField.d.ts","sourceRoot":"","sources":["../../../src/fields/baseFields/baseIDField.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAKnD,eAAO,MAAM,WAAW,EAAE,SAYzB,CAAA"}
|
|
@@ -9,20 +9,10 @@ export const baseIDField = {
|
|
|
9
9
|
defaultValue: ()=>new ObjectId().toHexString(),
|
|
10
10
|
hooks: {
|
|
11
11
|
beforeChange: [
|
|
12
|
-
({
|
|
13
|
-
// If creating new doc, need to disregard any
|
|
14
|
-
// ids that have been passed in because they will cause
|
|
15
|
-
// primary key unique conflicts in relational DBs
|
|
16
|
-
if (!value || operation === 'create' && value) {
|
|
17
|
-
return new ObjectId().toHexString();
|
|
18
|
-
}
|
|
19
|
-
return value;
|
|
20
|
-
}
|
|
12
|
+
({ value })=>value || new ObjectId().toHexString()
|
|
21
13
|
],
|
|
22
14
|
beforeDuplicate: [
|
|
23
|
-
()=>
|
|
24
|
-
return new ObjectId().toHexString();
|
|
25
|
-
}
|
|
15
|
+
()=>new ObjectId().toHexString()
|
|
26
16
|
]
|
|
27
17
|
},
|
|
28
18
|
label: 'ID'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/fields/baseFields/baseIDField.ts"],"sourcesContent":["import ObjectIdImport from 'bson-objectid'\n\nimport type { TextField } from '../config/types.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\nexport const baseIDField: TextField = {\n name: 'id',\n type: 'text',\n admin: {\n hidden: true,\n },\n defaultValue: () => new ObjectId().toHexString(),\n hooks: {\n beforeChange: [
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/baseFields/baseIDField.ts"],"sourcesContent":["import ObjectIdImport from 'bson-objectid'\n\nimport type { TextField } from '../config/types.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\nexport const baseIDField: TextField = {\n name: 'id',\n type: 'text',\n admin: {\n hidden: true,\n },\n defaultValue: () => new ObjectId().toHexString(),\n hooks: {\n beforeChange: [({ value }) => value || new ObjectId().toHexString()],\n beforeDuplicate: [() => new ObjectId().toHexString()],\n },\n label: 'ID',\n}\n"],"names":["ObjectIdImport","ObjectId","default","baseIDField","name","type","admin","hidden","defaultValue","toHexString","hooks","beforeChange","value","beforeDuplicate","label"],"mappings":"AAAA,OAAOA,oBAAoB,gBAAe;AAI1C,MAAMC,WAAYD,eAAeE,OAAO,IACtCF;AAEF,OAAO,MAAMG,cAAyB;IACpCC,MAAM;IACNC,MAAM;IACNC,OAAO;QACLC,QAAQ;IACV;IACAC,cAAc,IAAM,IAAIP,WAAWQ,WAAW;IAC9CC,OAAO;QACLC,cAAc;YAAC,CAAC,EAAEC,KAAK,EAAE,GAAKA,SAAS,IAAIX,WAAWQ,WAAW;SAAG;QACpEI,iBAAiB;YAAC,IAAM,IAAIZ,WAAWQ,WAAW;SAAG;IACvD;IACAK,OAAO;AACT,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeValidate/promise.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAc,MAAM,sCAAsC,CAAA;AACjG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAE,UAAU,EAAa,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACpF,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAU9D,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,IAAI,GAAG,yBAAyB,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,CAAC,CAAA;IACP;;OAEG;IACH,GAAG,EAAE,CAAC,CAAA;IACN,KAAK,EAAE,KAAK,GAAG,UAAU,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,IAAI,GAAG,qBAAqB,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,cAAc,EAAE,OAAO,CAAA;IACvB,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IAC/B,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,GAAG,EAAE,cAAc,CAAA;IACnB,WAAW,EAAE,UAAU,CAAA;IACvB;;OAEG;IACH,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AASD,eAAO,MAAM,OAAO,GAAU,CAAC,6JAgB5B,IAAI,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeValidate/promise.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAc,MAAM,sCAAsC,CAAA;AACjG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAE,UAAU,EAAa,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACpF,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAU9D,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,IAAI,GAAG,yBAAyB,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,CAAC,CAAA;IACP;;OAEG;IACH,GAAG,EAAE,CAAC,CAAA;IACN,KAAK,EAAE,KAAK,GAAG,UAAU,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,IAAI,GAAG,qBAAqB,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,cAAc,EAAE,OAAO,CAAA;IACvB,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IAC/B,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,GAAG,EAAE,cAAc,CAAA;IACnB,WAAW,EAAE,UAAU,CAAA;IACvB;;OAEG;IACH,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AASD,eAAO,MAAM,OAAO,GAAU,CAAC,6JAgB5B,IAAI,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,IAAI,CA0exB,CAAA"}
|
|
@@ -67,10 +67,6 @@ export const promise = async ({ id, collection, context, data, doc, field, field
|
|
|
67
67
|
case 'point':
|
|
68
68
|
{
|
|
69
69
|
if (Array.isArray(siblingData[field.name])) {
|
|
70
|
-
if (siblingData[field.name].some((val)=>val === null || val === '')) {
|
|
71
|
-
siblingData[field.name] = null;
|
|
72
|
-
break;
|
|
73
|
-
}
|
|
74
70
|
siblingData[field.name] = siblingData[field.name].map((coordinate, i)=>{
|
|
75
71
|
if (typeof coordinate === 'string') {
|
|
76
72
|
const value = siblingData[field.name][i];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/fields/hooks/beforeValidate/promise.ts"],"sourcesContent":["import type { RichTextAdapter } from '../../../admin/RichText.js'\nimport type { SanitizedCollectionConfig, TypeWithID } from '../../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../../globals/config/types.js'\nimport type { RequestContext } from '../../../index.js'\nimport type { JsonObject, JsonValue, PayloadRequest } from '../../../types/index.js'\nimport type { Field, TabAsField } from '../../config/types.js'\n\nimport { MissingEditorProp } from '../../../errors/index.js'\nimport { fieldAffectsData, tabHasName, valueIsValueWithRelation } from '../../config/types.js'\nimport { getDefaultValue } from '../../getDefaultValue.js'\nimport { getFieldPaths } from '../../getFieldPaths.js'\nimport { cloneDataFromOriginalDoc } from '../beforeChange/cloneDataFromOriginalDoc.js'\nimport { getExistingRowDoc } from '../beforeChange/getExistingRowDoc.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args<T> = {\n collection: null | SanitizedCollectionConfig\n context: RequestContext\n data: T\n /**\n * The original data (not modified by any hooks)\n */\n doc: T\n field: Field | TabAsField\n fieldIndex: number\n global: null | SanitizedGlobalConfig\n id?: number | string\n operation: 'create' | 'update'\n overrideAccess: boolean\n parentPath: (number | string)[]\n parentSchemaPath: string[]\n req: PayloadRequest\n siblingData: JsonObject\n /**\n * The original siblingData (not modified by any hooks)\n */\n siblingDoc: JsonObject\n}\n\n// This function is responsible for the following actions, in order:\n// - Sanitize incoming data\n// - Execute field hooks\n// - Execute field access control\n// - Merge original document data into incoming data\n// - Compute default values for undefined fields\n\nexport const promise = async <T>({\n id,\n collection,\n context,\n data,\n doc,\n field,\n fieldIndex,\n global,\n operation,\n overrideAccess,\n parentPath,\n parentSchemaPath,\n req,\n siblingData,\n siblingDoc,\n}: Args<T>): Promise<void> => {\n const { path: _fieldPath, schemaPath: _fieldSchemaPath } = getFieldPaths({\n field,\n index: fieldIndex,\n parentIndexPath: '', // Doesn't matter, as unnamed fields do not affect data, and hooks are only run on fields that affect data\n parentPath: parentPath.join('.'),\n parentSchemaPath: parentSchemaPath.join('.'),\n })\n const fieldPath = _fieldPath ? _fieldPath.split('.') : []\n const fieldSchemaPath = _fieldSchemaPath ? _fieldSchemaPath.split('.') : []\n\n if (fieldAffectsData(field)) {\n if (field.name === 'id') {\n if (field.type === 'number' && typeof siblingData[field.name] === 'string') {\n const value = siblingData[field.name] as string\n\n siblingData[field.name] = parseFloat(value)\n }\n\n if (\n field.type === 'text' &&\n typeof siblingData[field.name]?.toString === 'function' &&\n typeof siblingData[field.name] !== 'string'\n ) {\n siblingData[field.name] = siblingData[field.name].toString()\n }\n }\n\n // Sanitize incoming data\n switch (field.type) {\n case 'array':\n case 'blocks': {\n // Handle cases of arrays being intentionally set to 0\n if (siblingData[field.name] === '0' || siblingData[field.name] === 0) {\n siblingData[field.name] = []\n }\n\n break\n }\n\n case 'checkbox': {\n if (siblingData[field.name] === 'true') {\n siblingData[field.name] = true\n }\n if (siblingData[field.name] === 'false') {\n siblingData[field.name] = false\n }\n if (siblingData[field.name] === '') {\n siblingData[field.name] = false\n }\n\n break\n }\n\n case 'number': {\n if (typeof siblingData[field.name] === 'string') {\n const value = siblingData[field.name] as string\n const trimmed = value.trim()\n siblingData[field.name] = trimmed.length === 0 ? null : parseFloat(trimmed)\n }\n\n break\n }\n\n case 'point': {\n if (Array.isArray(siblingData[field.name])) {\n if ((siblingData[field.name] as string[]).some((val) => val === null || val === '')) {\n siblingData[field.name] = null\n break\n }\n\n siblingData[field.name] = (siblingData[field.name] as string[]).map((coordinate, i) => {\n if (typeof coordinate === 'string') {\n const value = siblingData[field.name][i] as string\n const trimmed = value.trim()\n return trimmed.length === 0 ? null : parseFloat(trimmed)\n }\n return coordinate\n })\n }\n\n break\n }\n case 'relationship':\n case 'upload': {\n if (\n siblingData[field.name] === '' ||\n siblingData[field.name] === 'none' ||\n siblingData[field.name] === 'null' ||\n siblingData[field.name] === null\n ) {\n if (field.hasMany === true) {\n siblingData[field.name] = []\n } else {\n siblingData[field.name] = null\n }\n }\n\n const value = siblingData[field.name]\n\n if (Array.isArray(field.relationTo)) {\n if (Array.isArray(value)) {\n value.forEach((relatedDoc: { relationTo: string; value: JsonValue }, i) => {\n const relatedCollection = req.payload.config.collections.find(\n (collection) => collection.slug === relatedDoc.relationTo,\n )\n\n if (\n typeof relatedDoc.value === 'object' &&\n relatedDoc.value &&\n 'id' in relatedDoc.value\n ) {\n relatedDoc.value = relatedDoc.value.id\n }\n\n if (relatedCollection?.fields) {\n const relationshipIDField = relatedCollection.fields.find(\n (collectionField) =>\n fieldAffectsData(collectionField) && collectionField.name === 'id',\n )\n if (relationshipIDField?.type === 'number') {\n siblingData[field.name][i] = {\n ...relatedDoc,\n value: parseFloat(relatedDoc.value as string),\n }\n }\n }\n })\n }\n if (field.hasMany !== true && valueIsValueWithRelation(value)) {\n const relatedCollection = req.payload.config.collections.find(\n (collection) => collection.slug === value.relationTo,\n )\n\n if (typeof value.value === 'object' && value.value && 'id' in value.value) {\n value.value = (value.value as TypeWithID).id\n }\n\n if (relatedCollection?.fields) {\n const relationshipIDField = relatedCollection.fields.find(\n (collectionField) =>\n fieldAffectsData(collectionField) && collectionField.name === 'id',\n )\n if (relationshipIDField?.type === 'number') {\n siblingData[field.name] = { ...value, value: parseFloat(value.value as string) }\n }\n }\n }\n } else {\n if (Array.isArray(value)) {\n value.forEach((relatedDoc: unknown, i) => {\n const relatedCollection = req.payload.config.collections.find(\n (collection) => collection.slug === field.relationTo,\n )\n\n if (typeof relatedDoc === 'object' && relatedDoc && 'id' in relatedDoc) {\n value[i] = relatedDoc.id\n }\n\n if (relatedCollection?.fields) {\n const relationshipIDField = relatedCollection.fields.find(\n (collectionField) =>\n fieldAffectsData(collectionField) && collectionField.name === 'id',\n )\n if (relationshipIDField?.type === 'number') {\n siblingData[field.name][i] = parseFloat(relatedDoc as string)\n }\n }\n })\n }\n if (field.hasMany !== true && value) {\n const relatedCollection = req.payload.config.collections.find(\n (collection) => collection.slug === field.relationTo,\n )\n\n if (typeof value === 'object' && value && 'id' in value) {\n siblingData[field.name] = value.id\n }\n\n if (relatedCollection?.fields) {\n const relationshipIDField = relatedCollection.fields.find(\n (collectionField) =>\n fieldAffectsData(collectionField) && collectionField.name === 'id',\n )\n if (relationshipIDField?.type === 'number') {\n siblingData[field.name] = parseFloat(value as string)\n }\n }\n }\n }\n break\n }\n case 'richText': {\n if (typeof siblingData[field.name] === 'string') {\n try {\n const richTextJSON = JSON.parse(siblingData[field.name] as string)\n siblingData[field.name] = richTextJSON\n } catch {\n // Disregard this data as it is not valid.\n // Will be reported to user by field validation\n }\n }\n\n break\n }\n\n default: {\n break\n }\n }\n\n // Execute hooks\n if (field.hooks?.beforeValidate) {\n await field.hooks.beforeValidate.reduce(async (priorHook, currentHook) => {\n await priorHook\n\n const hookedValue = await currentHook({\n collection,\n context,\n data,\n field,\n global,\n operation,\n originalDoc: doc,\n overrideAccess,\n path: fieldPath,\n previousSiblingDoc: siblingDoc,\n previousValue: siblingDoc[field.name],\n req,\n schemaPath: fieldSchemaPath,\n siblingData,\n value: siblingData[field.name],\n })\n\n if (hookedValue !== undefined) {\n siblingData[field.name] = hookedValue\n }\n }, Promise.resolve())\n }\n\n // Execute access control\n if (field.access && field.access[operation]) {\n const result = overrideAccess\n ? true\n : await field.access[operation]({ id, data, doc, req, siblingData })\n\n if (!result) {\n delete siblingData[field.name]\n }\n }\n\n if (typeof siblingData[field.name] === 'undefined') {\n // If no incoming data, but existing document data is found, merge it in\n if (typeof siblingDoc[field.name] !== 'undefined') {\n siblingData[field.name] = cloneDataFromOriginalDoc(siblingDoc[field.name])\n\n // Otherwise compute default value\n } else if (typeof field.defaultValue !== 'undefined') {\n siblingData[field.name] = await getDefaultValue({\n defaultValue: field.defaultValue,\n locale: req.locale,\n req,\n user: req.user,\n value: siblingData[field.name],\n })\n }\n }\n }\n\n // Traverse subfields\n switch (field.type) {\n case 'array': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n rows.forEach((row, i) => {\n promises.push(\n traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n fields: field.fields,\n global,\n operation,\n overrideAccess,\n path: [...fieldPath, i],\n req,\n schemaPath: fieldSchemaPath,\n siblingData: row as JsonObject,\n siblingDoc: getExistingRowDoc(row as JsonObject, siblingDoc[field.name]),\n }),\n )\n })\n await Promise.all(promises)\n }\n break\n }\n\n case 'blocks': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n rows.forEach((row, i) => {\n const rowSiblingDoc = getExistingRowDoc(row as JsonObject, siblingDoc[field.name])\n const blockTypeToMatch = (row as JsonObject).blockType || rowSiblingDoc.blockType\n const block = field.blocks.find((blockType) => blockType.slug === blockTypeToMatch)\n\n if (block) {\n ;(row as JsonObject).blockType = blockTypeToMatch\n\n promises.push(\n traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n fields: block.fields,\n global,\n operation,\n overrideAccess,\n path: [...fieldPath, i],\n req,\n schemaPath: fieldSchemaPath,\n siblingData: row as JsonObject,\n siblingDoc: rowSiblingDoc,\n }),\n )\n }\n })\n await Promise.all(promises)\n }\n\n break\n }\n\n case 'collapsible':\n case 'row': {\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n fields: field.fields,\n global,\n operation,\n overrideAccess,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData,\n siblingDoc,\n })\n\n break\n }\n case 'group': {\n if (typeof siblingData[field.name] !== 'object') {\n siblingData[field.name] = {}\n }\n if (typeof siblingDoc[field.name] !== 'object') {\n siblingDoc[field.name] = {}\n }\n\n const groupData = siblingData[field.name] as Record<string, unknown>\n const groupDoc = siblingDoc[field.name] as Record<string, unknown>\n\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n fields: field.fields,\n global,\n operation,\n overrideAccess,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData: groupData as JsonObject,\n siblingDoc: groupDoc as JsonObject,\n })\n\n break\n }\n\n case 'richText': {\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n if (typeof field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n const editor: RichTextAdapter = field?.editor\n\n if (editor?.hooks?.beforeValidate?.length) {\n await editor.hooks.beforeValidate.reduce(async (priorHook, currentHook) => {\n await priorHook\n\n const hookedValue = await currentHook({\n collection,\n context,\n data,\n field,\n global,\n operation,\n originalDoc: doc,\n overrideAccess,\n path: fieldPath,\n previousSiblingDoc: siblingDoc,\n previousValue: siblingData[field.name],\n req,\n schemaPath: fieldSchemaPath,\n siblingData,\n value: siblingData[field.name],\n })\n\n if (hookedValue !== undefined) {\n siblingData[field.name] = hookedValue\n }\n }, Promise.resolve())\n }\n break\n }\n\n case 'tab': {\n let tabSiblingData\n let tabSiblingDoc\n if (tabHasName(field)) {\n if (typeof siblingData[field.name] !== 'object') {\n siblingData[field.name] = {}\n }\n if (typeof siblingDoc[field.name] !== 'object') {\n siblingDoc[field.name] = {}\n }\n\n tabSiblingData = siblingData[field.name] as Record<string, unknown>\n tabSiblingDoc = siblingDoc[field.name] as Record<string, unknown>\n } else {\n tabSiblingData = siblingData\n tabSiblingDoc = siblingDoc\n }\n\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n fields: field.fields,\n global,\n operation,\n overrideAccess,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData: tabSiblingData,\n siblingDoc: tabSiblingDoc,\n })\n\n break\n }\n\n case 'tabs': {\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n global,\n operation,\n overrideAccess,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData,\n siblingDoc,\n })\n\n break\n }\n\n default: {\n break\n }\n }\n}\n"],"names":["MissingEditorProp","fieldAffectsData","tabHasName","valueIsValueWithRelation","getDefaultValue","getFieldPaths","cloneDataFromOriginalDoc","getExistingRowDoc","traverseFields","promise","id","collection","context","data","doc","field","fieldIndex","global","operation","overrideAccess","parentPath","parentSchemaPath","req","siblingData","siblingDoc","path","_fieldPath","schemaPath","_fieldSchemaPath","index","parentIndexPath","join","fieldPath","split","fieldSchemaPath","name","type","value","parseFloat","toString","trimmed","trim","length","Array","isArray","some","val","map","coordinate","i","hasMany","relationTo","forEach","relatedDoc","relatedCollection","payload","config","collections","find","slug","fields","relationshipIDField","collectionField","richTextJSON","JSON","parse","hooks","beforeValidate","reduce","priorHook","currentHook","hookedValue","originalDoc","previousSiblingDoc","previousValue","undefined","Promise","resolve","access","result","defaultValue","locale","user","rows","promises","row","push","all","rowSiblingDoc","blockTypeToMatch","blockType","block","blocks","groupData","groupDoc","editor","Error","tabSiblingData","tabSiblingDoc","tabs","tab"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/fields/hooks/beforeValidate/promise.ts"],"sourcesContent":["import type { RichTextAdapter } from '../../../admin/RichText.js'\nimport type { SanitizedCollectionConfig, TypeWithID } from '../../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../../globals/config/types.js'\nimport type { RequestContext } from '../../../index.js'\nimport type { JsonObject, JsonValue, PayloadRequest } from '../../../types/index.js'\nimport type { Field, TabAsField } from '../../config/types.js'\n\nimport { MissingEditorProp } from '../../../errors/index.js'\nimport { fieldAffectsData, tabHasName, valueIsValueWithRelation } from '../../config/types.js'\nimport { getDefaultValue } from '../../getDefaultValue.js'\nimport { getFieldPaths } from '../../getFieldPaths.js'\nimport { cloneDataFromOriginalDoc } from '../beforeChange/cloneDataFromOriginalDoc.js'\nimport { getExistingRowDoc } from '../beforeChange/getExistingRowDoc.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args<T> = {\n collection: null | SanitizedCollectionConfig\n context: RequestContext\n data: T\n /**\n * The original data (not modified by any hooks)\n */\n doc: T\n field: Field | TabAsField\n fieldIndex: number\n global: null | SanitizedGlobalConfig\n id?: number | string\n operation: 'create' | 'update'\n overrideAccess: boolean\n parentPath: (number | string)[]\n parentSchemaPath: string[]\n req: PayloadRequest\n siblingData: JsonObject\n /**\n * The original siblingData (not modified by any hooks)\n */\n siblingDoc: JsonObject\n}\n\n// This function is responsible for the following actions, in order:\n// - Sanitize incoming data\n// - Execute field hooks\n// - Execute field access control\n// - Merge original document data into incoming data\n// - Compute default values for undefined fields\n\nexport const promise = async <T>({\n id,\n collection,\n context,\n data,\n doc,\n field,\n fieldIndex,\n global,\n operation,\n overrideAccess,\n parentPath,\n parentSchemaPath,\n req,\n siblingData,\n siblingDoc,\n}: Args<T>): Promise<void> => {\n const { path: _fieldPath, schemaPath: _fieldSchemaPath } = getFieldPaths({\n field,\n index: fieldIndex,\n parentIndexPath: '', // Doesn't matter, as unnamed fields do not affect data, and hooks are only run on fields that affect data\n parentPath: parentPath.join('.'),\n parentSchemaPath: parentSchemaPath.join('.'),\n })\n const fieldPath = _fieldPath ? _fieldPath.split('.') : []\n const fieldSchemaPath = _fieldSchemaPath ? _fieldSchemaPath.split('.') : []\n\n if (fieldAffectsData(field)) {\n if (field.name === 'id') {\n if (field.type === 'number' && typeof siblingData[field.name] === 'string') {\n const value = siblingData[field.name] as string\n\n siblingData[field.name] = parseFloat(value)\n }\n\n if (\n field.type === 'text' &&\n typeof siblingData[field.name]?.toString === 'function' &&\n typeof siblingData[field.name] !== 'string'\n ) {\n siblingData[field.name] = siblingData[field.name].toString()\n }\n }\n\n // Sanitize incoming data\n switch (field.type) {\n case 'array':\n case 'blocks': {\n // Handle cases of arrays being intentionally set to 0\n if (siblingData[field.name] === '0' || siblingData[field.name] === 0) {\n siblingData[field.name] = []\n }\n\n break\n }\n\n case 'checkbox': {\n if (siblingData[field.name] === 'true') {\n siblingData[field.name] = true\n }\n if (siblingData[field.name] === 'false') {\n siblingData[field.name] = false\n }\n if (siblingData[field.name] === '') {\n siblingData[field.name] = false\n }\n\n break\n }\n\n case 'number': {\n if (typeof siblingData[field.name] === 'string') {\n const value = siblingData[field.name] as string\n const trimmed = value.trim()\n siblingData[field.name] = trimmed.length === 0 ? null : parseFloat(trimmed)\n }\n\n break\n }\n\n case 'point': {\n if (Array.isArray(siblingData[field.name])) {\n siblingData[field.name] = (siblingData[field.name] as string[]).map((coordinate, i) => {\n if (typeof coordinate === 'string') {\n const value = siblingData[field.name][i] as string\n const trimmed = value.trim()\n return trimmed.length === 0 ? null : parseFloat(trimmed)\n }\n return coordinate\n })\n }\n\n break\n }\n case 'relationship':\n case 'upload': {\n if (\n siblingData[field.name] === '' ||\n siblingData[field.name] === 'none' ||\n siblingData[field.name] === 'null' ||\n siblingData[field.name] === null\n ) {\n if (field.hasMany === true) {\n siblingData[field.name] = []\n } else {\n siblingData[field.name] = null\n }\n }\n\n const value = siblingData[field.name]\n\n if (Array.isArray(field.relationTo)) {\n if (Array.isArray(value)) {\n value.forEach((relatedDoc: { relationTo: string; value: JsonValue }, i) => {\n const relatedCollection = req.payload.config.collections.find(\n (collection) => collection.slug === relatedDoc.relationTo,\n )\n\n if (\n typeof relatedDoc.value === 'object' &&\n relatedDoc.value &&\n 'id' in relatedDoc.value\n ) {\n relatedDoc.value = relatedDoc.value.id\n }\n\n if (relatedCollection?.fields) {\n const relationshipIDField = relatedCollection.fields.find(\n (collectionField) =>\n fieldAffectsData(collectionField) && collectionField.name === 'id',\n )\n if (relationshipIDField?.type === 'number') {\n siblingData[field.name][i] = {\n ...relatedDoc,\n value: parseFloat(relatedDoc.value as string),\n }\n }\n }\n })\n }\n if (field.hasMany !== true && valueIsValueWithRelation(value)) {\n const relatedCollection = req.payload.config.collections.find(\n (collection) => collection.slug === value.relationTo,\n )\n\n if (typeof value.value === 'object' && value.value && 'id' in value.value) {\n value.value = (value.value as TypeWithID).id\n }\n\n if (relatedCollection?.fields) {\n const relationshipIDField = relatedCollection.fields.find(\n (collectionField) =>\n fieldAffectsData(collectionField) && collectionField.name === 'id',\n )\n if (relationshipIDField?.type === 'number') {\n siblingData[field.name] = { ...value, value: parseFloat(value.value as string) }\n }\n }\n }\n } else {\n if (Array.isArray(value)) {\n value.forEach((relatedDoc: unknown, i) => {\n const relatedCollection = req.payload.config.collections.find(\n (collection) => collection.slug === field.relationTo,\n )\n\n if (typeof relatedDoc === 'object' && relatedDoc && 'id' in relatedDoc) {\n value[i] = relatedDoc.id\n }\n\n if (relatedCollection?.fields) {\n const relationshipIDField = relatedCollection.fields.find(\n (collectionField) =>\n fieldAffectsData(collectionField) && collectionField.name === 'id',\n )\n if (relationshipIDField?.type === 'number') {\n siblingData[field.name][i] = parseFloat(relatedDoc as string)\n }\n }\n })\n }\n if (field.hasMany !== true && value) {\n const relatedCollection = req.payload.config.collections.find(\n (collection) => collection.slug === field.relationTo,\n )\n\n if (typeof value === 'object' && value && 'id' in value) {\n siblingData[field.name] = value.id\n }\n\n if (relatedCollection?.fields) {\n const relationshipIDField = relatedCollection.fields.find(\n (collectionField) =>\n fieldAffectsData(collectionField) && collectionField.name === 'id',\n )\n if (relationshipIDField?.type === 'number') {\n siblingData[field.name] = parseFloat(value as string)\n }\n }\n }\n }\n break\n }\n case 'richText': {\n if (typeof siblingData[field.name] === 'string') {\n try {\n const richTextJSON = JSON.parse(siblingData[field.name] as string)\n siblingData[field.name] = richTextJSON\n } catch {\n // Disregard this data as it is not valid.\n // Will be reported to user by field validation\n }\n }\n\n break\n }\n\n default: {\n break\n }\n }\n\n // Execute hooks\n if (field.hooks?.beforeValidate) {\n await field.hooks.beforeValidate.reduce(async (priorHook, currentHook) => {\n await priorHook\n\n const hookedValue = await currentHook({\n collection,\n context,\n data,\n field,\n global,\n operation,\n originalDoc: doc,\n overrideAccess,\n path: fieldPath,\n previousSiblingDoc: siblingDoc,\n previousValue: siblingDoc[field.name],\n req,\n schemaPath: fieldSchemaPath,\n siblingData,\n value: siblingData[field.name],\n })\n\n if (hookedValue !== undefined) {\n siblingData[field.name] = hookedValue\n }\n }, Promise.resolve())\n }\n\n // Execute access control\n if (field.access && field.access[operation]) {\n const result = overrideAccess\n ? true\n : await field.access[operation]({ id, data, doc, req, siblingData })\n\n if (!result) {\n delete siblingData[field.name]\n }\n }\n\n if (typeof siblingData[field.name] === 'undefined') {\n // If no incoming data, but existing document data is found, merge it in\n if (typeof siblingDoc[field.name] !== 'undefined') {\n siblingData[field.name] = cloneDataFromOriginalDoc(siblingDoc[field.name])\n\n // Otherwise compute default value\n } else if (typeof field.defaultValue !== 'undefined') {\n siblingData[field.name] = await getDefaultValue({\n defaultValue: field.defaultValue,\n locale: req.locale,\n req,\n user: req.user,\n value: siblingData[field.name],\n })\n }\n }\n }\n\n // Traverse subfields\n switch (field.type) {\n case 'array': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n rows.forEach((row, i) => {\n promises.push(\n traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n fields: field.fields,\n global,\n operation,\n overrideAccess,\n path: [...fieldPath, i],\n req,\n schemaPath: fieldSchemaPath,\n siblingData: row as JsonObject,\n siblingDoc: getExistingRowDoc(row as JsonObject, siblingDoc[field.name]),\n }),\n )\n })\n await Promise.all(promises)\n }\n break\n }\n\n case 'blocks': {\n const rows = siblingData[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n rows.forEach((row, i) => {\n const rowSiblingDoc = getExistingRowDoc(row as JsonObject, siblingDoc[field.name])\n const blockTypeToMatch = (row as JsonObject).blockType || rowSiblingDoc.blockType\n const block = field.blocks.find((blockType) => blockType.slug === blockTypeToMatch)\n\n if (block) {\n ;(row as JsonObject).blockType = blockTypeToMatch\n\n promises.push(\n traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n fields: block.fields,\n global,\n operation,\n overrideAccess,\n path: [...fieldPath, i],\n req,\n schemaPath: fieldSchemaPath,\n siblingData: row as JsonObject,\n siblingDoc: rowSiblingDoc,\n }),\n )\n }\n })\n await Promise.all(promises)\n }\n\n break\n }\n\n case 'collapsible':\n case 'row': {\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n fields: field.fields,\n global,\n operation,\n overrideAccess,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData,\n siblingDoc,\n })\n\n break\n }\n case 'group': {\n if (typeof siblingData[field.name] !== 'object') {\n siblingData[field.name] = {}\n }\n if (typeof siblingDoc[field.name] !== 'object') {\n siblingDoc[field.name] = {}\n }\n\n const groupData = siblingData[field.name] as Record<string, unknown>\n const groupDoc = siblingDoc[field.name] as Record<string, unknown>\n\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n fields: field.fields,\n global,\n operation,\n overrideAccess,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData: groupData as JsonObject,\n siblingDoc: groupDoc as JsonObject,\n })\n\n break\n }\n\n case 'richText': {\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n if (typeof field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n const editor: RichTextAdapter = field?.editor\n\n if (editor?.hooks?.beforeValidate?.length) {\n await editor.hooks.beforeValidate.reduce(async (priorHook, currentHook) => {\n await priorHook\n\n const hookedValue = await currentHook({\n collection,\n context,\n data,\n field,\n global,\n operation,\n originalDoc: doc,\n overrideAccess,\n path: fieldPath,\n previousSiblingDoc: siblingDoc,\n previousValue: siblingData[field.name],\n req,\n schemaPath: fieldSchemaPath,\n siblingData,\n value: siblingData[field.name],\n })\n\n if (hookedValue !== undefined) {\n siblingData[field.name] = hookedValue\n }\n }, Promise.resolve())\n }\n break\n }\n\n case 'tab': {\n let tabSiblingData\n let tabSiblingDoc\n if (tabHasName(field)) {\n if (typeof siblingData[field.name] !== 'object') {\n siblingData[field.name] = {}\n }\n if (typeof siblingDoc[field.name] !== 'object') {\n siblingDoc[field.name] = {}\n }\n\n tabSiblingData = siblingData[field.name] as Record<string, unknown>\n tabSiblingDoc = siblingDoc[field.name] as Record<string, unknown>\n } else {\n tabSiblingData = siblingData\n tabSiblingDoc = siblingDoc\n }\n\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n fields: field.fields,\n global,\n operation,\n overrideAccess,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData: tabSiblingData,\n siblingDoc: tabSiblingDoc,\n })\n\n break\n }\n\n case 'tabs': {\n await traverseFields({\n id,\n collection,\n context,\n data,\n doc,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n global,\n operation,\n overrideAccess,\n path: fieldPath,\n req,\n schemaPath: fieldSchemaPath,\n siblingData,\n siblingDoc,\n })\n\n break\n }\n\n default: {\n break\n }\n }\n}\n"],"names":["MissingEditorProp","fieldAffectsData","tabHasName","valueIsValueWithRelation","getDefaultValue","getFieldPaths","cloneDataFromOriginalDoc","getExistingRowDoc","traverseFields","promise","id","collection","context","data","doc","field","fieldIndex","global","operation","overrideAccess","parentPath","parentSchemaPath","req","siblingData","siblingDoc","path","_fieldPath","schemaPath","_fieldSchemaPath","index","parentIndexPath","join","fieldPath","split","fieldSchemaPath","name","type","value","parseFloat","toString","trimmed","trim","length","Array","isArray","map","coordinate","i","hasMany","relationTo","forEach","relatedDoc","relatedCollection","payload","config","collections","find","slug","fields","relationshipIDField","collectionField","richTextJSON","JSON","parse","hooks","beforeValidate","reduce","priorHook","currentHook","hookedValue","originalDoc","previousSiblingDoc","previousValue","undefined","Promise","resolve","access","result","defaultValue","locale","user","rows","promises","row","push","all","rowSiblingDoc","blockTypeToMatch","blockType","block","blocks","groupData","groupDoc","editor","Error","tabSiblingData","tabSiblingDoc","tabs","tab"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validations.d.ts","sourceRoot":"","sources":["../../src/fields/validations.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"validations.d.ts","sourceRoot":"","sources":["../../src/fields/validations.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,aAAa,EACb,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,aAAa,EACb,WAAW,EACX,aAAa,EACb,SAAS,EACT,WAAW,EACX,QAAQ,EACT,MAAM,mBAAmB,CAAA;AAK1B,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;AAE/E,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;AAErF,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;AAErF,eAAO,MAAM,IAAI,EAAE,mBA0DlB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;AAEnF,eAAO,MAAM,QAAQ,EAAE,uBAkCtB,CAAA;AAED,MAAM,MAAM,8BAA8B,GAAG,QAAQ,CACnD,MAAM,EACN,OAAO,EACP;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,EACpB,SAAS,CACV,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,8BAa7B,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,UAAU,CAAC,CAAA;AAE/F,eAAO,MAAM,KAAK,EAAE,oBA+BnB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,SAAS,CAAC,CAAA;AAE9F,eAAO,MAAM,QAAQ,EAAE,uBAyCtB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;AAEvF,eAAO,MAAM,QAAQ,EAAE,uBAiCtB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;AAE/E,eAAO,MAAM,IAAI,EAAE,mBAMlB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CACxC,MAAM,EACN,OAAO,EACP,OAAO,EACP;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CACnC,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,mBAkElB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;AAExF,eAAO,MAAM,QAAQ,EAAE,uBAMtB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;AAE7E,eAAO,MAAM,IAAI,EAAE,mBAclB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;AAEvF,eAAO,MAAM,QAAQ,EAAE,uBAWtB,CAAA;AAkCD,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;AAE9F,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;AAEzF,MAAM,MAAM,2BAA2B,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;AAEzF,eAAO,MAAM,MAAM,EAAE,qBAwCpB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;AAEpF,eAAO,MAAM,KAAK,EAAE,oBAEnB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;AAEpF,eAAO,MAAM,MAAM,EAAE,qBAKpB,CAAA;AAsID,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;AAEpF,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;AAE1F,MAAM,MAAM,2BAA2B,GAAG,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;AAE1F,eAAO,MAAM,MAAM,EAAE,qBA2EpB,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG,QAAQ,CAChD,iBAAiB,EACjB,OAAO,EACP,OAAO,EACP,iBAAiB,CAClB,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG,QAAQ,CACpD,qBAAqB,EACrB,OAAO,EACP,OAAO,EACP,iBAAiB,CAClB,CAAA;AAED,MAAM,MAAM,iCAAiC,GAAG,QAAQ,CACtD,uBAAuB,EACvB,OAAO,EACP,OAAO,EACP,iBAAiB,CAClB,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,2BA2E1B,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;AAE9F,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;AAEzF,MAAM,MAAM,2BAA2B,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;AAEzF,eAAO,MAAM,MAAM,EAAE,qBAmCpB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;AAElF,eAAO,MAAM,KAAK,EAAE,oBASnB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CACzC;IAAC,MAAM,GAAG,MAAM;IAAE,MAAM,GAAG,MAAM;CAAC,EAClC,OAAO,EACP,OAAO,EACP,UAAU,CACX,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,oBAkBnB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;CAmBvB,CAAA"}
|
|
@@ -552,14 +552,10 @@ export const radio = (value, { options, req: { t }, required })=>{
|
|
|
552
552
|
}
|
|
553
553
|
return required ? t('validation:required') : true;
|
|
554
554
|
};
|
|
555
|
-
export const point = (value
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
'',
|
|
560
|
-
''
|
|
561
|
-
];
|
|
562
|
-
}
|
|
555
|
+
export const point = (value = [
|
|
556
|
+
'',
|
|
557
|
+
''
|
|
558
|
+
], { req: { t }, required })=>{
|
|
563
559
|
const lng = parseFloat(String(value[0]));
|
|
564
560
|
const lat = parseFloat(String(value[1]));
|
|
565
561
|
if (required && (value[0] && value[1] && typeof lng !== 'number' && typeof lat !== 'number' || Number.isNaN(lng) || Number.isNaN(lat) || Array.isArray(value) && value.length !== 2)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/fields/validations.ts"],"sourcesContent":["import Ajv from 'ajv'\nimport ObjectIdImport from 'bson-objectid'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\nimport type { RichTextAdapter } from '../admin/types.js'\nimport type { CollectionSlug } from '../index.js'\nimport type { Where } from '../types/index.js'\nimport type {\n ArrayField,\n BlocksField,\n CheckboxField,\n CodeField,\n DateField,\n EmailField,\n JSONField,\n NumberField,\n PointField,\n RadioField,\n RelationshipField,\n RelationshipValue,\n RelationshipValueMany,\n RelationshipValueSingle,\n RichTextField,\n SelectField,\n TextareaField,\n TextField,\n UploadField,\n Validate,\n} from './config/types.js'\n\nimport { isNumber } from '../utilities/isNumber.js'\nimport { isValidID } from '../utilities/isValidID.js'\n\nexport type TextFieldValidation = Validate<string, unknown, unknown, TextField>\n\nexport type TextFieldManyValidation = Validate<string[], unknown, unknown, TextField>\n\nexport type TextFieldSingleValidation = Validate<string, unknown, unknown, TextField>\n\nexport const text: TextFieldValidation = (\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) {\n return true\n }\n }\n\n if (hasMany === true) {\n const lengthValidationResult = validateArrayLength(value, { maxRows, minRows, required, t })\n if (typeof lengthValidationResult === 'string') {\n return lengthValidationResult\n }\n }\n\n if (typeof config?.defaultMaxTextLength === 'number') {\n maxLength = config.defaultMaxTextLength\n }\n if (typeof fieldMaxLength === 'number') {\n maxLength = fieldMaxLength\n }\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('general:value'), maxLength, stringValue })\n }\n\n if (typeof minLength === 'number' && length < minLength) {\n return t('validation:longerThanMin', { label: t('general: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 type PasswordFieldValidation = Validate<string, unknown, unknown, TextField>\n\nexport const password: PasswordFieldValidation = (\n value,\n {\n maxLength: fieldMaxLength,\n minLength = 3,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (typeof config?.defaultMaxTextLength === 'number') {\n maxLength = config.defaultMaxTextLength\n }\n if (typeof fieldMaxLength === 'number') {\n maxLength = fieldMaxLength\n }\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 type ConfirmPasswordFieldValidation = Validate<\n string,\n unknown,\n { password: string },\n TextField\n>\n\nexport const confirmPassword: ConfirmPasswordFieldValidation = (\n value,\n { req: { t }, required, siblingData },\n) => {\n if (required && !value) {\n return t('validation:required')\n }\n\n if (value && value !== siblingData.password) {\n return t('fields:passwordsDoNotMatch')\n }\n\n return true\n}\n\nexport type EmailFieldValidation = Validate<string, unknown, { username?: string }, EmailField>\n\nexport const email: EmailFieldValidation = (\n value,\n {\n collectionSlug,\n req: {\n payload: { config },\n t,\n },\n required,\n siblingData,\n },\n) => {\n if (collectionSlug) {\n const collection = config.collections.find(({ slug }) => slug === collectionSlug)\n\n if (\n collection.auth.loginWithUsername &&\n !collection.auth.loginWithUsername?.requireUsername &&\n !collection.auth.loginWithUsername?.requireEmail\n ) {\n if (!value && !siblingData?.username) {\n return t('validation:required')\n }\n }\n }\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 type UsernameFieldValidation = Validate<string, unknown, { email?: string }, TextField>\n\nexport const username: UsernameFieldValidation = (\n value,\n {\n collectionSlug,\n req: {\n payload: { config },\n t,\n },\n required,\n siblingData,\n },\n) => {\n let maxLength: number\n\n if (collectionSlug) {\n const collection = config.collections.find(({ slug }) => slug === collectionSlug)\n\n if (\n collection.auth.loginWithUsername &&\n !collection.auth.loginWithUsername?.requireUsername &&\n !collection.auth.loginWithUsername?.requireEmail\n ) {\n if (!value && !siblingData?.email) {\n return t('validation:required')\n }\n }\n }\n\n if (typeof config?.defaultMaxTextLength === 'number') {\n maxLength = config.defaultMaxTextLength\n }\n\n if (value && maxLength && value.length > maxLength) {\n return t('validation:shorterThanMax', { maxLength })\n }\n\n if (!value && required) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport type TextareaFieldValidation = Validate<string, unknown, unknown, TextareaField>\n\nexport const textarea: TextareaFieldValidation = (\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') {\n maxLength = config.defaultMaxTextLength\n }\n if (typeof fieldMaxLength === 'number') {\n 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 type CodeFieldValidation = Validate<string, unknown, unknown, CodeField>\n\nexport const code: CodeFieldValidation = (value, { req: { t }, required }) => {\n if (required && value === undefined) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport type JSONFieldValidation = Validate<\n string,\n unknown,\n unknown,\n { jsonError?: string } & JSONField\n>\n\nexport const json: JSONFieldValidation = 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) {\n return schema\n }\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 type CheckboxFieldValidation = Validate<boolean, unknown, unknown, CheckboxField>\n\nexport const checkbox: CheckboxFieldValidation = (value, { req: { t }, required }) => {\n if ((value && typeof value !== 'boolean') || (required && typeof value !== 'boolean')) {\n return t('validation:trueOrFalse')\n }\n\n return true\n}\n\nexport type DateFieldValidation = Validate<Date, unknown, unknown, DateField>\n\nexport const date: DateFieldValidation = (value, { req: { t }, required }) => {\n if (value && !isNaN(Date.parse(value.toString()))) {\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 type RichTextFieldValidation = Validate<object, unknown, unknown, RichTextField>\n\nexport const richText: RichTextFieldValidation = async (value, options) => {\n if (!options?.editor) {\n throw new Error('richText field has no editor property.')\n }\n if (typeof options?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\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) {\n return true\n }\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 type NumberFieldValidation = Validate<number | number[], unknown, unknown, NumberField>\n\nexport type NumberFieldManyValidation = Validate<number[], unknown, unknown, NumberField>\n\nexport type NumberFieldSingleValidation = Validate<number, unknown, unknown, NumberField>\n\nexport const number: NumberFieldValidation = (\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') {\n return lengthValidationResult\n }\n }\n\n if (!value && !isNumber(value)) {\n // if no value is present, validate based on required\n if (required) {\n return t('validation:required')\n }\n if (!required) {\n return true\n }\n }\n\n const numbersToValidate: number[] = Array.isArray(value) ? value : [value]\n\n for (const number of numbersToValidate) {\n if (!isNumber(number)) {\n return t('validation:enterNumber')\n }\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 type ArrayFieldValidation = Validate<unknown[], unknown, unknown, ArrayField>\n\nexport const array: ArrayFieldValidation = (value, { maxRows, minRows, req: { t }, required }) => {\n return validateArrayLength(value, { maxRows, minRows, required, t })\n}\n\nexport type BlocksFieldValidation = Validate<unknown, unknown, unknown, BlocksField>\n\nexport const blocks: BlocksFieldValidation = (\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: CollectionSlug[] = []\n const collections = !Array.isArray(relationTo) ? [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') {\n if (val?.value) {\n valueIDs.push(val.value)\n } else if (ObjectId.isValid(val)) {\n valueIDs.push(new ObjectId(val).toHexString())\n }\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) {\n findWhere.and.push(optionFilter)\n }\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 if (typeof val === 'object' && ObjectId.isValid(val)) {\n requestedID = new ObjectId(val).toHexString()\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]) {\n return true\n }\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 type UploadFieldValidation = Validate<unknown, unknown, unknown, UploadField>\n\nexport type UploadFieldManyValidation = Validate<unknown[], unknown, unknown, UploadField>\n\nexport type UploadFieldSingleValidation = Validate<unknown, unknown, unknown, UploadField>\n\nexport const upload: UploadFieldValidation = async (value, options) => {\n const {\n maxRows,\n minRows,\n relationTo,\n req: { payload, t },\n required,\n } = options\n\n if (\n ((!value && typeof value !== 'number') || (Array.isArray(value) && value.length === 0)) &&\n required\n ) {\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 || typeof val === 'number') {\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) {\n return false\n }\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 type RelationshipFieldValidation = Validate<\n RelationshipValue,\n unknown,\n unknown,\n RelationshipField\n>\n\nexport type RelationshipFieldManyValidation = Validate<\n RelationshipValueMany,\n unknown,\n unknown,\n RelationshipField\n>\n\nexport type RelationshipFieldSingleValidation = Validate<\n RelationshipValueSingle,\n unknown,\n unknown,\n RelationshipField\n>\n\nexport const relationship: RelationshipFieldValidation = async (value, options) => {\n const {\n maxRows,\n minRows,\n relationTo,\n req: { payload, t },\n required,\n } = options\n\n if (\n ((!value && typeof value !== 'number') || (Array.isArray(value) && value.length === 0)) &&\n required\n ) {\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 || typeof val === 'number') {\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) {\n return false\n }\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 type SelectFieldValidation = Validate<string | string[], unknown, unknown, SelectField>\n\nexport type SelectFieldManyValidation = Validate<string[], unknown, unknown, SelectField>\n\nexport type SelectFieldSingleValidation = Validate<string, unknown, unknown, SelectField>\n\nexport const select: SelectFieldValidation = (\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 type RadioFieldValidation = Validate<unknown, unknown, unknown, RadioField>\n\nexport const radio: RadioFieldValidation = (value, { options, req: { t }, required }) => {\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 type PointFieldValidation = Validate<\n [number | string, number | string],\n unknown,\n unknown,\n PointField\n>\n\nexport const point: PointFieldValidation = (value, { req: { t }, required }) => {\n // Allow to pass null to clear the field\n if (!value) {\n value = ['', '']\n }\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\n/**\n * Built-in field validations used by Payload\n *\n * These can be re-used in custom validations\n */\nexport const validations = {\n array,\n blocks,\n checkbox,\n code,\n confirmPassword,\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","ObjectIdImport","ObjectId","default","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","confirmPassword","siblingData","email","collectionSlug","collection","collections","find","slug","auth","loginWithUsername","requireUsername","requireEmail","username","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","falseCollections","values","optionFilter","valueIDs","forEach","val","push","isValid","toHexString","findWhere","and","in","result","depth","limit","pagination","where","docs","map","doc","err","logger","msg","invalidRelationships","filter","requestedID","indexOf","reduce","invalid","i","JSON","stringify","upload","idType","customIDType","db","defaultIDType","join","relationship","select","some","input","option","radio","valueMatchesOption","point","lng","String","lat","Number","validations"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/fields/validations.ts"],"sourcesContent":["import Ajv from 'ajv'\nimport ObjectIdImport from 'bson-objectid'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\nimport type { RichTextAdapter } from '../admin/types.js'\nimport type { CollectionSlug } from '../index.js'\nimport type { Where } from '../types/index.js'\nimport type {\n ArrayField,\n BlocksField,\n CheckboxField,\n CodeField,\n DateField,\n EmailField,\n JSONField,\n NumberField,\n PointField,\n RadioField,\n RelationshipField,\n RelationshipValue,\n RelationshipValueMany,\n RelationshipValueSingle,\n RichTextField,\n SelectField,\n TextareaField,\n TextField,\n UploadField,\n Validate,\n} from './config/types.js'\n\nimport { isNumber } from '../utilities/isNumber.js'\nimport { isValidID } from '../utilities/isValidID.js'\n\nexport type TextFieldValidation = Validate<string, unknown, unknown, TextField>\n\nexport type TextFieldManyValidation = Validate<string[], unknown, unknown, TextField>\n\nexport type TextFieldSingleValidation = Validate<string, unknown, unknown, TextField>\n\nexport const text: TextFieldValidation = (\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) {\n return true\n }\n }\n\n if (hasMany === true) {\n const lengthValidationResult = validateArrayLength(value, { maxRows, minRows, required, t })\n if (typeof lengthValidationResult === 'string') {\n return lengthValidationResult\n }\n }\n\n if (typeof config?.defaultMaxTextLength === 'number') {\n maxLength = config.defaultMaxTextLength\n }\n if (typeof fieldMaxLength === 'number') {\n maxLength = fieldMaxLength\n }\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('general:value'), maxLength, stringValue })\n }\n\n if (typeof minLength === 'number' && length < minLength) {\n return t('validation:longerThanMin', { label: t('general: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 type PasswordFieldValidation = Validate<string, unknown, unknown, TextField>\n\nexport const password: PasswordFieldValidation = (\n value,\n {\n maxLength: fieldMaxLength,\n minLength = 3,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (typeof config?.defaultMaxTextLength === 'number') {\n maxLength = config.defaultMaxTextLength\n }\n if (typeof fieldMaxLength === 'number') {\n maxLength = fieldMaxLength\n }\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 type ConfirmPasswordFieldValidation = Validate<\n string,\n unknown,\n { password: string },\n TextField\n>\n\nexport const confirmPassword: ConfirmPasswordFieldValidation = (\n value,\n { req: { t }, required, siblingData },\n) => {\n if (required && !value) {\n return t('validation:required')\n }\n\n if (value && value !== siblingData.password) {\n return t('fields:passwordsDoNotMatch')\n }\n\n return true\n}\n\nexport type EmailFieldValidation = Validate<string, unknown, { username?: string }, EmailField>\n\nexport const email: EmailFieldValidation = (\n value,\n {\n collectionSlug,\n req: {\n payload: { config },\n t,\n },\n required,\n siblingData,\n },\n) => {\n if (collectionSlug) {\n const collection = config.collections.find(({ slug }) => slug === collectionSlug)\n\n if (\n collection.auth.loginWithUsername &&\n !collection.auth.loginWithUsername?.requireUsername &&\n !collection.auth.loginWithUsername?.requireEmail\n ) {\n if (!value && !siblingData?.username) {\n return t('validation:required')\n }\n }\n }\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 type UsernameFieldValidation = Validate<string, unknown, { email?: string }, TextField>\n\nexport const username: UsernameFieldValidation = (\n value,\n {\n collectionSlug,\n req: {\n payload: { config },\n t,\n },\n required,\n siblingData,\n },\n) => {\n let maxLength: number\n\n if (collectionSlug) {\n const collection = config.collections.find(({ slug }) => slug === collectionSlug)\n\n if (\n collection.auth.loginWithUsername &&\n !collection.auth.loginWithUsername?.requireUsername &&\n !collection.auth.loginWithUsername?.requireEmail\n ) {\n if (!value && !siblingData?.email) {\n return t('validation:required')\n }\n }\n }\n\n if (typeof config?.defaultMaxTextLength === 'number') {\n maxLength = config.defaultMaxTextLength\n }\n\n if (value && maxLength && value.length > maxLength) {\n return t('validation:shorterThanMax', { maxLength })\n }\n\n if (!value && required) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport type TextareaFieldValidation = Validate<string, unknown, unknown, TextareaField>\n\nexport const textarea: TextareaFieldValidation = (\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') {\n maxLength = config.defaultMaxTextLength\n }\n if (typeof fieldMaxLength === 'number') {\n 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 type CodeFieldValidation = Validate<string, unknown, unknown, CodeField>\n\nexport const code: CodeFieldValidation = (value, { req: { t }, required }) => {\n if (required && value === undefined) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport type JSONFieldValidation = Validate<\n string,\n unknown,\n unknown,\n { jsonError?: string } & JSONField\n>\n\nexport const json: JSONFieldValidation = 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) {\n return schema\n }\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 type CheckboxFieldValidation = Validate<boolean, unknown, unknown, CheckboxField>\n\nexport const checkbox: CheckboxFieldValidation = (value, { req: { t }, required }) => {\n if ((value && typeof value !== 'boolean') || (required && typeof value !== 'boolean')) {\n return t('validation:trueOrFalse')\n }\n\n return true\n}\n\nexport type DateFieldValidation = Validate<Date, unknown, unknown, DateField>\n\nexport const date: DateFieldValidation = (value, { req: { t }, required }) => {\n if (value && !isNaN(Date.parse(value.toString()))) {\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 type RichTextFieldValidation = Validate<object, unknown, unknown, RichTextField>\n\nexport const richText: RichTextFieldValidation = async (value, options) => {\n if (!options?.editor) {\n throw new Error('richText field has no editor property.')\n }\n if (typeof options?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\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) {\n return true\n }\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 type NumberFieldValidation = Validate<number | number[], unknown, unknown, NumberField>\n\nexport type NumberFieldManyValidation = Validate<number[], unknown, unknown, NumberField>\n\nexport type NumberFieldSingleValidation = Validate<number, unknown, unknown, NumberField>\n\nexport const number: NumberFieldValidation = (\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') {\n return lengthValidationResult\n }\n }\n\n if (!value && !isNumber(value)) {\n // if no value is present, validate based on required\n if (required) {\n return t('validation:required')\n }\n if (!required) {\n return true\n }\n }\n\n const numbersToValidate: number[] = Array.isArray(value) ? value : [value]\n\n for (const number of numbersToValidate) {\n if (!isNumber(number)) {\n return t('validation:enterNumber')\n }\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 type ArrayFieldValidation = Validate<unknown[], unknown, unknown, ArrayField>\n\nexport const array: ArrayFieldValidation = (value, { maxRows, minRows, req: { t }, required }) => {\n return validateArrayLength(value, { maxRows, minRows, required, t })\n}\n\nexport type BlocksFieldValidation = Validate<unknown, unknown, unknown, BlocksField>\n\nexport const blocks: BlocksFieldValidation = (\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: CollectionSlug[] = []\n const collections = !Array.isArray(relationTo) ? [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') {\n if (val?.value) {\n valueIDs.push(val.value)\n } else if (ObjectId.isValid(val)) {\n valueIDs.push(new ObjectId(val).toHexString())\n }\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) {\n findWhere.and.push(optionFilter)\n }\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 if (typeof val === 'object' && ObjectId.isValid(val)) {\n requestedID = new ObjectId(val).toHexString()\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]) {\n return true\n }\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 type UploadFieldValidation = Validate<unknown, unknown, unknown, UploadField>\n\nexport type UploadFieldManyValidation = Validate<unknown[], unknown, unknown, UploadField>\n\nexport type UploadFieldSingleValidation = Validate<unknown, unknown, unknown, UploadField>\n\nexport const upload: UploadFieldValidation = async (value, options) => {\n const {\n maxRows,\n minRows,\n relationTo,\n req: { payload, t },\n required,\n } = options\n\n if (\n ((!value && typeof value !== 'number') || (Array.isArray(value) && value.length === 0)) &&\n required\n ) {\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 || typeof val === 'number') {\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) {\n return false\n }\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 type RelationshipFieldValidation = Validate<\n RelationshipValue,\n unknown,\n unknown,\n RelationshipField\n>\n\nexport type RelationshipFieldManyValidation = Validate<\n RelationshipValueMany,\n unknown,\n unknown,\n RelationshipField\n>\n\nexport type RelationshipFieldSingleValidation = Validate<\n RelationshipValueSingle,\n unknown,\n unknown,\n RelationshipField\n>\n\nexport const relationship: RelationshipFieldValidation = async (value, options) => {\n const {\n maxRows,\n minRows,\n relationTo,\n req: { payload, t },\n required,\n } = options\n\n if (\n ((!value && typeof value !== 'number') || (Array.isArray(value) && value.length === 0)) &&\n required\n ) {\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 || typeof val === 'number') {\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) {\n return false\n }\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 type SelectFieldValidation = Validate<string | string[], unknown, unknown, SelectField>\n\nexport type SelectFieldManyValidation = Validate<string[], unknown, unknown, SelectField>\n\nexport type SelectFieldSingleValidation = Validate<string, unknown, unknown, SelectField>\n\nexport const select: SelectFieldValidation = (\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 type RadioFieldValidation = Validate<unknown, unknown, unknown, RadioField>\n\nexport const radio: RadioFieldValidation = (value, { options, req: { t }, required }) => {\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 type PointFieldValidation = Validate<\n [number | string, number | string],\n unknown,\n unknown,\n PointField\n>\n\nexport const point: PointFieldValidation = (value = ['', ''], { req: { t }, required }) => {\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\n/**\n * Built-in field validations used by Payload\n *\n * These can be re-used in custom validations\n */\nexport const validations = {\n array,\n blocks,\n checkbox,\n code,\n confirmPassword,\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","ObjectIdImport","ObjectId","default","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","confirmPassword","siblingData","email","collectionSlug","collection","collections","find","slug","auth","loginWithUsername","requireUsername","requireEmail","username","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","falseCollections","values","optionFilter","valueIDs","forEach","val","push","isValid","toHexString","findWhere","and","in","result","depth","limit","pagination","where","docs","map","doc","err","logger","msg","invalidRelationships","filter","requestedID","indexOf","reduce","invalid","i","JSON","stringify","upload","idType","customIDType","db","defaultIDType","join","relationship","select","some","input","option","radio","valueMatchesOption","point","lng","String","lat","Number","validations"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -444,7 +444,7 @@ export { sanitizeJoinParams } from './utilities/sanitizeJoinParams.js';
|
|
|
444
444
|
export { sanitizePopulateParam } from './utilities/sanitizePopulateParam.js';
|
|
445
445
|
export { sanitizeSelectParam } from './utilities/sanitizeSelectParam.js';
|
|
446
446
|
export { traverseFields } from './utilities/traverseFields.js';
|
|
447
|
-
export type { TraverseFieldsCallback
|
|
447
|
+
export type { TraverseFieldsCallback } from './utilities/traverseFields.js';
|
|
448
448
|
export { buildVersionCollectionFields } from './versions/buildCollectionFields.js';
|
|
449
449
|
export { buildVersionGlobalFields } from './versions/buildGlobalFields.js';
|
|
450
450
|
export { versionDefaults } from './versions/defaults.js';
|
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,OAAO,IAAI,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAQ7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,KAAK,EAAE,MAAM,IAAI,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AACzF,OAAO,KAAK,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,2CAA2C,CAAA;AACjG,OAAO,KAAK,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC/E,OAAO,KAAK,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,0CAA0C,CAAA;AAC/F,OAAO,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mCAAmC,CAAA;AACjF,OAAO,KAAK,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,wCAAwC,CAAA;AAC3F,OAAO,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,MAAM,IAAI,mBAAmB,EAAE,MAAM,oCAAoC,CAAA;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,KAAK,EACV,mBAAmB,EACnB,UAAU,EACV,sBAAsB,EACtB,wBAAwB,EACxB,UAAU,EACX,MAAM,+BAA+B,CAAA;AACtC,OAAO,KAAK,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yCAAyC,CAAA;AACtF,OAAO,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,0CAA0C,CAAA;AACxF,OAAO,KAAK,EACV,WAAW,IAAI,iBAAiB,EAChC,WAAW,IAAI,iBAAiB,EAEjC,MAAM,0CAA0C,CAAA;AACjD,OAAO,KAAK,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,6CAA6C,CAAA;AAC9F,OAAO,KAAK,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,wCAAwC,CAAA;AACpF,OAAO,KAAK,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,4CAA4C,CAAA;AAC5F,OAAO,KAAK,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,mDAAmD,CAAA;AAC1G,OAAO,KAAK,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,gDAAgD,CAAA;AACpG,OAAO,KAAK,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,kDAAkD,CAAA;AACxG,OAAO,KAAK,EACV,WAAW,IAAI,iBAAiB,EAChC,WAAW,IAAI,iBAAiB,EAEjC,MAAM,0CAA0C,CAAA;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC7E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAClG,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAA;AACnG,OAAO,KAAK,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AACzF,OAAO,KAAK,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,+CAA+C,CAAA;AAC5G,OAAO,KAAK,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,4CAA4C,CAAA;AACtG,OAAO,KAAK,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,8CAA8C,CAAA;AAC1G,OAAO,KAAK,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,sCAAsC,CAAA;AAC1F,OAAO,KAAK,EACV,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,6BAA6B,EAC7B,yBAAyB,EAC1B,MAAM,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAE1D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAGnD,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAWpF,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,mBAAmB,kBAAkB,CAAA;AAErC,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE;QACX,CAAC,IAAI,EAAE,MAAM,GAAG;YACd,cAAc,EAAE;gBACd,KAAK,EAAE,MAAM,CAAA;aACd,CAAA;YACD,KAAK,EAAE;gBACL,KAAK,EAAE,MAAM,CAAA;gBACb,QAAQ,EAAE,MAAM,CAAA;aACjB,CAAA;YACD,iBAAiB,EAAE;gBACjB,KAAK,EAAE,MAAM,CAAA;gBACb,QAAQ,EAAE,MAAM,CAAA;aACjB,CAAA;YACD,MAAM,EAAE;gBACN,KAAK,EAAE,MAAM,CAAA;aACd,CAAA;SACF,CAAA;KACF,CAAA;IAED,uBAAuB,EAAE;QACvB,CAAC,IAAI,EAAE,MAAM,GAAG;YACd,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAAA;SACrC,CAAA;KACF,CAAA;IACD,wBAAwB,EAAE;QACxB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;KAC3B,CAAA;IAED,kBAAkB,EAAE;QAClB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,CAAA;KACxC,CAAA;IACD,SAAS,EAAE;QACT,aAAa,EAAE,MAAM,GAAG,MAAM,CAAA;KAC/B,CAAA;IACD,oBAAoB,EAAE;QACpB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;KAC3B,CAAA;IAED,cAAc,EAAE;QACd,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;KAC3B,CAAA;IACD,WAAW,EAAE;QACX,KAAK,EAAE;YACL,CAAC,IAAI,EAAE,MAAM,GAAG;gBACd,KAAK,CAAC,EAAE,UAAU,CAAA;gBAClB,MAAM,CAAC,EAAE,UAAU,CAAA;aACpB,CAAA;SACF,CAAA;QACD,SAAS,EAAE;YACT,CAAC,IAAI,EAAE,MAAM,GAAG;gBACd,KAAK,EAAE,UAAU,CAAA;aAClB,CAAA;SACF,CAAA;KACF,CAAA;IACD,aAAa,EAAE,IAAI,GAAG,MAAM,CAAA;IAC5B,WAAW,EAAE,IAAI,CAAA;CAClB;AAGD,KAAK,qBAAqB,CAAC,CAAC,IAAI,aAAa,SAAS,MAAM,CAAC,GACzD,CAAC,CAAC,aAAa,CAAC,GAEhB,CAAC,CAAC,oBAAoB,CAAC,CAAA;AAE3B,KAAK,2BAA2B,CAAC,CAAC,IAAI,mBAAmB,SAAS,MAAM,CAAC,GACrE,CAAC,CAAC,mBAAmB,CAAC,GAEtB,CAAC,CAAC,0BAA0B,CAAC,CAAA;AAEjC,KAAK,0BAA0B,CAAC,CAAC,IAAI,kBAAkB,SAAS,MAAM,CAAC,GACnE,CAAC,CAAC,kBAAkB,CAAC,GAErB,CAAC,CAAC,yBAAyB,CAAC,CAAA;AAEhC,KAAK,iBAAiB,CAAC,CAAC,IAAI,SAAS,SAAS,MAAM,CAAC,GACjD,CAAC,CAAC,SAAS,CAAC,GAEZ,CAAC,CAAC,gBAAgB,CAAC,CAAA;AAEvB,KAAK,uBAAuB,CAAC,CAAC,IAAI,eAAe,SAAS,MAAM,CAAC,GAC7D,CAAC,CAAC,eAAe,CAAC,GAElB,CAAC,CAAC,sBAAsB,CAAC,CAAA;AAG7B,MAAM,MAAM,eAAe,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAA;AAEnE,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;KAC1C,CAAC,IAAI,MAAM,eAAe,GACvB,UAAU,GACV,UAAU,GACV,UAAU,GACV,KAAK,SAAS,MAAM,eAAe,CAAC,CAAC,CAAC,GACtC,eAAe,CAAC,CAAC,CAAC,GAClB,KAAK;CACV,CAAC,CAAA;AAEF,MAAM,MAAM,qBAAqB,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAA;AAE/E,MAAM,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,cAAc,CAAC,CAAA;AAE7E,MAAM,MAAM,WAAW,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAA;AAE3D,MAAM,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAA;AAGvE,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAA;AAGrD,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,eAAe,CAAC,CAAA;AAEzD,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC,qBAAqB,CAAC,CAAA;AAErE,KAAK,aAAa,CAAC,CAAC,IAAI,IAAI,SAAS,MAAM,CAAC,GACxC,CAAC,CAAC,IAAI,CAAC,GAEP,CAAC,CAAC,WAAW,CAAC,CAAA;AAElB,MAAM,MAAM,qBAAqB,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC,eAAe,CAAC,CAAA;AAClF,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,CAAA;AAKjD,KAAK,iBAAiB,CAAC,CAAC,IAAI,QAAQ,SAAS,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAA;AAEvF,KAAK,eAAe,CAAC,CAAC,IAAI,MAAM,SAAS,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,CAAA;AAE/E,MAAM,MAAM,WAAW,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAA;AAC3D,MAAM,MAAM,SAAS,GAAG,eAAe,CAAC,cAAc,CAAC,CAAA;AAGvD,KAAK,yBAAyB,CAAC,CAAC,IAAI,MAAM,SAAS,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,CAAA;AACzF,MAAM,MAAM,mBAAmB,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAA;AAG3E,KAAK,wBAAwB,CAAC,CAAC,IAAI,MAAM,SAAS,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,CAAA;AACxF,MAAM,MAAM,SAAS,GAAG,wBAAwB,CAAC,cAAc,CAAC,CAAA;AAOhE;;GAEG;AACH,qBAAa,WAAW;IACtB;;;;OAIG;IACH,IAAI,YAAmB,QAAQ,6DAG9B;IAED,cAAc,EAAE,YAAY,EAAE,CAAA;IAE9B,WAAW,EAAE,MAAM,CAAC,cAAc,EAAE,UAAU,CAAC,CAAK;IAEpD,MAAM,EAAE,eAAe,CAAA;IACvB;;;;OAIG;IACH,KAAK,GAAU,CAAC,SAAS,cAAc,WAC5B,YAAY,CAAC,CAAC,CAAC,KACvB,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAGhC;IAED;;;;OAIG;IACH,mBAAmB,GAAU,CAAC,SAAS,UAAU,WACtC,0BAA0B,CAAC,CAAC,CAAC,KACrC,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAGhC;IAED;;;;OAIG;IACH,aAAa,GAAU,CAAC,SAAS,cAAc,WACpC,YAAY,CAAC,CAAC,CAAC,KACvB,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAGhC;IAED;;;;OAIG;IACH,MAAM,GAAU,KAAK,SAAS,cAAc,EAAE,OAAO,SAAS,wBAAwB,CAAC,KAAK,CAAC,WAClF,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,KACrC,OAAO,CAAC,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAGxD;IAED,EAAE,EAAE,eAAe,CAAA;IACnB,OAAO,iBAAU;IAEjB,SAAS,GAAU,KAAK,SAAS,cAAc,EAAE,OAAO,SAAS,wBAAwB,CAAC,KAAK,CAAC,WACrF,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,KACxC,OAAO,CAAC,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAGxD;IAED,KAAK,EAAE,uBAAuB,CAAA;IAE9B,OAAO,iBAAU;IAKjB,UAAU,EAAE,CAAC,IAAI,EAAE;QACjB,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;QACxB,GAAG,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACrC,MAAM,EAAE,eAAe,CAAA;KACxB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAElB;;;;OAIG;IACH,IAAI,GAAU,KAAK,SAAS,cAAc,EAAE,OAAO,SAAS,wBAAwB,CAAC,KAAK,CAAC,WAChF,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,KACnC,OAAO,CAAC,aAAa,CAAC,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAGvE;IAED;;;;OAIG;IACH,QAAQ,GACN,KAAK,SAAS,cAAc,EAC5B,cAAc,SAAS,OAAO,EAC9B,OAAO,SAAS,wBAAwB,CAAC,KAAK,CAAC,WAEtC,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,KACvD,OAAO,CAAC,kBAAkB,CAAC,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC,CAG5F;IAED,UAAU,GAAU,KAAK,SAAS,UAAU,EAAE,OAAO,SAAS,oBAAoB,CAAC,KAAK,CAAC,WAC9E,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,KACzC,OAAO,CAAC,yBAAyB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAGpD;IAED;;;;OAIG;IACH,qBAAqB,GAAU,KAAK,SAAS,UAAU,WAC5C,4BAA4B,CAAC,KAAK,CAAC,KAC3C,OAAO,CAAC,eAAe,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAGrD;IAED;;;;OAIG;IACH,kBAAkB,GAAU,KAAK,SAAS,UAAU,WACzC,yBAAyB,CAAC,KAAK,CAAC,KACxC,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAGpE;IAED;;;;OAIG;IACH,eAAe,GAAU,KAAK,SAAS,cAAc,WAC1C,sBAAsB,CAAC,KAAK,CAAC,KACrC,OAAO,CAAC,eAAe,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAGzD;IAED;;;;OAIG;IACH,YAAY,GAAU,KAAK,SAAS,cAAc,WACvC,mBAAmB,CAAC,KAAK,CAAC,KAClC,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAGxE;IAED,cAAc,GAAU,KAAK,SAAS,cAAc,WACzC,qBAAqB,CAAC,KAAK,CAAC,KACpC,OAAO,CAAC,oBAAoB,CAAC,CAG/B;IAED,WAAW,QAAO,MAAM,CAAyD;IAEjF,SAAS,QAAO,MAAM,CAAuD;IAE7E,OAAO,EAAE,OAAO,CAAA;IAEhB,SAAS,EAAE,SAAS,CAAA;IAEpB,IAAI;kDApZW,kBAAmB,SAAS,sBAAsB;mBAC/C,kBAAmB,qBAAqB;iBAAyB,CAAC;eAC5E,CAAC;oDAC6D,kBAAmB;qBAC7C,CAAA;oBAAyB,CAAC;;mBACtC,sBAAuB,qBAAqB;iBAClE,CAAA;eAAsB,CAAC;gBAA+B,CAAC;qBAC7C,CAAC;wDAA4D,sBACjE;wDAKhB,sBAAqB;;iBAoBV,CAAC;0BAA2B,CAAC;iBAC9B,CAAA;eAAgB,CAAC;iBAA0B,CAAC;;;;0BAKa,CAAC;eAAiB,CAAC;;MA6W1D;IAE5B,MAAM,EAAE,MAAM,CAAA;IAEd,KAAK,GAAU,KAAK,SAAS,cAAc,WAChC,YAAY,CAAC,KAAK,CAAC,KAC3B,OAAO,CAAC;QAAE,IAAI,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAA;KAAE,GAAG,WAAW,CAAC,CAGhE;IAED,aAAa,GAAU,KAAK,SAAS,cAAc,WACxC,oBAAoB,CAAC,KAAK,CAAC,KACnC,OAAO,CAAC,mBAAmB,CAAC,CAG9B;IAED;;;;OAIG;IACH,oBAAoB,GAAU,KAAK,SAAS,UAAU,WAC3C,2BAA2B,CAAC,KAAK,CAAC,KAC1C,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAGpC;IAED;;;;OAIG;IACH,cAAc,GAAU,KAAK,SAAS,cAAc,WACzC,qBAAqB,CAAC,KAAK,CAAC,KACpC,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAGxC;IAED,MAAM,EAAE,aAAa,CAAA;IAErB,MAAM,EAAE,MAAM,CAAA;IAEd,SAAS,EAAE,uBAAuB,CAAC,WAAW,CAAC,CAAA;IAE/C,KAAK,EAAE;QACL,UAAU,EAAE,GAAG,CAAA;QACf,eAAe,EAAE,GAAG,CAAA;QACpB,UAAU,EAAE,GAAG,CAAA;QACf,uBAAuB,CAAC,EAAE,GAAG,CAAA;QAC7B,UAAU,EAAE,GAAG,CAAA;QACf,eAAe,CAAC,EAAE,GAAG,CAAA;QACrB,QAAQ,EAAE,GAAG,CAAA;KACd,CAAA;IAED,MAAM,GAAU,KAAK,SAAS,cAAc,WACjC,aAAa,CAAC,KAAK,CAAC,KAC5B,OAAO,CAAC,OAAO,CAAC,CAGlB;IAED,YAAY,GAAU,KAAK,SAAS,UAAU,EAAE,OAAO,SAAS,oBAAoB,CAAC,KAAK,CAAC,WAChF,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,KAC3C,OAAO,CAAC,yBAAyB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAGpD;IAED,eAAe,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,cAAc,EAAE,CAAA;IAE/D,WAAW,GAAU,KAAK,SAAS,cAAc,WACtC,kBAAkB,CAAC,KAAK,CAAC,KACjC,OAAO,CAAC,OAAO,CAAC,CAGlB;IAED,QAAQ,EAAE;QACR,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAA;KACpB,CAAK;IAEA,GAAG,CAAC,EACR,IAAI,EACJ,GAAG,EACH,GAAG,GACJ,EAAE;QACD,IAAI,EAAE,MAAM,EAAE,CAAA;QACd,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,GAAG,CAAC,EAAE,OAAO,CAAA;KACd,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAiB7B;;;;OAIG;IACH,MAAM,CAAC,KAAK,SAAS,cAAc,EAAE,OAAO,SAAS,wBAAwB,CAAC,KAAK,CAAC,EAClF,OAAO,EAAE,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,GACzC,OAAO,CAAC,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAEzD,MAAM,CAAC,KAAK,SAAS,cAAc,EAAE,OAAO,SAAS,wBAAwB,CAAC,KAAK,CAAC,EAClF,OAAO,EAAE,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,GACzC,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAS/C;;;OAGG;IACG,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAyJlD,MAAM,CAAC,KAAK,SAAS,cAAc,EAAE,OAAO,SAAS,wBAAwB,CAAC,KAAK,CAAC,EAClF,OAAO,EAAE,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,GACzC,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAE/C;;;;OAIG;IACH,MAAM,CAAC,KAAK,SAAS,cAAc,EAAE,OAAO,SAAS,wBAAwB,CAAC,KAAK,CAAC,EAClF,OAAO,EAAE,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,GACzC,OAAO,CAAC,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;CAQ1D;AAED,QAAA,MAAM,WAAW,aAAoB,CAAA;AAErC,eAAe,WAAW,CAAA;AAa1B,eAAO,MAAM,MAAM,WACT,eAAe,WACd,OAAO,4BACU,OAAO,KAChC,OAAO,CAAC,IAAI,CAgDd,CAAA;AAED,eAAO,MAAM,UAAU,YACZ,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,WAAW,CAAC,KACjD,OAAO,CAAC,OAAO,CA6EjB,CAAA;AAED,KAAK,OAAO,GAAG,WAAW,CAAA;AAE1B,UAAU,cAAc;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAGD,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;CAAG;AAC/D,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,CAAA;AACvC,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAA;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAA;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAA;AAEvE,YAAY,EACV,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,6BAA6B,EAC7B,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,oBAAoB,EACpB,IAAI,EACJ,YAAY,GACb,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,YAAY,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAEjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAA;AAEpF,OAAO,EACL,KAAK,sBAAsB,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,KAAK,mCAAmC,EACxC,KAAK,8BAA8B,EACnC,KAAK,0BAA0B,GAChC,MAAM,gCAAgC,CAAA;AAEvC,YAAY,EACV,eAAe,IAAI,yBAAyB,EAC5C,eAAe,IAAI,yBAAyB,EAC5C,cAAc,IAAI,wBAAwB,EAC1C,uBAAuB,IAAI,iCAAiC,EAC5D,cAAc,IAAI,wBAAwB,EAC1C,eAAe,IAAI,yBAAyB,EAC5C,WAAW,IAAI,qBAAqB,EACpC,kBAAkB,IAAI,4BAA4B,EAClD,aAAa,IAAI,uBAAuB,EACxC,gBAAgB,IAAI,0BAA0B,EAC9C,cAAc,EACd,gCAAgC,EAChC,cAAc,EACd,gBAAgB,IAAI,0BAA0B,EAC9C,gBAAgB,IAAI,0BAA0B,EAC9C,eAAe,IAAI,yBAAyB,EAC5C,mBAAmB,IAAI,6BAA6B,EACpD,cAAc,IAAI,wBAAwB,EAC1C,kBAAkB,IAAI,4BAA4B,EAClD,mBAAmB,EACnB,UAAU,EACV,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,MAAM,IAAI,gBAAgB,EAC1B,WAAW,IAAI,qBAAqB,EACpC,0BAA0B,EAC1B,8BAA8B,EAC9B,yBAAyB,EACzB,cAAc,EACd,UAAU,EACV,kBAAkB,GACnB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAA;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAA;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAA;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EACL,KAAK,YAAY,EACjB,kBAAkB,EAClB,+BAA+B,EAC/B,0BAA0B,GAC3B,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,mBAAmB,mBAAmB,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAA;AAC/E,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,uCAAuC,CAAA;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAA;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAA;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAA;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAA;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAA;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAA;AAClF,mBAAmB,qCAAqC,CAAA;AACxD,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAA;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAA;AACxF,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,OAAO,EACP,KAAK,EACL,SAAS,EACT,mBAAmB,EACnB,aAAa,EACb,MAAM,EACN,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,qBAAqB,IAAI,kBAAkB,EAC3C,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,SAAS,EACT,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,OAAO,EACP,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,IAAI,EACJ,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,aAAa,EACb,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,SAAS,EACT,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,MAAM,GACP,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,YAAY,IAAI,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAC7F,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,SAAS,EACT,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,MAAM,EACN,UAAU,EACV,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,EACxB,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,UAAU,EACV,eAAe,EACf,mBAAmB,GACpB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAChE,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,8BAA8B,EACnC,KAAK,yBAAyB,GAC/B,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,YAAY,EACV,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,EACL,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,SAAS,EACT,SAAS,EACT,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,KAAK,EACL,WAAW,EACX,kBAAkB,EAClB,wBAAwB,EACxB,SAAS,EACT,eAAe,EACf,SAAS,EACT,aAAa,EACb,uBAAuB,EACvB,6BAA6B,EAC7B,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,EACxB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,SAAS,EACT,eAAe,EACf,SAAS,EACT,eAAe,EACf,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,sBAAsB,EACtB,4BAA4B,EAC5B,WAAW,EACX,iBAAiB,EACjB,MAAM,EACN,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,4BAA4B,EAC5B,kCAAkC,EAClC,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,QAAQ,EACR,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,uBAAuB,EACvB,6BAA6B,EAC7B,GAAG,EACH,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,SAAS,EACT,eAAe,EACf,OAAO,EACP,aAAa,EACb,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,QAAQ,EACR,eAAe,EACf,iBAAiB,GAClB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,cAAc,IAAI,yBAAyB,EAAE,MAAM,8CAA8C,CAAA;AAC1G,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,qCAAqC,CAAA;AACjF,OAAO,EAAE,cAAc,IAAI,uBAAuB,EAAE,MAAM,4CAA4C,CAAA;AACtG,OAAO,EAAE,cAAc,IAAI,0BAA0B,EAAE,MAAM,+CAA+C,CAAA;AAC5G,OAAO,EAAE,cAAc,IAAI,4BAA4B,EAAE,MAAM,iDAAiD,CAAA;AAChH,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,8BAA8B,EAC9B,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,2BAA2B,EAC3B,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,+BAA+B,EAC/B,iCAAiC,EACjC,2BAA2B,EAC3B,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,mBAAmB,EACnB,yBAAyB,EACzB,2BAA2B,EAC3B,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,KAAK,kBAAkB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,KAAK,+BAA+B,EACpC,KAAK,0BAA0B,GAChC,MAAM,4BAA4B,CAAA;AAEnC,YAAY,EACV,eAAe,IAAI,qBAAqB,EACxC,aAAa,IAAI,mBAAmB,EACpC,gBAAgB,IAAI,sBAAsB,EAC1C,cAAc,IAAI,oBAAoB,EACtC,kBAAkB,IAAI,wBAAwB,EAC9C,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,qBAAqB,GACtB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,kBAAkB,IAAI,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AAClG,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,wBAAwB,IAAI,8BAA8B,EAAE,MAAM,yCAAyC,CAAA;AACpH,OAAO,EAAE,qBAAqB,IAAI,2BAA2B,EAAE,MAAM,sCAAsC,CAAA;AAC3G,OAAO,EAAE,uBAAuB,IAAI,6BAA6B,EAAE,MAAM,wCAAwC,CAAA;AACjH,OAAO,EAAE,eAAe,IAAI,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AACzF,YAAY,EACV,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,GAChB,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAChG,YAAY,EACV,eAAe,EACf,UAAU,EACV,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,QAAQ,GACT,MAAM,oCAAoC,CAAA;AAC3C,YAAY,EACV,OAAO,EACP,MAAM,EACN,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,aAAa,GACd,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAA;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,mBAAmB,oBAAoB,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,8BAA8B,EAAE,MAAM,+CAA+C,CAAA;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,SAAS,EACT,2BAA2B,EAC3B,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,iBAAiB,EACjB,KAAK,mBAAmB,GACzB,MAAM,+CAA+C,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAA;AAC7E,OAAO,EACL,MAAM,EACN,UAAU,EACV,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,sCAAsC,CAAA;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAA;AACpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,sCAAsC,CAAA;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAA;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAA;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,YAAY,EACV,sBAAsB,EACtB,+BAA+B,GAChC,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAA;AAClF,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAA;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAA;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAA;AAE7E,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { ExecutionResult, GraphQLSchema, ValidationRule } from 'graphql'\nimport type { Request as graphQLRequest, OperationArgs } from 'graphql-http'\nimport type { Logger } from 'pino'\nimport type { NonNever } from 'ts-essentials'\n\nimport { spawn } from 'child_process'\nimport crypto from 'crypto'\nimport { fileURLToPath } from 'node:url'\nimport path from 'path'\nimport WebSocket from 'ws'\n\nimport type { AuthArgs } from './auth/operations/auth.js'\nimport type { Result as ForgotPasswordResult } from './auth/operations/forgotPassword.js'\nimport type { Options as ForgotPasswordOptions } from './auth/operations/local/forgotPassword.js'\nimport type { Options as LoginOptions } from './auth/operations/local/login.js'\nimport type { Options as ResetPasswordOptions } from './auth/operations/local/resetPassword.js'\nimport type { Options as UnlockOptions } from './auth/operations/local/unlock.js'\nimport type { Options as VerifyEmailOptions } from './auth/operations/local/verifyEmail.js'\nimport type { Result as LoginResult } from './auth/operations/login.js'\nimport type { Result as ResetPasswordResult } from './auth/operations/resetPassword.js'\nimport type { AuthStrategy, User } from './auth/types.js'\nimport type {\n BulkOperationResult,\n Collection,\n DataFromCollectionSlug,\n SelectFromCollectionSlug,\n TypeWithID,\n} from './collections/config/types.js'\nimport type { Options as CountOptions } from './collections/operations/local/count.js'\nimport type { Options as CreateOptions } from './collections/operations/local/create.js'\nimport type {\n ByIDOptions as DeleteByIDOptions,\n ManyOptions as DeleteManyOptions,\n Options as DeleteOptions,\n} from './collections/operations/local/delete.js'\nimport type { Options as DuplicateOptions } from './collections/operations/local/duplicate.js'\nimport type { Options as FindOptions } from './collections/operations/local/find.js'\nimport type { Options as FindByIDOptions } from './collections/operations/local/findByID.js'\nimport type { Options as FindVersionByIDOptions } from './collections/operations/local/findVersionByID.js'\nimport type { Options as FindVersionsOptions } from './collections/operations/local/findVersions.js'\nimport type { Options as RestoreVersionOptions } from './collections/operations/local/restoreVersion.js'\nimport type {\n ByIDOptions as UpdateByIDOptions,\n ManyOptions as UpdateManyOptions,\n Options as UpdateOptions,\n} from './collections/operations/local/update.js'\nimport type { InitOptions, SanitizedConfig } from './config/types.js'\nimport type { BaseDatabaseAdapter, PaginatedDocs } from './database/types.js'\nimport type { InitializedEmailAdapter } from './email/types.js'\nimport type { DataFromGlobalSlug, Globals, SelectFromGlobalSlug } from './globals/config/types.js'\nimport type { CountGlobalVersionsOptions } from './globals/operations/local/countGlobalVersions.js'\nimport type { Options as FindGlobalOptions } from './globals/operations/local/findOne.js'\nimport type { Options as FindGlobalVersionByIDOptions } from './globals/operations/local/findVersionByID.js'\nimport type { Options as FindGlobalVersionsOptions } from './globals/operations/local/findVersions.js'\nimport type { Options as RestoreGlobalVersionOptions } from './globals/operations/local/restoreVersion.js'\nimport type { Options as UpdateGlobalOptions } from './globals/operations/local/update.js'\nimport type {\n ApplyDisableErrors,\n JsonObject,\n SelectType,\n TransformCollectionWithSelect,\n TransformGlobalWithSelect,\n} from './types/index.js'\nimport type { TraverseFieldsCallback } from './utilities/traverseFields.js'\nimport type { TypeWithVersion } from './versions/types.js'\n\nimport { decrypt, encrypt } from './auth/crypto.js'\nimport { APIKeyAuthentication } from './auth/strategies/apiKey.js'\nimport { JWTAuthentication } from './auth/strategies/jwt.js'\nimport { generateImportMap, type ImportMap } from './bin/generateImportMap/index.js'\nimport { checkPayloadDependencies } from './checkPayloadDependencies.js'\nimport localOperations from './collections/operations/local/index.js'\nimport { consoleEmailAdapter } from './email/consoleEmailAdapter.js'\nimport { fieldAffectsData } from './fields/config/types.js'\nimport localGlobalOperations from './globals/operations/local/index.js'\nimport { getJobsLocalAPI } from './queues/localAPI.js'\nimport { getLogger } from './utilities/logger.js'\nimport { serverInit as serverInitTelemetry } from './utilities/telemetry/events/serverInit.js'\nimport { traverseFields } from './utilities/traverseFields.js'\n\nexport type { FieldState } from './admin/forms/Form.js'\nexport type * from './admin/types.js'\n\nexport interface GeneratedTypes {\n authUntyped: {\n [slug: string]: {\n forgotPassword: {\n email: string\n }\n login: {\n email: string\n password: string\n }\n registerFirstUser: {\n email: string\n password: string\n }\n unlock: {\n email: string\n }\n }\n }\n\n collectionsJoinsUntyped: {\n [slug: string]: {\n [schemaPath: string]: CollectionSlug\n }\n }\n collectionsSelectUntyped: {\n [slug: string]: SelectType\n }\n\n collectionsUntyped: {\n [slug: string]: JsonObject & TypeWithID\n }\n dbUntyped: {\n defaultIDType: number | string\n }\n globalsSelectUntyped: {\n [slug: string]: SelectType\n }\n\n globalsUntyped: {\n [slug: string]: JsonObject\n }\n jobsUntyped: {\n tasks: {\n [slug: string]: {\n input?: JsonObject\n output?: JsonObject\n }\n }\n workflows: {\n [slug: string]: {\n input: JsonObject\n }\n }\n }\n localeUntyped: null | string\n userUntyped: User\n}\n\n// Helper type to resolve the correct type using conditional types\ntype ResolveCollectionType<T> = 'collections' extends keyof T\n ? T['collections']\n : // @ts-expect-error\n T['collectionsUntyped']\n\ntype ResolveCollectionSelectType<T> = 'collectionsSelect' extends keyof T\n ? T['collectionsSelect']\n : // @ts-expect-error\n T['collectionsSelectUntyped']\n\ntype ResolveCollectionJoinsType<T> = 'collectionsJoins' extends keyof T\n ? T['collectionsJoins']\n : // @ts-expect-error\n T['collectionsJoinsUntyped']\n\ntype ResolveGlobalType<T> = 'globals' extends keyof T\n ? T['globals']\n : // @ts-expect-error\n T['globalsUntyped']\n\ntype ResolveGlobalSelectType<T> = 'globalsSelect' extends keyof T\n ? T['globalsSelect']\n : // @ts-expect-error\n T['globalsSelectUntyped']\n\n// Applying helper types to GeneratedTypes\nexport type TypedCollection = ResolveCollectionType<GeneratedTypes>\n\nexport type TypedUploadCollection = NonNever<{\n [K in keyof TypedCollection]:\n | 'filename'\n | 'filesize'\n | 'mimeType'\n | 'url' extends keyof TypedCollection[K]\n ? TypedCollection[K]\n : never\n}>\n\nexport type TypedCollectionSelect = ResolveCollectionSelectType<GeneratedTypes>\n\nexport type TypedCollectionJoins = ResolveCollectionJoinsType<GeneratedTypes>\n\nexport type TypedGlobal = ResolveGlobalType<GeneratedTypes>\n\nexport type TypedGlobalSelect = ResolveGlobalSelectType<GeneratedTypes>\n\n// Extract string keys from the type\nexport type StringKeyOf<T> = Extract<keyof T, string>\n\n// Define the types for slugs using the appropriate collections and globals\nexport type CollectionSlug = StringKeyOf<TypedCollection>\n\nexport type UploadCollectionSlug = StringKeyOf<TypedUploadCollection>\n\ntype ResolveDbType<T> = 'db' extends keyof T\n ? T['db']\n : // @ts-expect-error\n T['dbUntyped']\n\nexport type DefaultDocumentIDType = ResolveDbType<GeneratedTypes>['defaultIDType']\nexport type GlobalSlug = StringKeyOf<TypedGlobal>\n\n// now for locale and user\n\n// @ts-expect-error\ntype ResolveLocaleType<T> = 'locale' extends keyof T ? T['locale'] : T['localeUntyped']\n// @ts-expect-error\ntype ResolveUserType<T> = 'user' extends keyof T ? T['user'] : T['userUntyped']\n\nexport type TypedLocale = ResolveLocaleType<GeneratedTypes>\nexport type TypedUser = ResolveUserType<GeneratedTypes>\n\n// @ts-expect-error\ntype ResolveAuthOperationsType<T> = 'auth' extends keyof T ? T['auth'] : T['authUntyped']\nexport type TypedAuthOperations = ResolveAuthOperationsType<GeneratedTypes>\n\n// @ts-expect-error\ntype ResolveJobOperationsType<T> = 'jobs' extends keyof T ? T['jobs'] : T['jobsUntyped']\nexport type TypedJobs = ResolveJobOperationsType<GeneratedTypes>\n\nconst filename = fileURLToPath(import.meta.url)\nconst dirname = path.dirname(filename)\n\nlet checkedDependencies = false\n\n/**\n * @description Payload\n */\nexport class BasePayload {\n /**\n * @description Authorization and Authentication using headers and cookies to run auth user strategies\n * @returns permissions: Permissions\n * @returns user: User\n */\n auth = async (options: AuthArgs) => {\n const { auth } = localOperations.auth\n return auth(this, options)\n }\n\n authStrategies: AuthStrategy[]\n\n collections: Record<CollectionSlug, Collection> = {}\n\n config: SanitizedConfig\n /**\n * @description Performs count operation\n * @param options\n * @returns count of documents satisfying query\n */\n count = async <T extends CollectionSlug>(\n options: CountOptions<T>,\n ): Promise<{ totalDocs: number }> => {\n const { count } = localOperations\n return count(this, options)\n }\n\n /**\n * @description Performs countGlobalVersions operation\n * @param options\n * @returns count of global document versions satisfying query\n */\n countGlobalVersions = async <T extends GlobalSlug>(\n options: CountGlobalVersionsOptions<T>,\n ): Promise<{ totalDocs: number }> => {\n const { countGlobalVersions } = localGlobalOperations\n return countGlobalVersions(this, options)\n }\n\n /**\n * @description Performs countVersions operation\n * @param options\n * @returns count of document versions satisfying query\n */\n countVersions = async <T extends CollectionSlug>(\n options: CountOptions<T>,\n ): Promise<{ totalDocs: number }> => {\n const { countVersions } = localOperations\n return countVersions(this, options)\n }\n\n /**\n * @description Performs create operation\n * @param options\n * @returns created document\n */\n create = async <TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: CreateOptions<TSlug, TSelect>,\n ): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n const { create } = localOperations\n return create<TSlug, TSelect>(this, options)\n }\n\n db: DatabaseAdapter\n decrypt = decrypt\n\n duplicate = async <TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: DuplicateOptions<TSlug, TSelect>,\n ): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n const { duplicate } = localOperations\n return duplicate<TSlug, TSelect>(this, options)\n }\n\n email: InitializedEmailAdapter\n\n encrypt = encrypt\n\n // TODO: re-implement or remove?\n // errorHandler: ErrorHandler\n\n extensions: (args: {\n args: OperationArgs<any>\n req: graphQLRequest<unknown, unknown>\n result: ExecutionResult\n }) => Promise<any>\n\n /**\n * @description Find documents with criteria\n * @param options\n * @returns documents satisfying query\n */\n find = async <TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: FindOptions<TSlug, TSelect>,\n ): Promise<PaginatedDocs<TransformCollectionWithSelect<TSlug, TSelect>>> => {\n const { find } = localOperations\n return find<TSlug, TSelect>(this, options)\n }\n\n /**\n * @description Find document by ID\n * @param options\n * @returns document with specified ID\n */\n findByID = async <\n TSlug extends CollectionSlug,\n TDisableErrors extends boolean,\n TSelect extends SelectFromCollectionSlug<TSlug>,\n >(\n options: FindByIDOptions<TSlug, TDisableErrors, TSelect>,\n ): Promise<ApplyDisableErrors<TransformCollectionWithSelect<TSlug, TSelect>, TDisableErrors>> => {\n const { findByID } = localOperations\n return findByID<TSlug, TDisableErrors, TSelect>(this, options)\n }\n\n findGlobal = async <TSlug extends GlobalSlug, TSelect extends SelectFromGlobalSlug<TSlug>>(\n options: FindGlobalOptions<TSlug, TSelect>,\n ): Promise<TransformGlobalWithSelect<TSlug, TSelect>> => {\n const { findOne } = localGlobalOperations\n return findOne<TSlug, TSelect>(this, options)\n }\n\n /**\n * @description Find global version by ID\n * @param options\n * @returns global version with specified ID\n */\n findGlobalVersionByID = async <TSlug extends GlobalSlug>(\n options: FindGlobalVersionByIDOptions<TSlug>,\n ): Promise<TypeWithVersion<DataFromGlobalSlug<TSlug>>> => {\n const { findVersionByID } = localGlobalOperations\n return findVersionByID<TSlug>(this, options)\n }\n\n /**\n * @description Find global versions with criteria\n * @param options\n * @returns versions satisfying query\n */\n findGlobalVersions = async <TSlug extends GlobalSlug>(\n options: FindGlobalVersionsOptions<TSlug>,\n ): Promise<PaginatedDocs<TypeWithVersion<DataFromGlobalSlug<TSlug>>>> => {\n const { findVersions } = localGlobalOperations\n return findVersions<TSlug>(this, options)\n }\n\n /**\n * @description Find version by ID\n * @param options\n * @returns version with specified ID\n */\n findVersionByID = async <TSlug extends CollectionSlug>(\n options: FindVersionByIDOptions<TSlug>,\n ): Promise<TypeWithVersion<DataFromCollectionSlug<TSlug>>> => {\n const { findVersionByID } = localOperations\n return findVersionByID<TSlug>(this, options)\n }\n\n /**\n * @description Find versions with criteria\n * @param options\n * @returns versions satisfying query\n */\n findVersions = async <TSlug extends CollectionSlug>(\n options: FindVersionsOptions<TSlug>,\n ): Promise<PaginatedDocs<TypeWithVersion<DataFromCollectionSlug<TSlug>>>> => {\n const { findVersions } = localOperations\n return findVersions<TSlug>(this, options)\n }\n\n forgotPassword = async <TSlug extends CollectionSlug>(\n options: ForgotPasswordOptions<TSlug>,\n ): Promise<ForgotPasswordResult> => {\n const { forgotPassword } = localOperations.auth\n return forgotPassword<TSlug>(this, options)\n }\n\n getAdminURL = (): string => `${this.config.serverURL}${this.config.routes.admin}`\n\n getAPIURL = (): string => `${this.config.serverURL}${this.config.routes.api}`\n\n globals: Globals\n\n importMap: ImportMap\n\n jobs = getJobsLocalAPI(this)\n\n logger: Logger\n\n login = async <TSlug extends CollectionSlug>(\n options: LoginOptions<TSlug>,\n ): Promise<{ user: DataFromCollectionSlug<TSlug> } & LoginResult> => {\n const { login } = localOperations.auth\n return login<TSlug>(this, options)\n }\n\n resetPassword = async <TSlug extends CollectionSlug>(\n options: ResetPasswordOptions<TSlug>,\n ): Promise<ResetPasswordResult> => {\n const { resetPassword } = localOperations.auth\n return resetPassword<TSlug>(this, options)\n }\n\n /**\n * @description Restore global version by ID\n * @param options\n * @returns version with specified ID\n */\n restoreGlobalVersion = async <TSlug extends GlobalSlug>(\n options: RestoreGlobalVersionOptions<TSlug>,\n ): Promise<DataFromGlobalSlug<TSlug>> => {\n const { restoreVersion } = localGlobalOperations\n return restoreVersion<TSlug>(this, options)\n }\n\n /**\n * @description Restore version by ID\n * @param options\n * @returns version with specified ID\n */\n restoreVersion = async <TSlug extends CollectionSlug>(\n options: RestoreVersionOptions<TSlug>,\n ): Promise<DataFromCollectionSlug<TSlug>> => {\n const { restoreVersion } = localOperations\n return restoreVersion<TSlug>(this, options)\n }\n\n schema: GraphQLSchema\n\n secret: string\n\n sendEmail: InitializedEmailAdapter['sendEmail']\n\n types: {\n arrayTypes: any\n blockInputTypes: any\n blockTypes: any\n fallbackLocaleInputType?: any\n groupTypes: any\n localeInputType?: any\n tabTypes: any\n }\n\n unlock = async <TSlug extends CollectionSlug>(\n options: UnlockOptions<TSlug>,\n ): Promise<boolean> => {\n const { unlock } = localOperations.auth\n return unlock<TSlug>(this, options)\n }\n\n updateGlobal = async <TSlug extends GlobalSlug, TSelect extends SelectFromGlobalSlug<TSlug>>(\n options: UpdateGlobalOptions<TSlug, TSelect>,\n ): Promise<TransformGlobalWithSelect<TSlug, TSelect>> => {\n const { update } = localGlobalOperations\n return update<TSlug, TSelect>(this, options)\n }\n\n validationRules: (args: OperationArgs<any>) => ValidationRule[]\n\n verifyEmail = async <TSlug extends CollectionSlug>(\n options: VerifyEmailOptions<TSlug>,\n ): Promise<boolean> => {\n const { verifyEmail } = localOperations.auth\n return verifyEmail(this, options)\n }\n\n versions: {\n [slug: string]: any // TODO: Type this\n } = {}\n\n async bin({\n args,\n cwd,\n log,\n }: {\n args: string[]\n cwd?: string\n log?: boolean\n }): Promise<{ code: number }> {\n return new Promise((resolve, reject) => {\n const spawned = spawn('node', [path.resolve(dirname, '../bin.js'), ...args], {\n cwd,\n stdio: log || log === undefined ? 'inherit' : 'ignore',\n })\n\n spawned.on('exit', (code) => {\n resolve({ code })\n })\n\n spawned.on('error', (error) => {\n reject(error)\n })\n })\n }\n\n /**\n * @description delete one or more documents\n * @param options\n * @returns Updated document(s)\n */\n delete<TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: DeleteByIDOptions<TSlug, TSelect>,\n ): Promise<TransformCollectionWithSelect<TSlug, TSelect>>\n\n delete<TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: DeleteManyOptions<TSlug, TSelect>,\n ): Promise<BulkOperationResult<TSlug, TSelect>>\n\n delete<TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: DeleteOptions<TSlug, TSelect>,\n ): Promise<BulkOperationResult<TSlug, TSelect> | TransformCollectionWithSelect<TSlug, TSelect>> {\n const { deleteLocal } = localOperations\n return deleteLocal<TSlug, TSelect>(this, options)\n }\n\n /**\n * @description Initializes Payload\n * @param options\n */\n async init(options: InitOptions): Promise<Payload> {\n if (\n process.env.NODE_ENV !== 'production' &&\n process.env.PAYLOAD_DISABLE_DEPENDENCY_CHECKER !== 'true' &&\n !checkedDependencies\n ) {\n checkedDependencies = true\n void checkPayloadDependencies()\n }\n\n this.importMap = options.importMap\n\n if (!options?.config) {\n throw new Error('Error: the payload config is required to initialize payload.')\n }\n\n this.config = await options.config\n this.logger = getLogger('payload', this.config.logger)\n\n if (!this.config.secret) {\n throw new Error('Error: missing secret key. A secret key is needed to secure Payload.')\n }\n\n this.secret = crypto.createHash('sha256').update(this.config.secret).digest('hex').slice(0, 32)\n\n this.globals = {\n config: this.config.globals,\n }\n\n this.config.collections.forEach((collection) => {\n let customIDType = undefined\n const findCustomID: TraverseFieldsCallback = ({ field, next }) => {\n if (\n ['array', 'blocks', 'group'].includes(field.type) ||\n (field.type === 'tab' && 'name' in field)\n ) {\n return true\n }\n\n if (!fieldAffectsData(field)) {\n return\n }\n\n if (field.name === 'id') {\n customIDType = field.type\n return true\n }\n }\n\n traverseFields({ callback: findCustomID, fields: collection.fields })\n\n this.collections[collection.slug] = {\n config: collection,\n customIDType,\n }\n })\n\n // Generate types on startup\n if (process.env.NODE_ENV !== 'production' && this.config.typescript.autoGenerate !== false) {\n // We cannot run it directly here, as generate-types imports json-schema-to-typescript, which breaks on turbopack.\n // see: https://github.com/vercel/next.js/issues/66723\n void this.bin({\n args: ['generate:types'],\n log: false,\n })\n }\n\n this.db = this.config.db.init({ payload: this })\n this.db.payload = this\n\n if (this.db?.init) {\n await this.db.init()\n }\n\n if (!options.disableDBConnect && this.db.connect) {\n await this.db.connect()\n }\n\n // Load email adapter\n if (this.config.email instanceof Promise) {\n const awaitedAdapter = await this.config.email\n this.email = awaitedAdapter({ payload: this })\n } else if (this.config.email) {\n this.email = this.config.email({ payload: this })\n } else {\n if (process.env.NEXT_PHASE !== 'phase-production-build') {\n this.logger.warn(\n `No email adapter provided. Email will be written to console. More info at https://payloadcms.com/docs/email/overview.`,\n )\n }\n\n this.email = consoleEmailAdapter({ payload: this })\n }\n\n // Warn if image resizing is enabled but sharp is not installed\n if (\n !this.config.sharp &&\n this.config.collections.some((c) => c.upload.imageSizes || c.upload.formatOptions)\n ) {\n this.logger.warn(\n `Image resizing is enabled for one or more collections, but sharp not installed. Please install 'sharp' and pass into the config.`,\n )\n }\n\n this.sendEmail = this.email['sendEmail']\n\n serverInitTelemetry(this)\n\n // 1. loop over collections, if collection has auth strategy, initialize and push to array\n let jwtStrategyEnabled = false\n this.authStrategies = this.config.collections.reduce((authStrategies, collection) => {\n if (collection?.auth) {\n if (collection.auth.strategies.length > 0) {\n authStrategies.push(...collection.auth.strategies)\n }\n\n // 2. if api key enabled, push api key strategy into the array\n if (collection.auth?.useAPIKey) {\n authStrategies.push({\n name: `${collection.slug}-api-key`,\n authenticate: APIKeyAuthentication(collection),\n })\n }\n\n // 3. if localStrategy flag is true\n if (!collection.auth.disableLocalStrategy && !jwtStrategyEnabled) {\n jwtStrategyEnabled = true\n }\n }\n\n return authStrategies\n }, [] as AuthStrategy[])\n\n // 4. if enabled, push jwt strategy into authStrategies last\n if (jwtStrategyEnabled) {\n this.authStrategies.push({\n name: 'local-jwt',\n authenticate: JWTAuthentication,\n })\n }\n\n if (!options.disableOnInit) {\n if (typeof options.onInit === 'function') {\n await options.onInit(this)\n }\n if (typeof this.config.onInit === 'function') {\n await this.config.onInit(this)\n }\n }\n\n return this\n }\n\n update<TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: UpdateManyOptions<TSlug, TSelect>,\n ): Promise<BulkOperationResult<TSlug, TSelect>>\n\n /**\n * @description Update one or more documents\n * @param options\n * @returns Updated document(s)\n */\n update<TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: UpdateByIDOptions<TSlug, TSelect>,\n ): Promise<TransformCollectionWithSelect<TSlug, TSelect>>\n\n update<TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: UpdateOptions<TSlug, TSelect>,\n ): Promise<BulkOperationResult<TSlug, TSelect> | TransformCollectionWithSelect<TSlug, TSelect>> {\n const { update } = localOperations\n return update<TSlug, TSelect>(this, options)\n }\n}\n\nconst initialized = new BasePayload()\n\nexport default initialized\n\nlet cached: {\n payload: null | Payload\n promise: null | Promise<Payload>\n reload: boolean | Promise<void>\n ws: null | WebSocket\n} = global._payload\n\nif (!cached) {\n cached = global._payload = { payload: null, promise: null, reload: false, ws: null }\n}\n\nexport const reload = async (\n config: SanitizedConfig,\n payload: Payload,\n skipImportMapGeneration?: boolean,\n): Promise<void> => {\n if (typeof payload.db.destroy === 'function') {\n await payload.db.destroy()\n }\n\n payload.config = config\n\n payload.collections = config.collections.reduce((collections, collection) => {\n collections[collection.slug] = {\n config: collection,\n customIDType: payload.collections[collection.slug]?.customIDType,\n }\n return collections\n }, {})\n\n payload.globals = {\n config: config.globals,\n }\n\n // TODO: support HMR for other props in the future (see payload/src/index init()) that may change on Payload singleton\n\n // Generate types\n if (config.typescript.autoGenerate !== false) {\n // We cannot run it directly here, as generate-types imports json-schema-to-typescript, which breaks on turbopack.\n // see: https://github.com/vercel/next.js/issues/66723\n void payload.bin({\n args: ['generate:types'],\n log: false,\n })\n }\n\n // Generate component map\n if (skipImportMapGeneration !== true && config.admin?.importMap?.autoGenerate !== false) {\n await generateImportMap(config, {\n log: true,\n })\n }\n\n await payload.db.init()\n if (payload.db.connect) {\n await payload.db.connect({ hotReload: true })\n }\n global._payload_clientConfig = null\n global._payload_schemaMap = null\n global._payload_clientSchemaMap = null\n global._payload_doNotCacheClientConfig = true // This will help refreshing the client config cache more reliably. If you remove this, please test HMR + client config refreshing (do new fields appear in the document?)\n global._payload_doNotCacheSchemaMap = true\n global._payload_doNotCacheClientSchemaMap = true\n}\n\nexport const getPayload = async (\n options: Pick<InitOptions, 'config' | 'importMap'>,\n): Promise<Payload> => {\n if (!options?.config) {\n throw new Error('Error: the payload config is required for getPayload to work.')\n }\n\n if (cached.payload) {\n if (cached.reload === true) {\n let resolve: () => void\n\n // getPayload is called multiple times, in parallel. However, we only want to run `await reload` once. By immediately setting cached.reload to a promise,\n // we can ensure that all subsequent calls will wait for the first reload to finish. So if we set it here, the 2nd call of getPayload\n // will reach `if (cached.reload instanceof Promise) {` which then waits for the first reload to finish.\n cached.reload = new Promise((res) => (resolve = res))\n const config = await options.config\n await reload(config, cached.payload, !options.importMap)\n\n resolve()\n }\n\n if (cached.reload instanceof Promise) {\n await cached.reload\n }\n if (options?.importMap) {\n cached.payload.importMap = options.importMap\n }\n return cached.payload\n }\n\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!cached.promise) {\n // no need to await options.config here, as it's already awaited in the BasePayload.init\n cached.promise = new BasePayload().init(options)\n }\n\n try {\n cached.payload = await cached.promise\n\n if (\n !cached.ws &&\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n process.env.DISABLE_PAYLOAD_HMR !== 'true'\n ) {\n try {\n const port = process.env.PORT || '3000'\n\n cached.ws = new WebSocket(\n `ws://localhost:${port}${process.env.NEXT_BASE_PATH ?? ''}/_next/webpack-hmr`,\n )\n\n cached.ws.onmessage = (event) => {\n if (typeof event.data === 'string') {\n const data = JSON.parse(event.data)\n\n if ('action' in data && data.action === 'serverComponentChanges') {\n cached.reload = true\n }\n }\n }\n\n cached.ws.onerror = (_) => {\n // swallow any websocket connection error\n }\n } catch (_) {\n // swallow e\n }\n }\n } catch (e) {\n cached.promise = null\n throw e\n }\n\n if (options?.importMap) {\n cached.payload.importMap = options.importMap\n }\n\n return cached.payload\n}\n\ntype Payload = BasePayload\n\ninterface RequestContext {\n [key: string]: unknown\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface DatabaseAdapter extends BaseDatabaseAdapter {}\nexport type { Payload, RequestContext }\nexport { default as executeAccess } from './auth/executeAccess.js'\nexport { executeAuthStrategies } from './auth/executeAuthStrategies.js'\nexport { getAccessResults } from './auth/getAccessResults.js'\nexport { getFieldsToSign } from './auth/getFieldsToSign.js'\nexport * from './auth/index.js'\nexport { accessOperation } from './auth/operations/access.js'\nexport { forgotPasswordOperation } from './auth/operations/forgotPassword.js'\nexport { initOperation } from './auth/operations/init.js'\nexport { loginOperation } from './auth/operations/login.js'\nexport { logoutOperation } from './auth/operations/logout.js'\nexport type { MeOperationResult } from './auth/operations/me.js'\nexport { meOperation } from './auth/operations/me.js'\nexport { refreshOperation } from './auth/operations/refresh.js'\nexport { registerFirstUserOperation } from './auth/operations/registerFirstUser.js'\nexport { resetPasswordOperation } from './auth/operations/resetPassword.js'\nexport { unlockOperation } from './auth/operations/unlock.js'\nexport { verifyEmailOperation } from './auth/operations/verifyEmail.js'\n\nexport type {\n AuthStrategyFunction,\n AuthStrategyFunctionArgs,\n CollectionPermission,\n DocumentPermissions,\n FieldPermissions,\n GlobalPermission,\n IncomingAuthType,\n Permission,\n Permissions,\n SanitizedCollectionPermission,\n SanitizedDocumentPermissions,\n SanitizedFieldPermissions,\n SanitizedGlobalPermission,\n SanitizedPermissions,\n User,\n VerifyConfig,\n} from './auth/types.js'\n\nexport { generateImportMap } from './bin/generateImportMap/index.js'\nexport type { ImportMap } from './bin/generateImportMap/index.js'\n\nexport { genImportMapIterateFields } from './bin/generateImportMap/iterateFields.js'\n\nexport {\n type ClientCollectionConfig,\n createClientCollectionConfig,\n createClientCollectionConfigs,\n type ServerOnlyCollectionAdminProperties,\n type ServerOnlyCollectionProperties,\n type ServerOnlyUploadProperties,\n} from './collections/config/client.js'\n\nexport type {\n AfterChangeHook as CollectionAfterChangeHook,\n AfterDeleteHook as CollectionAfterDeleteHook,\n AfterErrorHook as CollectionAfterErrorHook,\n AfterForgotPasswordHook as CollectionAfterForgotPasswordHook,\n AfterLoginHook as CollectionAfterLoginHook,\n AfterLogoutHook as CollectionAfterLogoutHook,\n AfterMeHook as CollectionAfterMeHook,\n AfterOperationHook as CollectionAfterOperationHook,\n AfterReadHook as CollectionAfterReadHook,\n AfterRefreshHook as CollectionAfterRefreshHook,\n AuthCollection,\n AuthOperationsFromCollectionSlug,\n BaseListFilter,\n BeforeChangeHook as CollectionBeforeChangeHook,\n BeforeDeleteHook as CollectionBeforeDeleteHook,\n BeforeLoginHook as CollectionBeforeLoginHook,\n BeforeOperationHook as CollectionBeforeOperationHook,\n BeforeReadHook as CollectionBeforeReadHook,\n BeforeValidateHook as CollectionBeforeValidateHook,\n BulkOperationResult,\n Collection,\n CollectionAdminOptions,\n CollectionConfig,\n DataFromCollectionSlug,\n HookOperationType,\n MeHook as CollectionMeHook,\n RefreshHook as CollectionRefreshHook,\n RequiredDataFromCollection,\n RequiredDataFromCollectionSlug,\n SanitizedCollectionConfig,\n SanitizedJoins,\n TypeWithID,\n TypeWithTimestamps,\n} from './collections/config/types.js'\nexport { createDataloaderCacheKey, getDataLoader } from './collections/dataloader.js'\nexport { countOperation } from './collections/operations/count.js'\nexport { createOperation } from './collections/operations/create.js'\nexport { deleteOperation } from './collections/operations/delete.js'\nexport { deleteByIDOperation } from './collections/operations/deleteByID.js'\nexport { docAccessOperation } from './collections/operations/docAccess.js'\nexport { duplicateOperation } from './collections/operations/duplicate.js'\nexport { findOperation } from './collections/operations/find.js'\nexport { findByIDOperation } from './collections/operations/findByID.js'\nexport { findVersionByIDOperation } from './collections/operations/findVersionByID.js'\nexport { findVersionsOperation } from './collections/operations/findVersions.js'\nexport { restoreVersionOperation } from './collections/operations/restoreVersion.js'\nexport { updateOperation } from './collections/operations/update.js'\nexport { updateByIDOperation } from './collections/operations/updateByID.js'\nexport { buildConfig } from './config/build.js'\nexport {\n type ClientConfig,\n createClientConfig,\n serverOnlyAdminConfigProperties,\n serverOnlyConfigProperties,\n} from './config/client.js'\n\nexport { defaults } from './config/defaults.js'\nexport { sanitizeConfig } from './config/sanitize.js'\nexport type * from './config/types.js'\nexport { combineQueries } from './database/combineQueries.js'\nexport { createDatabaseAdapter } from './database/createDatabaseAdapter.js'\nexport { defaultBeginTransaction } from './database/defaultBeginTransaction.js'\nexport { default as flattenWhereToOperators } from './database/flattenWhereToOperators.js'\nexport { getLocalizedPaths } from './database/getLocalizedPaths.js'\nexport { createMigration } from './database/migrations/createMigration.js'\nexport { getMigrations } from './database/migrations/getMigrations.js'\nexport { getPredefinedMigration } from './database/migrations/getPredefinedMigration.js'\nexport { migrate } from './database/migrations/migrate.js'\nexport { migrateDown } from './database/migrations/migrateDown.js'\nexport { migrateRefresh } from './database/migrations/migrateRefresh.js'\nexport { migrateReset } from './database/migrations/migrateReset.js'\nexport { migrateStatus } from './database/migrations/migrateStatus.js'\nexport { migrationsCollection } from './database/migrations/migrationsCollection.js'\nexport { migrationTemplate } from './database/migrations/migrationTemplate.js'\nexport { readMigrationFiles } from './database/migrations/readMigrationFiles.js'\nexport { writeMigrationIndex } from './database/migrations/writeMigrationIndex.js'\nexport type * from './database/queryValidation/types.js'\nexport type { EntityPolicies, PathToQuery } from './database/queryValidation/types.js'\nexport { validateQueryPaths } from './database/queryValidation/validateQueryPaths.js'\nexport { validateSearchParam } from './database/queryValidation/validateSearchParams.js'\nexport type {\n BaseDatabaseAdapter,\n BeginTransaction,\n CommitTransaction,\n Connect,\n Count,\n CountArgs,\n CountGlobalVersions,\n CountVersions,\n Create,\n CreateArgs,\n CreateGlobal,\n CreateGlobalArgs,\n CreateGlobalVersion,\n CreateGlobalVersionArgs,\n CreateMigration,\n CreateVersion,\n CreateVersionArgs,\n DatabaseAdapterResult as DatabaseAdapterObj,\n DBIdentifierName,\n DeleteMany,\n DeleteManyArgs,\n DeleteOne,\n DeleteOneArgs,\n DeleteVersions,\n DeleteVersionsArgs,\n Destroy,\n Find,\n FindArgs,\n FindGlobal,\n FindGlobalArgs,\n FindGlobalVersions,\n FindGlobalVersionsArgs,\n FindOne,\n FindOneArgs,\n FindVersions,\n FindVersionsArgs,\n GenerateSchema,\n Init,\n Migration,\n MigrationData,\n MigrationTemplateArgs,\n PaginatedDocs,\n QueryDrafts,\n QueryDraftsArgs,\n RollbackTransaction,\n Transaction,\n UpdateGlobal,\n UpdateGlobalArgs,\n UpdateGlobalVersion,\n UpdateGlobalVersionArgs,\n UpdateOne,\n UpdateOneArgs,\n UpdateVersion,\n UpdateVersionArgs,\n Upsert,\n} from './database/types.js'\nexport type { EmailAdapter as PayloadEmailAdapter, SendEmailOptions } from './email/types.js'\nexport {\n APIError,\n APIErrorName,\n AuthenticationError,\n DuplicateCollection,\n DuplicateFieldName,\n DuplicateGlobal,\n ErrorDeletingFile,\n FileRetrievalError,\n FileUploadError,\n Forbidden,\n InvalidConfiguration,\n InvalidFieldName,\n InvalidFieldRelationship,\n Locked,\n LockedAuth,\n MissingCollectionLabel,\n MissingEditorProp,\n MissingFieldInputOptions,\n MissingFieldType,\n MissingFile,\n NotFound,\n QueryError,\n ValidationError,\n ValidationErrorName,\n} from './errors/index.js'\nexport type { ValidationFieldError } from './errors/index.js'\n\nexport { baseBlockFields } from './fields/baseFields/baseBlockFields.js'\nexport { baseIDField } from './fields/baseFields/baseIDField.js'\nexport {\n createClientField,\n createClientFields,\n type ServerOnlyFieldAdminProperties,\n type ServerOnlyFieldProperties,\n} from './fields/config/client.js'\nexport { sanitizeFields } from './fields/config/sanitize.js'\nexport type {\n AdminClient,\n ArrayField,\n ArrayFieldClient,\n BaseValidateOptions,\n Block,\n BlockJSX,\n BlocksField,\n BlocksFieldClient,\n CheckboxField,\n CheckboxFieldClient,\n ClientBlock,\n ClientField,\n ClientFieldProps,\n CodeField,\n CodeFieldClient,\n CollapsibleField,\n CollapsibleFieldClient,\n Condition,\n DateField,\n DateFieldClient,\n EmailField,\n EmailFieldClient,\n Field,\n FieldAccess,\n FieldAffectingData,\n FieldAffectingDataClient,\n FieldBase,\n FieldBaseClient,\n FieldHook,\n FieldHookArgs,\n FieldPresentationalOnly,\n FieldPresentationalOnlyClient,\n FieldTypes,\n FieldWithMany,\n FieldWithManyClient,\n FieldWithMaxDepth,\n FieldWithMaxDepthClient,\n FieldWithPath,\n FieldWithPathClient,\n FieldWithSubFields,\n FieldWithSubFieldsClient,\n FilterOptions,\n FilterOptionsProps,\n FlattenedArrayField,\n FlattenedBlock,\n FlattenedBlocksField,\n FlattenedField,\n FlattenedGroupField,\n FlattenedTabAsField,\n GroupField,\n GroupFieldClient,\n HookName,\n JoinField,\n JoinFieldClient,\n JSONField,\n JSONFieldClient,\n Labels,\n LabelsClient,\n NamedTab,\n NonPresentationalField,\n NonPresentationalFieldClient,\n NumberField,\n NumberFieldClient,\n Option,\n OptionObject,\n PointField,\n PointFieldClient,\n PolymorphicRelationshipField,\n PolymorphicRelationshipFieldClient,\n RadioField,\n RadioFieldClient,\n RelationshipField,\n RelationshipFieldClient,\n RelationshipValue,\n RichTextField,\n RichTextFieldClient,\n RowField,\n RowFieldClient,\n SelectField,\n SelectFieldClient,\n SingleRelationshipField,\n SingleRelationshipFieldClient,\n Tab,\n TabAsField,\n TabAsFieldClient,\n TabsField,\n TabsFieldClient,\n TextareaField,\n TextareaFieldClient,\n TextField,\n TextFieldClient,\n UIField,\n UIFieldClient,\n UnnamedTab,\n UploadField,\n UploadFieldClient,\n Validate,\n ValidateOptions,\n ValueWithRelation,\n} from './fields/config/types.js'\n\nexport { getDefaultValue } from './fields/getDefaultValue.js'\nexport { traverseFields as afterChangeTraverseFields } from './fields/hooks/afterChange/traverseFields.js'\nexport { promise as afterReadPromise } from './fields/hooks/afterRead/promise.js'\nexport { traverseFields as afterReadTraverseFields } from './fields/hooks/afterRead/traverseFields.js'\nexport { traverseFields as beforeChangeTraverseFields } from './fields/hooks/beforeChange/traverseFields.js'\nexport { traverseFields as beforeValidateTraverseFields } from './fields/hooks/beforeValidate/traverseFields.js'\nexport { default as sortableFieldTypes } from './fields/sortableFieldTypes.js'\n\nexport { validations } from './fields/validations.js'\nexport type {\n ArrayFieldValidation,\n BlocksFieldValidation,\n CheckboxFieldValidation,\n CodeFieldValidation,\n ConfirmPasswordFieldValidation,\n DateFieldValidation,\n EmailFieldValidation,\n JSONFieldValidation,\n NumberFieldManyValidation,\n NumberFieldSingleValidation,\n NumberFieldValidation,\n PasswordFieldValidation,\n PointFieldValidation,\n RadioFieldValidation,\n RelationshipFieldManyValidation,\n RelationshipFieldSingleValidation,\n RelationshipFieldValidation,\n RichTextFieldValidation,\n SelectFieldManyValidation,\n SelectFieldSingleValidation,\n SelectFieldValidation,\n TextareaFieldValidation,\n TextFieldManyValidation,\n TextFieldSingleValidation,\n TextFieldValidation,\n UploadFieldManyValidation,\n UploadFieldSingleValidation,\n UploadFieldValidation,\n UsernameFieldValidation,\n} from './fields/validations.js'\n\nexport {\n type ClientGlobalConfig,\n createClientGlobalConfig,\n createClientGlobalConfigs,\n type ServerOnlyGlobalAdminProperties,\n type ServerOnlyGlobalProperties,\n} from './globals/config/client.js'\n\nexport type {\n AfterChangeHook as GlobalAfterChangeHook,\n AfterReadHook as GlobalAfterReadHook,\n BeforeChangeHook as GlobalBeforeChangeHook,\n BeforeReadHook as GlobalBeforeReadHook,\n BeforeValidateHook as GlobalBeforeValidateHook,\n DataFromGlobalSlug,\n GlobalAdminOptions,\n GlobalConfig,\n SanitizedGlobalConfig,\n} from './globals/config/types.js'\n\nexport { docAccessOperation as docAccessOperationGlobal } from './globals/operations/docAccess.js'\nexport { findOneOperation } from './globals/operations/findOne.js'\nexport { findVersionByIDOperation as findVersionByIDOperationGlobal } from './globals/operations/findVersionByID.js'\nexport { findVersionsOperation as findVersionsOperationGlobal } from './globals/operations/findVersions.js'\nexport { restoreVersionOperation as restoreVersionOperationGlobal } from './globals/operations/restoreVersion.js'\nexport { updateOperation as updateOperationGlobal } from './globals/operations/update.js'\nexport type {\n CollapsedPreferences,\n DocumentPreferences,\n FieldsPreferences,\n InsideFieldsPreferences,\n PreferenceRequest,\n PreferenceUpdateRequest,\n TabsPreferences,\n} from './preferences/types.js'\nexport type { JobsConfig, RunJobAccess, RunJobAccessArgs } from './queues/config/types/index.js'\nexport type {\n RunTaskFunction,\n TaskConfig,\n TaskHandler,\n TaskHandlerArgs,\n TaskHandlerResult,\n TaskHandlerResults,\n TaskInput,\n TaskOutput,\n TaskType,\n} from './queues/config/types/taskTypes.js'\nexport type {\n BaseJob,\n JobLog,\n JobTaskStatus,\n RunningJob,\n SingleTaskStatus,\n WorkflowConfig,\n WorkflowHandler,\n WorkflowTypes,\n} from './queues/config/types/workflowTypes.js'\nexport { importHandlerPath } from './queues/operations/runJobs/runJob/importHandlerPath.js'\nexport { getLocalI18n } from './translations/getLocalI18n.js'\nexport * from './types/index.js'\nexport { getFileByPath } from './uploads/getFileByPath.js'\nexport type * from './uploads/types.js'\nexport { commitTransaction } from './utilities/commitTransaction.js'\nexport {\n configToJSONSchema,\n entityToJSONSchema,\n fieldsToJSONSchema,\n withNullableJSONSchemaType,\n} from './utilities/configToJSONSchema.js'\nexport { createArrayFromCommaDelineated } from './utilities/createArrayFromCommaDelineated.js'\nexport { createLocalReq } from './utilities/createLocalReq.js'\nexport {\n deepCopyObject,\n deepCopyObjectComplex,\n deepCopyObjectSimple,\n} from './utilities/deepCopyObject.js'\nexport {\n deepMerge,\n deepMergeWithCombinedArrays,\n deepMergeWithReactComponents,\n deepMergeWithSourceArrays,\n} from './utilities/deepMerge.js'\nexport {\n checkDependencies,\n type CustomVersionParser,\n} from './utilities/dependencies/dependencyChecker.js'\nexport { getDependencies } from './utilities/dependencies/getDependencies.js'\nexport {\n findUp,\n findUpSync,\n pathExistsAndIsAccessible,\n pathExistsAndIsAccessibleSync,\n} from './utilities/findUp.js'\nexport { flattenAllFields } from './utilities/flattenAllFields.js'\nexport { default as flattenTopLevelFields } from './utilities/flattenTopLevelFields.js'\nexport { formatErrors } from './utilities/formatErrors.js'\nexport { formatLabels, formatNames, toWords } from './utilities/formatLabels.js'\nexport { getCollectionIDFieldTypes } from './utilities/getCollectionIDFieldTypes.js'\nexport { getObjectDotNotation } from './utilities/getObjectDotNotation.js'\nexport { initTransaction } from './utilities/initTransaction.js'\nexport { isEntityHidden } from './utilities/isEntityHidden.js'\nexport { default as isolateObjectProperty } from './utilities/isolateObjectProperty.js'\nexport { isPlainObject } from './utilities/isPlainObject.js'\nexport { isValidID } from './utilities/isValidID.js'\nexport { killTransaction } from './utilities/killTransaction.js'\nexport { mapAsync } from './utilities/mapAsync.js'\nexport { sanitizeFallbackLocale } from './utilities/sanitizeFallbackLocale.js'\nexport { sanitizeJoinParams } from './utilities/sanitizeJoinParams.js'\nexport { sanitizePopulateParam } from './utilities/sanitizePopulateParam.js'\nexport { sanitizeSelectParam } from './utilities/sanitizeSelectParam.js'\nexport { traverseFields } from './utilities/traverseFields.js'\nexport type {\n TraverseFieldsCallback,\n TraverseFlattenedFieldsCallback,\n} from './utilities/traverseFields.js'\nexport { buildVersionCollectionFields } from './versions/buildCollectionFields.js'\nexport { buildVersionGlobalFields } from './versions/buildGlobalFields.js'\nexport { versionDefaults } from './versions/defaults.js'\nexport { deleteCollectionVersions } from './versions/deleteCollectionVersions.js'\nexport { enforceMaxVersions } from './versions/enforceMaxVersions.js'\nexport { getLatestCollectionVersion } from './versions/getLatestCollectionVersion.js'\nexport { getLatestGlobalVersion } from './versions/getLatestGlobalVersion.js'\n\nexport { saveVersion } from './versions/saveVersion.js'\nexport type { TypeWithVersion } from './versions/types.js'\nexport { deepMergeSimple } from '@payloadcms/translations/utilities'\n"],"names":["spawn","crypto","fileURLToPath","path","WebSocket","decrypt","encrypt","APIKeyAuthentication","JWTAuthentication","generateImportMap","checkPayloadDependencies","localOperations","consoleEmailAdapter","fieldAffectsData","localGlobalOperations","getJobsLocalAPI","getLogger","serverInit","serverInitTelemetry","traverseFields","filename","url","dirname","checkedDependencies","BasePayload","auth","options","authStrategies","collections","config","count","countGlobalVersions","countVersions","create","db","duplicate","email","extensions","find","findByID","findGlobal","findOne","findGlobalVersionByID","findVersionByID","findGlobalVersions","findVersions","forgotPassword","getAdminURL","serverURL","routes","admin","getAPIURL","api","globals","importMap","jobs","logger","login","resetPassword","restoreGlobalVersion","restoreVersion","schema","secret","sendEmail","types","unlock","updateGlobal","update","validationRules","verifyEmail","versions","bin","args","cwd","log","Promise","resolve","reject","spawned","stdio","undefined","on","code","error","delete","deleteLocal","init","process","env","NODE_ENV","PAYLOAD_DISABLE_DEPENDENCY_CHECKER","Error","createHash","digest","slice","forEach","collection","customIDType","findCustomID","field","next","includes","type","name","callback","fields","slug","typescript","autoGenerate","payload","disableDBConnect","connect","awaitedAdapter","NEXT_PHASE","warn","sharp","some","c","upload","imageSizes","formatOptions","jwtStrategyEnabled","reduce","strategies","length","push","useAPIKey","authenticate","disableLocalStrategy","disableOnInit","onInit","initialized","cached","global","_payload","promise","reload","ws","skipImportMapGeneration","destroy","hotReload","_payload_clientConfig","_payload_schemaMap","_payload_clientSchemaMap","_payload_doNotCacheClientConfig","_payload_doNotCacheSchemaMap","_payload_doNotCacheClientSchemaMap","getPayload","res","DISABLE_PAYLOAD_HMR","port","PORT","NEXT_BASE_PATH","onmessage","event","data","JSON","parse","action","onerror","_","e","default","executeAccess","executeAuthStrategies","getAccessResults","getFieldsToSign","accessOperation","forgotPasswordOperation","initOperation","loginOperation","logoutOperation","meOperation","refreshOperation","registerFirstUserOperation","resetPasswordOperation","unlockOperation","verifyEmailOperation","genImportMapIterateFields","createClientCollectionConfig","createClientCollectionConfigs","createDataloaderCacheKey","getDataLoader","countOperation","createOperation","deleteOperation","deleteByIDOperation","docAccessOperation","duplicateOperation","findOperation","findByIDOperation","findVersionByIDOperation","findVersionsOperation","restoreVersionOperation","updateOperation","updateByIDOperation","buildConfig","createClientConfig","serverOnlyAdminConfigProperties","serverOnlyConfigProperties","defaults","sanitizeConfig","combineQueries","createDatabaseAdapter","defaultBeginTransaction","flattenWhereToOperators","getLocalizedPaths","createMigration","getMigrations","getPredefinedMigration","migrate","migrateDown","migrateRefresh","migrateReset","migrateStatus","migrationsCollection","migrationTemplate","readMigrationFiles","writeMigrationIndex","validateQueryPaths","validateSearchParam","APIError","APIErrorName","AuthenticationError","DuplicateCollection","DuplicateFieldName","DuplicateGlobal","ErrorDeletingFile","FileRetrievalError","FileUploadError","Forbidden","InvalidConfiguration","InvalidFieldName","InvalidFieldRelationship","Locked","LockedAuth","MissingCollectionLabel","MissingEditorProp","MissingFieldInputOptions","MissingFieldType","MissingFile","NotFound","QueryError","ValidationError","ValidationErrorName","baseBlockFields","baseIDField","createClientField","createClientFields","sanitizeFields","getDefaultValue","afterChangeTraverseFields","afterReadPromise","afterReadTraverseFields","beforeChangeTraverseFields","beforeValidateTraverseFields","sortableFieldTypes","validations","createClientGlobalConfig","createClientGlobalConfigs","docAccessOperationGlobal","findOneOperation","findVersionByIDOperationGlobal","findVersionsOperationGlobal","restoreVersionOperationGlobal","updateOperationGlobal","importHandlerPath","getLocalI18n","getFileByPath","commitTransaction","configToJSONSchema","entityToJSONSchema","fieldsToJSONSchema","withNullableJSONSchemaType","createArrayFromCommaDelineated","createLocalReq","deepCopyObject","deepCopyObjectComplex","deepCopyObjectSimple","deepMerge","deepMergeWithCombinedArrays","deepMergeWithReactComponents","deepMergeWithSourceArrays","checkDependencies","getDependencies","findUp","findUpSync","pathExistsAndIsAccessible","pathExistsAndIsAccessibleSync","flattenAllFields","flattenTopLevelFields","formatErrors","formatLabels","formatNames","toWords","getCollectionIDFieldTypes","getObjectDotNotation","initTransaction","isEntityHidden","isolateObjectProperty","isPlainObject","isValidID","killTransaction","mapAsync","sanitizeFallbackLocale","sanitizeJoinParams","sanitizePopulateParam","sanitizeSelectParam","buildVersionCollectionFields","buildVersionGlobalFields","versionDefaults","deleteCollectionVersions","enforceMaxVersions","getLatestCollectionVersion","getLatestGlobalVersion","saveVersion","deepMergeSimple"],"mappings":"AAKA,SAASA,KAAK,QAAQ,gBAAe;AACrC,OAAOC,YAAY,SAAQ;AAC3B,SAASC,aAAa,QAAQ,WAAU;AACxC,OAAOC,UAAU,OAAM;AACvB,OAAOC,eAAe,KAAI;AAyD1B,SAASC,OAAO,EAAEC,OAAO,QAAQ,mBAAkB;AACnD,SAASC,oBAAoB,QAAQ,8BAA6B;AAClE,SAASC,iBAAiB,QAAQ,2BAA0B;AAC5D,SAASC,iBAAiB,QAAwB,mCAAkC;AACpF,SAASC,wBAAwB,QAAQ,gCAA+B;AACxE,OAAOC,qBAAqB,0CAAyC;AACrE,SAASC,mBAAmB,QAAQ,iCAAgC;AACpE,SAASC,gBAAgB,QAAQ,2BAA0B;AAC3D,OAAOC,2BAA2B,sCAAqC;AACvE,SAASC,eAAe,QAAQ,uBAAsB;AACtD,SAASC,SAAS,QAAQ,wBAAuB;AACjD,SAASC,cAAcC,mBAAmB,QAAQ,6CAA4C;AAC9F,SAASC,cAAc,QAAQ,gCAA+B;AAiJ9D,MAAMC,WAAWlB,cAAc,YAAYmB,GAAG;AAC9C,MAAMC,UAAUnB,KAAKmB,OAAO,CAACF;AAE7B,IAAIG,sBAAsB;AAE1B;;CAEC,GACD,OAAO,MAAMC;IACX;;;;GAIC,GACDC,OAAO,OAAOC;QACZ,MAAM,EAAED,IAAI,EAAE,GAAGd,gBAAgBc,IAAI;QACrC,OAAOA,KAAK,IAAI,EAAEC;IACpB,EAAC;IAEDC,eAA8B;IAE9BC,cAAkD,CAAC,EAAC;IAEpDC,OAAuB;IACvB;;;;GAIC,GACDC,QAAQ,OACNJ;QAEA,MAAM,EAAEI,KAAK,EAAE,GAAGnB;QAClB,OAAOmB,MAAM,IAAI,EAAEJ;IACrB,EAAC;IAED;;;;GAIC,GACDK,sBAAsB,OACpBL;QAEA,MAAM,EAAEK,mBAAmB,EAAE,GAAGjB;QAChC,OAAOiB,oBAAoB,IAAI,EAAEL;IACnC,EAAC;IAED;;;;GAIC,GACDM,gBAAgB,OACdN;QAEA,MAAM,EAAEM,aAAa,EAAE,GAAGrB;QAC1B,OAAOqB,cAAc,IAAI,EAAEN;IAC7B,EAAC;IAED;;;;GAIC,GACDO,SAAS,OACPP;QAEA,MAAM,EAAEO,MAAM,EAAE,GAAGtB;QACnB,OAAOsB,OAAuB,IAAI,EAAEP;IACtC,EAAC;IAEDQ,GAAmB;IACnB7B,UAAUA,QAAO;IAEjB8B,YAAY,OACVT;QAEA,MAAM,EAAES,SAAS,EAAE,GAAGxB;QACtB,OAAOwB,UAA0B,IAAI,EAAET;IACzC,EAAC;IAEDU,MAA8B;IAE9B9B,UAAUA,QAAO;IAEjB,gCAAgC;IAChC,6BAA6B;IAE7B+B,WAIkB;IAElB;;;;GAIC,GACDC,OAAO,OACLZ;QAEA,MAAM,EAAEY,IAAI,EAAE,GAAG3B;QACjB,OAAO2B,KAAqB,IAAI,EAAEZ;IACpC,EAAC;IAED;;;;GAIC,GACDa,WAAW,OAKTb;QAEA,MAAM,EAAEa,QAAQ,EAAE,GAAG5B;QACrB,OAAO4B,SAAyC,IAAI,EAAEb;IACxD,EAAC;IAEDc,aAAa,OACXd;QAEA,MAAM,EAAEe,OAAO,EAAE,GAAG3B;QACpB,OAAO2B,QAAwB,IAAI,EAAEf;IACvC,EAAC;IAED;;;;GAIC,GACDgB,wBAAwB,OACtBhB;QAEA,MAAM,EAAEiB,eAAe,EAAE,GAAG7B;QAC5B,OAAO6B,gBAAuB,IAAI,EAAEjB;IACtC,EAAC;IAED;;;;GAIC,GACDkB,qBAAqB,OACnBlB;QAEA,MAAM,EAAEmB,YAAY,EAAE,GAAG/B;QACzB,OAAO+B,aAAoB,IAAI,EAAEnB;IACnC,EAAC;IAED;;;;GAIC,GACDiB,kBAAkB,OAChBjB;QAEA,MAAM,EAAEiB,eAAe,EAAE,GAAGhC;QAC5B,OAAOgC,gBAAuB,IAAI,EAAEjB;IACtC,EAAC;IAED;;;;GAIC,GACDmB,eAAe,OACbnB;QAEA,MAAM,EAAEmB,YAAY,EAAE,GAAGlC;QACzB,OAAOkC,aAAoB,IAAI,EAAEnB;IACnC,EAAC;IAEDoB,iBAAiB,OACfpB;QAEA,MAAM,EAAEoB,cAAc,EAAE,GAAGnC,gBAAgBc,IAAI;QAC/C,OAAOqB,eAAsB,IAAI,EAAEpB;IACrC,EAAC;IAEDqB,cAAc,IAAc,GAAG,IAAI,CAAClB,MAAM,CAACmB,SAAS,GAAG,IAAI,CAACnB,MAAM,CAACoB,MAAM,CAACC,KAAK,EAAE,CAAA;IAEjFC,YAAY,IAAc,GAAG,IAAI,CAACtB,MAAM,CAACmB,SAAS,GAAG,IAAI,CAACnB,MAAM,CAACoB,MAAM,CAACG,GAAG,EAAE,CAAA;IAE7EC,QAAgB;IAEhBC,UAAoB;IAEpBC,OAAOxC,gBAAgB,IAAI,EAAC;IAE5ByC,OAAc;IAEdC,QAAQ,OACN/B;QAEA,MAAM,EAAE+B,KAAK,EAAE,GAAG9C,gBAAgBc,IAAI;QACtC,OAAOgC,MAAa,IAAI,EAAE/B;IAC5B,EAAC;IAEDgC,gBAAgB,OACdhC;QAEA,MAAM,EAAEgC,aAAa,EAAE,GAAG/C,gBAAgBc,IAAI;QAC9C,OAAOiC,cAAqB,IAAI,EAAEhC;IACpC,EAAC;IAED;;;;GAIC,GACDiC,uBAAuB,OACrBjC;QAEA,MAAM,EAAEkC,cAAc,EAAE,GAAG9C;QAC3B,OAAO8C,eAAsB,IAAI,EAAElC;IACrC,EAAC;IAED;;;;GAIC,GACDkC,iBAAiB,OACflC;QAEA,MAAM,EAAEkC,cAAc,EAAE,GAAGjD;QAC3B,OAAOiD,eAAsB,IAAI,EAAElC;IACrC,EAAC;IAEDmC,OAAqB;IAErBC,OAAc;IAEdC,UAA+C;IAE/CC,MAQC;IAEDC,SAAS,OACPvC;QAEA,MAAM,EAAEuC,MAAM,EAAE,GAAGtD,gBAAgBc,IAAI;QACvC,OAAOwC,OAAc,IAAI,EAAEvC;IAC7B,EAAC;IAEDwC,eAAe,OACbxC;QAEA,MAAM,EAAEyC,MAAM,EAAE,GAAGrD;QACnB,OAAOqD,OAAuB,IAAI,EAAEzC;IACtC,EAAC;IAED0C,gBAA+D;IAE/DC,cAAc,OACZ3C;QAEA,MAAM,EAAE2C,WAAW,EAAE,GAAG1D,gBAAgBc,IAAI;QAC5C,OAAO4C,YAAY,IAAI,EAAE3C;IAC3B,EAAC;IAED4C,WAEI,CAAC,EAAC;IAEN,MAAMC,IAAI,EACRC,IAAI,EACJC,GAAG,EACHC,GAAG,EAKJ,EAA6B;QAC5B,OAAO,IAAIC,QAAQ,CAACC,SAASC;YAC3B,MAAMC,UAAU9E,MAAM,QAAQ;gBAACG,KAAKyE,OAAO,CAACtD,SAAS;mBAAiBkD;aAAK,EAAE;gBAC3EC;gBACAM,OAAOL,OAAOA,QAAQM,YAAY,YAAY;YAChD;YAEAF,QAAQG,EAAE,CAAC,QAAQ,CAACC;gBAClBN,QAAQ;oBAAEM;gBAAK;YACjB;YAEAJ,QAAQG,EAAE,CAAC,SAAS,CAACE;gBACnBN,OAAOM;YACT;QACF;IACF;IAeAC,OACE1D,OAAsC,EACwD;QAC9F,MAAM,EAAE2D,WAAW,EAAE,GAAG1E;QACxB,OAAO0E,YAA4B,IAAI,EAAE3D;IAC3C;IAEA;;;GAGC,GACD,MAAM4D,KAAK5D,OAAoB,EAAoB;QACjD,IACE6D,QAAQC,GAAG,CAACC,QAAQ,KAAK,gBACzBF,QAAQC,GAAG,CAACE,kCAAkC,KAAK,UACnD,CAACnE,qBACD;YACAA,sBAAsB;YACtB,KAAKb;QACP;QAEA,IAAI,CAAC4C,SAAS,GAAG5B,QAAQ4B,SAAS;QAElC,IAAI,CAAC5B,SAASG,QAAQ;YACpB,MAAM,IAAI8D,MAAM;QAClB;QAEA,IAAI,CAAC9D,MAAM,GAAG,MAAMH,QAAQG,MAAM;QAClC,IAAI,CAAC2B,MAAM,GAAGxC,UAAU,WAAW,IAAI,CAACa,MAAM,CAAC2B,MAAM;QAErD,IAAI,CAAC,IAAI,CAAC3B,MAAM,CAACiC,MAAM,EAAE;YACvB,MAAM,IAAI6B,MAAM;QAClB;QAEA,IAAI,CAAC7B,MAAM,GAAG7D,OAAO2F,UAAU,CAAC,UAAUzB,MAAM,CAAC,IAAI,CAACtC,MAAM,CAACiC,MAAM,EAAE+B,MAAM,CAAC,OAAOC,KAAK,CAAC,GAAG;QAE5F,IAAI,CAACzC,OAAO,GAAG;YACbxB,QAAQ,IAAI,CAACA,MAAM,CAACwB,OAAO;QAC7B;QAEA,IAAI,CAACxB,MAAM,CAACD,WAAW,CAACmE,OAAO,CAAC,CAACC;YAC/B,IAAIC,eAAejB;YACnB,MAAMkB,eAAuC,CAAC,EAAEC,KAAK,EAAEC,IAAI,EAAE;gBAC3D,IACE;oBAAC;oBAAS;oBAAU;iBAAQ,CAACC,QAAQ,CAACF,MAAMG,IAAI,KAC/CH,MAAMG,IAAI,KAAK,SAAS,UAAUH,OACnC;oBACA,OAAO;gBACT;gBAEA,IAAI,CAACtF,iBAAiBsF,QAAQ;oBAC5B;gBACF;gBAEA,IAAIA,MAAMI,IAAI,KAAK,MAAM;oBACvBN,eAAeE,MAAMG,IAAI;oBACzB,OAAO;gBACT;YACF;YAEAnF,eAAe;gBAAEqF,UAAUN;gBAAcO,QAAQT,WAAWS,MAAM;YAAC;YAEnE,IAAI,CAAC7E,WAAW,CAACoE,WAAWU,IAAI,CAAC,GAAG;gBAClC7E,QAAQmE;gBACRC;YACF;QACF;QAEA,4BAA4B;QAC5B,IAAIV,QAAQC,GAAG,CAACC,QAAQ,KAAK,gBAAgB,IAAI,CAAC5D,MAAM,CAAC8E,UAAU,CAACC,YAAY,KAAK,OAAO;YAC1F,kHAAkH;YAClH,sDAAsD;YACtD,KAAK,IAAI,CAACrC,GAAG,CAAC;gBACZC,MAAM;oBAAC;iBAAiB;gBACxBE,KAAK;YACP;QACF;QAEA,IAAI,CAACxC,EAAE,GAAG,IAAI,CAACL,MAAM,CAACK,EAAE,CAACoD,IAAI,CAAC;YAAEuB,SAAS,IAAI;QAAC;QAC9C,IAAI,CAAC3E,EAAE,CAAC2E,OAAO,GAAG,IAAI;QAEtB,IAAI,IAAI,CAAC3E,EAAE,EAAEoD,MAAM;YACjB,MAAM,IAAI,CAACpD,EAAE,CAACoD,IAAI;QACpB;QAEA,IAAI,CAAC5D,QAAQoF,gBAAgB,IAAI,IAAI,CAAC5E,EAAE,CAAC6E,OAAO,EAAE;YAChD,MAAM,IAAI,CAAC7E,EAAE,CAAC6E,OAAO;QACvB;QAEA,qBAAqB;QACrB,IAAI,IAAI,CAAClF,MAAM,CAACO,KAAK,YAAYuC,SAAS;YACxC,MAAMqC,iBAAiB,MAAM,IAAI,CAACnF,MAAM,CAACO,KAAK;YAC9C,IAAI,CAACA,KAAK,GAAG4E,eAAe;gBAAEH,SAAS,IAAI;YAAC;QAC9C,OAAO,IAAI,IAAI,CAAChF,MAAM,CAACO,KAAK,EAAE;YAC5B,IAAI,CAACA,KAAK,GAAG,IAAI,CAACP,MAAM,CAACO,KAAK,CAAC;gBAAEyE,SAAS,IAAI;YAAC;QACjD,OAAO;YACL,IAAItB,QAAQC,GAAG,CAACyB,UAAU,KAAK,0BAA0B;gBACvD,IAAI,CAACzD,MAAM,CAAC0D,IAAI,CACd,CAAC,qHAAqH,CAAC;YAE3H;YAEA,IAAI,CAAC9E,KAAK,GAAGxB,oBAAoB;gBAAEiG,SAAS,IAAI;YAAC;QACnD;QAEA,+DAA+D;QAC/D,IACE,CAAC,IAAI,CAAChF,MAAM,CAACsF,KAAK,IAClB,IAAI,CAACtF,MAAM,CAACD,WAAW,CAACwF,IAAI,CAAC,CAACC,IAAMA,EAAEC,MAAM,CAACC,UAAU,IAAIF,EAAEC,MAAM,CAACE,aAAa,GACjF;YACA,IAAI,CAAChE,MAAM,CAAC0D,IAAI,CACd,CAAC,gIAAgI,CAAC;QAEtI;QAEA,IAAI,CAACnD,SAAS,GAAG,IAAI,CAAC3B,KAAK,CAAC,YAAY;QAExClB,oBAAoB,IAAI;QAExB,0FAA0F;QAC1F,IAAIuG,qBAAqB;QACzB,IAAI,CAAC9F,cAAc,GAAG,IAAI,CAACE,MAAM,CAACD,WAAW,CAAC8F,MAAM,CAAC,CAAC/F,gBAAgBqE;YACpE,IAAIA,YAAYvE,MAAM;gBACpB,IAAIuE,WAAWvE,IAAI,CAACkG,UAAU,CAACC,MAAM,GAAG,GAAG;oBACzCjG,eAAekG,IAAI,IAAI7B,WAAWvE,IAAI,CAACkG,UAAU;gBACnD;gBAEA,8DAA8D;gBAC9D,IAAI3B,WAAWvE,IAAI,EAAEqG,WAAW;oBAC9BnG,eAAekG,IAAI,CAAC;wBAClBtB,MAAM,GAAGP,WAAWU,IAAI,CAAC,QAAQ,CAAC;wBAClCqB,cAAcxH,qBAAqByF;oBACrC;gBACF;gBAEA,mCAAmC;gBACnC,IAAI,CAACA,WAAWvE,IAAI,CAACuG,oBAAoB,IAAI,CAACP,oBAAoB;oBAChEA,qBAAqB;gBACvB;YACF;YAEA,OAAO9F;QACT,GAAG,EAAE;QAEL,4DAA4D;QAC5D,IAAI8F,oBAAoB;YACtB,IAAI,CAAC9F,cAAc,CAACkG,IAAI,CAAC;gBACvBtB,MAAM;gBACNwB,cAAcvH;YAChB;QACF;QAEA,IAAI,CAACkB,QAAQuG,aAAa,EAAE;YAC1B,IAAI,OAAOvG,QAAQwG,MAAM,KAAK,YAAY;gBACxC,MAAMxG,QAAQwG,MAAM,CAAC,IAAI;YAC3B;YACA,IAAI,OAAO,IAAI,CAACrG,MAAM,CAACqG,MAAM,KAAK,YAAY;gBAC5C,MAAM,IAAI,CAACrG,MAAM,CAACqG,MAAM,CAAC,IAAI;YAC/B;QACF;QAEA,OAAO,IAAI;IACb;IAeA/D,OACEzC,OAAsC,EACwD;QAC9F,MAAM,EAAEyC,MAAM,EAAE,GAAGxD;QACnB,OAAOwD,OAAuB,IAAI,EAAEzC;IACtC;AACF;AAEA,MAAMyG,cAAc,IAAI3G;AAExB,eAAe2G,YAAW;AAE1B,IAAIC,SAKAC,OAAOC,QAAQ;AAEnB,IAAI,CAACF,QAAQ;IACXA,SAASC,OAAOC,QAAQ,GAAG;QAAEzB,SAAS;QAAM0B,SAAS;QAAMC,QAAQ;QAAOC,IAAI;IAAK;AACrF;AAEA,OAAO,MAAMD,SAAS,OACpB3G,QACAgF,SACA6B;IAEA,IAAI,OAAO7B,QAAQ3E,EAAE,CAACyG,OAAO,KAAK,YAAY;QAC5C,MAAM9B,QAAQ3E,EAAE,CAACyG,OAAO;IAC1B;IAEA9B,QAAQhF,MAAM,GAAGA;IAEjBgF,QAAQjF,WAAW,GAAGC,OAAOD,WAAW,CAAC8F,MAAM,CAAC,CAAC9F,aAAaoE;QAC5DpE,WAAW,CAACoE,WAAWU,IAAI,CAAC,GAAG;YAC7B7E,QAAQmE;YACRC,cAAcY,QAAQjF,WAAW,CAACoE,WAAWU,IAAI,CAAC,EAAET;QACtD;QACA,OAAOrE;IACT,GAAG,CAAC;IAEJiF,QAAQxD,OAAO,GAAG;QAChBxB,QAAQA,OAAOwB,OAAO;IACxB;IAEA,sHAAsH;IAEtH,iBAAiB;IACjB,IAAIxB,OAAO8E,UAAU,CAACC,YAAY,KAAK,OAAO;QAC5C,kHAAkH;QAClH,sDAAsD;QACtD,KAAKC,QAAQtC,GAAG,CAAC;YACfC,MAAM;gBAAC;aAAiB;YACxBE,KAAK;QACP;IACF;IAEA,yBAAyB;IACzB,IAAIgE,4BAA4B,QAAQ7G,OAAOqB,KAAK,EAAEI,WAAWsD,iBAAiB,OAAO;QACvF,MAAMnG,kBAAkBoB,QAAQ;YAC9B6C,KAAK;QACP;IACF;IAEA,MAAMmC,QAAQ3E,EAAE,CAACoD,IAAI;IACrB,IAAIuB,QAAQ3E,EAAE,CAAC6E,OAAO,EAAE;QACtB,MAAMF,QAAQ3E,EAAE,CAAC6E,OAAO,CAAC;YAAE6B,WAAW;QAAK;IAC7C;IACAP,OAAOQ,qBAAqB,GAAG;IAC/BR,OAAOS,kBAAkB,GAAG;IAC5BT,OAAOU,wBAAwB,GAAG;IAClCV,OAAOW,+BAA+B,GAAG,KAAK,0KAA0K;;IACxNX,OAAOY,4BAA4B,GAAG;IACtCZ,OAAOa,kCAAkC,GAAG;AAC9C,EAAC;AAED,OAAO,MAAMC,aAAa,OACxBzH;IAEA,IAAI,CAACA,SAASG,QAAQ;QACpB,MAAM,IAAI8D,MAAM;IAClB;IAEA,IAAIyC,OAAOvB,OAAO,EAAE;QAClB,IAAIuB,OAAOI,MAAM,KAAK,MAAM;YAC1B,IAAI5D;YAEJ,yJAAyJ;YACzJ,qIAAqI;YACrI,wGAAwG;YACxGwD,OAAOI,MAAM,GAAG,IAAI7D,QAAQ,CAACyE,MAASxE,UAAUwE;YAChD,MAAMvH,SAAS,MAAMH,QAAQG,MAAM;YACnC,MAAM2G,OAAO3G,QAAQuG,OAAOvB,OAAO,EAAE,CAACnF,QAAQ4B,SAAS;YAEvDsB;QACF;QAEA,IAAIwD,OAAOI,MAAM,YAAY7D,SAAS;YACpC,MAAMyD,OAAOI,MAAM;QACrB;QACA,IAAI9G,SAAS4B,WAAW;YACtB8E,OAAOvB,OAAO,CAACvD,SAAS,GAAG5B,QAAQ4B,SAAS;QAC9C;QACA,OAAO8E,OAAOvB,OAAO;IACvB;IAEA,kEAAkE;IAClE,IAAI,CAACuB,OAAOG,OAAO,EAAE;QACnB,wFAAwF;QACxFH,OAAOG,OAAO,GAAG,IAAI/G,cAAc8D,IAAI,CAAC5D;IAC1C;IAEA,IAAI;QACF0G,OAAOvB,OAAO,GAAG,MAAMuB,OAAOG,OAAO;QAErC,IACE,CAACH,OAAOK,EAAE,IACVlD,QAAQC,GAAG,CAACC,QAAQ,KAAK,gBACzBF,QAAQC,GAAG,CAACC,QAAQ,KAAK,UACzBF,QAAQC,GAAG,CAAC6D,mBAAmB,KAAK,QACpC;YACA,IAAI;gBACF,MAAMC,OAAO/D,QAAQC,GAAG,CAAC+D,IAAI,IAAI;gBAEjCnB,OAAOK,EAAE,GAAG,IAAIrI,UACd,CAAC,eAAe,EAAEkJ,OAAO/D,QAAQC,GAAG,CAACgE,cAAc,IAAI,GAAG,kBAAkB,CAAC;gBAG/EpB,OAAOK,EAAE,CAACgB,SAAS,GAAG,CAACC;oBACrB,IAAI,OAAOA,MAAMC,IAAI,KAAK,UAAU;wBAClC,MAAMA,OAAOC,KAAKC,KAAK,CAACH,MAAMC,IAAI;wBAElC,IAAI,YAAYA,QAAQA,KAAKG,MAAM,KAAK,0BAA0B;4BAChE1B,OAAOI,MAAM,GAAG;wBAClB;oBACF;gBACF;gBAEAJ,OAAOK,EAAE,CAACsB,OAAO,GAAG,CAACC;gBACnB,yCAAyC;gBAC3C;YACF,EAAE,OAAOA,GAAG;YACV,YAAY;YACd;QACF;IACF,EAAE,OAAOC,GAAG;QACV7B,OAAOG,OAAO,GAAG;QACjB,MAAM0B;IACR;IAEA,IAAIvI,SAAS4B,WAAW;QACtB8E,OAAOvB,OAAO,CAACvD,SAAS,GAAG5B,QAAQ4B,SAAS;IAC9C;IAEA,OAAO8E,OAAOvB,OAAO;AACvB,EAAC;AAWD,SAASqD,WAAWC,aAAa,QAAQ,0BAAyB;AAClE,SAASC,qBAAqB,QAAQ,kCAAiC;AACvE,SAASC,gBAAgB,QAAQ,6BAA4B;AAC7D,SAASC,eAAe,QAAQ,4BAA2B;AAC3D,cAAc,kBAAiB;AAC/B,SAASC,eAAe,QAAQ,8BAA6B;AAC7D,SAASC,uBAAuB,QAAQ,sCAAqC;AAC7E,SAASC,aAAa,QAAQ,4BAA2B;AACzD,SAASC,cAAc,QAAQ,6BAA4B;AAC3D,SAASC,eAAe,QAAQ,8BAA6B;AAE7D,SAASC,WAAW,QAAQ,0BAAyB;AACrD,SAASC,gBAAgB,QAAQ,+BAA8B;AAC/D,SAASC,0BAA0B,QAAQ,yCAAwC;AACnF,SAASC,sBAAsB,QAAQ,qCAAoC;AAC3E,SAASC,eAAe,QAAQ,8BAA6B;AAC7D,SAASC,oBAAoB,QAAQ,mCAAkC;AAqBvE,SAASxK,iBAAiB,QAAQ,mCAAkC;AAGpE,SAASyK,yBAAyB,QAAQ,2CAA0C;AAEpF,SAEEC,4BAA4B,EAC5BC,6BAA6B,QAIxB,iCAAgC;AAqCvC,SAASC,wBAAwB,EAAEC,aAAa,QAAQ,8BAA6B;AACrF,SAASC,cAAc,QAAQ,oCAAmC;AAClE,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,mBAAmB,QAAQ,yCAAwC;AAC5E,SAASC,kBAAkB,QAAQ,wCAAuC;AAC1E,SAASC,kBAAkB,QAAQ,wCAAuC;AAC1E,SAASC,aAAa,QAAQ,mCAAkC;AAChE,SAASC,iBAAiB,QAAQ,uCAAsC;AACxE,SAASC,wBAAwB,QAAQ,8CAA6C;AACtF,SAASC,qBAAqB,QAAQ,2CAA0C;AAChF,SAASC,uBAAuB,QAAQ,6CAA4C;AACpF,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,mBAAmB,QAAQ,yCAAwC;AAC5E,SAASC,WAAW,QAAQ,oBAAmB;AAC/C,SAEEC,kBAAkB,EAClBC,+BAA+B,EAC/BC,0BAA0B,QACrB,qBAAoB;AAE3B,SAASC,QAAQ,QAAQ,uBAAsB;AAC/C,SAASC,cAAc,QAAQ,uBAAsB;AAErD,SAASC,cAAc,QAAQ,+BAA8B;AAC7D,SAASC,qBAAqB,QAAQ,sCAAqC;AAC3E,SAASC,uBAAuB,QAAQ,wCAAuC;AAC/E,SAAS1C,WAAW2C,uBAAuB,QAAQ,wCAAuC;AAC1F,SAASC,iBAAiB,QAAQ,kCAAiC;AACnE,SAASC,eAAe,QAAQ,2CAA0C;AAC1E,SAASC,aAAa,QAAQ,yCAAwC;AACtE,SAASC,sBAAsB,QAAQ,kDAAiD;AACxF,SAASC,OAAO,QAAQ,mCAAkC;AAC1D,SAASC,WAAW,QAAQ,uCAAsC;AAClE,SAASC,cAAc,QAAQ,0CAAyC;AACxE,SAASC,YAAY,QAAQ,wCAAuC;AACpE,SAASC,aAAa,QAAQ,yCAAwC;AACtE,SAASC,oBAAoB,QAAQ,gDAA+C;AACpF,SAASC,iBAAiB,QAAQ,6CAA4C;AAC9E,SAASC,kBAAkB,QAAQ,8CAA6C;AAChF,SAASC,mBAAmB,QAAQ,+CAA8C;AAGlF,SAASC,kBAAkB,QAAQ,mDAAkD;AACrF,SAASC,mBAAmB,QAAQ,qDAAoD;AA2DxF,SACEC,QAAQ,EACRC,YAAY,EACZC,mBAAmB,EACnBC,mBAAmB,EACnBC,kBAAkB,EAClBC,eAAe,EACfC,iBAAiB,EACjBC,kBAAkB,EAClBC,eAAe,EACfC,SAAS,EACTC,oBAAoB,EACpBC,gBAAgB,EAChBC,wBAAwB,EACxBC,MAAM,EACNC,UAAU,EACVC,sBAAsB,EACtBC,iBAAiB,EACjBC,wBAAwB,EACxBC,gBAAgB,EAChBC,WAAW,EACXC,QAAQ,EACRC,UAAU,EACVC,eAAe,EACfC,mBAAmB,QACd,oBAAmB;AAG1B,SAASC,eAAe,QAAQ,yCAAwC;AACxE,SAASC,WAAW,QAAQ,qCAAoC;AAChE,SACEC,iBAAiB,EACjBC,kBAAkB,QAGb,4BAA2B;AAClC,SAASC,cAAc,QAAQ,8BAA6B;AAuG5D,SAASC,eAAe,QAAQ,8BAA6B;AAC7D,SAASvO,kBAAkBwO,yBAAyB,QAAQ,+CAA8C;AAC1G,SAASpH,WAAWqH,gBAAgB,QAAQ,sCAAqC;AACjF,SAASzO,kBAAkB0O,uBAAuB,QAAQ,6CAA4C;AACtG,SAAS1O,kBAAkB2O,0BAA0B,QAAQ,gDAA+C;AAC5G,SAAS3O,kBAAkB4O,4BAA4B,QAAQ,kDAAiD;AAChH,SAAS7F,WAAW8F,kBAAkB,QAAQ,iCAAgC;AAE9E,SAASC,WAAW,QAAQ,0BAAyB;AAiCrD,SAEEC,wBAAwB,EACxBC,yBAAyB,QAGpB,6BAA4B;AAcnC,SAASxE,sBAAsByE,wBAAwB,QAAQ,oCAAmC;AAClG,SAASC,gBAAgB,QAAQ,kCAAiC;AAClE,SAAStE,4BAA4BuE,8BAA8B,QAAQ,0CAAyC;AACpH,SAAStE,yBAAyBuE,2BAA2B,QAAQ,uCAAsC;AAC3G,SAAStE,2BAA2BuE,6BAA6B,QAAQ,yCAAwC;AACjH,SAAStE,mBAAmBuE,qBAAqB,QAAQ,iCAAgC;AAgCzF,SAASC,iBAAiB,QAAQ,0DAAyD;AAC3F,SAASC,YAAY,QAAQ,iCAAgC;AAC7D,cAAc,mBAAkB;AAChC,SAASC,aAAa,QAAQ,6BAA4B;AAE1D,SAASC,iBAAiB,QAAQ,mCAAkC;AACpE,SACEC,kBAAkB,EAClBC,kBAAkB,EAClBC,kBAAkB,EAClBC,0BAA0B,QACrB,oCAAmC;AAC1C,SAASC,8BAA8B,QAAQ,gDAA+C;AAC9F,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SACEC,cAAc,EACdC,qBAAqB,EACrBC,oBAAoB,QACf,gCAA+B;AACtC,SACEC,SAAS,EACTC,2BAA2B,EAC3BC,4BAA4B,EAC5BC,yBAAyB,QACpB,2BAA0B;AACjC,SACEC,iBAAiB,QAEZ,gDAA+C;AACtD,SAASC,eAAe,QAAQ,8CAA6C;AAC7E,SACEC,MAAM,EACNC,UAAU,EACVC,yBAAyB,EACzBC,6BAA6B,QACxB,wBAAuB;AAC9B,SAASC,gBAAgB,QAAQ,kCAAiC;AAClE,SAAS/H,WAAWgI,qBAAqB,QAAQ,uCAAsC;AACvF,SAASC,YAAY,QAAQ,8BAA6B;AAC1D,SAASC,YAAY,EAAEC,WAAW,EAAEC,OAAO,QAAQ,8BAA6B;AAChF,SAASC,yBAAyB,QAAQ,2CAA0C;AACpF,SAASC,oBAAoB,QAAQ,sCAAqC;AAC1E,SAASC,eAAe,QAAQ,iCAAgC;AAChE,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SAASxI,WAAWyI,qBAAqB,QAAQ,uCAAsC;AACvF,SAASC,aAAa,QAAQ,+BAA8B;AAC5D,SAASC,SAAS,QAAQ,2BAA0B;AACpD,SAASC,eAAe,QAAQ,iCAAgC;AAChE,SAASC,QAAQ,QAAQ,0BAAyB;AAClD,SAASC,sBAAsB,QAAQ,wCAAuC;AAC9E,SAASC,kBAAkB,QAAQ,oCAAmC;AACtE,SAASC,qBAAqB,QAAQ,uCAAsC;AAC5E,SAASC,mBAAmB,QAAQ,qCAAoC;AACxE,SAAShS,cAAc,QAAQ,gCAA+B;AAK9D,SAASiS,4BAA4B,QAAQ,sCAAqC;AAClF,SAASC,wBAAwB,QAAQ,kCAAiC;AAC1E,SAASC,eAAe,QAAQ,yBAAwB;AACxD,SAASC,wBAAwB,QAAQ,yCAAwC;AACjF,SAASC,kBAAkB,QAAQ,mCAAkC;AACrE,SAASC,0BAA0B,QAAQ,2CAA0C;AACrF,SAASC,sBAAsB,QAAQ,uCAAsC;AAE7E,SAASC,WAAW,QAAQ,4BAA2B;AAEvD,SAASC,eAAe,QAAQ,qCAAoC"}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { ExecutionResult, GraphQLSchema, ValidationRule } from 'graphql'\nimport type { Request as graphQLRequest, OperationArgs } from 'graphql-http'\nimport type { Logger } from 'pino'\nimport type { NonNever } from 'ts-essentials'\n\nimport { spawn } from 'child_process'\nimport crypto from 'crypto'\nimport { fileURLToPath } from 'node:url'\nimport path from 'path'\nimport WebSocket from 'ws'\n\nimport type { AuthArgs } from './auth/operations/auth.js'\nimport type { Result as ForgotPasswordResult } from './auth/operations/forgotPassword.js'\nimport type { Options as ForgotPasswordOptions } from './auth/operations/local/forgotPassword.js'\nimport type { Options as LoginOptions } from './auth/operations/local/login.js'\nimport type { Options as ResetPasswordOptions } from './auth/operations/local/resetPassword.js'\nimport type { Options as UnlockOptions } from './auth/operations/local/unlock.js'\nimport type { Options as VerifyEmailOptions } from './auth/operations/local/verifyEmail.js'\nimport type { Result as LoginResult } from './auth/operations/login.js'\nimport type { Result as ResetPasswordResult } from './auth/operations/resetPassword.js'\nimport type { AuthStrategy, User } from './auth/types.js'\nimport type {\n BulkOperationResult,\n Collection,\n DataFromCollectionSlug,\n SelectFromCollectionSlug,\n TypeWithID,\n} from './collections/config/types.js'\nimport type { Options as CountOptions } from './collections/operations/local/count.js'\nimport type { Options as CreateOptions } from './collections/operations/local/create.js'\nimport type {\n ByIDOptions as DeleteByIDOptions,\n ManyOptions as DeleteManyOptions,\n Options as DeleteOptions,\n} from './collections/operations/local/delete.js'\nimport type { Options as DuplicateOptions } from './collections/operations/local/duplicate.js'\nimport type { Options as FindOptions } from './collections/operations/local/find.js'\nimport type { Options as FindByIDOptions } from './collections/operations/local/findByID.js'\nimport type { Options as FindVersionByIDOptions } from './collections/operations/local/findVersionByID.js'\nimport type { Options as FindVersionsOptions } from './collections/operations/local/findVersions.js'\nimport type { Options as RestoreVersionOptions } from './collections/operations/local/restoreVersion.js'\nimport type {\n ByIDOptions as UpdateByIDOptions,\n ManyOptions as UpdateManyOptions,\n Options as UpdateOptions,\n} from './collections/operations/local/update.js'\nimport type { InitOptions, SanitizedConfig } from './config/types.js'\nimport type { BaseDatabaseAdapter, PaginatedDocs } from './database/types.js'\nimport type { InitializedEmailAdapter } from './email/types.js'\nimport type { DataFromGlobalSlug, Globals, SelectFromGlobalSlug } from './globals/config/types.js'\nimport type { CountGlobalVersionsOptions } from './globals/operations/local/countGlobalVersions.js'\nimport type { Options as FindGlobalOptions } from './globals/operations/local/findOne.js'\nimport type { Options as FindGlobalVersionByIDOptions } from './globals/operations/local/findVersionByID.js'\nimport type { Options as FindGlobalVersionsOptions } from './globals/operations/local/findVersions.js'\nimport type { Options as RestoreGlobalVersionOptions } from './globals/operations/local/restoreVersion.js'\nimport type { Options as UpdateGlobalOptions } from './globals/operations/local/update.js'\nimport type {\n ApplyDisableErrors,\n JsonObject,\n SelectType,\n TransformCollectionWithSelect,\n TransformGlobalWithSelect,\n} from './types/index.js'\nimport type { TraverseFieldsCallback } from './utilities/traverseFields.js'\nimport type { TypeWithVersion } from './versions/types.js'\n\nimport { decrypt, encrypt } from './auth/crypto.js'\nimport { APIKeyAuthentication } from './auth/strategies/apiKey.js'\nimport { JWTAuthentication } from './auth/strategies/jwt.js'\nimport { generateImportMap, type ImportMap } from './bin/generateImportMap/index.js'\nimport { checkPayloadDependencies } from './checkPayloadDependencies.js'\nimport localOperations from './collections/operations/local/index.js'\nimport { consoleEmailAdapter } from './email/consoleEmailAdapter.js'\nimport { fieldAffectsData } from './fields/config/types.js'\nimport localGlobalOperations from './globals/operations/local/index.js'\nimport { getJobsLocalAPI } from './queues/localAPI.js'\nimport { getLogger } from './utilities/logger.js'\nimport { serverInit as serverInitTelemetry } from './utilities/telemetry/events/serverInit.js'\nimport { traverseFields } from './utilities/traverseFields.js'\n\nexport type { FieldState } from './admin/forms/Form.js'\nexport type * from './admin/types.js'\n\nexport interface GeneratedTypes {\n authUntyped: {\n [slug: string]: {\n forgotPassword: {\n email: string\n }\n login: {\n email: string\n password: string\n }\n registerFirstUser: {\n email: string\n password: string\n }\n unlock: {\n email: string\n }\n }\n }\n\n collectionsJoinsUntyped: {\n [slug: string]: {\n [schemaPath: string]: CollectionSlug\n }\n }\n collectionsSelectUntyped: {\n [slug: string]: SelectType\n }\n\n collectionsUntyped: {\n [slug: string]: JsonObject & TypeWithID\n }\n dbUntyped: {\n defaultIDType: number | string\n }\n globalsSelectUntyped: {\n [slug: string]: SelectType\n }\n\n globalsUntyped: {\n [slug: string]: JsonObject\n }\n jobsUntyped: {\n tasks: {\n [slug: string]: {\n input?: JsonObject\n output?: JsonObject\n }\n }\n workflows: {\n [slug: string]: {\n input: JsonObject\n }\n }\n }\n localeUntyped: null | string\n userUntyped: User\n}\n\n// Helper type to resolve the correct type using conditional types\ntype ResolveCollectionType<T> = 'collections' extends keyof T\n ? T['collections']\n : // @ts-expect-error\n T['collectionsUntyped']\n\ntype ResolveCollectionSelectType<T> = 'collectionsSelect' extends keyof T\n ? T['collectionsSelect']\n : // @ts-expect-error\n T['collectionsSelectUntyped']\n\ntype ResolveCollectionJoinsType<T> = 'collectionsJoins' extends keyof T\n ? T['collectionsJoins']\n : // @ts-expect-error\n T['collectionsJoinsUntyped']\n\ntype ResolveGlobalType<T> = 'globals' extends keyof T\n ? T['globals']\n : // @ts-expect-error\n T['globalsUntyped']\n\ntype ResolveGlobalSelectType<T> = 'globalsSelect' extends keyof T\n ? T['globalsSelect']\n : // @ts-expect-error\n T['globalsSelectUntyped']\n\n// Applying helper types to GeneratedTypes\nexport type TypedCollection = ResolveCollectionType<GeneratedTypes>\n\nexport type TypedUploadCollection = NonNever<{\n [K in keyof TypedCollection]:\n | 'filename'\n | 'filesize'\n | 'mimeType'\n | 'url' extends keyof TypedCollection[K]\n ? TypedCollection[K]\n : never\n}>\n\nexport type TypedCollectionSelect = ResolveCollectionSelectType<GeneratedTypes>\n\nexport type TypedCollectionJoins = ResolveCollectionJoinsType<GeneratedTypes>\n\nexport type TypedGlobal = ResolveGlobalType<GeneratedTypes>\n\nexport type TypedGlobalSelect = ResolveGlobalSelectType<GeneratedTypes>\n\n// Extract string keys from the type\nexport type StringKeyOf<T> = Extract<keyof T, string>\n\n// Define the types for slugs using the appropriate collections and globals\nexport type CollectionSlug = StringKeyOf<TypedCollection>\n\nexport type UploadCollectionSlug = StringKeyOf<TypedUploadCollection>\n\ntype ResolveDbType<T> = 'db' extends keyof T\n ? T['db']\n : // @ts-expect-error\n T['dbUntyped']\n\nexport type DefaultDocumentIDType = ResolveDbType<GeneratedTypes>['defaultIDType']\nexport type GlobalSlug = StringKeyOf<TypedGlobal>\n\n// now for locale and user\n\n// @ts-expect-error\ntype ResolveLocaleType<T> = 'locale' extends keyof T ? T['locale'] : T['localeUntyped']\n// @ts-expect-error\ntype ResolveUserType<T> = 'user' extends keyof T ? T['user'] : T['userUntyped']\n\nexport type TypedLocale = ResolveLocaleType<GeneratedTypes>\nexport type TypedUser = ResolveUserType<GeneratedTypes>\n\n// @ts-expect-error\ntype ResolveAuthOperationsType<T> = 'auth' extends keyof T ? T['auth'] : T['authUntyped']\nexport type TypedAuthOperations = ResolveAuthOperationsType<GeneratedTypes>\n\n// @ts-expect-error\ntype ResolveJobOperationsType<T> = 'jobs' extends keyof T ? T['jobs'] : T['jobsUntyped']\nexport type TypedJobs = ResolveJobOperationsType<GeneratedTypes>\n\nconst filename = fileURLToPath(import.meta.url)\nconst dirname = path.dirname(filename)\n\nlet checkedDependencies = false\n\n/**\n * @description Payload\n */\nexport class BasePayload {\n /**\n * @description Authorization and Authentication using headers and cookies to run auth user strategies\n * @returns permissions: Permissions\n * @returns user: User\n */\n auth = async (options: AuthArgs) => {\n const { auth } = localOperations.auth\n return auth(this, options)\n }\n\n authStrategies: AuthStrategy[]\n\n collections: Record<CollectionSlug, Collection> = {}\n\n config: SanitizedConfig\n /**\n * @description Performs count operation\n * @param options\n * @returns count of documents satisfying query\n */\n count = async <T extends CollectionSlug>(\n options: CountOptions<T>,\n ): Promise<{ totalDocs: number }> => {\n const { count } = localOperations\n return count(this, options)\n }\n\n /**\n * @description Performs countGlobalVersions operation\n * @param options\n * @returns count of global document versions satisfying query\n */\n countGlobalVersions = async <T extends GlobalSlug>(\n options: CountGlobalVersionsOptions<T>,\n ): Promise<{ totalDocs: number }> => {\n const { countGlobalVersions } = localGlobalOperations\n return countGlobalVersions(this, options)\n }\n\n /**\n * @description Performs countVersions operation\n * @param options\n * @returns count of document versions satisfying query\n */\n countVersions = async <T extends CollectionSlug>(\n options: CountOptions<T>,\n ): Promise<{ totalDocs: number }> => {\n const { countVersions } = localOperations\n return countVersions(this, options)\n }\n\n /**\n * @description Performs create operation\n * @param options\n * @returns created document\n */\n create = async <TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: CreateOptions<TSlug, TSelect>,\n ): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n const { create } = localOperations\n return create<TSlug, TSelect>(this, options)\n }\n\n db: DatabaseAdapter\n decrypt = decrypt\n\n duplicate = async <TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: DuplicateOptions<TSlug, TSelect>,\n ): Promise<TransformCollectionWithSelect<TSlug, TSelect>> => {\n const { duplicate } = localOperations\n return duplicate<TSlug, TSelect>(this, options)\n }\n\n email: InitializedEmailAdapter\n\n encrypt = encrypt\n\n // TODO: re-implement or remove?\n // errorHandler: ErrorHandler\n\n extensions: (args: {\n args: OperationArgs<any>\n req: graphQLRequest<unknown, unknown>\n result: ExecutionResult\n }) => Promise<any>\n\n /**\n * @description Find documents with criteria\n * @param options\n * @returns documents satisfying query\n */\n find = async <TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: FindOptions<TSlug, TSelect>,\n ): Promise<PaginatedDocs<TransformCollectionWithSelect<TSlug, TSelect>>> => {\n const { find } = localOperations\n return find<TSlug, TSelect>(this, options)\n }\n\n /**\n * @description Find document by ID\n * @param options\n * @returns document with specified ID\n */\n findByID = async <\n TSlug extends CollectionSlug,\n TDisableErrors extends boolean,\n TSelect extends SelectFromCollectionSlug<TSlug>,\n >(\n options: FindByIDOptions<TSlug, TDisableErrors, TSelect>,\n ): Promise<ApplyDisableErrors<TransformCollectionWithSelect<TSlug, TSelect>, TDisableErrors>> => {\n const { findByID } = localOperations\n return findByID<TSlug, TDisableErrors, TSelect>(this, options)\n }\n\n findGlobal = async <TSlug extends GlobalSlug, TSelect extends SelectFromGlobalSlug<TSlug>>(\n options: FindGlobalOptions<TSlug, TSelect>,\n ): Promise<TransformGlobalWithSelect<TSlug, TSelect>> => {\n const { findOne } = localGlobalOperations\n return findOne<TSlug, TSelect>(this, options)\n }\n\n /**\n * @description Find global version by ID\n * @param options\n * @returns global version with specified ID\n */\n findGlobalVersionByID = async <TSlug extends GlobalSlug>(\n options: FindGlobalVersionByIDOptions<TSlug>,\n ): Promise<TypeWithVersion<DataFromGlobalSlug<TSlug>>> => {\n const { findVersionByID } = localGlobalOperations\n return findVersionByID<TSlug>(this, options)\n }\n\n /**\n * @description Find global versions with criteria\n * @param options\n * @returns versions satisfying query\n */\n findGlobalVersions = async <TSlug extends GlobalSlug>(\n options: FindGlobalVersionsOptions<TSlug>,\n ): Promise<PaginatedDocs<TypeWithVersion<DataFromGlobalSlug<TSlug>>>> => {\n const { findVersions } = localGlobalOperations\n return findVersions<TSlug>(this, options)\n }\n\n /**\n * @description Find version by ID\n * @param options\n * @returns version with specified ID\n */\n findVersionByID = async <TSlug extends CollectionSlug>(\n options: FindVersionByIDOptions<TSlug>,\n ): Promise<TypeWithVersion<DataFromCollectionSlug<TSlug>>> => {\n const { findVersionByID } = localOperations\n return findVersionByID<TSlug>(this, options)\n }\n\n /**\n * @description Find versions with criteria\n * @param options\n * @returns versions satisfying query\n */\n findVersions = async <TSlug extends CollectionSlug>(\n options: FindVersionsOptions<TSlug>,\n ): Promise<PaginatedDocs<TypeWithVersion<DataFromCollectionSlug<TSlug>>>> => {\n const { findVersions } = localOperations\n return findVersions<TSlug>(this, options)\n }\n\n forgotPassword = async <TSlug extends CollectionSlug>(\n options: ForgotPasswordOptions<TSlug>,\n ): Promise<ForgotPasswordResult> => {\n const { forgotPassword } = localOperations.auth\n return forgotPassword<TSlug>(this, options)\n }\n\n getAdminURL = (): string => `${this.config.serverURL}${this.config.routes.admin}`\n\n getAPIURL = (): string => `${this.config.serverURL}${this.config.routes.api}`\n\n globals: Globals\n\n importMap: ImportMap\n\n jobs = getJobsLocalAPI(this)\n\n logger: Logger\n\n login = async <TSlug extends CollectionSlug>(\n options: LoginOptions<TSlug>,\n ): Promise<{ user: DataFromCollectionSlug<TSlug> } & LoginResult> => {\n const { login } = localOperations.auth\n return login<TSlug>(this, options)\n }\n\n resetPassword = async <TSlug extends CollectionSlug>(\n options: ResetPasswordOptions<TSlug>,\n ): Promise<ResetPasswordResult> => {\n const { resetPassword } = localOperations.auth\n return resetPassword<TSlug>(this, options)\n }\n\n /**\n * @description Restore global version by ID\n * @param options\n * @returns version with specified ID\n */\n restoreGlobalVersion = async <TSlug extends GlobalSlug>(\n options: RestoreGlobalVersionOptions<TSlug>,\n ): Promise<DataFromGlobalSlug<TSlug>> => {\n const { restoreVersion } = localGlobalOperations\n return restoreVersion<TSlug>(this, options)\n }\n\n /**\n * @description Restore version by ID\n * @param options\n * @returns version with specified ID\n */\n restoreVersion = async <TSlug extends CollectionSlug>(\n options: RestoreVersionOptions<TSlug>,\n ): Promise<DataFromCollectionSlug<TSlug>> => {\n const { restoreVersion } = localOperations\n return restoreVersion<TSlug>(this, options)\n }\n\n schema: GraphQLSchema\n\n secret: string\n\n sendEmail: InitializedEmailAdapter['sendEmail']\n\n types: {\n arrayTypes: any\n blockInputTypes: any\n blockTypes: any\n fallbackLocaleInputType?: any\n groupTypes: any\n localeInputType?: any\n tabTypes: any\n }\n\n unlock = async <TSlug extends CollectionSlug>(\n options: UnlockOptions<TSlug>,\n ): Promise<boolean> => {\n const { unlock } = localOperations.auth\n return unlock<TSlug>(this, options)\n }\n\n updateGlobal = async <TSlug extends GlobalSlug, TSelect extends SelectFromGlobalSlug<TSlug>>(\n options: UpdateGlobalOptions<TSlug, TSelect>,\n ): Promise<TransformGlobalWithSelect<TSlug, TSelect>> => {\n const { update } = localGlobalOperations\n return update<TSlug, TSelect>(this, options)\n }\n\n validationRules: (args: OperationArgs<any>) => ValidationRule[]\n\n verifyEmail = async <TSlug extends CollectionSlug>(\n options: VerifyEmailOptions<TSlug>,\n ): Promise<boolean> => {\n const { verifyEmail } = localOperations.auth\n return verifyEmail(this, options)\n }\n\n versions: {\n [slug: string]: any // TODO: Type this\n } = {}\n\n async bin({\n args,\n cwd,\n log,\n }: {\n args: string[]\n cwd?: string\n log?: boolean\n }): Promise<{ code: number }> {\n return new Promise((resolve, reject) => {\n const spawned = spawn('node', [path.resolve(dirname, '../bin.js'), ...args], {\n cwd,\n stdio: log || log === undefined ? 'inherit' : 'ignore',\n })\n\n spawned.on('exit', (code) => {\n resolve({ code })\n })\n\n spawned.on('error', (error) => {\n reject(error)\n })\n })\n }\n\n /**\n * @description delete one or more documents\n * @param options\n * @returns Updated document(s)\n */\n delete<TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: DeleteByIDOptions<TSlug, TSelect>,\n ): Promise<TransformCollectionWithSelect<TSlug, TSelect>>\n\n delete<TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: DeleteManyOptions<TSlug, TSelect>,\n ): Promise<BulkOperationResult<TSlug, TSelect>>\n\n delete<TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: DeleteOptions<TSlug, TSelect>,\n ): Promise<BulkOperationResult<TSlug, TSelect> | TransformCollectionWithSelect<TSlug, TSelect>> {\n const { deleteLocal } = localOperations\n return deleteLocal<TSlug, TSelect>(this, options)\n }\n\n /**\n * @description Initializes Payload\n * @param options\n */\n async init(options: InitOptions): Promise<Payload> {\n if (\n process.env.NODE_ENV !== 'production' &&\n process.env.PAYLOAD_DISABLE_DEPENDENCY_CHECKER !== 'true' &&\n !checkedDependencies\n ) {\n checkedDependencies = true\n void checkPayloadDependencies()\n }\n\n this.importMap = options.importMap\n\n if (!options?.config) {\n throw new Error('Error: the payload config is required to initialize payload.')\n }\n\n this.config = await options.config\n this.logger = getLogger('payload', this.config.logger)\n\n if (!this.config.secret) {\n throw new Error('Error: missing secret key. A secret key is needed to secure Payload.')\n }\n\n this.secret = crypto.createHash('sha256').update(this.config.secret).digest('hex').slice(0, 32)\n\n this.globals = {\n config: this.config.globals,\n }\n\n this.config.collections.forEach((collection) => {\n let customIDType = undefined\n const findCustomID: TraverseFieldsCallback = ({ field, next }) => {\n if (\n ['array', 'blocks', 'group'].includes(field.type) ||\n (field.type === 'tab' && 'name' in field)\n ) {\n return true\n }\n\n if (!fieldAffectsData(field)) {\n return\n }\n\n if (field.name === 'id') {\n customIDType = field.type\n return true\n }\n }\n\n traverseFields({ callback: findCustomID, fields: collection.fields })\n\n this.collections[collection.slug] = {\n config: collection,\n customIDType,\n }\n })\n\n // Generate types on startup\n if (process.env.NODE_ENV !== 'production' && this.config.typescript.autoGenerate !== false) {\n // We cannot run it directly here, as generate-types imports json-schema-to-typescript, which breaks on turbopack.\n // see: https://github.com/vercel/next.js/issues/66723\n void this.bin({\n args: ['generate:types'],\n log: false,\n })\n }\n\n this.db = this.config.db.init({ payload: this })\n this.db.payload = this\n\n if (this.db?.init) {\n await this.db.init()\n }\n\n if (!options.disableDBConnect && this.db.connect) {\n await this.db.connect()\n }\n\n // Load email adapter\n if (this.config.email instanceof Promise) {\n const awaitedAdapter = await this.config.email\n this.email = awaitedAdapter({ payload: this })\n } else if (this.config.email) {\n this.email = this.config.email({ payload: this })\n } else {\n if (process.env.NEXT_PHASE !== 'phase-production-build') {\n this.logger.warn(\n `No email adapter provided. Email will be written to console. More info at https://payloadcms.com/docs/email/overview.`,\n )\n }\n\n this.email = consoleEmailAdapter({ payload: this })\n }\n\n // Warn if image resizing is enabled but sharp is not installed\n if (\n !this.config.sharp &&\n this.config.collections.some((c) => c.upload.imageSizes || c.upload.formatOptions)\n ) {\n this.logger.warn(\n `Image resizing is enabled for one or more collections, but sharp not installed. Please install 'sharp' and pass into the config.`,\n )\n }\n\n this.sendEmail = this.email['sendEmail']\n\n serverInitTelemetry(this)\n\n // 1. loop over collections, if collection has auth strategy, initialize and push to array\n let jwtStrategyEnabled = false\n this.authStrategies = this.config.collections.reduce((authStrategies, collection) => {\n if (collection?.auth) {\n if (collection.auth.strategies.length > 0) {\n authStrategies.push(...collection.auth.strategies)\n }\n\n // 2. if api key enabled, push api key strategy into the array\n if (collection.auth?.useAPIKey) {\n authStrategies.push({\n name: `${collection.slug}-api-key`,\n authenticate: APIKeyAuthentication(collection),\n })\n }\n\n // 3. if localStrategy flag is true\n if (!collection.auth.disableLocalStrategy && !jwtStrategyEnabled) {\n jwtStrategyEnabled = true\n }\n }\n\n return authStrategies\n }, [] as AuthStrategy[])\n\n // 4. if enabled, push jwt strategy into authStrategies last\n if (jwtStrategyEnabled) {\n this.authStrategies.push({\n name: 'local-jwt',\n authenticate: JWTAuthentication,\n })\n }\n\n if (!options.disableOnInit) {\n if (typeof options.onInit === 'function') {\n await options.onInit(this)\n }\n if (typeof this.config.onInit === 'function') {\n await this.config.onInit(this)\n }\n }\n\n return this\n }\n\n update<TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: UpdateManyOptions<TSlug, TSelect>,\n ): Promise<BulkOperationResult<TSlug, TSelect>>\n\n /**\n * @description Update one or more documents\n * @param options\n * @returns Updated document(s)\n */\n update<TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: UpdateByIDOptions<TSlug, TSelect>,\n ): Promise<TransformCollectionWithSelect<TSlug, TSelect>>\n\n update<TSlug extends CollectionSlug, TSelect extends SelectFromCollectionSlug<TSlug>>(\n options: UpdateOptions<TSlug, TSelect>,\n ): Promise<BulkOperationResult<TSlug, TSelect> | TransformCollectionWithSelect<TSlug, TSelect>> {\n const { update } = localOperations\n return update<TSlug, TSelect>(this, options)\n }\n}\n\nconst initialized = new BasePayload()\n\nexport default initialized\n\nlet cached: {\n payload: null | Payload\n promise: null | Promise<Payload>\n reload: boolean | Promise<void>\n ws: null | WebSocket\n} = global._payload\n\nif (!cached) {\n cached = global._payload = { payload: null, promise: null, reload: false, ws: null }\n}\n\nexport const reload = async (\n config: SanitizedConfig,\n payload: Payload,\n skipImportMapGeneration?: boolean,\n): Promise<void> => {\n if (typeof payload.db.destroy === 'function') {\n await payload.db.destroy()\n }\n\n payload.config = config\n\n payload.collections = config.collections.reduce((collections, collection) => {\n collections[collection.slug] = {\n config: collection,\n customIDType: payload.collections[collection.slug]?.customIDType,\n }\n return collections\n }, {})\n\n payload.globals = {\n config: config.globals,\n }\n\n // TODO: support HMR for other props in the future (see payload/src/index init()) that may change on Payload singleton\n\n // Generate types\n if (config.typescript.autoGenerate !== false) {\n // We cannot run it directly here, as generate-types imports json-schema-to-typescript, which breaks on turbopack.\n // see: https://github.com/vercel/next.js/issues/66723\n void payload.bin({\n args: ['generate:types'],\n log: false,\n })\n }\n\n // Generate component map\n if (skipImportMapGeneration !== true && config.admin?.importMap?.autoGenerate !== false) {\n await generateImportMap(config, {\n log: true,\n })\n }\n\n await payload.db.init()\n if (payload.db.connect) {\n await payload.db.connect({ hotReload: true })\n }\n global._payload_clientConfig = null\n global._payload_schemaMap = null\n global._payload_clientSchemaMap = null\n global._payload_doNotCacheClientConfig = true // This will help refreshing the client config cache more reliably. If you remove this, please test HMR + client config refreshing (do new fields appear in the document?)\n global._payload_doNotCacheSchemaMap = true\n global._payload_doNotCacheClientSchemaMap = true\n}\n\nexport const getPayload = async (\n options: Pick<InitOptions, 'config' | 'importMap'>,\n): Promise<Payload> => {\n if (!options?.config) {\n throw new Error('Error: the payload config is required for getPayload to work.')\n }\n\n if (cached.payload) {\n if (cached.reload === true) {\n let resolve: () => void\n\n // getPayload is called multiple times, in parallel. However, we only want to run `await reload` once. By immediately setting cached.reload to a promise,\n // we can ensure that all subsequent calls will wait for the first reload to finish. So if we set it here, the 2nd call of getPayload\n // will reach `if (cached.reload instanceof Promise) {` which then waits for the first reload to finish.\n cached.reload = new Promise((res) => (resolve = res))\n const config = await options.config\n await reload(config, cached.payload, !options.importMap)\n\n resolve()\n }\n\n if (cached.reload instanceof Promise) {\n await cached.reload\n }\n if (options?.importMap) {\n cached.payload.importMap = options.importMap\n }\n return cached.payload\n }\n\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!cached.promise) {\n // no need to await options.config here, as it's already awaited in the BasePayload.init\n cached.promise = new BasePayload().init(options)\n }\n\n try {\n cached.payload = await cached.promise\n\n if (\n !cached.ws &&\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n process.env.DISABLE_PAYLOAD_HMR !== 'true'\n ) {\n try {\n const port = process.env.PORT || '3000'\n\n cached.ws = new WebSocket(\n `ws://localhost:${port}${process.env.NEXT_BASE_PATH ?? ''}/_next/webpack-hmr`,\n )\n\n cached.ws.onmessage = (event) => {\n if (typeof event.data === 'string') {\n const data = JSON.parse(event.data)\n\n if ('action' in data && data.action === 'serverComponentChanges') {\n cached.reload = true\n }\n }\n }\n\n cached.ws.onerror = (_) => {\n // swallow any websocket connection error\n }\n } catch (_) {\n // swallow e\n }\n }\n } catch (e) {\n cached.promise = null\n throw e\n }\n\n if (options?.importMap) {\n cached.payload.importMap = options.importMap\n }\n\n return cached.payload\n}\n\ntype Payload = BasePayload\n\ninterface RequestContext {\n [key: string]: unknown\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface DatabaseAdapter extends BaseDatabaseAdapter {}\nexport type { Payload, RequestContext }\nexport { default as executeAccess } from './auth/executeAccess.js'\nexport { executeAuthStrategies } from './auth/executeAuthStrategies.js'\nexport { getAccessResults } from './auth/getAccessResults.js'\nexport { getFieldsToSign } from './auth/getFieldsToSign.js'\nexport * from './auth/index.js'\nexport { accessOperation } from './auth/operations/access.js'\nexport { forgotPasswordOperation } from './auth/operations/forgotPassword.js'\nexport { initOperation } from './auth/operations/init.js'\nexport { loginOperation } from './auth/operations/login.js'\nexport { logoutOperation } from './auth/operations/logout.js'\nexport type { MeOperationResult } from './auth/operations/me.js'\nexport { meOperation } from './auth/operations/me.js'\nexport { refreshOperation } from './auth/operations/refresh.js'\nexport { registerFirstUserOperation } from './auth/operations/registerFirstUser.js'\nexport { resetPasswordOperation } from './auth/operations/resetPassword.js'\nexport { unlockOperation } from './auth/operations/unlock.js'\nexport { verifyEmailOperation } from './auth/operations/verifyEmail.js'\n\nexport type {\n AuthStrategyFunction,\n AuthStrategyFunctionArgs,\n CollectionPermission,\n DocumentPermissions,\n FieldPermissions,\n GlobalPermission,\n IncomingAuthType,\n Permission,\n Permissions,\n SanitizedCollectionPermission,\n SanitizedDocumentPermissions,\n SanitizedFieldPermissions,\n SanitizedGlobalPermission,\n SanitizedPermissions,\n User,\n VerifyConfig,\n} from './auth/types.js'\n\nexport { generateImportMap } from './bin/generateImportMap/index.js'\nexport type { ImportMap } from './bin/generateImportMap/index.js'\n\nexport { genImportMapIterateFields } from './bin/generateImportMap/iterateFields.js'\n\nexport {\n type ClientCollectionConfig,\n createClientCollectionConfig,\n createClientCollectionConfigs,\n type ServerOnlyCollectionAdminProperties,\n type ServerOnlyCollectionProperties,\n type ServerOnlyUploadProperties,\n} from './collections/config/client.js'\n\nexport type {\n AfterChangeHook as CollectionAfterChangeHook,\n AfterDeleteHook as CollectionAfterDeleteHook,\n AfterErrorHook as CollectionAfterErrorHook,\n AfterForgotPasswordHook as CollectionAfterForgotPasswordHook,\n AfterLoginHook as CollectionAfterLoginHook,\n AfterLogoutHook as CollectionAfterLogoutHook,\n AfterMeHook as CollectionAfterMeHook,\n AfterOperationHook as CollectionAfterOperationHook,\n AfterReadHook as CollectionAfterReadHook,\n AfterRefreshHook as CollectionAfterRefreshHook,\n AuthCollection,\n AuthOperationsFromCollectionSlug,\n BaseListFilter,\n BeforeChangeHook as CollectionBeforeChangeHook,\n BeforeDeleteHook as CollectionBeforeDeleteHook,\n BeforeLoginHook as CollectionBeforeLoginHook,\n BeforeOperationHook as CollectionBeforeOperationHook,\n BeforeReadHook as CollectionBeforeReadHook,\n BeforeValidateHook as CollectionBeforeValidateHook,\n BulkOperationResult,\n Collection,\n CollectionAdminOptions,\n CollectionConfig,\n DataFromCollectionSlug,\n HookOperationType,\n MeHook as CollectionMeHook,\n RefreshHook as CollectionRefreshHook,\n RequiredDataFromCollection,\n RequiredDataFromCollectionSlug,\n SanitizedCollectionConfig,\n SanitizedJoins,\n TypeWithID,\n TypeWithTimestamps,\n} from './collections/config/types.js'\nexport { createDataloaderCacheKey, getDataLoader } from './collections/dataloader.js'\nexport { countOperation } from './collections/operations/count.js'\nexport { createOperation } from './collections/operations/create.js'\nexport { deleteOperation } from './collections/operations/delete.js'\nexport { deleteByIDOperation } from './collections/operations/deleteByID.js'\nexport { docAccessOperation } from './collections/operations/docAccess.js'\nexport { duplicateOperation } from './collections/operations/duplicate.js'\nexport { findOperation } from './collections/operations/find.js'\nexport { findByIDOperation } from './collections/operations/findByID.js'\nexport { findVersionByIDOperation } from './collections/operations/findVersionByID.js'\nexport { findVersionsOperation } from './collections/operations/findVersions.js'\nexport { restoreVersionOperation } from './collections/operations/restoreVersion.js'\nexport { updateOperation } from './collections/operations/update.js'\nexport { updateByIDOperation } from './collections/operations/updateByID.js'\nexport { buildConfig } from './config/build.js'\nexport {\n type ClientConfig,\n createClientConfig,\n serverOnlyAdminConfigProperties,\n serverOnlyConfigProperties,\n} from './config/client.js'\n\nexport { defaults } from './config/defaults.js'\nexport { sanitizeConfig } from './config/sanitize.js'\nexport type * from './config/types.js'\nexport { combineQueries } from './database/combineQueries.js'\nexport { createDatabaseAdapter } from './database/createDatabaseAdapter.js'\nexport { defaultBeginTransaction } from './database/defaultBeginTransaction.js'\nexport { default as flattenWhereToOperators } from './database/flattenWhereToOperators.js'\nexport { getLocalizedPaths } from './database/getLocalizedPaths.js'\nexport { createMigration } from './database/migrations/createMigration.js'\nexport { getMigrations } from './database/migrations/getMigrations.js'\nexport { getPredefinedMigration } from './database/migrations/getPredefinedMigration.js'\nexport { migrate } from './database/migrations/migrate.js'\nexport { migrateDown } from './database/migrations/migrateDown.js'\nexport { migrateRefresh } from './database/migrations/migrateRefresh.js'\nexport { migrateReset } from './database/migrations/migrateReset.js'\nexport { migrateStatus } from './database/migrations/migrateStatus.js'\nexport { migrationsCollection } from './database/migrations/migrationsCollection.js'\nexport { migrationTemplate } from './database/migrations/migrationTemplate.js'\nexport { readMigrationFiles } from './database/migrations/readMigrationFiles.js'\nexport { writeMigrationIndex } from './database/migrations/writeMigrationIndex.js'\nexport type * from './database/queryValidation/types.js'\nexport type { EntityPolicies, PathToQuery } from './database/queryValidation/types.js'\nexport { validateQueryPaths } from './database/queryValidation/validateQueryPaths.js'\nexport { validateSearchParam } from './database/queryValidation/validateSearchParams.js'\nexport type {\n BaseDatabaseAdapter,\n BeginTransaction,\n CommitTransaction,\n Connect,\n Count,\n CountArgs,\n CountGlobalVersions,\n CountVersions,\n Create,\n CreateArgs,\n CreateGlobal,\n CreateGlobalArgs,\n CreateGlobalVersion,\n CreateGlobalVersionArgs,\n CreateMigration,\n CreateVersion,\n CreateVersionArgs,\n DatabaseAdapterResult as DatabaseAdapterObj,\n DBIdentifierName,\n DeleteMany,\n DeleteManyArgs,\n DeleteOne,\n DeleteOneArgs,\n DeleteVersions,\n DeleteVersionsArgs,\n Destroy,\n Find,\n FindArgs,\n FindGlobal,\n FindGlobalArgs,\n FindGlobalVersions,\n FindGlobalVersionsArgs,\n FindOne,\n FindOneArgs,\n FindVersions,\n FindVersionsArgs,\n GenerateSchema,\n Init,\n Migration,\n MigrationData,\n MigrationTemplateArgs,\n PaginatedDocs,\n QueryDrafts,\n QueryDraftsArgs,\n RollbackTransaction,\n Transaction,\n UpdateGlobal,\n UpdateGlobalArgs,\n UpdateGlobalVersion,\n UpdateGlobalVersionArgs,\n UpdateOne,\n UpdateOneArgs,\n UpdateVersion,\n UpdateVersionArgs,\n Upsert,\n} from './database/types.js'\nexport type { EmailAdapter as PayloadEmailAdapter, SendEmailOptions } from './email/types.js'\nexport {\n APIError,\n APIErrorName,\n AuthenticationError,\n DuplicateCollection,\n DuplicateFieldName,\n DuplicateGlobal,\n ErrorDeletingFile,\n FileRetrievalError,\n FileUploadError,\n Forbidden,\n InvalidConfiguration,\n InvalidFieldName,\n InvalidFieldRelationship,\n Locked,\n LockedAuth,\n MissingCollectionLabel,\n MissingEditorProp,\n MissingFieldInputOptions,\n MissingFieldType,\n MissingFile,\n NotFound,\n QueryError,\n ValidationError,\n ValidationErrorName,\n} from './errors/index.js'\nexport type { ValidationFieldError } from './errors/index.js'\n\nexport { baseBlockFields } from './fields/baseFields/baseBlockFields.js'\nexport { baseIDField } from './fields/baseFields/baseIDField.js'\nexport {\n createClientField,\n createClientFields,\n type ServerOnlyFieldAdminProperties,\n type ServerOnlyFieldProperties,\n} from './fields/config/client.js'\nexport { sanitizeFields } from './fields/config/sanitize.js'\nexport type {\n AdminClient,\n ArrayField,\n ArrayFieldClient,\n BaseValidateOptions,\n Block,\n BlockJSX,\n BlocksField,\n BlocksFieldClient,\n CheckboxField,\n CheckboxFieldClient,\n ClientBlock,\n ClientField,\n ClientFieldProps,\n CodeField,\n CodeFieldClient,\n CollapsibleField,\n CollapsibleFieldClient,\n Condition,\n DateField,\n DateFieldClient,\n EmailField,\n EmailFieldClient,\n Field,\n FieldAccess,\n FieldAffectingData,\n FieldAffectingDataClient,\n FieldBase,\n FieldBaseClient,\n FieldHook,\n FieldHookArgs,\n FieldPresentationalOnly,\n FieldPresentationalOnlyClient,\n FieldTypes,\n FieldWithMany,\n FieldWithManyClient,\n FieldWithMaxDepth,\n FieldWithMaxDepthClient,\n FieldWithPath,\n FieldWithPathClient,\n FieldWithSubFields,\n FieldWithSubFieldsClient,\n FilterOptions,\n FilterOptionsProps,\n FlattenedArrayField,\n FlattenedBlock,\n FlattenedBlocksField,\n FlattenedField,\n FlattenedGroupField,\n FlattenedTabAsField,\n GroupField,\n GroupFieldClient,\n HookName,\n JoinField,\n JoinFieldClient,\n JSONField,\n JSONFieldClient,\n Labels,\n LabelsClient,\n NamedTab,\n NonPresentationalField,\n NonPresentationalFieldClient,\n NumberField,\n NumberFieldClient,\n Option,\n OptionObject,\n PointField,\n PointFieldClient,\n PolymorphicRelationshipField,\n PolymorphicRelationshipFieldClient,\n RadioField,\n RadioFieldClient,\n RelationshipField,\n RelationshipFieldClient,\n RelationshipValue,\n RichTextField,\n RichTextFieldClient,\n RowField,\n RowFieldClient,\n SelectField,\n SelectFieldClient,\n SingleRelationshipField,\n SingleRelationshipFieldClient,\n Tab,\n TabAsField,\n TabAsFieldClient,\n TabsField,\n TabsFieldClient,\n TextareaField,\n TextareaFieldClient,\n TextField,\n TextFieldClient,\n UIField,\n UIFieldClient,\n UnnamedTab,\n UploadField,\n UploadFieldClient,\n Validate,\n ValidateOptions,\n ValueWithRelation,\n} from './fields/config/types.js'\n\nexport { getDefaultValue } from './fields/getDefaultValue.js'\nexport { traverseFields as afterChangeTraverseFields } from './fields/hooks/afterChange/traverseFields.js'\nexport { promise as afterReadPromise } from './fields/hooks/afterRead/promise.js'\nexport { traverseFields as afterReadTraverseFields } from './fields/hooks/afterRead/traverseFields.js'\nexport { traverseFields as beforeChangeTraverseFields } from './fields/hooks/beforeChange/traverseFields.js'\nexport { traverseFields as beforeValidateTraverseFields } from './fields/hooks/beforeValidate/traverseFields.js'\nexport { default as sortableFieldTypes } from './fields/sortableFieldTypes.js'\n\nexport { validations } from './fields/validations.js'\nexport type {\n ArrayFieldValidation,\n BlocksFieldValidation,\n CheckboxFieldValidation,\n CodeFieldValidation,\n ConfirmPasswordFieldValidation,\n DateFieldValidation,\n EmailFieldValidation,\n JSONFieldValidation,\n NumberFieldManyValidation,\n NumberFieldSingleValidation,\n NumberFieldValidation,\n PasswordFieldValidation,\n PointFieldValidation,\n RadioFieldValidation,\n RelationshipFieldManyValidation,\n RelationshipFieldSingleValidation,\n RelationshipFieldValidation,\n RichTextFieldValidation,\n SelectFieldManyValidation,\n SelectFieldSingleValidation,\n SelectFieldValidation,\n TextareaFieldValidation,\n TextFieldManyValidation,\n TextFieldSingleValidation,\n TextFieldValidation,\n UploadFieldManyValidation,\n UploadFieldSingleValidation,\n UploadFieldValidation,\n UsernameFieldValidation,\n} from './fields/validations.js'\n\nexport {\n type ClientGlobalConfig,\n createClientGlobalConfig,\n createClientGlobalConfigs,\n type ServerOnlyGlobalAdminProperties,\n type ServerOnlyGlobalProperties,\n} from './globals/config/client.js'\n\nexport type {\n AfterChangeHook as GlobalAfterChangeHook,\n AfterReadHook as GlobalAfterReadHook,\n BeforeChangeHook as GlobalBeforeChangeHook,\n BeforeReadHook as GlobalBeforeReadHook,\n BeforeValidateHook as GlobalBeforeValidateHook,\n DataFromGlobalSlug,\n GlobalAdminOptions,\n GlobalConfig,\n SanitizedGlobalConfig,\n} from './globals/config/types.js'\n\nexport { docAccessOperation as docAccessOperationGlobal } from './globals/operations/docAccess.js'\nexport { findOneOperation } from './globals/operations/findOne.js'\nexport { findVersionByIDOperation as findVersionByIDOperationGlobal } from './globals/operations/findVersionByID.js'\nexport { findVersionsOperation as findVersionsOperationGlobal } from './globals/operations/findVersions.js'\nexport { restoreVersionOperation as restoreVersionOperationGlobal } from './globals/operations/restoreVersion.js'\nexport { updateOperation as updateOperationGlobal } from './globals/operations/update.js'\nexport type {\n CollapsedPreferences,\n DocumentPreferences,\n FieldsPreferences,\n InsideFieldsPreferences,\n PreferenceRequest,\n PreferenceUpdateRequest,\n TabsPreferences,\n} from './preferences/types.js'\nexport type { JobsConfig, RunJobAccess, RunJobAccessArgs } from './queues/config/types/index.js'\nexport type {\n RunTaskFunction,\n TaskConfig,\n TaskHandler,\n TaskHandlerArgs,\n TaskHandlerResult,\n TaskHandlerResults,\n TaskInput,\n TaskOutput,\n TaskType,\n} from './queues/config/types/taskTypes.js'\nexport type {\n BaseJob,\n JobLog,\n JobTaskStatus,\n RunningJob,\n SingleTaskStatus,\n WorkflowConfig,\n WorkflowHandler,\n WorkflowTypes,\n} from './queues/config/types/workflowTypes.js'\nexport { importHandlerPath } from './queues/operations/runJobs/runJob/importHandlerPath.js'\nexport { getLocalI18n } from './translations/getLocalI18n.js'\nexport * from './types/index.js'\nexport { getFileByPath } from './uploads/getFileByPath.js'\nexport type * from './uploads/types.js'\nexport { commitTransaction } from './utilities/commitTransaction.js'\nexport {\n configToJSONSchema,\n entityToJSONSchema,\n fieldsToJSONSchema,\n withNullableJSONSchemaType,\n} from './utilities/configToJSONSchema.js'\nexport { createArrayFromCommaDelineated } from './utilities/createArrayFromCommaDelineated.js'\nexport { createLocalReq } from './utilities/createLocalReq.js'\nexport {\n deepCopyObject,\n deepCopyObjectComplex,\n deepCopyObjectSimple,\n} from './utilities/deepCopyObject.js'\nexport {\n deepMerge,\n deepMergeWithCombinedArrays,\n deepMergeWithReactComponents,\n deepMergeWithSourceArrays,\n} from './utilities/deepMerge.js'\nexport {\n checkDependencies,\n type CustomVersionParser,\n} from './utilities/dependencies/dependencyChecker.js'\nexport { getDependencies } from './utilities/dependencies/getDependencies.js'\nexport {\n findUp,\n findUpSync,\n pathExistsAndIsAccessible,\n pathExistsAndIsAccessibleSync,\n} from './utilities/findUp.js'\nexport { flattenAllFields } from './utilities/flattenAllFields.js'\nexport { default as flattenTopLevelFields } from './utilities/flattenTopLevelFields.js'\nexport { formatErrors } from './utilities/formatErrors.js'\nexport { formatLabels, formatNames, toWords } from './utilities/formatLabels.js'\nexport { getCollectionIDFieldTypes } from './utilities/getCollectionIDFieldTypes.js'\nexport { getObjectDotNotation } from './utilities/getObjectDotNotation.js'\nexport { initTransaction } from './utilities/initTransaction.js'\nexport { isEntityHidden } from './utilities/isEntityHidden.js'\nexport { default as isolateObjectProperty } from './utilities/isolateObjectProperty.js'\nexport { isPlainObject } from './utilities/isPlainObject.js'\nexport { isValidID } from './utilities/isValidID.js'\nexport { killTransaction } from './utilities/killTransaction.js'\nexport { mapAsync } from './utilities/mapAsync.js'\nexport { sanitizeFallbackLocale } from './utilities/sanitizeFallbackLocale.js'\nexport { sanitizeJoinParams } from './utilities/sanitizeJoinParams.js'\nexport { sanitizePopulateParam } from './utilities/sanitizePopulateParam.js'\nexport { sanitizeSelectParam } from './utilities/sanitizeSelectParam.js'\nexport { traverseFields } from './utilities/traverseFields.js'\nexport type { TraverseFieldsCallback } from './utilities/traverseFields.js'\nexport { buildVersionCollectionFields } from './versions/buildCollectionFields.js'\nexport { buildVersionGlobalFields } from './versions/buildGlobalFields.js'\nexport { versionDefaults } from './versions/defaults.js'\nexport { deleteCollectionVersions } from './versions/deleteCollectionVersions.js'\nexport { enforceMaxVersions } from './versions/enforceMaxVersions.js'\nexport { getLatestCollectionVersion } from './versions/getLatestCollectionVersion.js'\nexport { getLatestGlobalVersion } from './versions/getLatestGlobalVersion.js'\n\nexport { saveVersion } from './versions/saveVersion.js'\nexport type { TypeWithVersion } from './versions/types.js'\nexport { deepMergeSimple } from '@payloadcms/translations/utilities'\n"],"names":["spawn","crypto","fileURLToPath","path","WebSocket","decrypt","encrypt","APIKeyAuthentication","JWTAuthentication","generateImportMap","checkPayloadDependencies","localOperations","consoleEmailAdapter","fieldAffectsData","localGlobalOperations","getJobsLocalAPI","getLogger","serverInit","serverInitTelemetry","traverseFields","filename","url","dirname","checkedDependencies","BasePayload","auth","options","authStrategies","collections","config","count","countGlobalVersions","countVersions","create","db","duplicate","email","extensions","find","findByID","findGlobal","findOne","findGlobalVersionByID","findVersionByID","findGlobalVersions","findVersions","forgotPassword","getAdminURL","serverURL","routes","admin","getAPIURL","api","globals","importMap","jobs","logger","login","resetPassword","restoreGlobalVersion","restoreVersion","schema","secret","sendEmail","types","unlock","updateGlobal","update","validationRules","verifyEmail","versions","bin","args","cwd","log","Promise","resolve","reject","spawned","stdio","undefined","on","code","error","delete","deleteLocal","init","process","env","NODE_ENV","PAYLOAD_DISABLE_DEPENDENCY_CHECKER","Error","createHash","digest","slice","forEach","collection","customIDType","findCustomID","field","next","includes","type","name","callback","fields","slug","typescript","autoGenerate","payload","disableDBConnect","connect","awaitedAdapter","NEXT_PHASE","warn","sharp","some","c","upload","imageSizes","formatOptions","jwtStrategyEnabled","reduce","strategies","length","push","useAPIKey","authenticate","disableLocalStrategy","disableOnInit","onInit","initialized","cached","global","_payload","promise","reload","ws","skipImportMapGeneration","destroy","hotReload","_payload_clientConfig","_payload_schemaMap","_payload_clientSchemaMap","_payload_doNotCacheClientConfig","_payload_doNotCacheSchemaMap","_payload_doNotCacheClientSchemaMap","getPayload","res","DISABLE_PAYLOAD_HMR","port","PORT","NEXT_BASE_PATH","onmessage","event","data","JSON","parse","action","onerror","_","e","default","executeAccess","executeAuthStrategies","getAccessResults","getFieldsToSign","accessOperation","forgotPasswordOperation","initOperation","loginOperation","logoutOperation","meOperation","refreshOperation","registerFirstUserOperation","resetPasswordOperation","unlockOperation","verifyEmailOperation","genImportMapIterateFields","createClientCollectionConfig","createClientCollectionConfigs","createDataloaderCacheKey","getDataLoader","countOperation","createOperation","deleteOperation","deleteByIDOperation","docAccessOperation","duplicateOperation","findOperation","findByIDOperation","findVersionByIDOperation","findVersionsOperation","restoreVersionOperation","updateOperation","updateByIDOperation","buildConfig","createClientConfig","serverOnlyAdminConfigProperties","serverOnlyConfigProperties","defaults","sanitizeConfig","combineQueries","createDatabaseAdapter","defaultBeginTransaction","flattenWhereToOperators","getLocalizedPaths","createMigration","getMigrations","getPredefinedMigration","migrate","migrateDown","migrateRefresh","migrateReset","migrateStatus","migrationsCollection","migrationTemplate","readMigrationFiles","writeMigrationIndex","validateQueryPaths","validateSearchParam","APIError","APIErrorName","AuthenticationError","DuplicateCollection","DuplicateFieldName","DuplicateGlobal","ErrorDeletingFile","FileRetrievalError","FileUploadError","Forbidden","InvalidConfiguration","InvalidFieldName","InvalidFieldRelationship","Locked","LockedAuth","MissingCollectionLabel","MissingEditorProp","MissingFieldInputOptions","MissingFieldType","MissingFile","NotFound","QueryError","ValidationError","ValidationErrorName","baseBlockFields","baseIDField","createClientField","createClientFields","sanitizeFields","getDefaultValue","afterChangeTraverseFields","afterReadPromise","afterReadTraverseFields","beforeChangeTraverseFields","beforeValidateTraverseFields","sortableFieldTypes","validations","createClientGlobalConfig","createClientGlobalConfigs","docAccessOperationGlobal","findOneOperation","findVersionByIDOperationGlobal","findVersionsOperationGlobal","restoreVersionOperationGlobal","updateOperationGlobal","importHandlerPath","getLocalI18n","getFileByPath","commitTransaction","configToJSONSchema","entityToJSONSchema","fieldsToJSONSchema","withNullableJSONSchemaType","createArrayFromCommaDelineated","createLocalReq","deepCopyObject","deepCopyObjectComplex","deepCopyObjectSimple","deepMerge","deepMergeWithCombinedArrays","deepMergeWithReactComponents","deepMergeWithSourceArrays","checkDependencies","getDependencies","findUp","findUpSync","pathExistsAndIsAccessible","pathExistsAndIsAccessibleSync","flattenAllFields","flattenTopLevelFields","formatErrors","formatLabels","formatNames","toWords","getCollectionIDFieldTypes","getObjectDotNotation","initTransaction","isEntityHidden","isolateObjectProperty","isPlainObject","isValidID","killTransaction","mapAsync","sanitizeFallbackLocale","sanitizeJoinParams","sanitizePopulateParam","sanitizeSelectParam","buildVersionCollectionFields","buildVersionGlobalFields","versionDefaults","deleteCollectionVersions","enforceMaxVersions","getLatestCollectionVersion","getLatestGlobalVersion","saveVersion","deepMergeSimple"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Field,
|
|
2
|
-
type
|
|
1
|
+
import type { Field, TabAsField } from '../fields/config/types.js';
|
|
2
|
+
export type TraverseFieldsCallback = (args: {
|
|
3
3
|
/**
|
|
4
4
|
* The current field
|
|
5
5
|
*/
|
|
@@ -16,41 +16,11 @@ type TraverseFieldsCallbackArgs = {
|
|
|
16
16
|
* The current reference object
|
|
17
17
|
*/
|
|
18
18
|
ref?: Record<string, unknown> | unknown;
|
|
19
|
-
};
|
|
20
|
-
export type TraverseFieldsCallback = (args: TraverseFieldsCallbackArgs) => boolean | void;
|
|
21
|
-
export type TraverseFlattenedFieldsCallback = (args: {
|
|
22
|
-
/**
|
|
23
|
-
* The current field
|
|
24
|
-
*/
|
|
25
|
-
field: FlattenedField;
|
|
26
|
-
/**
|
|
27
|
-
* Function that when called will skip the current field and continue to the next
|
|
28
|
-
*/
|
|
29
|
-
next?: () => void;
|
|
30
|
-
/**
|
|
31
|
-
* The parent reference object
|
|
32
|
-
*/
|
|
33
|
-
parentRef?: Record<string, unknown> | unknown;
|
|
34
|
-
/**
|
|
35
|
-
* The current reference object
|
|
36
|
-
*/
|
|
37
|
-
ref?: Record<string, unknown> | unknown;
|
|
38
19
|
}) => boolean | void;
|
|
39
|
-
type TraverseFlattenedFieldsArgs = {
|
|
40
|
-
callback: TraverseFlattenedFieldsCallback;
|
|
41
|
-
fields?: Field[];
|
|
42
|
-
/** fill empty properties to use this without data */
|
|
43
|
-
fillEmpty?: boolean;
|
|
44
|
-
flattenedFields: FlattenedField[];
|
|
45
|
-
parentRef?: Record<string, unknown> | unknown;
|
|
46
|
-
ref?: Record<string, unknown> | unknown;
|
|
47
|
-
};
|
|
48
20
|
type TraverseFieldsArgs = {
|
|
49
21
|
callback: TraverseFieldsCallback;
|
|
50
|
-
fields: (Field |
|
|
51
|
-
/** fill empty properties to use this without data */
|
|
22
|
+
fields: (Field | TabAsField)[];
|
|
52
23
|
fillEmpty?: boolean;
|
|
53
|
-
flattenedFields?: FlattenedField[];
|
|
54
24
|
parentRef?: Record<string, unknown> | unknown;
|
|
55
25
|
ref?: Record<string, unknown> | unknown;
|
|
56
26
|
};
|
|
@@ -63,6 +33,6 @@ type TraverseFieldsArgs = {
|
|
|
63
33
|
* @param ref the data or any artifacts assigned in the callback during field recursion
|
|
64
34
|
* @param parentRef the data or any artifacts assigned in the callback during field recursion one level up
|
|
65
35
|
*/
|
|
66
|
-
export declare const traverseFields: ({ callback, fields, fillEmpty,
|
|
36
|
+
export declare const traverseFields: ({ callback, fields, fillEmpty, parentRef, ref, }: TraverseFieldsArgs) => void;
|
|
67
37
|
export {};
|
|
68
38
|
//# sourceMappingURL=traverseFields.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../src/utilities/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../src/utilities/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2B,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AA2C3F,MAAM,MAAM,sBAAsB,GAAG,CAAC,IAAI,EAAE;IAC1C;;OAEG;IACH,KAAK,EAAE,KAAK,GAAG,UAAU,CAAA;IACzB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,IAAI,CAAA;IACjB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAA;IAC7C;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAA;CACxC,KAAK,OAAO,GAAG,IAAI,CAAA;AAEpB,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,sBAAsB,CAAA;IAChC,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAA;IAC7C,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAA;CACxC,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,qDAMxB,kBAAkB,KAAG,IAkKvB,CAAA"}
|
|
@@ -21,21 +21,17 @@ const traverseArrayOrBlocksField = ({ callback, data, field, fillEmpty, parentRe
|
|
|
21
21
|
}
|
|
22
22
|
for (const ref of data){
|
|
23
23
|
let fields;
|
|
24
|
-
let flattenedFields;
|
|
25
24
|
if (field.type === 'blocks' && typeof ref?.blockType === 'string') {
|
|
26
25
|
const block = field.blocks.find((block)=>block.slug === ref.blockType);
|
|
27
26
|
fields = block?.fields;
|
|
28
|
-
flattenedFields = block?.flattenedFields;
|
|
29
27
|
} else if (field.type === 'array') {
|
|
30
28
|
fields = field.fields;
|
|
31
|
-
flattenedFields = field?.flattenedFields;
|
|
32
29
|
}
|
|
33
|
-
if (
|
|
30
|
+
if (fields) {
|
|
34
31
|
traverseFields({
|
|
35
32
|
callback,
|
|
36
33
|
fields,
|
|
37
34
|
fillEmpty,
|
|
38
|
-
flattenedFields,
|
|
39
35
|
parentRef,
|
|
40
36
|
ref
|
|
41
37
|
});
|
|
@@ -50,9 +46,8 @@ const traverseArrayOrBlocksField = ({ callback, data, field, fillEmpty, parentRe
|
|
|
50
46
|
* @param fillEmpty fill empty properties to use this without data
|
|
51
47
|
* @param ref the data or any artifacts assigned in the callback during field recursion
|
|
52
48
|
* @param parentRef the data or any artifacts assigned in the callback during field recursion one level up
|
|
53
|
-
*/ export const traverseFields = ({ callback, fields, fillEmpty = true,
|
|
54
|
-
|
|
55
|
-
(flattenedFields ?? fields).some((field)=>{
|
|
49
|
+
*/ export const traverseFields = ({ callback, fields, fillEmpty = true, parentRef = {}, ref = {} })=>{
|
|
50
|
+
fields.some((field)=>{
|
|
56
51
|
let skip = false;
|
|
57
52
|
const next = ()=>{
|
|
58
53
|
skip = true;
|
|
@@ -61,7 +56,6 @@ const traverseArrayOrBlocksField = ({ callback, data, field, fillEmpty, parentRe
|
|
|
61
56
|
return;
|
|
62
57
|
}
|
|
63
58
|
if (callback && callback({
|
|
64
|
-
// @ts-expect-error compatibillity Field | FlattenedField
|
|
65
59
|
field,
|
|
66
60
|
next,
|
|
67
61
|
parentRef,
|
|
@@ -103,7 +97,6 @@ const traverseArrayOrBlocksField = ({ callback, data, field, fillEmpty, parentRe
|
|
|
103
97
|
}
|
|
104
98
|
}
|
|
105
99
|
if (callback && callback({
|
|
106
|
-
// @ts-expect-error compatibillity Field | FlattenedField
|
|
107
100
|
field: {
|
|
108
101
|
...tab,
|
|
109
102
|
type: 'tab'
|
|
@@ -124,12 +117,12 @@ const traverseArrayOrBlocksField = ({ callback, data, field, fillEmpty, parentRe
|
|
|
124
117
|
}
|
|
125
118
|
return;
|
|
126
119
|
}
|
|
127
|
-
if (
|
|
120
|
+
if (field.type !== 'tab' && (fieldHasSubFields(field) || field.type === 'blocks')) {
|
|
128
121
|
if ('name' in field && field.name) {
|
|
129
122
|
currentParentRef = currentRef;
|
|
130
123
|
if (!ref[field.name]) {
|
|
131
124
|
if (fillEmpty) {
|
|
132
|
-
if (field.type === 'group'
|
|
125
|
+
if (field.type === 'group') {
|
|
133
126
|
ref[field.name] = {};
|
|
134
127
|
} else if (field.type === 'array' || field.type === 'blocks') {
|
|
135
128
|
if (field.localized) {
|
|
@@ -144,14 +137,13 @@ const traverseArrayOrBlocksField = ({ callback, data, field, fillEmpty, parentRe
|
|
|
144
137
|
}
|
|
145
138
|
currentRef = ref[field.name];
|
|
146
139
|
}
|
|
147
|
-
if (
|
|
140
|
+
if (field.type === 'group' && field.localized && currentRef && typeof currentRef === 'object') {
|
|
148
141
|
for(const key in currentRef){
|
|
149
142
|
if (currentRef[key]) {
|
|
150
143
|
traverseFields({
|
|
151
144
|
callback,
|
|
152
145
|
fields: field.fields,
|
|
153
146
|
fillEmpty,
|
|
154
|
-
flattenedFields: 'flattenedFields' in field ? field.flattenedFields : undefined,
|
|
155
147
|
parentRef: currentParentRef,
|
|
156
148
|
ref: currentRef[key]
|
|
157
149
|
});
|
|
@@ -191,7 +183,6 @@ const traverseArrayOrBlocksField = ({ callback, data, field, fillEmpty, parentRe
|
|
|
191
183
|
callback,
|
|
192
184
|
fields: field.fields,
|
|
193
185
|
fillEmpty,
|
|
194
|
-
flattenedFields: 'flattenedFields' in field ? field.flattenedFields : undefined,
|
|
195
186
|
parentRef: currentParentRef,
|
|
196
187
|
ref: currentRef
|
|
197
188
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/traverseFields.ts"],"sourcesContent":["import type {\n ArrayField,\n BlocksField,\n Field,\n FlattenedArrayField,\n FlattenedBlock,\n FlattenedField,\n TabAsField,\n} from '../fields/config/types.js'\n\nimport { fieldHasSubFields } from '../fields/config/types.js'\n\nconst traverseArrayOrBlocksField = ({\n callback,\n data,\n field,\n fillEmpty,\n parentRef,\n}: {\n callback: TraverseFieldsCallback\n data: Record<string, unknown>[]\n field: ArrayField | BlocksField\n fillEmpty?: boolean\n parentRef?: unknown\n}) => {\n if (fillEmpty) {\n if (field.type === 'array') {\n traverseFields({ callback, fields: field.fields, parentRef })\n }\n if (field.type === 'blocks') {\n field.blocks.forEach((block) => {\n traverseFields({ callback, fields: block.fields, parentRef })\n })\n }\n return\n }\n for (const ref of data) {\n let fields: Field[]\n let flattenedFields: FlattenedField[]\n if (field.type === 'blocks' && typeof ref?.blockType === 'string') {\n const block = field.blocks.find((block) => block.slug === ref.blockType) as FlattenedBlock\n fields = block?.fields\n flattenedFields = block?.flattenedFields\n } else if (field.type === 'array') {\n fields = field.fields\n flattenedFields = (field as FlattenedArrayField)?.flattenedFields\n }\n\n if (flattenedFields || fields) {\n traverseFields({ callback, fields, fillEmpty, flattenedFields, parentRef, ref })\n }\n }\n}\n\ntype TraverseFieldsCallbackArgs = {\n /**\n * The current field\n */\n field: Field | TabAsField\n /**\n * Function that when called will skip the current field and continue to the next\n */\n next?: () => void\n /**\n * The parent reference object\n */\n parentRef?: Record<string, unknown> | unknown\n /**\n * The current reference object\n */\n ref?: Record<string, unknown> | unknown\n}\n\nexport type TraverseFieldsCallback = (args: TraverseFieldsCallbackArgs) => boolean | void\n\nexport type TraverseFlattenedFieldsCallback = (args: {\n /**\n * The current field\n */\n field: FlattenedField\n /**\n * Function that when called will skip the current field and continue to the next\n */\n next?: () => void\n /**\n * The parent reference object\n */\n parentRef?: Record<string, unknown> | unknown\n /**\n * The current reference object\n */\n ref?: Record<string, unknown> | unknown\n}) => boolean | void\n\ntype TraverseFlattenedFieldsArgs = {\n callback: TraverseFlattenedFieldsCallback\n fields?: Field[]\n /** fill empty properties to use this without data */\n fillEmpty?: boolean\n flattenedFields: FlattenedField[]\n parentRef?: Record<string, unknown> | unknown\n ref?: Record<string, unknown> | unknown\n}\n\ntype TraverseFieldsArgs = {\n callback: TraverseFieldsCallback\n fields: (Field | FlattenedField | TabAsField)[]\n /** fill empty properties to use this without data */\n fillEmpty?: boolean\n flattenedFields?: FlattenedField[]\n parentRef?: Record<string, unknown> | unknown\n ref?: Record<string, unknown> | unknown\n}\n\n/**\n * Iterate a recurse an array of fields, calling a callback for each field\n *\n * @param fields\n * @param callback callback called for each field, discontinue looping if callback returns truthy\n * @param fillEmpty fill empty properties to use this without data\n * @param ref the data or any artifacts assigned in the callback during field recursion\n * @param parentRef the data or any artifacts assigned in the callback during field recursion one level up\n */\nexport const traverseFields = ({\n callback,\n fields,\n fillEmpty = true,\n flattenedFields,\n parentRef = {},\n ref = {},\n}: TraverseFieldsArgs | TraverseFlattenedFieldsArgs): void => {\n ;(flattenedFields ?? fields).some((field) => {\n let skip = false\n const next = () => {\n skip = true\n }\n\n if (!ref || typeof ref !== 'object') {\n return\n }\n\n if (\n callback &&\n callback({\n // @ts-expect-error compatibillity Field | FlattenedField\n field,\n next,\n parentRef,\n ref,\n })\n ) {\n return true\n }\n\n if (skip) {\n return false\n }\n\n // avoid mutation of ref for all fields\n let currentRef = ref\n let currentParentRef = parentRef\n\n if (field.type === 'tabs' && 'tabs' in field) {\n for (const tab of field.tabs) {\n let tabRef = ref\n if ('name' in tab && tab.name) {\n if (!ref[tab.name] || typeof ref[tab.name] !== 'object') {\n if (fillEmpty) {\n ref[tab.name] = {}\n } else {\n continue\n }\n }\n\n tabRef = tabRef[tab.name]\n\n if (tab.localized) {\n for (const key in tabRef as Record<string, unknown>) {\n if (tabRef[key] && typeof tabRef[key] === 'object') {\n traverseFields({\n callback,\n fields: tab.fields,\n fillEmpty,\n parentRef: currentParentRef,\n ref: tabRef[key],\n })\n }\n }\n continue\n }\n }\n\n if (\n callback &&\n callback({\n // @ts-expect-error compatibillity Field | FlattenedField\n field: { ...tab, type: 'tab' },\n next,\n parentRef: currentParentRef,\n ref: tabRef,\n })\n ) {\n return true\n }\n\n traverseFields({\n callback,\n fields: tab.fields,\n fillEmpty,\n parentRef: currentParentRef,\n ref: tabRef,\n })\n }\n\n return\n }\n\n if (\n (flattenedFields || field.type !== 'tab') &&\n (fieldHasSubFields(field as Field) || field.type === 'tab' || field.type === 'blocks')\n ) {\n if ('name' in field && field.name) {\n currentParentRef = currentRef\n if (!ref[field.name]) {\n if (fillEmpty) {\n if (field.type === 'group' || field.type === 'tab') {\n ref[field.name] = {}\n } else if (field.type === 'array' || field.type === 'blocks') {\n if (field.localized) {\n ref[field.name] = {}\n } else {\n ref[field.name] = []\n }\n }\n } else {\n return\n }\n }\n currentRef = ref[field.name]\n }\n\n if (\n (field.type === 'group' || field.type === 'tab') &&\n field.localized &&\n currentRef &&\n typeof currentRef === 'object'\n ) {\n for (const key in currentRef as Record<string, unknown>) {\n if (currentRef[key]) {\n traverseFields({\n callback,\n fields: field.fields,\n fillEmpty,\n flattenedFields: 'flattenedFields' in field ? field.flattenedFields : undefined,\n parentRef: currentParentRef,\n ref: currentRef[key],\n } as TraverseFieldsArgs)\n }\n }\n return\n }\n\n if (\n (field.type === 'blocks' || field.type === 'array') &&\n currentRef &&\n typeof currentRef === 'object'\n ) {\n if (field.localized) {\n if (Array.isArray(currentRef)) {\n return\n }\n\n for (const key in currentRef as Record<string, unknown>) {\n const localeData = currentRef[key]\n if (!Array.isArray(localeData)) {\n continue\n }\n\n traverseArrayOrBlocksField({\n callback,\n data: localeData,\n field,\n fillEmpty,\n parentRef: currentParentRef,\n })\n }\n } else if (Array.isArray(currentRef)) {\n traverseArrayOrBlocksField({\n callback,\n data: currentRef as Record<string, unknown>[],\n field,\n fillEmpty,\n parentRef: currentParentRef,\n })\n }\n } else if (currentRef && typeof currentRef === 'object' && 'fields' in field) {\n traverseFields({\n callback,\n fields: field.fields,\n fillEmpty,\n flattenedFields: 'flattenedFields' in field ? field.flattenedFields : undefined,\n parentRef: currentParentRef,\n ref: currentRef,\n })\n }\n }\n })\n}\n"],"names":["fieldHasSubFields","traverseArrayOrBlocksField","callback","data","field","fillEmpty","parentRef","type","traverseFields","fields","blocks","forEach","block","ref","flattenedFields","blockType","find","slug","some","skip","next","currentRef","currentParentRef","tab","tabs","tabRef","name","localized","key","undefined","Array","isArray","localeData"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/traverseFields.ts"],"sourcesContent":["import type { ArrayField, BlocksField, Field, TabAsField } from '../fields/config/types.js'\n\nimport { fieldHasSubFields } from '../fields/config/types.js'\n\nconst traverseArrayOrBlocksField = ({\n callback,\n data,\n field,\n fillEmpty,\n parentRef,\n}: {\n callback: TraverseFieldsCallback\n data: Record<string, unknown>[]\n field: ArrayField | BlocksField\n fillEmpty: boolean\n parentRef?: unknown\n}) => {\n if (fillEmpty) {\n if (field.type === 'array') {\n traverseFields({ callback, fields: field.fields, parentRef })\n }\n if (field.type === 'blocks') {\n field.blocks.forEach((block) => {\n traverseFields({ callback, fields: block.fields, parentRef })\n })\n }\n return\n }\n for (const ref of data) {\n let fields: Field[]\n if (field.type === 'blocks' && typeof ref?.blockType === 'string') {\n const block = field.blocks.find((block) => block.slug === ref.blockType)\n fields = block?.fields\n } else if (field.type === 'array') {\n fields = field.fields\n }\n\n if (fields) {\n traverseFields({ callback, fields, fillEmpty, parentRef, ref })\n }\n }\n}\n\nexport type TraverseFieldsCallback = (args: {\n /**\n * The current field\n */\n field: Field | TabAsField\n /**\n * Function that when called will skip the current field and continue to the next\n */\n next?: () => void\n /**\n * The parent reference object\n */\n parentRef?: Record<string, unknown> | unknown\n /**\n * The current reference object\n */\n ref?: Record<string, unknown> | unknown\n}) => boolean | void\n\ntype TraverseFieldsArgs = {\n callback: TraverseFieldsCallback\n fields: (Field | TabAsField)[]\n fillEmpty?: boolean\n parentRef?: Record<string, unknown> | unknown\n ref?: Record<string, unknown> | unknown\n}\n\n/**\n * Iterate a recurse an array of fields, calling a callback for each field\n *\n * @param fields\n * @param callback callback called for each field, discontinue looping if callback returns truthy\n * @param fillEmpty fill empty properties to use this without data\n * @param ref the data or any artifacts assigned in the callback during field recursion\n * @param parentRef the data or any artifacts assigned in the callback during field recursion one level up\n */\nexport const traverseFields = ({\n callback,\n fields,\n fillEmpty = true,\n parentRef = {},\n ref = {},\n}: TraverseFieldsArgs): void => {\n fields.some((field) => {\n let skip = false\n const next = () => {\n skip = true\n }\n\n if (!ref || typeof ref !== 'object') {\n return\n }\n\n if (callback && callback({ field, next, parentRef, ref })) {\n return true\n }\n\n if (skip) {\n return false\n }\n\n // avoid mutation of ref for all fields\n let currentRef = ref\n let currentParentRef = parentRef\n\n if (field.type === 'tabs' && 'tabs' in field) {\n for (const tab of field.tabs) {\n let tabRef = ref\n if ('name' in tab && tab.name) {\n if (!ref[tab.name] || typeof ref[tab.name] !== 'object') {\n if (fillEmpty) {\n ref[tab.name] = {}\n } else {\n continue\n }\n }\n\n tabRef = tabRef[tab.name]\n\n if (tab.localized) {\n for (const key in tabRef as Record<string, unknown>) {\n if (tabRef[key] && typeof tabRef[key] === 'object') {\n traverseFields({\n callback,\n fields: tab.fields,\n fillEmpty,\n parentRef: currentParentRef,\n ref: tabRef[key],\n })\n }\n }\n continue\n }\n }\n\n if (\n callback &&\n callback({\n field: { ...tab, type: 'tab' },\n next,\n parentRef: currentParentRef,\n ref: tabRef,\n })\n ) {\n return true\n }\n\n traverseFields({\n callback,\n fields: tab.fields,\n fillEmpty,\n parentRef: currentParentRef,\n ref: tabRef,\n })\n }\n\n return\n }\n\n if (field.type !== 'tab' && (fieldHasSubFields(field) || field.type === 'blocks')) {\n if ('name' in field && field.name) {\n currentParentRef = currentRef\n if (!ref[field.name]) {\n if (fillEmpty) {\n if (field.type === 'group') {\n ref[field.name] = {}\n } else if (field.type === 'array' || field.type === 'blocks') {\n if (field.localized) {\n ref[field.name] = {}\n } else {\n ref[field.name] = []\n }\n }\n } else {\n return\n }\n }\n currentRef = ref[field.name]\n }\n\n if (\n field.type === 'group' &&\n field.localized &&\n currentRef &&\n typeof currentRef === 'object'\n ) {\n for (const key in currentRef as Record<string, unknown>) {\n if (currentRef[key]) {\n traverseFields({\n callback,\n fields: field.fields,\n fillEmpty,\n parentRef: currentParentRef,\n ref: currentRef[key],\n })\n }\n }\n return\n }\n\n if (\n (field.type === 'blocks' || field.type === 'array') &&\n currentRef &&\n typeof currentRef === 'object'\n ) {\n if (field.localized) {\n if (Array.isArray(currentRef)) {\n return\n }\n\n for (const key in currentRef as Record<string, unknown>) {\n const localeData = currentRef[key]\n if (!Array.isArray(localeData)) {\n continue\n }\n\n traverseArrayOrBlocksField({\n callback,\n data: localeData,\n field,\n fillEmpty,\n parentRef: currentParentRef,\n })\n }\n } else if (Array.isArray(currentRef)) {\n traverseArrayOrBlocksField({\n callback,\n data: currentRef as Record<string, unknown>[],\n field,\n fillEmpty,\n parentRef: currentParentRef,\n })\n }\n } else if (currentRef && typeof currentRef === 'object' && 'fields' in field) {\n traverseFields({\n callback,\n fields: field.fields,\n fillEmpty,\n parentRef: currentParentRef,\n ref: currentRef,\n })\n }\n }\n })\n}\n"],"names":["fieldHasSubFields","traverseArrayOrBlocksField","callback","data","field","fillEmpty","parentRef","type","traverseFields","fields","blocks","forEach","block","ref","blockType","find","slug","some","skip","next","currentRef","currentParentRef","tab","tabs","tabRef","name","localized","key","Array","isArray","localeData"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "payload",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.11.0",
|
|
4
4
|
"description": "Node, React, Headless CMS and Application Framework built on Next.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"admin panel",
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
"tsx": "4.19.2",
|
|
98
98
|
"uuid": "10.0.0",
|
|
99
99
|
"ws": "^8.16.0",
|
|
100
|
-
"@payloadcms/translations": "3.
|
|
100
|
+
"@payloadcms/translations": "3.11.0"
|
|
101
101
|
},
|
|
102
102
|
"devDependencies": {
|
|
103
103
|
"@hyrious/esbuild-plugin-commonjs": "^0.2.4",
|