@payloadcms/graphql 4.0.0-internal.e16cf59 → 4.0.0-internal.e387174

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/LICENSE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2018-2025 Payload CMS, Inc. <info@payloadcms.com>
3
+ Copyright (c) 2018-2026 Payload CMS, LLC <info@payloadcms.com>
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining
6
6
  a copy of this software and associated documentation files (the
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/packages/graphql-query-complexity/estimators/simple/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAA2B,MAAM,0BAA0B,CAAA;AAE5F,eAAO,MAAM,eAAe,aAAc;IAAE,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,mBAM1E,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/packages/graphql-query-complexity/estimators/simple/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAA2B,MAAM,0BAA0B,CAAA;AAE5F,eAAO,MAAM,eAAe,GAAI,UAAU;IAAE,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,mBAM1E,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"buildFallbackLocaleInputType.d.ts","sourceRoot":"","sources":["../../src/schema/buildFallbackLocaleInputType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAA;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAIzC,eAAO,MAAM,4BAA4B,iBACzB,2BAA2B,KACxC,eAaF,CAAA"}
1
+ {"version":3,"file":"buildFallbackLocaleInputType.d.ts","sourceRoot":"","sources":["../../src/schema/buildFallbackLocaleInputType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAA;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAIzC,eAAO,MAAM,4BAA4B,GACvC,cAAc,2BAA2B,KACxC,eAaF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"buildLocaleInputType.d.ts","sourceRoot":"","sources":["../../src/schema/buildLocaleInputType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAChD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAA;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAIzC,eAAO,MAAM,oBAAoB,iBACjB,2BAA2B,KACxC,eAAe,GAAG,iBAapB,CAAA"}
1
+ {"version":3,"file":"buildLocaleInputType.d.ts","sourceRoot":"","sources":["../../src/schema/buildLocaleInputType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAChD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAA;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAIzC,eAAO,MAAM,oBAAoB,GAC/B,cAAc,2BAA2B,KACxC,eAAe,GAAG,iBAapB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"buildMutationInputType.d.ts","sourceRoot":"","sources":["../../src/schema/buildMutationInputType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,iBAAiB,EAAe,MAAM,SAAS,CAAA;AACtF,OAAO,KAAK,EAQV,KAAK,EACL,WAAW,EASX,yBAAyB,EACzB,eAAe,EAMhB,MAAM,SAAS,CAAA;AAEhB,OAAO,EAIL,sBAAsB,EAKvB,MAAM,SAAS,CAAA;AAUhB,QAAA,MAAM,YAAY;;;CAGjB,CAAA;AAED,eAAO,MAAM,mBAAmB,SACxB,MAAM,OAAO,YAAY,cACnB,yBAAyB,KACpC,iBAUF,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,CAAC,IAAI,EAAE,MAAM,GAAG,uBAAuB,CAAA;CACxC,CAAA;AAED,KAAK,0BAA0B,GAAG;IAChC,MAAM,EAAE,eAAe,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,WAAW,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,iBAAiB,EAAE,OAAO,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,MAAM,EACN,MAAM,EACN,aAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,UAAU,GACX,EAAE,0BAA0B,GAAG,sBAAsB,GAAG,IAAI,CA6V5D"}
1
+ {"version":3,"file":"buildMutationInputType.d.ts","sourceRoot":"","sources":["../../src/schema/buildMutationInputType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,iBAAiB,EAAe,MAAM,SAAS,CAAA;AACtF,OAAO,KAAK,EAQV,KAAK,EACL,WAAW,EASX,yBAAyB,EACzB,eAAe,EAOhB,MAAM,SAAS,CAAA;AAEhB,OAAO,EAIL,sBAAsB,EAKvB,MAAM,SAAS,CAAA;AAUhB,QAAA,MAAM,YAAY;;;CAGjB,CAAA;AAED,eAAO,MAAM,mBAAmB,GAC9B,MAAM,MAAM,OAAO,YAAY,EAC/B,YAAY,yBAAyB,KACpC,iBAUF,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,CAAC,IAAI,EAAE,MAAM,GAAG,uBAAuB,CAAA;CACxC,CAAA;AAED,KAAK,0BAA0B,GAAG;IAChC,MAAM,EAAE,eAAe,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,WAAW,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,iBAAiB,EAAE,OAAO,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,MAAM,EACN,MAAM,EACN,aAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,UAAU,GACX,EAAE,0BAA0B,GAAG,sBAAsB,GAAG,IAAI,CAmW5D"}
@@ -19,6 +19,17 @@ export const getCollectionIDType = (type, collection)=>{
19
19
  };
20
20
  export function buildMutationInputType({ name, config, fields, forceNullable = false, graphqlResult, parentIsLocalized, parentName }) {
21
21
  const fieldToSchemaMap = {
22
+ slug: (inputObjectTypeConfig, field)=>({
23
+ ...inputObjectTypeConfig,
24
+ [formatName(field.name)]: {
25
+ type: withNullableType({
26
+ type: GraphQLString,
27
+ field,
28
+ forceNullable,
29
+ parentIsLocalized
30
+ })
31
+ }
32
+ }),
22
33
  array: (inputObjectTypeConfig, field)=>{
23
34
  const fullName = combineParentName(parentName, toWords(field.name, true));
24
35
  let type = buildMutationInputType({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/buildMutationInputType.ts"],"sourcesContent":["import type { GraphQLInputFieldConfig, GraphQLScalarType, GraphQLType } from 'graphql'\nimport type {\n ArrayField,\n BlocksField,\n CheckboxField,\n CodeField,\n CollapsibleField,\n DateField,\n EmailField,\n Field,\n GraphQLInfo,\n GroupField,\n JSONField,\n NumberField,\n PointField,\n RadioField,\n RelationshipField,\n RichTextField,\n RowField,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SelectField,\n TabsField,\n TextareaField,\n TextField,\n UploadField,\n} from 'payload'\n\nimport {\n GraphQLBoolean,\n GraphQLEnumType,\n GraphQLFloat,\n GraphQLInputObjectType,\n GraphQLInt,\n GraphQLList,\n GraphQLNonNull,\n GraphQLString,\n} from 'graphql'\nimport { flattenTopLevelFields, toWords } from 'payload'\nimport { fieldAffectsData, optionIsObject, tabHasName } from 'payload/shared'\n\nimport { GraphQLJSON } from '../packages/graphql-type-json/index.js'\nimport { combineParentName } from '../utilities/combineParentName.js'\nimport { formatName } from '../utilities/formatName.js'\nimport { groupOrTabHasRequiredSubfield } from '../utilities/groupOrTabHasRequiredSubfield.js'\nimport { withNullableType } from './withNullableType.js'\n\nconst idFieldTypes = {\n number: GraphQLInt,\n text: GraphQLString,\n}\n\nexport const getCollectionIDType = (\n type: keyof typeof idFieldTypes,\n collection: SanitizedCollectionConfig,\n): GraphQLScalarType => {\n const idField = flattenTopLevelFields(collection.fields).find(\n (field) => fieldAffectsData(field) && field.name === 'id',\n )\n\n if (!idField) {\n return idFieldTypes[type]\n }\n\n return idFieldTypes[idField.type]\n}\n\nexport type InputObjectTypeConfig = {\n [path: string]: GraphQLInputFieldConfig\n}\n\ntype BuildMutationInputTypeArgs = {\n config: SanitizedConfig\n fields: Field[]\n forceNullable?: boolean\n graphqlResult: GraphQLInfo\n name: string\n parentIsLocalized: boolean\n parentName: string\n}\n\nexport function buildMutationInputType({\n name,\n config,\n fields,\n forceNullable = false,\n graphqlResult,\n parentIsLocalized,\n parentName,\n}: BuildMutationInputTypeArgs): GraphQLInputObjectType | null {\n const fieldToSchemaMap = {\n array: (inputObjectTypeConfig: InputObjectTypeConfig, field: ArrayField) => {\n const fullName = combineParentName(parentName, toWords(field.name, true))\n let type: GraphQLList<GraphQLType> | GraphQLType = buildMutationInputType({\n name: fullName,\n config,\n fields: field.fields,\n graphqlResult,\n parentIsLocalized: parentIsLocalized || field.localized,\n parentName: fullName,\n })\n\n if (!type) {\n return inputObjectTypeConfig\n }\n\n type = new GraphQLList(withNullableType({ type, field, forceNullable, parentIsLocalized }))\n return {\n ...inputObjectTypeConfig,\n [formatName(field.name)]: { type },\n }\n },\n blocks: (inputObjectTypeConfig: InputObjectTypeConfig, field: BlocksField) => ({\n ...inputObjectTypeConfig,\n [formatName(field.name)]: { type: GraphQLJSON },\n }),\n checkbox: (inputObjectTypeConfig: InputObjectTypeConfig, field: CheckboxField) => ({\n ...inputObjectTypeConfig,\n [formatName(field.name)]: { type: GraphQLBoolean },\n }),\n code: (inputObjectTypeConfig: InputObjectTypeConfig, field: CodeField) => ({\n ...inputObjectTypeConfig,\n [formatName(field.name)]: {\n type: withNullableType({ type: GraphQLString, field, forceNullable, parentIsLocalized }),\n },\n }),\n collapsible: (inputObjectTypeConfig: InputObjectTypeConfig, field: CollapsibleField) =>\n field.fields.reduce((acc, subField: CollapsibleField) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField(acc, subField)\n }\n return acc\n }, inputObjectTypeConfig),\n date: (inputObjectTypeConfig: InputObjectTypeConfig, field: DateField) => ({\n ...inputObjectTypeConfig,\n [formatName(field.name)]: {\n type: withNullableType({ type: GraphQLString, field, forceNullable, parentIsLocalized }),\n },\n }),\n email: (inputObjectTypeConfig: InputObjectTypeConfig, field: EmailField) => ({\n ...inputObjectTypeConfig,\n [formatName(field.name)]: {\n type: withNullableType({ type: GraphQLString, field, forceNullable, parentIsLocalized }),\n },\n }),\n group: (inputObjectTypeConfig: InputObjectTypeConfig, field: GroupField) => {\n if (fieldAffectsData(field)) {\n const requiresAtLeastOneField = groupOrTabHasRequiredSubfield(field)\n const fullName = combineParentName(parentName, toWords(field.name, true))\n let type: GraphQLType = buildMutationInputType({\n name: fullName,\n config,\n fields: field.fields,\n graphqlResult,\n parentIsLocalized: parentIsLocalized || field.localized,\n parentName: fullName,\n })\n\n if (!type) {\n return inputObjectTypeConfig\n }\n\n if (requiresAtLeastOneField) {\n type = new GraphQLNonNull(type)\n }\n return {\n ...inputObjectTypeConfig,\n [formatName(field.name)]: { type },\n }\n } else {\n return field.fields.reduce((acc, subField: CollapsibleField) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField(acc, subField)\n }\n return acc\n }, inputObjectTypeConfig)\n }\n },\n json: (inputObjectTypeConfig: InputObjectTypeConfig, field: JSONField) => ({\n ...inputObjectTypeConfig,\n [formatName(field.name)]: {\n type: withNullableType({ type: GraphQLJSON, field, forceNullable, parentIsLocalized }),\n },\n }),\n number: (inputObjectTypeConfig: InputObjectTypeConfig, field: NumberField) => {\n const type = field.name === 'id' ? GraphQLInt : GraphQLFloat\n return {\n ...inputObjectTypeConfig,\n [formatName(field.name)]: {\n type: withNullableType({\n type: field.hasMany === true ? new GraphQLList(type) : type,\n field,\n forceNullable,\n parentIsLocalized,\n }),\n },\n }\n },\n point: (inputObjectTypeConfig: InputObjectTypeConfig, field: PointField) => ({\n ...inputObjectTypeConfig,\n [formatName(field.name)]: {\n type: withNullableType({\n type: new GraphQLList(GraphQLFloat),\n field,\n forceNullable,\n parentIsLocalized,\n }),\n },\n }),\n radio: (inputObjectTypeConfig: InputObjectTypeConfig, field: RadioField) => ({\n ...inputObjectTypeConfig,\n [formatName(field.name)]: {\n type: withNullableType({ type: GraphQLString, field, forceNullable, parentIsLocalized }),\n },\n }),\n relationship: (inputObjectTypeConfig: InputObjectTypeConfig, field: RelationshipField) => {\n const { relationTo } = field\n type PayloadGraphQLRelationshipType =\n | GraphQLInputObjectType\n | GraphQLList<GraphQLScalarType>\n | GraphQLScalarType\n let type: PayloadGraphQLRelationshipType\n\n if (Array.isArray(relationTo)) {\n const fullName = `${combineParentName(\n parentName,\n toWords(field.name, true),\n )}RelationshipInput`\n type = new GraphQLInputObjectType({\n name: fullName,\n fields: {\n relationTo: {\n type: new GraphQLEnumType({\n name: `${fullName}RelationTo`,\n values: relationTo.reduce(\n (values, option) => ({\n ...values,\n [formatName(option)]: {\n value: option,\n },\n }),\n {},\n ),\n }),\n },\n value: { type: GraphQLJSON },\n },\n })\n } else {\n type = getCollectionIDType(\n config.db.defaultIDType,\n graphqlResult.collections[relationTo].config,\n )\n }\n\n return {\n ...inputObjectTypeConfig,\n [formatName(field.name)]: { type: field.hasMany ? new GraphQLList(type) : type },\n }\n },\n richText: (inputObjectTypeConfig: InputObjectTypeConfig, field: RichTextField) => ({\n ...inputObjectTypeConfig,\n [formatName(field.name)]: {\n type: withNullableType({ type: GraphQLJSON, field, forceNullable, parentIsLocalized }),\n },\n }),\n row: (inputObjectTypeConfig: InputObjectTypeConfig, field: RowField) =>\n field.fields.reduce((acc, subField: Field) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField(acc, subField)\n }\n return acc\n }, inputObjectTypeConfig),\n select: (inputObjectTypeConfig: InputObjectTypeConfig, field: SelectField) => {\n const formattedName = `${combineParentName(parentName, field.name)}_MutationInput`\n let type: GraphQLType = new GraphQLEnumType({\n name: formattedName,\n values: field.options.reduce((values, option) => {\n if (optionIsObject(option)) {\n return {\n ...values,\n [formatName(option.value)]: {\n value: option.value,\n },\n }\n }\n\n return {\n ...values,\n [formatName(option)]: {\n value: option,\n },\n }\n }, {}),\n })\n\n type = field.hasMany ? new GraphQLList(type) : type\n type = withNullableType({ type, field, forceNullable, parentIsLocalized })\n\n return {\n ...inputObjectTypeConfig,\n [formatName(field.name)]: { type },\n }\n },\n tabs: (inputObjectTypeConfig: InputObjectTypeConfig, field: TabsField) => {\n return field.tabs.reduce((acc, tab) => {\n if (tabHasName(tab)) {\n const fullName = combineParentName(parentName, toWords(tab.name, true))\n const requiresAtLeastOneField = groupOrTabHasRequiredSubfield(field)\n let type: GraphQLType = buildMutationInputType({\n name: fullName,\n config,\n fields: tab.fields,\n graphqlResult,\n parentIsLocalized: parentIsLocalized || tab.localized,\n parentName: fullName,\n })\n\n if (!type) {\n return acc\n }\n\n if (requiresAtLeastOneField) {\n type = new GraphQLNonNull(type)\n }\n return {\n ...acc,\n [tab.name]: { type },\n }\n }\n\n return {\n ...acc,\n ...tab.fields.reduce((subFieldSchema, subField) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField(subFieldSchema, subField)\n }\n return subFieldSchema\n }, acc),\n }\n }, inputObjectTypeConfig)\n },\n text: (inputObjectTypeConfig: InputObjectTypeConfig, field: TextField) => ({\n ...inputObjectTypeConfig,\n [formatName(field.name)]: {\n type: withNullableType({\n type: field.hasMany === true ? new GraphQLList(GraphQLString) : GraphQLString,\n field,\n forceNullable,\n parentIsLocalized,\n }),\n },\n }),\n textarea: (inputObjectTypeConfig: InputObjectTypeConfig, field: TextareaField) => ({\n ...inputObjectTypeConfig,\n [formatName(field.name)]: {\n type: withNullableType({ type: GraphQLString, field, forceNullable, parentIsLocalized }),\n },\n }),\n upload: (inputObjectTypeConfig: InputObjectTypeConfig, field: UploadField) => {\n const { relationTo } = field\n type PayloadGraphQLRelationshipType =\n | GraphQLInputObjectType\n | GraphQLList<GraphQLScalarType>\n | GraphQLScalarType\n let type: PayloadGraphQLRelationshipType\n\n if (Array.isArray(relationTo)) {\n const fullName = `${combineParentName(\n parentName,\n toWords(field.name, true),\n )}RelationshipInput`\n type = new GraphQLInputObjectType({\n name: fullName,\n fields: {\n relationTo: {\n type: new GraphQLEnumType({\n name: `${fullName}RelationTo`,\n values: relationTo.reduce(\n (values, option) => ({\n ...values,\n [formatName(option)]: {\n value: option,\n },\n }),\n {},\n ),\n }),\n },\n value: { type: GraphQLJSON },\n },\n })\n } else {\n type = getCollectionIDType(\n config.db.defaultIDType,\n graphqlResult.collections[relationTo].config,\n )\n }\n\n return {\n ...inputObjectTypeConfig,\n [formatName(field.name)]: { type: field.hasMany ? new GraphQLList(type) : type },\n }\n },\n }\n\n const fieldName = formatName(name)\n\n const fieldSchemas = fields.reduce((inputObjectTypeConfig, field) => {\n const fieldSchema = fieldToSchemaMap[field.type]\n\n if (typeof fieldSchema !== 'function') {\n return inputObjectTypeConfig\n }\n\n const schema = fieldSchema(inputObjectTypeConfig, field)\n if (Object.keys(schema).length === 0) {\n return inputObjectTypeConfig\n }\n\n return {\n ...inputObjectTypeConfig,\n ...fieldSchema(inputObjectTypeConfig, field),\n }\n }, {})\n\n if (Object.keys(fieldSchemas).length === 0) {\n return null\n }\n\n return new GraphQLInputObjectType({\n name: `mutation${fieldName}Input`,\n fields: fieldSchemas,\n })\n}\n"],"names":["GraphQLBoolean","GraphQLEnumType","GraphQLFloat","GraphQLInputObjectType","GraphQLInt","GraphQLList","GraphQLNonNull","GraphQLString","flattenTopLevelFields","toWords","fieldAffectsData","optionIsObject","tabHasName","GraphQLJSON","combineParentName","formatName","groupOrTabHasRequiredSubfield","withNullableType","idFieldTypes","number","text","getCollectionIDType","type","collection","idField","fields","find","field","name","buildMutationInputType","config","forceNullable","graphqlResult","parentIsLocalized","parentName","fieldToSchemaMap","array","inputObjectTypeConfig","fullName","localized","blocks","checkbox","code","collapsible","reduce","acc","subField","addSubField","date","email","group","requiresAtLeastOneField","json","hasMany","point","radio","relationship","relationTo","Array","isArray","values","option","value","db","defaultIDType","collections","richText","row","select","formattedName","options","tabs","tab","subFieldSchema","textarea","upload","fieldName","fieldSchemas","fieldSchema","schema","Object","keys","length"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/schema/buildMutationInputType.ts"],"sourcesContent":["import type { GraphQLInputFieldConfig, GraphQLScalarType, GraphQLType } from 'graphql'\nimport type {\n ArrayField,\n BlocksField,\n CheckboxField,\n CodeField,\n CollapsibleField,\n DateField,\n EmailField,\n Field,\n GraphQLInfo,\n GroupField,\n JSONField,\n NumberField,\n PointField,\n RadioField,\n RelationshipField,\n RichTextField,\n RowField,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SelectField,\n SlugField,\n TabsField,\n TextareaField,\n TextField,\n UploadField,\n} from 'payload'\n\nimport {\n GraphQLBoolean,\n GraphQLEnumType,\n GraphQLFloat,\n GraphQLInputObjectType,\n GraphQLInt,\n GraphQLList,\n GraphQLNonNull,\n GraphQLString,\n} from 'graphql'\nimport { flattenTopLevelFields, toWords } from 'payload'\nimport { fieldAffectsData, optionIsObject, tabHasName } from 'payload/shared'\n\nimport { GraphQLJSON } from '../packages/graphql-type-json/index.js'\nimport { combineParentName } from '../utilities/combineParentName.js'\nimport { formatName } from '../utilities/formatName.js'\nimport { groupOrTabHasRequiredSubfield } from '../utilities/groupOrTabHasRequiredSubfield.js'\nimport { withNullableType } from './withNullableType.js'\n\nconst idFieldTypes = {\n number: GraphQLInt,\n text: GraphQLString,\n}\n\nexport const getCollectionIDType = (\n type: keyof typeof idFieldTypes,\n collection: SanitizedCollectionConfig,\n): GraphQLScalarType => {\n const idField = flattenTopLevelFields(collection.fields).find(\n (field) => fieldAffectsData(field) && field.name === 'id',\n )\n\n if (!idField) {\n return idFieldTypes[type]\n }\n\n return idFieldTypes[idField.type]\n}\n\nexport type InputObjectTypeConfig = {\n [path: string]: GraphQLInputFieldConfig\n}\n\ntype BuildMutationInputTypeArgs = {\n config: SanitizedConfig\n fields: Field[]\n forceNullable?: boolean\n graphqlResult: GraphQLInfo\n name: string\n parentIsLocalized: boolean\n parentName: string\n}\n\nexport function buildMutationInputType({\n name,\n config,\n fields,\n forceNullable = false,\n graphqlResult,\n parentIsLocalized,\n parentName,\n}: BuildMutationInputTypeArgs): GraphQLInputObjectType | null {\n const fieldToSchemaMap = {\n slug: (inputObjectTypeConfig: InputObjectTypeConfig, field: SlugField) => ({\n ...inputObjectTypeConfig,\n [formatName(field.name)]: {\n type: withNullableType({ type: GraphQLString, field, forceNullable, parentIsLocalized }),\n },\n }),\n array: (inputObjectTypeConfig: InputObjectTypeConfig, field: ArrayField) => {\n const fullName = combineParentName(parentName, toWords(field.name, true))\n let type: GraphQLList<GraphQLType> | GraphQLType = buildMutationInputType({\n name: fullName,\n config,\n fields: field.fields,\n graphqlResult,\n parentIsLocalized: parentIsLocalized || field.localized,\n parentName: fullName,\n })\n\n if (!type) {\n return inputObjectTypeConfig\n }\n\n type = new GraphQLList(withNullableType({ type, field, forceNullable, parentIsLocalized }))\n return {\n ...inputObjectTypeConfig,\n [formatName(field.name)]: { type },\n }\n },\n blocks: (inputObjectTypeConfig: InputObjectTypeConfig, field: BlocksField) => ({\n ...inputObjectTypeConfig,\n [formatName(field.name)]: { type: GraphQLJSON },\n }),\n checkbox: (inputObjectTypeConfig: InputObjectTypeConfig, field: CheckboxField) => ({\n ...inputObjectTypeConfig,\n [formatName(field.name)]: { type: GraphQLBoolean },\n }),\n code: (inputObjectTypeConfig: InputObjectTypeConfig, field: CodeField) => ({\n ...inputObjectTypeConfig,\n [formatName(field.name)]: {\n type: withNullableType({ type: GraphQLString, field, forceNullable, parentIsLocalized }),\n },\n }),\n collapsible: (inputObjectTypeConfig: InputObjectTypeConfig, field: CollapsibleField) =>\n field.fields.reduce((acc, subField: CollapsibleField) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField(acc, subField)\n }\n return acc\n }, inputObjectTypeConfig),\n date: (inputObjectTypeConfig: InputObjectTypeConfig, field: DateField) => ({\n ...inputObjectTypeConfig,\n [formatName(field.name)]: {\n type: withNullableType({ type: GraphQLString, field, forceNullable, parentIsLocalized }),\n },\n }),\n email: (inputObjectTypeConfig: InputObjectTypeConfig, field: EmailField) => ({\n ...inputObjectTypeConfig,\n [formatName(field.name)]: {\n type: withNullableType({ type: GraphQLString, field, forceNullable, parentIsLocalized }),\n },\n }),\n group: (inputObjectTypeConfig: InputObjectTypeConfig, field: GroupField) => {\n if (fieldAffectsData(field)) {\n const requiresAtLeastOneField = groupOrTabHasRequiredSubfield(field)\n const fullName = combineParentName(parentName, toWords(field.name, true))\n let type: GraphQLType = buildMutationInputType({\n name: fullName,\n config,\n fields: field.fields,\n graphqlResult,\n parentIsLocalized: parentIsLocalized || field.localized,\n parentName: fullName,\n })\n\n if (!type) {\n return inputObjectTypeConfig\n }\n\n if (requiresAtLeastOneField) {\n type = new GraphQLNonNull(type)\n }\n return {\n ...inputObjectTypeConfig,\n [formatName(field.name)]: { type },\n }\n } else {\n return field.fields.reduce((acc, subField: CollapsibleField) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField(acc, subField)\n }\n return acc\n }, inputObjectTypeConfig)\n }\n },\n json: (inputObjectTypeConfig: InputObjectTypeConfig, field: JSONField) => ({\n ...inputObjectTypeConfig,\n [formatName(field.name)]: {\n type: withNullableType({ type: GraphQLJSON, field, forceNullable, parentIsLocalized }),\n },\n }),\n number: (inputObjectTypeConfig: InputObjectTypeConfig, field: NumberField) => {\n const type = field.name === 'id' ? GraphQLInt : GraphQLFloat\n return {\n ...inputObjectTypeConfig,\n [formatName(field.name)]: {\n type: withNullableType({\n type: field.hasMany === true ? new GraphQLList(type) : type,\n field,\n forceNullable,\n parentIsLocalized,\n }),\n },\n }\n },\n point: (inputObjectTypeConfig: InputObjectTypeConfig, field: PointField) => ({\n ...inputObjectTypeConfig,\n [formatName(field.name)]: {\n type: withNullableType({\n type: new GraphQLList(GraphQLFloat),\n field,\n forceNullable,\n parentIsLocalized,\n }),\n },\n }),\n radio: (inputObjectTypeConfig: InputObjectTypeConfig, field: RadioField) => ({\n ...inputObjectTypeConfig,\n [formatName(field.name)]: {\n type: withNullableType({ type: GraphQLString, field, forceNullable, parentIsLocalized }),\n },\n }),\n relationship: (inputObjectTypeConfig: InputObjectTypeConfig, field: RelationshipField) => {\n const { relationTo } = field\n type PayloadGraphQLRelationshipType =\n | GraphQLInputObjectType\n | GraphQLList<GraphQLScalarType>\n | GraphQLScalarType\n let type: PayloadGraphQLRelationshipType\n\n if (Array.isArray(relationTo)) {\n const fullName = `${combineParentName(\n parentName,\n toWords(field.name, true),\n )}RelationshipInput`\n type = new GraphQLInputObjectType({\n name: fullName,\n fields: {\n relationTo: {\n type: new GraphQLEnumType({\n name: `${fullName}RelationTo`,\n values: relationTo.reduce(\n (values, option) => ({\n ...values,\n [formatName(option)]: {\n value: option,\n },\n }),\n {},\n ),\n }),\n },\n value: { type: GraphQLJSON },\n },\n })\n } else {\n type = getCollectionIDType(\n config.db.defaultIDType,\n graphqlResult.collections[relationTo].config,\n )\n }\n\n return {\n ...inputObjectTypeConfig,\n [formatName(field.name)]: { type: field.hasMany ? new GraphQLList(type) : type },\n }\n },\n richText: (inputObjectTypeConfig: InputObjectTypeConfig, field: RichTextField) => ({\n ...inputObjectTypeConfig,\n [formatName(field.name)]: {\n type: withNullableType({ type: GraphQLJSON, field, forceNullable, parentIsLocalized }),\n },\n }),\n row: (inputObjectTypeConfig: InputObjectTypeConfig, field: RowField) =>\n field.fields.reduce((acc, subField: Field) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField(acc, subField)\n }\n return acc\n }, inputObjectTypeConfig),\n select: (inputObjectTypeConfig: InputObjectTypeConfig, field: SelectField) => {\n const formattedName = `${combineParentName(parentName, field.name)}_MutationInput`\n let type: GraphQLType = new GraphQLEnumType({\n name: formattedName,\n values: field.options.reduce((values, option) => {\n if (optionIsObject(option)) {\n return {\n ...values,\n [formatName(option.value)]: {\n value: option.value,\n },\n }\n }\n\n return {\n ...values,\n [formatName(option)]: {\n value: option,\n },\n }\n }, {}),\n })\n\n type = field.hasMany ? new GraphQLList(type) : type\n type = withNullableType({ type, field, forceNullable, parentIsLocalized })\n\n return {\n ...inputObjectTypeConfig,\n [formatName(field.name)]: { type },\n }\n },\n tabs: (inputObjectTypeConfig: InputObjectTypeConfig, field: TabsField) => {\n return field.tabs.reduce((acc, tab) => {\n if (tabHasName(tab)) {\n const fullName = combineParentName(parentName, toWords(tab.name, true))\n const requiresAtLeastOneField = groupOrTabHasRequiredSubfield(field)\n let type: GraphQLType = buildMutationInputType({\n name: fullName,\n config,\n fields: tab.fields,\n graphqlResult,\n parentIsLocalized: parentIsLocalized || tab.localized,\n parentName: fullName,\n })\n\n if (!type) {\n return acc\n }\n\n if (requiresAtLeastOneField) {\n type = new GraphQLNonNull(type)\n }\n return {\n ...acc,\n [tab.name]: { type },\n }\n }\n\n return {\n ...acc,\n ...tab.fields.reduce((subFieldSchema, subField) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField(subFieldSchema, subField)\n }\n return subFieldSchema\n }, acc),\n }\n }, inputObjectTypeConfig)\n },\n text: (inputObjectTypeConfig: InputObjectTypeConfig, field: TextField) => ({\n ...inputObjectTypeConfig,\n [formatName(field.name)]: {\n type: withNullableType({\n type: field.hasMany === true ? new GraphQLList(GraphQLString) : GraphQLString,\n field,\n forceNullable,\n parentIsLocalized,\n }),\n },\n }),\n textarea: (inputObjectTypeConfig: InputObjectTypeConfig, field: TextareaField) => ({\n ...inputObjectTypeConfig,\n [formatName(field.name)]: {\n type: withNullableType({ type: GraphQLString, field, forceNullable, parentIsLocalized }),\n },\n }),\n upload: (inputObjectTypeConfig: InputObjectTypeConfig, field: UploadField) => {\n const { relationTo } = field\n type PayloadGraphQLRelationshipType =\n | GraphQLInputObjectType\n | GraphQLList<GraphQLScalarType>\n | GraphQLScalarType\n let type: PayloadGraphQLRelationshipType\n\n if (Array.isArray(relationTo)) {\n const fullName = `${combineParentName(\n parentName,\n toWords(field.name, true),\n )}RelationshipInput`\n type = new GraphQLInputObjectType({\n name: fullName,\n fields: {\n relationTo: {\n type: new GraphQLEnumType({\n name: `${fullName}RelationTo`,\n values: relationTo.reduce(\n (values, option) => ({\n ...values,\n [formatName(option)]: {\n value: option,\n },\n }),\n {},\n ),\n }),\n },\n value: { type: GraphQLJSON },\n },\n })\n } else {\n type = getCollectionIDType(\n config.db.defaultIDType,\n graphqlResult.collections[relationTo].config,\n )\n }\n\n return {\n ...inputObjectTypeConfig,\n [formatName(field.name)]: { type: field.hasMany ? new GraphQLList(type) : type },\n }\n },\n }\n\n const fieldName = formatName(name)\n\n const fieldSchemas = fields.reduce((inputObjectTypeConfig, field) => {\n const fieldSchema = fieldToSchemaMap[field.type]\n\n if (typeof fieldSchema !== 'function') {\n return inputObjectTypeConfig\n }\n\n const schema = fieldSchema(inputObjectTypeConfig, field)\n if (Object.keys(schema).length === 0) {\n return inputObjectTypeConfig\n }\n\n return {\n ...inputObjectTypeConfig,\n ...fieldSchema(inputObjectTypeConfig, field),\n }\n }, {})\n\n if (Object.keys(fieldSchemas).length === 0) {\n return null\n }\n\n return new GraphQLInputObjectType({\n name: `mutation${fieldName}Input`,\n fields: fieldSchemas,\n })\n}\n"],"names":["GraphQLBoolean","GraphQLEnumType","GraphQLFloat","GraphQLInputObjectType","GraphQLInt","GraphQLList","GraphQLNonNull","GraphQLString","flattenTopLevelFields","toWords","fieldAffectsData","optionIsObject","tabHasName","GraphQLJSON","combineParentName","formatName","groupOrTabHasRequiredSubfield","withNullableType","idFieldTypes","number","text","getCollectionIDType","type","collection","idField","fields","find","field","name","buildMutationInputType","config","forceNullable","graphqlResult","parentIsLocalized","parentName","fieldToSchemaMap","slug","inputObjectTypeConfig","array","fullName","localized","blocks","checkbox","code","collapsible","reduce","acc","subField","addSubField","date","email","group","requiresAtLeastOneField","json","hasMany","point","radio","relationship","relationTo","Array","isArray","values","option","value","db","defaultIDType","collections","richText","row","select","formattedName","options","tabs","tab","subFieldSchema","textarea","upload","fieldName","fieldSchemas","fieldSchema","schema","Object","keys","length"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"buildPaginatedListType.d.ts","sourceRoot":"","sources":["../../src/schema/buildPaginatedListType.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2D,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEpG,eAAO,MAAM,sBAAsB,0DAkB/B,CAAA"}
1
+ {"version":3,"file":"buildPaginatedListType.d.ts","sourceRoot":"","sources":["../../src/schema/buildPaginatedListType.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2D,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEpG,eAAO,MAAM,sBAAsB,GAAI,SAAI,EAAE,YAAO,gCAkBhD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"buildPoliciesType.d.ts","sourceRoot":"","sources":["../../src/schema/buildPoliciesType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,KAAK,EACL,YAAY,EAEZ,eAAe,EAEhB,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAkC,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAM3E,KAAK,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAExF,KAAK,YAAY,GAAG,WAAW,GAAG,SAAS,CAAA;AA0F3C,KAAK,iBAAiB,GAAG;IACvB,YAAY,EAAE,KAAK,EAAE,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,aAAa,EAAE,CAAA;IAC3B,KAAK,EAAE,YAAY,CAAA;CACpB,CAAA;AACD,eAAO,MAAM,iBAAiB,SAAU,iBAAiB;;;;CA4BxD,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,GAAG,CACA;IACE,MAAM,EAAE,gBAAgB,CAAA;IACxB,IAAI,EAAE,YAAY,CAAA;CACnB,GACD;IACE,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,EAAE,QAAQ,CAAA;CACf,CACJ,CAAA;AACD,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,iBAAiB,CAyDxE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,iBAAiB,CAyC5E"}
1
+ {"version":3,"file":"buildPoliciesType.d.ts","sourceRoot":"","sources":["../../src/schema/buildPoliciesType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,KAAK,EACL,YAAY,EAEZ,eAAe,EAEhB,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAkC,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAM3E,KAAK,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAExF,KAAK,YAAY,GAAG,WAAW,GAAG,SAAS,CAAA;AA0F3C,KAAK,iBAAiB,GAAG;IACvB,YAAY,EAAE,KAAK,EAAE,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,aAAa,EAAE,CAAA;IAC3B,KAAK,EAAE,YAAY,CAAA;CACpB,CAAA;AACD,eAAO,MAAM,iBAAiB,GAAI,MAAM,iBAAiB;;;;CA4BxD,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,GAAG,CACA;IACE,MAAM,EAAE,gBAAgB,CAAA;IACxB,IAAI,EAAE,YAAY,CAAA;CACnB,GACD;IACE,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,EAAE,QAAQ,CAAA;CACf,CACJ,CAAA;AACD,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,iBAAiB,CAyDxE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,iBAAiB,CAyC5E"}
@@ -1 +1 @@
1
- {"version":3,"file":"buildWhereInputType.d.ts","sourceRoot":"","sources":["../../src/schema/buildWhereInputType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAsB,MAAM,SAAS,CAAA;AAExD,OAAO,EAAE,sBAAsB,EAAe,MAAM,SAAS,CAAA;AAQ7D,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,mBAAmB,iCAAkC,IAAI,KAAG,sBAgFxE,CAAA"}
1
+ {"version":3,"file":"buildWhereInputType.d.ts","sourceRoot":"","sources":["../../src/schema/buildWhereInputType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAsB,MAAM,SAAS,CAAA;AAExD,OAAO,EAAE,sBAAsB,EAAe,MAAM,SAAS,CAAA;AAQ7D,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,mBAAmB,GAAI,8BAA8B,IAAI,KAAG,sBAgFxE,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { ArrayField, BlocksField, CheckboxField, CodeField, CollapsibleField, DateField, EmailField, GraphQLInfo, GroupField, JoinField, JSONField, NumberField, PointField, RadioField, RelationshipField, RichTextField, RowField, SanitizedConfig, SelectField, TabsField, TextareaField, TextField, UploadField } from 'payload';
1
+ import type { ArrayField, BlocksField, CheckboxField, CodeField, CollapsibleField, DateField, EmailField, GraphQLInfo, GroupField, JoinField, JSONField, NumberField, PointField, RadioField, RelationshipField, RichTextField, RowField, SanitizedConfig, SelectField, SlugField, TabsField, TextareaField, TextField, UploadField } from 'payload';
2
2
  import { GraphQLObjectType } from 'graphql';
3
3
  import { type ObjectTypeConfig } from './buildObjectType.js';
4
4
  type SharedArgs = {
@@ -63,6 +63,9 @@ type FieldToSchemaMap = {
63
63
  select: (args: {
64
64
  field: SelectField;
65
65
  } & SharedArgs) => ObjectTypeConfig;
66
+ slug: (args: {
67
+ field: SlugField;
68
+ } & SharedArgs) => ObjectTypeConfig;
66
69
  tabs: (args: {
67
70
  field: TabsField;
68
71
  } & SharedArgs) => ObjectTypeConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"fieldToSchemaMap.d.ts","sourceRoot":"","sources":["../../src/schema/fieldToSchemaMap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fieldToSchemaMap.d.ts","sourceRoot":"","sources":["../../src/schema/fieldToSchemaMap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,SAAS,EACT,UAAU,EAGV,WAAW,EACX,UAAU,EACV,SAAS,EACT,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,iBAAiB,EAEjB,aAAa,EACb,QAAQ,EACR,eAAe,EACf,WAAW,EACX,SAAS,EACT,SAAS,EACT,aAAa,EACb,SAAS,EACT,WAAW,EACZ,MAAM,SAAS,CAAA;AAEhB,OAAO,EAOL,iBAAiB,EAGlB,MAAM,SAAS,CAAA;AAYhB,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAwB7E,KAAK,UAAU,GAAG;IAChB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,eAAe,CAAA;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,WAAW,CAAA;IAC1B,qBAAqB,EAAE,iBAAiB,CAAA;IACxC,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAID,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE,GAAG,UAAU,KAAK,gBAAgB,CAAA;IACrE,MAAM,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,WAAW,CAAA;KAAE,GAAG,UAAU,KAAK,gBAAgB,CAAA;IACvE,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,aAAa,CAAA;KAAE,GAAG,UAAU,KAAK,gBAAgB,CAAA;IAC3E,IAAI,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,SAAS,CAAA;KAAE,GAAG,UAAU,KAAK,gBAAgB,CAAA;IACnE,WAAW,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,gBAAgB,CAAA;KAAE,GAAG,UAAU,KAAK,gBAAgB,CAAA;IACjF,IAAI,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,SAAS,CAAA;KAAE,GAAG,UAAU,KAAK,gBAAgB,CAAA;IACnE,KAAK,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE,GAAG,UAAU,KAAK,gBAAgB,CAAA;IACrE,KAAK,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE,GAAG,UAAU,KAAK,gBAAgB,CAAA;IACrE,IAAI,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,SAAS,CAAA;KAAE,GAAG,UAAU,KAAK,gBAAgB,CAAA;IACnE,IAAI,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,SAAS,CAAA;KAAE,GAAG,UAAU,KAAK,gBAAgB,CAAA;IACnE,MAAM,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,WAAW,CAAA;KAAE,GAAG,UAAU,KAAK,gBAAgB,CAAA;IACvE,KAAK,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE,GAAG,UAAU,KAAK,gBAAgB,CAAA;IACrE,KAAK,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE,GAAG,UAAU,KAAK,gBAAgB,CAAA;IACrE,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,iBAAiB,CAAA;KAAE,GAAG,UAAU,KAAK,gBAAgB,CAAA;IACnF,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,aAAa,CAAA;KAAE,GAAG,UAAU,KAAK,gBAAgB,CAAA;IAC3E,GAAG,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,QAAQ,CAAA;KAAE,GAAG,UAAU,KAAK,gBAAgB,CAAA;IACjE,MAAM,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,WAAW,CAAA;KAAE,GAAG,UAAU,KAAK,gBAAgB,CAAA;IACvE,IAAI,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,SAAS,CAAA;KAAE,GAAG,UAAU,KAAK,gBAAgB,CAAA;IACnE,IAAI,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,SAAS,CAAA;KAAE,GAAG,UAAU,KAAK,gBAAgB,CAAA;IACnE,IAAI,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,SAAS,CAAA;KAAE,GAAG,UAAU,KAAK,gBAAgB,CAAA;IACnE,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,aAAa,CAAA;KAAE,GAAG,UAAU,KAAK,gBAAgB,CAAA;IAC3E,MAAM,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,WAAW,CAAA;KAAE,GAAG,UAAU,KAAK,gBAAgB,CAAA;CACxE,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,gBA2kC9B,CAAA"}
@@ -26,6 +26,18 @@ function formattedNameResolver({ field, ...rest }) {
26
26
  return rest;
27
27
  }
28
28
  export const fieldToSchemaMap = {
29
+ slug: ({ field, forceNullable, objectTypeConfig, parentIsLocalized })=>({
30
+ ...objectTypeConfig,
31
+ [formatName(field.name)]: formattedNameResolver({
32
+ type: withNullableType({
33
+ type: GraphQLString,
34
+ field,
35
+ forceNullable,
36
+ parentIsLocalized
37
+ }),
38
+ field
39
+ })
40
+ }),
29
41
  array: ({ config, field, forceNullable, graphqlResult, objectTypeConfig, parentIsLocalized, parentName })=>{
30
42
  const interfaceName = field?.interfaceName || combineParentName(parentName, toWords(field.name, true));
31
43
  if (!graphqlResult.types.arrayTypes[interfaceName]) {
@@ -63,7 +75,7 @@ export const fieldToSchemaMap = {
63
75
  };
64
76
  },
65
77
  blocks: ({ config, field, forceNullable, graphqlResult, objectTypeConfig, parentIsLocalized, parentName })=>{
66
- const blockTypes = (field.blockReferences ?? field.blocks).reduce((acc, _block)=>{
78
+ const blockTypes = field.blocks.reduce((acc, _block)=>{
67
79
  const blockSlug = typeof _block === 'string' ? _block : _block.slug;
68
80
  if (!graphqlResult.types.blockTypes[blockSlug]) {
69
81
  // TODO: iterate over blocks mapped to block slug in v4, or pass through payload.blocks
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/fieldToSchemaMap.ts"],"sourcesContent":["import type { GraphQLArgumentConfig, GraphQLFieldConfig, GraphQLOutputType } from 'graphql'\nimport type {\n ArrayField,\n BlocksField,\n CheckboxField,\n CodeField,\n CollapsibleField,\n DateField,\n EmailField,\n Field,\n FlattenedJoinField,\n GraphQLInfo,\n GroupField,\n JoinField,\n JSONField,\n NumberField,\n PointField,\n RadioField,\n RelationshipField,\n RichTextAdapter,\n RichTextField,\n RowField,\n SanitizedConfig,\n SelectField,\n TabsField,\n TextareaField,\n TextField,\n UploadField,\n} from 'payload'\n\nimport {\n GraphQLBoolean,\n GraphQLEnumType,\n GraphQLFloat,\n GraphQLInt,\n GraphQLList,\n GraphQLNonNull,\n GraphQLObjectType,\n GraphQLString,\n GraphQLUnionType,\n} from 'graphql'\nimport { DateTimeResolver, EmailAddressResolver } from 'graphql-scalars'\nimport { combineQueries, createDataloaderCacheKey, MissingEditorProp, toWords } from 'payload'\nimport { fieldAffectsData, tabHasName } from 'payload/shared'\n\nimport type { Context } from '../resolvers/types.js'\n\nimport { GraphQLJSON } from '../packages/graphql-type-json/index.js'\nimport { combineParentName } from '../utilities/combineParentName.js'\nimport { formatName } from '../utilities/formatName.js'\nimport { formatOptions } from '../utilities/formatOptions.js'\nimport { resolveSelect } from '../utilities/select.js'\nimport { buildObjectType, type ObjectTypeConfig } from './buildObjectType.js'\nimport { isFieldNullable } from './isFieldNullable.js'\nimport { withNullableType } from './withNullableType.js'\n\nfunction formattedNameResolver({\n field,\n ...rest\n}: { field: Field } & GraphQLFieldConfig<any, Context, any>): GraphQLFieldConfig<\n any,\n Context,\n any\n> {\n if ('name' in field) {\n if (formatName(field.name) !== field.name) {\n return {\n ...rest,\n extensions: { ...rest.extensions, field },\n resolve: (parent) => parent[field.name],\n }\n }\n }\n return rest\n}\n\ntype SharedArgs = {\n collectionSlug?: string\n config: SanitizedConfig\n forceNullable?: boolean\n graphqlResult: GraphQLInfo\n newlyCreatedBlockType: GraphQLObjectType\n objectTypeConfig: ObjectTypeConfig\n parentIsLocalized?: boolean\n parentName: string\n}\n\ntype GenericFieldToSchemaMap = (args: { field: Field } & SharedArgs) => ObjectTypeConfig\n\ntype FieldToSchemaMap = {\n array: (args: { field: ArrayField } & SharedArgs) => ObjectTypeConfig\n blocks: (args: { field: BlocksField } & SharedArgs) => ObjectTypeConfig\n checkbox: (args: { field: CheckboxField } & SharedArgs) => ObjectTypeConfig\n code: (args: { field: CodeField } & SharedArgs) => ObjectTypeConfig\n collapsible: (args: { field: CollapsibleField } & SharedArgs) => ObjectTypeConfig\n date: (args: { field: DateField } & SharedArgs) => ObjectTypeConfig\n email: (args: { field: EmailField } & SharedArgs) => ObjectTypeConfig\n group: (args: { field: GroupField } & SharedArgs) => ObjectTypeConfig\n join: (args: { field: JoinField } & SharedArgs) => ObjectTypeConfig\n json: (args: { field: JSONField } & SharedArgs) => ObjectTypeConfig\n number: (args: { field: NumberField } & SharedArgs) => ObjectTypeConfig\n point: (args: { field: PointField } & SharedArgs) => ObjectTypeConfig\n radio: (args: { field: RadioField } & SharedArgs) => ObjectTypeConfig\n relationship: (args: { field: RelationshipField } & SharedArgs) => ObjectTypeConfig\n richText: (args: { field: RichTextField } & SharedArgs) => ObjectTypeConfig\n row: (args: { field: RowField } & SharedArgs) => ObjectTypeConfig\n select: (args: { field: SelectField } & SharedArgs) => ObjectTypeConfig\n tabs: (args: { field: TabsField } & SharedArgs) => ObjectTypeConfig\n text: (args: { field: TextField } & SharedArgs) => ObjectTypeConfig\n textarea: (args: { field: TextareaField } & SharedArgs) => ObjectTypeConfig\n upload: (args: { field: UploadField } & SharedArgs) => ObjectTypeConfig\n}\n\nexport const fieldToSchemaMap: FieldToSchemaMap = {\n array: ({\n config,\n field,\n forceNullable,\n graphqlResult,\n objectTypeConfig,\n parentIsLocalized,\n parentName,\n }) => {\n const interfaceName =\n field?.interfaceName || combineParentName(parentName, toWords(field.name, true))\n\n if (!graphqlResult.types.arrayTypes[interfaceName]) {\n const objectType = buildObjectType({\n name: interfaceName,\n config,\n fields: field.fields,\n forceNullable: isFieldNullable({ field, forceNullable, parentIsLocalized }),\n graphqlResult,\n parentIsLocalized: field.localized || parentIsLocalized,\n parentName: interfaceName,\n })\n\n if (Object.keys(objectType.getFields()).length) {\n graphqlResult.types.arrayTypes[interfaceName] = objectType\n }\n }\n\n if (!graphqlResult.types.arrayTypes[interfaceName]) {\n return objectTypeConfig\n }\n\n const arrayType = new GraphQLList(\n new GraphQLNonNull(graphqlResult.types.arrayTypes[interfaceName]),\n )\n\n return {\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({\n type: withNullableType({ type: arrayType, field, parentIsLocalized }) as GraphQLOutputType,\n field,\n }),\n }\n },\n blocks: ({\n config,\n field,\n forceNullable,\n graphqlResult,\n objectTypeConfig,\n parentIsLocalized,\n parentName,\n }) => {\n const blockTypes: GraphQLObjectType<any, any>[] = (\n field.blockReferences ?? field.blocks\n ).reduce((acc, _block) => {\n const blockSlug = typeof _block === 'string' ? _block : _block.slug\n if (!graphqlResult.types.blockTypes[blockSlug]) {\n // TODO: iterate over blocks mapped to block slug in v4, or pass through payload.blocks\n const block =\n typeof _block === 'string' ? config.blocks.find((b) => b.slug === _block) : _block\n\n const interfaceName =\n block?.interfaceName || block?.graphQL?.singularName || toWords(block.slug, true)\n\n const objectType = buildObjectType({\n name: interfaceName,\n config,\n fields: [\n ...block.fields,\n {\n name: 'blockType',\n type: 'text',\n },\n ],\n forceNullable,\n graphqlResult,\n parentIsLocalized,\n parentName: interfaceName,\n })\n\n if (Object.keys(objectType.getFields()).length) {\n // Store block slug in extensions for use in select building\n objectType.extensions = {\n ...objectType.extensions,\n blockSlug: block.slug,\n }\n graphqlResult.types.blockTypes[block.slug] = objectType\n }\n }\n\n if (graphqlResult.types.blockTypes[blockSlug]) {\n acc.push(graphqlResult.types.blockTypes[blockSlug])\n }\n\n return acc\n }, [])\n\n if (blockTypes.length === 0) {\n return objectTypeConfig\n }\n\n const fullName = combineParentName(parentName, toWords(field.name, true))\n\n const type = new GraphQLList(\n new GraphQLNonNull(\n new GraphQLUnionType({\n name: fullName,\n resolveType: (data) => graphqlResult.types.blockTypes[data.blockType].name,\n types: blockTypes,\n }),\n ),\n ) as GraphQLOutputType\n\n return {\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({\n type: withNullableType({ type, field, parentIsLocalized }) as GraphQLOutputType,\n field,\n }),\n }\n },\n checkbox: ({ field, forceNullable, objectTypeConfig, parentIsLocalized }) => ({\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({\n type: withNullableType({\n type: GraphQLBoolean,\n field,\n forceNullable,\n parentIsLocalized,\n }) as GraphQLOutputType,\n field,\n }),\n }),\n code: ({ field, forceNullable, objectTypeConfig, parentIsLocalized }) => ({\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({\n type: withNullableType({\n type: GraphQLString,\n field,\n forceNullable,\n parentIsLocalized,\n }) as GraphQLOutputType,\n field,\n }),\n }),\n collapsible: ({\n collectionSlug,\n config,\n field,\n forceNullable,\n graphqlResult,\n newlyCreatedBlockType,\n objectTypeConfig,\n parentIsLocalized,\n parentName,\n }) =>\n field.fields.reduce((objectTypeConfigWithCollapsibleFields, subField) => {\n const addSubField: GenericFieldToSchemaMap = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField({\n collectionSlug,\n config,\n field: subField,\n forceNullable,\n graphqlResult,\n newlyCreatedBlockType,\n objectTypeConfig: objectTypeConfigWithCollapsibleFields,\n parentIsLocalized,\n parentName,\n })\n }\n return objectTypeConfigWithCollapsibleFields\n }, objectTypeConfig),\n date: ({ field, forceNullable, objectTypeConfig, parentIsLocalized }) => ({\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({\n type: withNullableType({\n type: DateTimeResolver,\n field,\n forceNullable,\n parentIsLocalized,\n }) as GraphQLOutputType,\n field,\n }),\n }),\n email: ({ field, forceNullable, objectTypeConfig, parentIsLocalized }) => ({\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({\n type: withNullableType({\n type: EmailAddressResolver,\n field,\n forceNullable,\n parentIsLocalized,\n }) as GraphQLOutputType,\n field,\n }),\n }),\n group: ({\n collectionSlug,\n config,\n field,\n forceNullable,\n graphqlResult,\n newlyCreatedBlockType,\n objectTypeConfig,\n parentIsLocalized,\n parentName,\n }) => {\n if (fieldAffectsData(field)) {\n const interfaceName =\n field?.interfaceName || combineParentName(parentName, toWords(field.name, true))\n\n if (!graphqlResult.types.groupTypes[interfaceName]) {\n const objectType = buildObjectType({\n name: interfaceName,\n config,\n fields: field.fields,\n forceNullable: isFieldNullable({ field, forceNullable, parentIsLocalized }),\n graphqlResult,\n parentIsLocalized: field.localized || parentIsLocalized,\n parentName: interfaceName,\n })\n\n if (Object.keys(objectType.getFields()).length) {\n graphqlResult.types.groupTypes[interfaceName] = objectType\n }\n }\n\n if (!graphqlResult.types.groupTypes[interfaceName]) {\n return objectTypeConfig\n }\n\n return {\n ...objectTypeConfig,\n [formatName(field.name)]: {\n type: graphqlResult.types.groupTypes[interfaceName],\n extensions: { field },\n resolve: (parent, args, context) => {\n return {\n ...parent[field.name],\n _id: parent._id ?? parent.id,\n }\n },\n } satisfies GraphQLFieldConfig<any, Context, any>,\n }\n } else {\n return field.fields.reduce((objectTypeConfigWithCollapsibleFields, subField) => {\n const addSubField: GenericFieldToSchemaMap = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField({\n collectionSlug,\n config,\n field: subField,\n forceNullable,\n graphqlResult,\n newlyCreatedBlockType,\n objectTypeConfig: objectTypeConfigWithCollapsibleFields,\n parentIsLocalized,\n parentName,\n })\n }\n return objectTypeConfigWithCollapsibleFields\n }, objectTypeConfig)\n }\n },\n join: ({ collectionSlug, field, graphqlResult, objectTypeConfig, parentName }) => {\n const joinName = combineParentName(parentName, toWords(field.name, true))\n\n const joinType: GraphQLFieldConfig<any, Context, any> = {\n type: new GraphQLObjectType({\n name: joinName,\n fields: {\n docs: {\n type: new GraphQLNonNull(\n Array.isArray(field.collection)\n ? GraphQLJSON\n : new GraphQLList(\n new GraphQLNonNull(graphqlResult.collections[field.collection].graphQL.type),\n ),\n ),\n },\n hasNextPage: { type: new GraphQLNonNull(GraphQLBoolean) },\n totalDocs: { type: GraphQLInt },\n },\n }),\n args: {\n count: { type: GraphQLBoolean },\n limit: {\n type: GraphQLInt,\n },\n page: {\n type: GraphQLInt,\n },\n sort: {\n type: GraphQLString,\n },\n where: {\n type: Array.isArray(field.collection)\n ? GraphQLJSON\n : graphqlResult.collections[field.collection].graphQL.whereInputType,\n },\n },\n extensions: {\n complexity: typeof field?.graphQL?.complexity === 'number' ? field.graphQL.complexity : 10,\n field,\n },\n async resolve(parent, args, context, info) {\n const { collection } = field\n const { count = false, limit, page, sort, where } = args\n const { req } = context\n\n const draft = Boolean(args.draft ?? context.req.query?.draft)\n const select = resolveSelect(info, context.select)\n\n const targetField = (field as FlattenedJoinField).targetField\n\n const fullWhere = combineQueries(\n where,\n Array.isArray(targetField.relationTo)\n ? {\n [field.on]: {\n equals: {\n relationTo: collectionSlug,\n value: parent._id ?? parent.id,\n },\n },\n }\n : {\n [field.on]: { equals: parent._id ?? parent.id },\n },\n )\n\n if (Array.isArray(collection)) {\n throw new Error('GraphQL with array of join.field.collection is not implemented')\n }\n\n if (count && limit === 0) {\n return await req.payload.count({\n collection,\n overrideAccess: false,\n req,\n where: fullWhere,\n })\n }\n\n const { docs, totalDocs } = await req.payload.find({\n collection,\n depth: 0,\n draft,\n fallbackLocale: req.fallbackLocale,\n // Fetch one extra document to determine if there are more documents beyond the requested limit (used for hasNextPage calculation).\n limit: typeof limit === 'number' && limit > 0 ? limit + 1 : 0,\n locale: req.locale,\n overrideAccess: false,\n page,\n pagination: count ? true : false,\n req,\n select,\n sort,\n where: fullWhere,\n })\n\n let shouldSlice = false\n\n if (typeof limit === 'number' && limit !== 0 && limit < docs.length) {\n shouldSlice = true\n }\n\n return {\n docs: shouldSlice ? docs.slice(0, -1) : docs,\n hasNextPage: limit === 0 ? false : limit < docs.length,\n ...(count ? { totalDocs } : {}),\n }\n },\n }\n\n return {\n ...objectTypeConfig,\n [formatName(field.name)]: joinType,\n }\n },\n json: ({ field, forceNullable, objectTypeConfig, parentIsLocalized }) => ({\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({\n type: withNullableType({\n type: GraphQLJSON,\n field,\n forceNullable,\n parentIsLocalized,\n }) as GraphQLOutputType,\n field,\n }),\n }),\n number: ({ field, forceNullable, objectTypeConfig, parentIsLocalized }) => {\n const type = field?.name === 'id' ? GraphQLInt : GraphQLFloat\n return {\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({\n type: withNullableType({\n type: field?.hasMany === true ? new GraphQLList(new GraphQLNonNull(type)) : type,\n field,\n forceNullable,\n parentIsLocalized,\n }) as GraphQLOutputType,\n field,\n }),\n }\n },\n point: ({ field, forceNullable, objectTypeConfig, parentIsLocalized }) => ({\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({\n type: withNullableType({\n type: new GraphQLList(new GraphQLNonNull(GraphQLFloat)),\n field,\n forceNullable,\n parentIsLocalized,\n }) as GraphQLOutputType,\n field,\n }),\n }),\n radio: ({ field, forceNullable, objectTypeConfig, parentIsLocalized, parentName }) => ({\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({\n type: withNullableType({\n type: new GraphQLEnumType({\n name: combineParentName(parentName, field.name),\n values: formatOptions(field),\n }),\n field,\n forceNullable,\n parentIsLocalized,\n }) as GraphQLOutputType,\n field,\n }),\n }),\n relationship: ({\n config,\n field,\n forceNullable,\n graphqlResult,\n newlyCreatedBlockType,\n objectTypeConfig,\n parentIsLocalized,\n parentName,\n }) => {\n const { relationTo } = field\n const isRelatedToManyCollections = Array.isArray(relationTo)\n const hasManyValues = field.hasMany\n const relationshipName = combineParentName(parentName, toWords(field.name, true))\n\n let type: GraphQLOutputType\n let relationToType = null\n\n const graphQLCollections = config.collections.filter(\n (collectionConfig) => collectionConfig.graphQL !== false,\n )\n\n if (Array.isArray(relationTo)) {\n relationToType = new GraphQLEnumType({\n name: `${relationshipName}_RelationTo`,\n values: relationTo\n .filter((relation) =>\n graphQLCollections.some((collection) => collection.slug === relation),\n )\n .reduce(\n (relations, relation) => ({\n ...relations,\n [formatName(relation)]: {\n value: relation,\n },\n }),\n {},\n ),\n })\n\n // Only pass collections that are GraphQL enabled\n const types = relationTo\n .filter((relation) => graphQLCollections.some((collection) => collection.slug === relation))\n .map((relation) => graphqlResult.collections[relation]?.graphQL.type)\n\n type = new GraphQLObjectType({\n name: `${relationshipName}_Relationship`,\n fields: {\n relationTo: {\n type: relationToType,\n },\n value: {\n type: new GraphQLUnionType({\n name: relationshipName,\n resolveType(data) {\n return graphqlResult.collections[data.collection].graphQL.type.name\n },\n types,\n }) as GraphQLOutputType,\n },\n },\n }) as GraphQLOutputType\n } else {\n ;({ type } = graphqlResult.collections[relationTo].graphQL)\n }\n\n // If the relationshipType is undefined at this point,\n // it can be assumed that this blockType can have a relationship\n // to itself. Therefore, we set the relationshipType equal to the blockType\n // that is currently being created.\n\n type = type || newlyCreatedBlockType\n\n const relationshipArgs: {\n draft: GraphQLArgumentConfig\n fallbackLocale: GraphQLArgumentConfig\n limit: GraphQLArgumentConfig\n locale: GraphQLArgumentConfig\n page: GraphQLArgumentConfig\n where: GraphQLArgumentConfig\n } = {} as any\n\n const relationsUseDrafts = (Array.isArray(relationTo) ? relationTo : [relationTo])\n .filter((relation) => graphQLCollections.some((collection) => collection.slug === relation))\n .some((relation) => graphqlResult.collections[relation].config.versions?.drafts)\n\n if (relationsUseDrafts) {\n relationshipArgs.draft = {\n type: GraphQLBoolean,\n }\n }\n\n if (config.localization) {\n relationshipArgs.locale = {\n type: graphqlResult.types.localeInputType,\n }\n\n relationshipArgs.fallbackLocale = {\n type: graphqlResult.types.fallbackLocaleInputType,\n }\n }\n\n const relationship: GraphQLFieldConfig<any, Context, any> = {\n type: withNullableType({\n type: hasManyValues ? new GraphQLList(new GraphQLNonNull(type)) : type,\n field,\n // can be null if the related doc is deleted even if the field is required, unless hasMany\n forceNullable: !field.hasMany,\n parentIsLocalized,\n }) as GraphQLOutputType,\n args: relationshipArgs,\n extensions: {\n complexity: typeof field?.graphQL?.complexity === 'number' ? field.graphQL.complexity : 10,\n field,\n },\n async resolve(parent, args, context, info) {\n const value = parent[field.name]\n const locale = args.locale || context.req.locale\n const fallbackLocale = args.fallbackLocale || context.req.fallbackLocale\n let relatedCollectionSlug = field.relationTo\n const draft = Boolean(args.draft ?? context.req.query?.draft)\n const select = resolveSelect(info, context.select)\n\n if (hasManyValues) {\n const results = []\n const resultPromises = []\n\n const createPopulationPromise = async (relatedDoc, i) => {\n let id = relatedDoc\n let collectionSlug = field.relationTo\n const isValidGraphQLCollection = isRelatedToManyCollections\n ? graphQLCollections.some((collection) => collectionSlug.includes(collection.slug))\n : graphQLCollections.some((collection) => collectionSlug === collection.slug)\n\n if (isValidGraphQLCollection) {\n if (isRelatedToManyCollections) {\n collectionSlug = relatedDoc.relationTo\n id = relatedDoc.value\n }\n\n const result = await context.req.payloadDataLoader.load(\n createDataloaderCacheKey({\n collectionSlug: collectionSlug as string,\n currentDepth: 0,\n depth: 0,\n docID: id,\n draft,\n fallbackLocale,\n locale,\n overrideAccess: false,\n select,\n showHiddenFields: false,\n transactionID: context.req.transactionID,\n }),\n )\n\n if (result) {\n if (isRelatedToManyCollections) {\n results.push({\n relationTo: collectionSlug,\n value: {\n ...result,\n collection: collectionSlug,\n },\n })\n } else {\n results.push(result)\n }\n }\n }\n }\n\n if (value) {\n value.forEach((relatedDoc, i) => {\n resultPromises.push(createPopulationPromise(relatedDoc, i))\n })\n }\n\n await Promise.all(resultPromises)\n return results\n }\n\n let id = value\n if (isRelatedToManyCollections && value) {\n id = value.value\n relatedCollectionSlug = value.relationTo\n }\n\n if (id) {\n if (graphQLCollections.some((collection) => collection.slug === relatedCollectionSlug)) {\n const relatedDocument = await context.req.payloadDataLoader.load(\n createDataloaderCacheKey({\n collectionSlug: relatedCollectionSlug as string,\n currentDepth: 0,\n depth: 0,\n docID: id,\n draft,\n fallbackLocale,\n locale,\n overrideAccess: false,\n select,\n showHiddenFields: false,\n transactionID: context.req.transactionID,\n }),\n )\n\n if (relatedDocument) {\n if (isRelatedToManyCollections) {\n return {\n relationTo: relatedCollectionSlug,\n value: {\n ...relatedDocument,\n collection: relatedCollectionSlug,\n },\n }\n }\n\n return relatedDocument\n }\n }\n\n return null\n }\n\n return null\n },\n }\n\n return {\n ...objectTypeConfig,\n [formatName(field.name)]: relationship,\n }\n },\n richText: ({ config, field, forceNullable, objectTypeConfig, parentIsLocalized }) => ({\n ...objectTypeConfig,\n [formatName(field.name)]: {\n type: withNullableType({\n type: GraphQLJSON,\n field,\n forceNullable,\n parentIsLocalized,\n }) as GraphQLOutputType,\n args: {\n depth: {\n type: GraphQLInt,\n },\n },\n extensions: {\n field,\n },\n async resolve(parent, args, context: Context) {\n let depth = config.defaultDepth\n if (typeof args.depth !== 'undefined') {\n depth = args.depth\n }\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\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 // RichText fields have their own depth argument in GraphQL.\n // This is why the populationPromise (which populates richtext fields like uploads and relationships)\n // is run here again, with the provided depth.\n // In the graphql find.ts resolver, the depth is then hard-coded to 0.\n // Effectively, this means that the populationPromise for GraphQL is only run here, and not in the find.ts resolver / normal population promise.\n if (editor?.graphQLPopulationPromises) {\n const fieldPromises = []\n const populationPromises = []\n const populateDepth =\n field?.maxDepth !== undefined && field?.maxDepth < depth ? field?.maxDepth : depth\n\n editor?.graphQLPopulationPromises({\n context,\n depth: populateDepth,\n draft: args.draft,\n field,\n fieldPromises,\n findMany: false,\n flattenLocales: false,\n overrideAccess: false,\n parentIsLocalized,\n populationPromises,\n req: context.req,\n showHiddenFields: false,\n siblingDoc: parent,\n })\n await Promise.all(fieldPromises)\n await Promise.all(populationPromises)\n }\n\n return parent[field.name]\n },\n },\n }),\n row: ({ field, objectTypeConfig, ...rest }) =>\n field.fields.reduce((objectTypeConfigWithRowFields, subField) => {\n const addSubField: GenericFieldToSchemaMap = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField({\n field: subField,\n objectTypeConfig: objectTypeConfigWithRowFields,\n ...rest,\n })\n }\n return objectTypeConfigWithRowFields\n }, objectTypeConfig),\n select: ({ field, forceNullable, objectTypeConfig, parentIsLocalized, parentName }) => {\n const fullName = combineParentName(parentName, field.name)\n\n let type: GraphQLOutputType = new GraphQLEnumType({\n name: fullName,\n values: formatOptions(field),\n })\n\n type = field.hasMany ? new GraphQLList(new GraphQLNonNull(type)) : type\n type = withNullableType({ type, field, forceNullable, parentIsLocalized }) as GraphQLOutputType\n\n return {\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({ type, field }),\n }\n },\n tabs: ({\n collectionSlug,\n config,\n field,\n forceNullable,\n graphqlResult,\n newlyCreatedBlockType,\n objectTypeConfig,\n parentIsLocalized,\n parentName,\n }) =>\n field.tabs.reduce((tabSchema, tab) => {\n if (tabHasName(tab)) {\n const interfaceName =\n tab?.interfaceName || combineParentName(parentName, toWords(tab.name, true))\n\n if (!graphqlResult.types.groupTypes[interfaceName]) {\n const objectType = buildObjectType({\n name: interfaceName,\n collectionSlug,\n config,\n fields: tab.fields,\n forceNullable,\n graphqlResult,\n parentIsLocalized: tab.localized || parentIsLocalized,\n parentName: interfaceName,\n })\n\n if (Object.keys(objectType.getFields()).length) {\n graphqlResult.types.groupTypes[interfaceName] = objectType\n }\n }\n\n if (!graphqlResult.types.groupTypes[interfaceName]) {\n return tabSchema\n }\n\n return {\n ...tabSchema,\n [tab.name]: {\n type: graphqlResult.types.groupTypes[interfaceName],\n resolve(parent, args, context: Context) {\n return {\n ...parent[tab.name],\n _id: parent._id ?? parent.id,\n }\n },\n },\n }\n }\n\n return {\n ...tabSchema,\n ...tab.fields.reduce((subFieldSchema, subField) => {\n const addSubField: GenericFieldToSchemaMap = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField({\n collectionSlug,\n config,\n field: subField,\n forceNullable,\n graphqlResult,\n newlyCreatedBlockType,\n objectTypeConfig: subFieldSchema,\n parentIsLocalized,\n parentName,\n })\n }\n return subFieldSchema\n }, tabSchema),\n }\n }, objectTypeConfig),\n text: ({ field, forceNullable, objectTypeConfig, parentIsLocalized }) => ({\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({\n type: withNullableType({\n type:\n field.hasMany === true\n ? new GraphQLList(new GraphQLNonNull(GraphQLString))\n : GraphQLString,\n field,\n forceNullable,\n parentIsLocalized,\n }) as GraphQLOutputType,\n field,\n }),\n }),\n textarea: ({ field, forceNullable, objectTypeConfig, parentIsLocalized }) => ({\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({\n type: withNullableType({\n type: GraphQLString,\n field,\n forceNullable,\n parentIsLocalized,\n }) as GraphQLOutputType,\n field,\n }),\n }),\n upload: ({\n config,\n field,\n forceNullable,\n graphqlResult,\n newlyCreatedBlockType,\n objectTypeConfig,\n parentIsLocalized,\n parentName,\n }) => {\n const { relationTo } = field\n const isRelatedToManyCollections = Array.isArray(relationTo)\n const hasManyValues = field.hasMany\n const relationshipName = combineParentName(parentName, toWords(field.name, true))\n\n let type\n let relationToType = null\n\n const graphQLCollections = config.collections.filter(\n (collectionConfig) => collectionConfig.graphQL !== false,\n )\n\n if (Array.isArray(relationTo)) {\n relationToType = new GraphQLEnumType({\n name: `${relationshipName}_RelationTo`,\n values: relationTo.reduce(\n (relations, relation) => ({\n ...relations,\n [formatName(relation)]: {\n value: relation,\n },\n }),\n {},\n ),\n })\n\n const types = relationTo.map((relation) => graphqlResult.collections[relation].graphQL.type)\n\n type = new GraphQLObjectType({\n name: `${relationshipName}_Relationship`,\n fields: {\n relationTo: {\n type: relationToType,\n },\n value: {\n type: new GraphQLUnionType({\n name: relationshipName,\n resolveType(data) {\n return graphqlResult.collections[data.collection].graphQL.type.name\n },\n types,\n }),\n },\n },\n })\n } else {\n ;({ type } = graphqlResult.collections[relationTo].graphQL)\n }\n\n // If the relationshipType is undefined at this point,\n // it can be assumed that this blockType can have a relationship\n // to itself. Therefore, we set the relationshipType equal to the blockType\n // that is currently being created.\n\n type = type || newlyCreatedBlockType\n\n const relationshipArgs: {\n draft?: GraphQLArgumentConfig\n fallbackLocale?: GraphQLArgumentConfig\n limit?: GraphQLArgumentConfig\n locale?: GraphQLArgumentConfig\n page?: GraphQLArgumentConfig\n where?: GraphQLArgumentConfig\n } = {} as any\n\n const relationsUseDrafts = (Array.isArray(relationTo) ? relationTo : [relationTo]).some(\n (relation) => graphqlResult.collections[relation].config.versions?.drafts,\n )\n\n if (relationsUseDrafts) {\n relationshipArgs.draft = {\n type: GraphQLBoolean,\n }\n }\n\n if (config.localization) {\n relationshipArgs.locale = {\n type: graphqlResult.types.localeInputType,\n }\n\n relationshipArgs.fallbackLocale = {\n type: graphqlResult.types.fallbackLocaleInputType,\n }\n }\n\n const relationship: GraphQLFieldConfig<any, Context, any> = {\n type: withNullableType({\n type: hasManyValues ? new GraphQLList(new GraphQLNonNull(type)) : type,\n field,\n // can be null if the related doc is deleted even if the field is required, unless hasMany\n forceNullable: !field.hasMany,\n parentIsLocalized,\n }) as GraphQLOutputType,\n args: relationshipArgs,\n extensions: {\n complexity: typeof field?.graphQL?.complexity === 'number' ? field.graphQL.complexity : 10,\n field,\n },\n async resolve(parent, args, context, info) {\n const value = parent[field.name]\n const locale = args.locale || context.req.locale\n const fallbackLocale = args.fallbackLocale || context.req.fallbackLocale\n let relatedCollectionSlug = field.relationTo\n const draft = Boolean(args.draft ?? context.req.query?.draft)\n const select = resolveSelect(info, context.select)\n\n if (hasManyValues) {\n const results = []\n const resultPromises = []\n\n const createPopulationPromise = async (relatedDoc, i) => {\n let id = relatedDoc\n let collectionSlug = field.relationTo\n const isValidGraphQLCollection = isRelatedToManyCollections\n ? graphQLCollections.some((collection) => collectionSlug.includes(collection.slug))\n : graphQLCollections.some((collection) => collectionSlug === collection.slug)\n\n if (isValidGraphQLCollection) {\n if (isRelatedToManyCollections) {\n collectionSlug = relatedDoc.relationTo\n id = relatedDoc.value\n }\n\n const result = await context.req.payloadDataLoader.load(\n createDataloaderCacheKey({\n collectionSlug: collectionSlug as string,\n currentDepth: 0,\n depth: 0,\n docID: id,\n draft,\n fallbackLocale,\n locale,\n overrideAccess: false,\n select,\n showHiddenFields: false,\n transactionID: context.req.transactionID,\n }),\n )\n\n if (result) {\n if (isRelatedToManyCollections) {\n results.push({\n relationTo: collectionSlug,\n value: {\n ...result,\n collection: collectionSlug,\n },\n })\n } else {\n results.push(result)\n }\n }\n }\n }\n\n if (value) {\n value.forEach((relatedDoc, i) => {\n resultPromises.push(createPopulationPromise(relatedDoc, i))\n })\n }\n\n await Promise.all(resultPromises)\n return results\n }\n\n let id = value\n if (isRelatedToManyCollections && value) {\n id = value.value\n relatedCollectionSlug = value.relationTo\n }\n\n if (id) {\n if (graphQLCollections.some((collection) => collection.slug === relatedCollectionSlug)) {\n const relatedDocument = await context.req.payloadDataLoader.load(\n createDataloaderCacheKey({\n collectionSlug: relatedCollectionSlug as string,\n currentDepth: 0,\n depth: 0,\n docID: id,\n draft,\n fallbackLocale,\n locale,\n overrideAccess: false,\n select,\n showHiddenFields: false,\n transactionID: context.req.transactionID,\n }),\n )\n\n if (relatedDocument) {\n if (isRelatedToManyCollections) {\n return {\n relationTo: relatedCollectionSlug,\n value: {\n ...relatedDocument,\n collection: relatedCollectionSlug,\n },\n }\n }\n\n return relatedDocument\n }\n }\n\n return null\n }\n\n return null\n },\n }\n\n return {\n ...objectTypeConfig,\n [formatName(field.name)]: relationship,\n }\n },\n}\n"],"names":["GraphQLBoolean","GraphQLEnumType","GraphQLFloat","GraphQLInt","GraphQLList","GraphQLNonNull","GraphQLObjectType","GraphQLString","GraphQLUnionType","DateTimeResolver","EmailAddressResolver","combineQueries","createDataloaderCacheKey","MissingEditorProp","toWords","fieldAffectsData","tabHasName","GraphQLJSON","combineParentName","formatName","formatOptions","resolveSelect","buildObjectType","isFieldNullable","withNullableType","formattedNameResolver","field","rest","name","extensions","resolve","parent","fieldToSchemaMap","array","config","forceNullable","graphqlResult","objectTypeConfig","parentIsLocalized","parentName","interfaceName","types","arrayTypes","objectType","fields","localized","Object","keys","getFields","length","arrayType","type","blocks","blockTypes","blockReferences","reduce","acc","_block","blockSlug","slug","block","find","b","graphQL","singularName","push","fullName","resolveType","data","blockType","checkbox","code","collapsible","collectionSlug","newlyCreatedBlockType","objectTypeConfigWithCollapsibleFields","subField","addSubField","date","email","group","groupTypes","args","context","_id","id","join","joinName","joinType","docs","Array","isArray","collection","collections","hasNextPage","totalDocs","count","limit","page","sort","where","whereInputType","complexity","info","req","draft","Boolean","query","select","targetField","fullWhere","relationTo","on","equals","value","Error","payload","overrideAccess","depth","fallbackLocale","locale","pagination","shouldSlice","slice","json","number","hasMany","point","radio","values","relationship","isRelatedToManyCollections","hasManyValues","relationshipName","relationToType","graphQLCollections","filter","collectionConfig","relation","some","relations","map","relationshipArgs","relationsUseDrafts","versions","drafts","localization","localeInputType","fallbackLocaleInputType","relatedCollectionSlug","results","resultPromises","createPopulationPromise","relatedDoc","i","isValidGraphQLCollection","includes","result","payloadDataLoader","load","currentDepth","docID","showHiddenFields","transactionID","forEach","Promise","all","relatedDocument","richText","defaultDepth","editor","graphQLPopulationPromises","fieldPromises","populationPromises","populateDepth","maxDepth","undefined","findMany","flattenLocales","siblingDoc","row","objectTypeConfigWithRowFields","tabs","tabSchema","tab","subFieldSchema","text","textarea","upload"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/schema/fieldToSchemaMap.ts"],"sourcesContent":["import type { GraphQLArgumentConfig, GraphQLFieldConfig, GraphQLOutputType } from 'graphql'\nimport type {\n ArrayField,\n BlocksField,\n CheckboxField,\n CodeField,\n CollapsibleField,\n DateField,\n EmailField,\n Field,\n FlattenedJoinField,\n GraphQLInfo,\n GroupField,\n JoinField,\n JSONField,\n NumberField,\n PointField,\n RadioField,\n RelationshipField,\n RichTextAdapter,\n RichTextField,\n RowField,\n SanitizedConfig,\n SelectField,\n SlugField,\n TabsField,\n TextareaField,\n TextField,\n UploadField,\n} from 'payload'\n\nimport {\n GraphQLBoolean,\n GraphQLEnumType,\n GraphQLFloat,\n GraphQLInt,\n GraphQLList,\n GraphQLNonNull,\n GraphQLObjectType,\n GraphQLString,\n GraphQLUnionType,\n} from 'graphql'\nimport { DateTimeResolver, EmailAddressResolver } from 'graphql-scalars'\nimport { combineQueries, createDataloaderCacheKey, MissingEditorProp, toWords } from 'payload'\nimport { fieldAffectsData, tabHasName } from 'payload/shared'\n\nimport type { Context } from '../resolvers/types.js'\n\nimport { GraphQLJSON } from '../packages/graphql-type-json/index.js'\nimport { combineParentName } from '../utilities/combineParentName.js'\nimport { formatName } from '../utilities/formatName.js'\nimport { formatOptions } from '../utilities/formatOptions.js'\nimport { resolveSelect } from '../utilities/select.js'\nimport { buildObjectType, type ObjectTypeConfig } from './buildObjectType.js'\nimport { isFieldNullable } from './isFieldNullable.js'\nimport { withNullableType } from './withNullableType.js'\n\nfunction formattedNameResolver({\n field,\n ...rest\n}: { field: Field } & GraphQLFieldConfig<any, Context, any>): GraphQLFieldConfig<\n any,\n Context,\n any\n> {\n if ('name' in field) {\n if (formatName(field.name) !== field.name) {\n return {\n ...rest,\n extensions: { ...rest.extensions, field },\n resolve: (parent) => parent[field.name],\n }\n }\n }\n return rest\n}\n\ntype SharedArgs = {\n collectionSlug?: string\n config: SanitizedConfig\n forceNullable?: boolean\n graphqlResult: GraphQLInfo\n newlyCreatedBlockType: GraphQLObjectType\n objectTypeConfig: ObjectTypeConfig\n parentIsLocalized?: boolean\n parentName: string\n}\n\ntype GenericFieldToSchemaMap = (args: { field: Field } & SharedArgs) => ObjectTypeConfig\n\ntype FieldToSchemaMap = {\n array: (args: { field: ArrayField } & SharedArgs) => ObjectTypeConfig\n blocks: (args: { field: BlocksField } & SharedArgs) => ObjectTypeConfig\n checkbox: (args: { field: CheckboxField } & SharedArgs) => ObjectTypeConfig\n code: (args: { field: CodeField } & SharedArgs) => ObjectTypeConfig\n collapsible: (args: { field: CollapsibleField } & SharedArgs) => ObjectTypeConfig\n date: (args: { field: DateField } & SharedArgs) => ObjectTypeConfig\n email: (args: { field: EmailField } & SharedArgs) => ObjectTypeConfig\n group: (args: { field: GroupField } & SharedArgs) => ObjectTypeConfig\n join: (args: { field: JoinField } & SharedArgs) => ObjectTypeConfig\n json: (args: { field: JSONField } & SharedArgs) => ObjectTypeConfig\n number: (args: { field: NumberField } & SharedArgs) => ObjectTypeConfig\n point: (args: { field: PointField } & SharedArgs) => ObjectTypeConfig\n radio: (args: { field: RadioField } & SharedArgs) => ObjectTypeConfig\n relationship: (args: { field: RelationshipField } & SharedArgs) => ObjectTypeConfig\n richText: (args: { field: RichTextField } & SharedArgs) => ObjectTypeConfig\n row: (args: { field: RowField } & SharedArgs) => ObjectTypeConfig\n select: (args: { field: SelectField } & SharedArgs) => ObjectTypeConfig\n slug: (args: { field: SlugField } & SharedArgs) => ObjectTypeConfig\n tabs: (args: { field: TabsField } & SharedArgs) => ObjectTypeConfig\n text: (args: { field: TextField } & SharedArgs) => ObjectTypeConfig\n textarea: (args: { field: TextareaField } & SharedArgs) => ObjectTypeConfig\n upload: (args: { field: UploadField } & SharedArgs) => ObjectTypeConfig\n}\n\nexport const fieldToSchemaMap: FieldToSchemaMap = {\n slug: ({ field, forceNullable, objectTypeConfig, parentIsLocalized }) => ({\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({\n type: withNullableType({\n type: GraphQLString,\n field,\n forceNullable,\n parentIsLocalized,\n }) as GraphQLOutputType,\n field,\n }),\n }),\n array: ({\n config,\n field,\n forceNullable,\n graphqlResult,\n objectTypeConfig,\n parentIsLocalized,\n parentName,\n }) => {\n const interfaceName =\n field?.interfaceName || combineParentName(parentName, toWords(field.name, true))\n\n if (!graphqlResult.types.arrayTypes[interfaceName]) {\n const objectType = buildObjectType({\n name: interfaceName,\n config,\n fields: field.fields,\n forceNullable: isFieldNullable({ field, forceNullable, parentIsLocalized }),\n graphqlResult,\n parentIsLocalized: field.localized || parentIsLocalized,\n parentName: interfaceName,\n })\n\n if (Object.keys(objectType.getFields()).length) {\n graphqlResult.types.arrayTypes[interfaceName] = objectType\n }\n }\n\n if (!graphqlResult.types.arrayTypes[interfaceName]) {\n return objectTypeConfig\n }\n\n const arrayType = new GraphQLList(\n new GraphQLNonNull(graphqlResult.types.arrayTypes[interfaceName]),\n )\n\n return {\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({\n type: withNullableType({ type: arrayType, field, parentIsLocalized }) as GraphQLOutputType,\n field,\n }),\n }\n },\n blocks: ({\n config,\n field,\n forceNullable,\n graphqlResult,\n objectTypeConfig,\n parentIsLocalized,\n parentName,\n }) => {\n const blockTypes: GraphQLObjectType<any, any>[] = field.blocks.reduce((acc, _block) => {\n const blockSlug = typeof _block === 'string' ? _block : _block.slug\n if (!graphqlResult.types.blockTypes[blockSlug]) {\n // TODO: iterate over blocks mapped to block slug in v4, or pass through payload.blocks\n const block =\n typeof _block === 'string' ? config.blocks.find((b) => b.slug === _block) : _block\n\n const interfaceName =\n block?.interfaceName || block?.graphQL?.singularName || toWords(block.slug, true)\n\n const objectType = buildObjectType({\n name: interfaceName,\n config,\n fields: [\n ...block.fields,\n {\n name: 'blockType',\n type: 'text',\n },\n ],\n forceNullable,\n graphqlResult,\n parentIsLocalized,\n parentName: interfaceName,\n })\n\n if (Object.keys(objectType.getFields()).length) {\n // Store block slug in extensions for use in select building\n objectType.extensions = {\n ...objectType.extensions,\n blockSlug: block.slug,\n }\n graphqlResult.types.blockTypes[block.slug] = objectType\n }\n }\n\n if (graphqlResult.types.blockTypes[blockSlug]) {\n acc.push(graphqlResult.types.blockTypes[blockSlug])\n }\n\n return acc\n }, [])\n\n if (blockTypes.length === 0) {\n return objectTypeConfig\n }\n\n const fullName = combineParentName(parentName, toWords(field.name, true))\n\n const type = new GraphQLList(\n new GraphQLNonNull(\n new GraphQLUnionType({\n name: fullName,\n resolveType: (data) => graphqlResult.types.blockTypes[data.blockType].name,\n types: blockTypes,\n }),\n ),\n ) as GraphQLOutputType\n\n return {\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({\n type: withNullableType({ type, field, parentIsLocalized }) as GraphQLOutputType,\n field,\n }),\n }\n },\n checkbox: ({ field, forceNullable, objectTypeConfig, parentIsLocalized }) => ({\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({\n type: withNullableType({\n type: GraphQLBoolean,\n field,\n forceNullable,\n parentIsLocalized,\n }) as GraphQLOutputType,\n field,\n }),\n }),\n code: ({ field, forceNullable, objectTypeConfig, parentIsLocalized }) => ({\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({\n type: withNullableType({\n type: GraphQLString,\n field,\n forceNullable,\n parentIsLocalized,\n }) as GraphQLOutputType,\n field,\n }),\n }),\n collapsible: ({\n collectionSlug,\n config,\n field,\n forceNullable,\n graphqlResult,\n newlyCreatedBlockType,\n objectTypeConfig,\n parentIsLocalized,\n parentName,\n }) =>\n field.fields.reduce((objectTypeConfigWithCollapsibleFields, subField) => {\n const addSubField: GenericFieldToSchemaMap = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField({\n collectionSlug,\n config,\n field: subField,\n forceNullable,\n graphqlResult,\n newlyCreatedBlockType,\n objectTypeConfig: objectTypeConfigWithCollapsibleFields,\n parentIsLocalized,\n parentName,\n })\n }\n return objectTypeConfigWithCollapsibleFields\n }, objectTypeConfig),\n date: ({ field, forceNullable, objectTypeConfig, parentIsLocalized }) => ({\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({\n type: withNullableType({\n type: DateTimeResolver,\n field,\n forceNullable,\n parentIsLocalized,\n }) as GraphQLOutputType,\n field,\n }),\n }),\n email: ({ field, forceNullable, objectTypeConfig, parentIsLocalized }) => ({\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({\n type: withNullableType({\n type: EmailAddressResolver,\n field,\n forceNullable,\n parentIsLocalized,\n }) as GraphQLOutputType,\n field,\n }),\n }),\n group: ({\n collectionSlug,\n config,\n field,\n forceNullable,\n graphqlResult,\n newlyCreatedBlockType,\n objectTypeConfig,\n parentIsLocalized,\n parentName,\n }) => {\n if (fieldAffectsData(field)) {\n const interfaceName =\n field?.interfaceName || combineParentName(parentName, toWords(field.name, true))\n\n if (!graphqlResult.types.groupTypes[interfaceName]) {\n const objectType = buildObjectType({\n name: interfaceName,\n config,\n fields: field.fields,\n forceNullable: isFieldNullable({ field, forceNullable, parentIsLocalized }),\n graphqlResult,\n parentIsLocalized: field.localized || parentIsLocalized,\n parentName: interfaceName,\n })\n\n if (Object.keys(objectType.getFields()).length) {\n graphqlResult.types.groupTypes[interfaceName] = objectType\n }\n }\n\n if (!graphqlResult.types.groupTypes[interfaceName]) {\n return objectTypeConfig\n }\n\n return {\n ...objectTypeConfig,\n [formatName(field.name)]: {\n type: graphqlResult.types.groupTypes[interfaceName],\n extensions: { field },\n resolve: (parent, args, context) => {\n return {\n ...parent[field.name],\n _id: parent._id ?? parent.id,\n }\n },\n } satisfies GraphQLFieldConfig<any, Context, any>,\n }\n } else {\n return field.fields.reduce((objectTypeConfigWithCollapsibleFields, subField) => {\n const addSubField: GenericFieldToSchemaMap = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField({\n collectionSlug,\n config,\n field: subField,\n forceNullable,\n graphqlResult,\n newlyCreatedBlockType,\n objectTypeConfig: objectTypeConfigWithCollapsibleFields,\n parentIsLocalized,\n parentName,\n })\n }\n return objectTypeConfigWithCollapsibleFields\n }, objectTypeConfig)\n }\n },\n join: ({ collectionSlug, field, graphqlResult, objectTypeConfig, parentName }) => {\n const joinName = combineParentName(parentName, toWords(field.name, true))\n\n const joinType: GraphQLFieldConfig<any, Context, any> = {\n type: new GraphQLObjectType({\n name: joinName,\n fields: {\n docs: {\n type: new GraphQLNonNull(\n Array.isArray(field.collection)\n ? GraphQLJSON\n : new GraphQLList(\n new GraphQLNonNull(graphqlResult.collections[field.collection].graphQL.type),\n ),\n ),\n },\n hasNextPage: { type: new GraphQLNonNull(GraphQLBoolean) },\n totalDocs: { type: GraphQLInt },\n },\n }),\n args: {\n count: { type: GraphQLBoolean },\n limit: {\n type: GraphQLInt,\n },\n page: {\n type: GraphQLInt,\n },\n sort: {\n type: GraphQLString,\n },\n where: {\n type: Array.isArray(field.collection)\n ? GraphQLJSON\n : graphqlResult.collections[field.collection].graphQL.whereInputType,\n },\n },\n extensions: {\n complexity: typeof field?.graphQL?.complexity === 'number' ? field.graphQL.complexity : 10,\n field,\n },\n async resolve(parent, args, context, info) {\n const { collection } = field\n const { count = false, limit, page, sort, where } = args\n const { req } = context\n\n const draft = Boolean(args.draft ?? context.req.query?.draft)\n const select = resolveSelect(info, context.select)\n\n const targetField = (field as FlattenedJoinField).targetField\n\n const fullWhere = combineQueries(\n where,\n Array.isArray(targetField.relationTo)\n ? {\n [field.on]: {\n equals: {\n relationTo: collectionSlug,\n value: parent._id ?? parent.id,\n },\n },\n }\n : {\n [field.on]: { equals: parent._id ?? parent.id },\n },\n )\n\n if (Array.isArray(collection)) {\n throw new Error('GraphQL with array of join.field.collection is not implemented')\n }\n\n if (count && limit === 0) {\n return await req.payload.count({\n collection,\n overrideAccess: false,\n req,\n where: fullWhere,\n })\n }\n\n const { docs, totalDocs } = await req.payload.find({\n collection,\n depth: 0,\n draft,\n fallbackLocale: req.fallbackLocale,\n // Fetch one extra document to determine if there are more documents beyond the requested limit (used for hasNextPage calculation).\n limit: typeof limit === 'number' && limit > 0 ? limit + 1 : 0,\n locale: req.locale,\n overrideAccess: false,\n page,\n pagination: count ? true : false,\n req,\n select,\n sort,\n where: fullWhere,\n })\n\n let shouldSlice = false\n\n if (typeof limit === 'number' && limit !== 0 && limit < docs.length) {\n shouldSlice = true\n }\n\n return {\n docs: shouldSlice ? docs.slice(0, -1) : docs,\n hasNextPage: limit === 0 ? false : limit < docs.length,\n ...(count ? { totalDocs } : {}),\n }\n },\n }\n\n return {\n ...objectTypeConfig,\n [formatName(field.name)]: joinType,\n }\n },\n json: ({ field, forceNullable, objectTypeConfig, parentIsLocalized }) => ({\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({\n type: withNullableType({\n type: GraphQLJSON,\n field,\n forceNullable,\n parentIsLocalized,\n }) as GraphQLOutputType,\n field,\n }),\n }),\n number: ({ field, forceNullable, objectTypeConfig, parentIsLocalized }) => {\n const type = field?.name === 'id' ? GraphQLInt : GraphQLFloat\n return {\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({\n type: withNullableType({\n type: field?.hasMany === true ? new GraphQLList(new GraphQLNonNull(type)) : type,\n field,\n forceNullable,\n parentIsLocalized,\n }) as GraphQLOutputType,\n field,\n }),\n }\n },\n point: ({ field, forceNullable, objectTypeConfig, parentIsLocalized }) => ({\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({\n type: withNullableType({\n type: new GraphQLList(new GraphQLNonNull(GraphQLFloat)),\n field,\n forceNullable,\n parentIsLocalized,\n }) as GraphQLOutputType,\n field,\n }),\n }),\n radio: ({ field, forceNullable, objectTypeConfig, parentIsLocalized, parentName }) => ({\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({\n type: withNullableType({\n type: new GraphQLEnumType({\n name: combineParentName(parentName, field.name),\n values: formatOptions(field),\n }),\n field,\n forceNullable,\n parentIsLocalized,\n }) as GraphQLOutputType,\n field,\n }),\n }),\n relationship: ({\n config,\n field,\n forceNullable,\n graphqlResult,\n newlyCreatedBlockType,\n objectTypeConfig,\n parentIsLocalized,\n parentName,\n }) => {\n const { relationTo } = field\n const isRelatedToManyCollections = Array.isArray(relationTo)\n const hasManyValues = field.hasMany\n const relationshipName = combineParentName(parentName, toWords(field.name, true))\n\n let type: GraphQLOutputType\n let relationToType = null\n\n const graphQLCollections = config.collections.filter(\n (collectionConfig) => collectionConfig.graphQL !== false,\n )\n\n if (Array.isArray(relationTo)) {\n relationToType = new GraphQLEnumType({\n name: `${relationshipName}_RelationTo`,\n values: relationTo\n .filter((relation) =>\n graphQLCollections.some((collection) => collection.slug === relation),\n )\n .reduce(\n (relations, relation) => ({\n ...relations,\n [formatName(relation)]: {\n value: relation,\n },\n }),\n {},\n ),\n })\n\n // Only pass collections that are GraphQL enabled\n const types = relationTo\n .filter((relation) => graphQLCollections.some((collection) => collection.slug === relation))\n .map((relation) => graphqlResult.collections[relation]?.graphQL.type)\n\n type = new GraphQLObjectType({\n name: `${relationshipName}_Relationship`,\n fields: {\n relationTo: {\n type: relationToType,\n },\n value: {\n type: new GraphQLUnionType({\n name: relationshipName,\n resolveType(data) {\n return graphqlResult.collections[data.collection].graphQL.type.name\n },\n types,\n }) as GraphQLOutputType,\n },\n },\n }) as GraphQLOutputType\n } else {\n ;({ type } = graphqlResult.collections[relationTo].graphQL)\n }\n\n // If the relationshipType is undefined at this point,\n // it can be assumed that this blockType can have a relationship\n // to itself. Therefore, we set the relationshipType equal to the blockType\n // that is currently being created.\n\n type = type || newlyCreatedBlockType\n\n const relationshipArgs: {\n draft: GraphQLArgumentConfig\n fallbackLocale: GraphQLArgumentConfig\n limit: GraphQLArgumentConfig\n locale: GraphQLArgumentConfig\n page: GraphQLArgumentConfig\n where: GraphQLArgumentConfig\n } = {} as any\n\n const relationsUseDrafts = (Array.isArray(relationTo) ? relationTo : [relationTo])\n .filter((relation) => graphQLCollections.some((collection) => collection.slug === relation))\n .some((relation) => graphqlResult.collections[relation].config.versions?.drafts)\n\n if (relationsUseDrafts) {\n relationshipArgs.draft = {\n type: GraphQLBoolean,\n }\n }\n\n if (config.localization) {\n relationshipArgs.locale = {\n type: graphqlResult.types.localeInputType,\n }\n\n relationshipArgs.fallbackLocale = {\n type: graphqlResult.types.fallbackLocaleInputType,\n }\n }\n\n const relationship: GraphQLFieldConfig<any, Context, any> = {\n type: withNullableType({\n type: hasManyValues ? new GraphQLList(new GraphQLNonNull(type)) : type,\n field,\n // can be null if the related doc is deleted even if the field is required, unless hasMany\n forceNullable: !field.hasMany,\n parentIsLocalized,\n }) as GraphQLOutputType,\n args: relationshipArgs,\n extensions: {\n complexity: typeof field?.graphQL?.complexity === 'number' ? field.graphQL.complexity : 10,\n field,\n },\n async resolve(parent, args, context, info) {\n const value = parent[field.name]\n const locale = args.locale || context.req.locale\n const fallbackLocale = args.fallbackLocale || context.req.fallbackLocale\n let relatedCollectionSlug = field.relationTo\n const draft = Boolean(args.draft ?? context.req.query?.draft)\n const select = resolveSelect(info, context.select)\n\n if (hasManyValues) {\n const results = []\n const resultPromises = []\n\n const createPopulationPromise = async (relatedDoc, i) => {\n let id = relatedDoc\n let collectionSlug = field.relationTo\n const isValidGraphQLCollection = isRelatedToManyCollections\n ? graphQLCollections.some((collection) => collectionSlug.includes(collection.slug))\n : graphQLCollections.some((collection) => collectionSlug === collection.slug)\n\n if (isValidGraphQLCollection) {\n if (isRelatedToManyCollections) {\n collectionSlug = relatedDoc.relationTo\n id = relatedDoc.value\n }\n\n const result = await context.req.payloadDataLoader.load(\n createDataloaderCacheKey({\n collectionSlug: collectionSlug as string,\n currentDepth: 0,\n depth: 0,\n docID: id,\n draft,\n fallbackLocale,\n locale,\n overrideAccess: false,\n select,\n showHiddenFields: false,\n transactionID: context.req.transactionID,\n }),\n )\n\n if (result) {\n if (isRelatedToManyCollections) {\n results.push({\n relationTo: collectionSlug,\n value: {\n ...result,\n collection: collectionSlug,\n },\n })\n } else {\n results.push(result)\n }\n }\n }\n }\n\n if (value) {\n value.forEach((relatedDoc, i) => {\n resultPromises.push(createPopulationPromise(relatedDoc, i))\n })\n }\n\n await Promise.all(resultPromises)\n return results\n }\n\n let id = value\n if (isRelatedToManyCollections && value) {\n id = value.value\n relatedCollectionSlug = value.relationTo\n }\n\n if (id) {\n if (graphQLCollections.some((collection) => collection.slug === relatedCollectionSlug)) {\n const relatedDocument = await context.req.payloadDataLoader.load(\n createDataloaderCacheKey({\n collectionSlug: relatedCollectionSlug as string,\n currentDepth: 0,\n depth: 0,\n docID: id,\n draft,\n fallbackLocale,\n locale,\n overrideAccess: false,\n select,\n showHiddenFields: false,\n transactionID: context.req.transactionID,\n }),\n )\n\n if (relatedDocument) {\n if (isRelatedToManyCollections) {\n return {\n relationTo: relatedCollectionSlug,\n value: {\n ...relatedDocument,\n collection: relatedCollectionSlug,\n },\n }\n }\n\n return relatedDocument\n }\n }\n\n return null\n }\n\n return null\n },\n }\n\n return {\n ...objectTypeConfig,\n [formatName(field.name)]: relationship,\n }\n },\n richText: ({ config, field, forceNullable, objectTypeConfig, parentIsLocalized }) => ({\n ...objectTypeConfig,\n [formatName(field.name)]: {\n type: withNullableType({\n type: GraphQLJSON,\n field,\n forceNullable,\n parentIsLocalized,\n }) as GraphQLOutputType,\n args: {\n depth: {\n type: GraphQLInt,\n },\n },\n extensions: {\n field,\n },\n async resolve(parent, args, context: Context) {\n let depth = config.defaultDepth\n if (typeof args.depth !== 'undefined') {\n depth = args.depth\n }\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\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 // RichText fields have their own depth argument in GraphQL.\n // This is why the populationPromise (which populates richtext fields like uploads and relationships)\n // is run here again, with the provided depth.\n // In the graphql find.ts resolver, the depth is then hard-coded to 0.\n // Effectively, this means that the populationPromise for GraphQL is only run here, and not in the find.ts resolver / normal population promise.\n if (editor?.graphQLPopulationPromises) {\n const fieldPromises = []\n const populationPromises = []\n const populateDepth =\n field?.maxDepth !== undefined && field?.maxDepth < depth ? field?.maxDepth : depth\n\n editor?.graphQLPopulationPromises({\n context,\n depth: populateDepth,\n draft: args.draft,\n field,\n fieldPromises,\n findMany: false,\n flattenLocales: false,\n overrideAccess: false,\n parentIsLocalized,\n populationPromises,\n req: context.req,\n showHiddenFields: false,\n siblingDoc: parent,\n })\n await Promise.all(fieldPromises)\n await Promise.all(populationPromises)\n }\n\n return parent[field.name]\n },\n },\n }),\n row: ({ field, objectTypeConfig, ...rest }) =>\n field.fields.reduce((objectTypeConfigWithRowFields, subField) => {\n const addSubField: GenericFieldToSchemaMap = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField({\n field: subField,\n objectTypeConfig: objectTypeConfigWithRowFields,\n ...rest,\n })\n }\n return objectTypeConfigWithRowFields\n }, objectTypeConfig),\n select: ({ field, forceNullable, objectTypeConfig, parentIsLocalized, parentName }) => {\n const fullName = combineParentName(parentName, field.name)\n\n let type: GraphQLOutputType = new GraphQLEnumType({\n name: fullName,\n values: formatOptions(field),\n })\n\n type = field.hasMany ? new GraphQLList(new GraphQLNonNull(type)) : type\n type = withNullableType({ type, field, forceNullable, parentIsLocalized }) as GraphQLOutputType\n\n return {\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({ type, field }),\n }\n },\n tabs: ({\n collectionSlug,\n config,\n field,\n forceNullable,\n graphqlResult,\n newlyCreatedBlockType,\n objectTypeConfig,\n parentIsLocalized,\n parentName,\n }) =>\n field.tabs.reduce((tabSchema, tab) => {\n if (tabHasName(tab)) {\n const interfaceName =\n tab?.interfaceName || combineParentName(parentName, toWords(tab.name, true))\n\n if (!graphqlResult.types.groupTypes[interfaceName]) {\n const objectType = buildObjectType({\n name: interfaceName,\n collectionSlug,\n config,\n fields: tab.fields,\n forceNullable,\n graphqlResult,\n parentIsLocalized: tab.localized || parentIsLocalized,\n parentName: interfaceName,\n })\n\n if (Object.keys(objectType.getFields()).length) {\n graphqlResult.types.groupTypes[interfaceName] = objectType\n }\n }\n\n if (!graphqlResult.types.groupTypes[interfaceName]) {\n return tabSchema\n }\n\n return {\n ...tabSchema,\n [tab.name]: {\n type: graphqlResult.types.groupTypes[interfaceName],\n resolve(parent, args, context: Context) {\n return {\n ...parent[tab.name],\n _id: parent._id ?? parent.id,\n }\n },\n },\n }\n }\n\n return {\n ...tabSchema,\n ...tab.fields.reduce((subFieldSchema, subField) => {\n const addSubField: GenericFieldToSchemaMap = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField({\n collectionSlug,\n config,\n field: subField,\n forceNullable,\n graphqlResult,\n newlyCreatedBlockType,\n objectTypeConfig: subFieldSchema,\n parentIsLocalized,\n parentName,\n })\n }\n return subFieldSchema\n }, tabSchema),\n }\n }, objectTypeConfig),\n text: ({ field, forceNullable, objectTypeConfig, parentIsLocalized }) => ({\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({\n type: withNullableType({\n type:\n field.hasMany === true\n ? new GraphQLList(new GraphQLNonNull(GraphQLString))\n : GraphQLString,\n field,\n forceNullable,\n parentIsLocalized,\n }) as GraphQLOutputType,\n field,\n }),\n }),\n textarea: ({ field, forceNullable, objectTypeConfig, parentIsLocalized }) => ({\n ...objectTypeConfig,\n [formatName(field.name)]: formattedNameResolver({\n type: withNullableType({\n type: GraphQLString,\n field,\n forceNullable,\n parentIsLocalized,\n }) as GraphQLOutputType,\n field,\n }),\n }),\n upload: ({\n config,\n field,\n forceNullable,\n graphqlResult,\n newlyCreatedBlockType,\n objectTypeConfig,\n parentIsLocalized,\n parentName,\n }) => {\n const { relationTo } = field\n const isRelatedToManyCollections = Array.isArray(relationTo)\n const hasManyValues = field.hasMany\n const relationshipName = combineParentName(parentName, toWords(field.name, true))\n\n let type\n let relationToType = null\n\n const graphQLCollections = config.collections.filter(\n (collectionConfig) => collectionConfig.graphQL !== false,\n )\n\n if (Array.isArray(relationTo)) {\n relationToType = new GraphQLEnumType({\n name: `${relationshipName}_RelationTo`,\n values: relationTo.reduce(\n (relations, relation) => ({\n ...relations,\n [formatName(relation)]: {\n value: relation,\n },\n }),\n {},\n ),\n })\n\n const types = relationTo.map((relation) => graphqlResult.collections[relation].graphQL.type)\n\n type = new GraphQLObjectType({\n name: `${relationshipName}_Relationship`,\n fields: {\n relationTo: {\n type: relationToType,\n },\n value: {\n type: new GraphQLUnionType({\n name: relationshipName,\n resolveType(data) {\n return graphqlResult.collections[data.collection].graphQL.type.name\n },\n types,\n }),\n },\n },\n })\n } else {\n ;({ type } = graphqlResult.collections[relationTo].graphQL)\n }\n\n // If the relationshipType is undefined at this point,\n // it can be assumed that this blockType can have a relationship\n // to itself. Therefore, we set the relationshipType equal to the blockType\n // that is currently being created.\n\n type = type || newlyCreatedBlockType\n\n const relationshipArgs: {\n draft?: GraphQLArgumentConfig\n fallbackLocale?: GraphQLArgumentConfig\n limit?: GraphQLArgumentConfig\n locale?: GraphQLArgumentConfig\n page?: GraphQLArgumentConfig\n where?: GraphQLArgumentConfig\n } = {} as any\n\n const relationsUseDrafts = (Array.isArray(relationTo) ? relationTo : [relationTo]).some(\n (relation) => graphqlResult.collections[relation].config.versions?.drafts,\n )\n\n if (relationsUseDrafts) {\n relationshipArgs.draft = {\n type: GraphQLBoolean,\n }\n }\n\n if (config.localization) {\n relationshipArgs.locale = {\n type: graphqlResult.types.localeInputType,\n }\n\n relationshipArgs.fallbackLocale = {\n type: graphqlResult.types.fallbackLocaleInputType,\n }\n }\n\n const relationship: GraphQLFieldConfig<any, Context, any> = {\n type: withNullableType({\n type: hasManyValues ? new GraphQLList(new GraphQLNonNull(type)) : type,\n field,\n // can be null if the related doc is deleted even if the field is required, unless hasMany\n forceNullable: !field.hasMany,\n parentIsLocalized,\n }) as GraphQLOutputType,\n args: relationshipArgs,\n extensions: {\n complexity: typeof field?.graphQL?.complexity === 'number' ? field.graphQL.complexity : 10,\n field,\n },\n async resolve(parent, args, context, info) {\n const value = parent[field.name]\n const locale = args.locale || context.req.locale\n const fallbackLocale = args.fallbackLocale || context.req.fallbackLocale\n let relatedCollectionSlug = field.relationTo\n const draft = Boolean(args.draft ?? context.req.query?.draft)\n const select = resolveSelect(info, context.select)\n\n if (hasManyValues) {\n const results = []\n const resultPromises = []\n\n const createPopulationPromise = async (relatedDoc, i) => {\n let id = relatedDoc\n let collectionSlug = field.relationTo\n const isValidGraphQLCollection = isRelatedToManyCollections\n ? graphQLCollections.some((collection) => collectionSlug.includes(collection.slug))\n : graphQLCollections.some((collection) => collectionSlug === collection.slug)\n\n if (isValidGraphQLCollection) {\n if (isRelatedToManyCollections) {\n collectionSlug = relatedDoc.relationTo\n id = relatedDoc.value\n }\n\n const result = await context.req.payloadDataLoader.load(\n createDataloaderCacheKey({\n collectionSlug: collectionSlug as string,\n currentDepth: 0,\n depth: 0,\n docID: id,\n draft,\n fallbackLocale,\n locale,\n overrideAccess: false,\n select,\n showHiddenFields: false,\n transactionID: context.req.transactionID,\n }),\n )\n\n if (result) {\n if (isRelatedToManyCollections) {\n results.push({\n relationTo: collectionSlug,\n value: {\n ...result,\n collection: collectionSlug,\n },\n })\n } else {\n results.push(result)\n }\n }\n }\n }\n\n if (value) {\n value.forEach((relatedDoc, i) => {\n resultPromises.push(createPopulationPromise(relatedDoc, i))\n })\n }\n\n await Promise.all(resultPromises)\n return results\n }\n\n let id = value\n if (isRelatedToManyCollections && value) {\n id = value.value\n relatedCollectionSlug = value.relationTo\n }\n\n if (id) {\n if (graphQLCollections.some((collection) => collection.slug === relatedCollectionSlug)) {\n const relatedDocument = await context.req.payloadDataLoader.load(\n createDataloaderCacheKey({\n collectionSlug: relatedCollectionSlug as string,\n currentDepth: 0,\n depth: 0,\n docID: id,\n draft,\n fallbackLocale,\n locale,\n overrideAccess: false,\n select,\n showHiddenFields: false,\n transactionID: context.req.transactionID,\n }),\n )\n\n if (relatedDocument) {\n if (isRelatedToManyCollections) {\n return {\n relationTo: relatedCollectionSlug,\n value: {\n ...relatedDocument,\n collection: relatedCollectionSlug,\n },\n }\n }\n\n return relatedDocument\n }\n }\n\n return null\n }\n\n return null\n },\n }\n\n return {\n ...objectTypeConfig,\n [formatName(field.name)]: relationship,\n }\n },\n}\n"],"names":["GraphQLBoolean","GraphQLEnumType","GraphQLFloat","GraphQLInt","GraphQLList","GraphQLNonNull","GraphQLObjectType","GraphQLString","GraphQLUnionType","DateTimeResolver","EmailAddressResolver","combineQueries","createDataloaderCacheKey","MissingEditorProp","toWords","fieldAffectsData","tabHasName","GraphQLJSON","combineParentName","formatName","formatOptions","resolveSelect","buildObjectType","isFieldNullable","withNullableType","formattedNameResolver","field","rest","name","extensions","resolve","parent","fieldToSchemaMap","slug","forceNullable","objectTypeConfig","parentIsLocalized","type","array","config","graphqlResult","parentName","interfaceName","types","arrayTypes","objectType","fields","localized","Object","keys","getFields","length","arrayType","blocks","blockTypes","reduce","acc","_block","blockSlug","block","find","b","graphQL","singularName","push","fullName","resolveType","data","blockType","checkbox","code","collapsible","collectionSlug","newlyCreatedBlockType","objectTypeConfigWithCollapsibleFields","subField","addSubField","date","email","group","groupTypes","args","context","_id","id","join","joinName","joinType","docs","Array","isArray","collection","collections","hasNextPage","totalDocs","count","limit","page","sort","where","whereInputType","complexity","info","req","draft","Boolean","query","select","targetField","fullWhere","relationTo","on","equals","value","Error","payload","overrideAccess","depth","fallbackLocale","locale","pagination","shouldSlice","slice","json","number","hasMany","point","radio","values","relationship","isRelatedToManyCollections","hasManyValues","relationshipName","relationToType","graphQLCollections","filter","collectionConfig","relation","some","relations","map","relationshipArgs","relationsUseDrafts","versions","drafts","localization","localeInputType","fallbackLocaleInputType","relatedCollectionSlug","results","resultPromises","createPopulationPromise","relatedDoc","i","isValidGraphQLCollection","includes","result","payloadDataLoader","load","currentDepth","docID","showHiddenFields","transactionID","forEach","Promise","all","relatedDocument","richText","defaultDepth","editor","graphQLPopulationPromises","fieldPromises","populationPromises","populateDepth","maxDepth","undefined","findMany","flattenLocales","siblingDoc","row","objectTypeConfigWithRowFields","tabs","tabSchema","tab","subFieldSchema","text","textarea","upload"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fieldToWhereInputSchemaMap.d.ts","sourceRoot":"","sources":["../../src/schema/fieldToWhereInputSchemaMap.ts"],"names":[],"mappings":"AA8BA,KAAK,IAAI,GAAG;IACV,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,gBAAgB,oCAAqC,IAAI,KAAG,GA+HvE,CAAA"}
1
+ {"version":3,"file":"fieldToWhereInputSchemaMap.d.ts","sourceRoot":"","sources":["../../src/schema/fieldToWhereInputSchemaMap.ts"],"names":[],"mappings":"AA8BA,KAAK,IAAI,GAAG;IACV,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,iCAAiC,IAAI,KAAG,GA+HvE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"isFieldNullable.d.ts","sourceRoot":"","sources":["../../src/schema/isFieldNullable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAIjD,eAAO,MAAM,eAAe,iDAIzB;IACD,KAAK,EAAE,kBAAkB,CAAA;IACzB,aAAa,EAAE,OAAO,CAAA;IACtB,iBAAiB,EAAE,OAAO,CAAA;CAC3B,KAAG,OAYH,CAAA"}
1
+ {"version":3,"file":"isFieldNullable.d.ts","sourceRoot":"","sources":["../../src/schema/isFieldNullable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAIjD,eAAO,MAAM,eAAe,GAAI,8CAI7B;IACD,KAAK,EAAE,kBAAkB,CAAA;IACzB,aAAa,EAAE,OAAO,CAAA;IACtB,iBAAiB,EAAE,OAAO,CAAA;CAC3B,KAAG,OAYH,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"recursivelyBuildNestedPaths.d.ts","sourceRoot":"","sources":["../../src/schema/recursivelyBuildNestedPaths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAO,SAAS,EAAE,MAAM,SAAS,CAAA;AAMjE,KAAK,IAAI,GAAG;IACV,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAAA;IACrC,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,2BAA2B,4CAA6C,IAAI,QA0ExF,CAAA"}
1
+ {"version":3,"file":"recursivelyBuildNestedPaths.d.ts","sourceRoot":"","sources":["../../src/schema/recursivelyBuildNestedPaths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAO,SAAS,EAAE,MAAM,SAAS,CAAA;AAMjE,KAAK,IAAI,GAAG;IACV,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAAA;IACrC,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,2BAA2B,GAAI,yCAAyC,IAAI,QA0ExF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"withNullableType.d.ts","sourceRoot":"","sources":["../../src/schema/withNullableType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAIjD,eAAO,MAAM,gBAAgB,uDAK1B;IACD,KAAK,EAAE,kBAAkB,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,IAAI,EAAE,WAAW,CAAA;CAClB,KAAG,WAkBH,CAAA"}
1
+ {"version":3,"file":"withNullableType.d.ts","sourceRoot":"","sources":["../../src/schema/withNullableType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAKjD,eAAO,MAAM,gBAAgB,GAAI,oDAK9B;IACD,KAAK,EAAE,kBAAkB,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,IAAI,EAAE,WAAW,CAAA;CAClB,KAAG,WAsBH,CAAA"}
@@ -1,9 +1,13 @@
1
1
  import { GraphQLNonNull } from 'graphql';
2
+ import { fieldIsVirtual } from 'payload/shared';
2
3
  export const withNullableType = ({ type, field, forceNullable, parentIsLocalized })=>{
3
4
  const hasReadAccessControl = field.access && field.access.read;
4
5
  const condition = field.admin && field.admin.condition;
5
6
  const isTimestamp = field.name === 'createdAt' || field.name === 'updatedAt';
6
- if (!forceNullable && 'required' in field && field.required && (!field.localized || parentIsLocalized) && !condition && !hasReadAccessControl && !isTimestamp) {
7
+ // Virtual fields are computed (by hooks or from a linked relationship), so they must
8
+ // not be non-null in the GraphQL schema even when marked required.
9
+ const isVirtual = fieldIsVirtual(field);
10
+ if (!forceNullable && 'required' in field && field.required && (!field.localized || parentIsLocalized) && !condition && !hasReadAccessControl && !isTimestamp && !isVirtual) {
7
11
  return new GraphQLNonNull(type);
8
12
  }
9
13
  return type;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/withNullableType.ts"],"sourcesContent":["import type { GraphQLType } from 'graphql'\nimport type { FieldAffectingData } from 'payload'\n\nimport { GraphQLNonNull } from 'graphql'\n\nexport const withNullableType = ({\n type,\n field,\n forceNullable,\n parentIsLocalized,\n}: {\n field: FieldAffectingData\n forceNullable?: boolean\n parentIsLocalized: boolean\n type: GraphQLType\n}): GraphQLType => {\n const hasReadAccessControl = field.access && field.access.read\n const condition = field.admin && field.admin.condition\n const isTimestamp = field.name === 'createdAt' || field.name === 'updatedAt'\n\n if (\n !forceNullable &&\n 'required' in field &&\n field.required &&\n (!field.localized || parentIsLocalized) &&\n !condition &&\n !hasReadAccessControl &&\n !isTimestamp\n ) {\n return new GraphQLNonNull(type)\n }\n\n return type\n}\n"],"names":["GraphQLNonNull","withNullableType","type","field","forceNullable","parentIsLocalized","hasReadAccessControl","access","read","condition","admin","isTimestamp","name","required","localized"],"mappings":"AAGA,SAASA,cAAc,QAAQ,UAAS;AAExC,OAAO,MAAMC,mBAAmB,CAAC,EAC/BC,IAAI,EACJC,KAAK,EACLC,aAAa,EACbC,iBAAiB,EAMlB;IACC,MAAMC,uBAAuBH,MAAMI,MAAM,IAAIJ,MAAMI,MAAM,CAACC,IAAI;IAC9D,MAAMC,YAAYN,MAAMO,KAAK,IAAIP,MAAMO,KAAK,CAACD,SAAS;IACtD,MAAME,cAAcR,MAAMS,IAAI,KAAK,eAAeT,MAAMS,IAAI,KAAK;IAEjE,IACE,CAACR,iBACD,cAAcD,SACdA,MAAMU,QAAQ,IACb,CAAA,CAACV,MAAMW,SAAS,IAAIT,iBAAgB,KACrC,CAACI,aACD,CAACH,wBACD,CAACK,aACD;QACA,OAAO,IAAIX,eAAeE;IAC5B;IAEA,OAAOA;AACT,EAAC"}
1
+ {"version":3,"sources":["../../src/schema/withNullableType.ts"],"sourcesContent":["import type { GraphQLType } from 'graphql'\nimport type { FieldAffectingData } from 'payload'\n\nimport { GraphQLNonNull } from 'graphql'\nimport { fieldIsVirtual } from 'payload/shared'\n\nexport const withNullableType = ({\n type,\n field,\n forceNullable,\n parentIsLocalized,\n}: {\n field: FieldAffectingData\n forceNullable?: boolean\n parentIsLocalized: boolean\n type: GraphQLType\n}): GraphQLType => {\n const hasReadAccessControl = field.access && field.access.read\n const condition = field.admin && field.admin.condition\n const isTimestamp = field.name === 'createdAt' || field.name === 'updatedAt'\n // Virtual fields are computed (by hooks or from a linked relationship), so they must\n // not be non-null in the GraphQL schema even when marked required.\n const isVirtual = fieldIsVirtual(field)\n\n if (\n !forceNullable &&\n 'required' in field &&\n field.required &&\n (!field.localized || parentIsLocalized) &&\n !condition &&\n !hasReadAccessControl &&\n !isTimestamp &&\n !isVirtual\n ) {\n return new GraphQLNonNull(type)\n }\n\n return type\n}\n"],"names":["GraphQLNonNull","fieldIsVirtual","withNullableType","type","field","forceNullable","parentIsLocalized","hasReadAccessControl","access","read","condition","admin","isTimestamp","name","isVirtual","required","localized"],"mappings":"AAGA,SAASA,cAAc,QAAQ,UAAS;AACxC,SAASC,cAAc,QAAQ,iBAAgB;AAE/C,OAAO,MAAMC,mBAAmB,CAAC,EAC/BC,IAAI,EACJC,KAAK,EACLC,aAAa,EACbC,iBAAiB,EAMlB;IACC,MAAMC,uBAAuBH,MAAMI,MAAM,IAAIJ,MAAMI,MAAM,CAACC,IAAI;IAC9D,MAAMC,YAAYN,MAAMO,KAAK,IAAIP,MAAMO,KAAK,CAACD,SAAS;IACtD,MAAME,cAAcR,MAAMS,IAAI,KAAK,eAAeT,MAAMS,IAAI,KAAK;IACjE,qFAAqF;IACrF,mEAAmE;IACnE,MAAMC,YAAYb,eAAeG;IAEjC,IACE,CAACC,iBACD,cAAcD,SACdA,MAAMW,QAAQ,IACb,CAAA,CAACX,MAAMY,SAAS,IAAIV,iBAAgB,KACrC,CAACI,aACD,CAACH,wBACD,CAACK,eACD,CAACE,WACD;QACA,OAAO,IAAId,eAAeG;IAC5B;IAEA,OAAOA;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"withOperators.d.ts","sourceRoot":"","sources":["../../src/schema/withOperators.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAwC,MAAM,SAAS,CAAA;AAEvF,OAAO,EAIL,sBAAsB,EAIvB,MAAM,SAAS,CAAA;AA8OhB;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,UACjB,kBAAkB,cACb,MAAM,KACjB,sBAiDF,CAAA"}
1
+ {"version":3,"file":"withOperators.d.ts","sourceRoot":"","sources":["../../src/schema/withOperators.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAwC,MAAM,SAAS,CAAA;AAEvF,OAAO,EAIL,sBAAsB,EAIvB,MAAM,SAAS,CAAA;AA8OhB;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,GACxB,OAAO,kBAAkB,EACzB,YAAY,MAAM,KACjB,sBAiDF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"combineParentName.d.ts","sourceRoot":"","sources":["../../src/utilities/combineParentName.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,WAAY,MAAM,QAAQ,MAAM,KAAG,MACb,CAAA"}
1
+ {"version":3,"file":"combineParentName.d.ts","sourceRoot":"","sources":["../../src/utilities/combineParentName.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,EAAE,MAAM,MAAM,KAAG,MACb,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"formatName.d.ts","sourceRoot":"","sources":["../../src/utilities/formatName.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,UAAU,WAAY,MAAM,KAAG,MAgC3C,CAAA"}
1
+ {"version":3,"file":"formatName.d.ts","sourceRoot":"","sources":["../../src/utilities/formatName.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,KAAG,MAgC3C,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"formatOptions.d.ts","sourceRoot":"","sources":["../../src/utilities/formatOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAItD,eAAO,MAAM,aAAa,UAAW,UAAU,GAAG,WAAW,OAkB5D,CAAA"}
1
+ {"version":3,"file":"formatOptions.d.ts","sourceRoot":"","sources":["../../src/utilities/formatOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAItD,eAAO,MAAM,aAAa,GAAI,OAAO,UAAU,GAAG,WAAW,OAkB5D,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"formatUtcOffset.d.ts","sourceRoot":"","sources":["../../src/utilities/formatUtcOffset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,UAAW,MAAM,KAAG,IAAI,GAAG,MAYtD,CAAA"}
1
+ {"version":3,"file":"formatUtcOffset.d.ts","sourceRoot":"","sources":["../../src/utilities/formatUtcOffset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,KAAG,IAAI,GAAG,MAYtD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"groupOrTabHasRequiredSubfield.d.ts","sourceRoot":"","sources":["../../src/utilities/groupOrTabHasRequiredSubfield.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAIzC,eAAO,MAAM,6BAA6B,WAAY,KAAK,GAAG,GAAG,KAAG,OAenE,CAAA"}
1
+ {"version":3,"file":"groupOrTabHasRequiredSubfield.d.ts","sourceRoot":"","sources":["../../src/utilities/groupOrTabHasRequiredSubfield.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAIzC,eAAO,MAAM,6BAA6B,GAAI,QAAQ,KAAK,GAAG,GAAG,KAAG,OAenE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/graphql",
3
- "version": "4.0.0-internal.e16cf59",
3
+ "version": "4.0.0-internal.e387174",
4
4
  "homepage": "https://payloadcms.com",
5
5
  "repository": {
6
6
  "type": "git",
@@ -47,17 +47,17 @@
47
47
  "graphql-scalars": "1.22.2",
48
48
  "pluralize": "8.0.0",
49
49
  "ts-essentials": "10.0.3",
50
- "tsx": "4.21.0"
50
+ "tsx": "4.22.4"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@types/pluralize": "^0.0.33",
54
- "graphql-http": "^1.22.0",
54
+ "graphql-http": "1.22.4",
55
55
  "@payloadcms/eslint-config": "3.28.0",
56
- "payload": "4.0.0-internal.e16cf59"
56
+ "payload": "4.0.0-internal.e387174"
57
57
  },
58
58
  "peerDependencies": {
59
59
  "graphql": "^16.8.1",
60
- "payload": "4.0.0-internal.e16cf59"
60
+ "payload": "4.0.0-internal.e387174"
61
61
  },
62
62
  "scripts": {
63
63
  "build": "pnpm build:types && pnpm build:swc",