@payloadcms/graphql 4.0.0-internal.43ccea7 → 4.0.0-internal.44ac9c8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/packages/graphql-query-complexity/QueryComplexity.d.ts.map +1 -1
  2. package/dist/packages/graphql-query-complexity/estimators/simple/index.d.ts.map +1 -1
  3. package/dist/resolvers/collections/find.js +1 -1
  4. package/dist/resolvers/collections/find.js.map +1 -1
  5. package/dist/resolvers/collections/findByID.js +1 -1
  6. package/dist/resolvers/collections/findByID.js.map +1 -1
  7. package/dist/resolvers/collections/findVersionByID.js +1 -1
  8. package/dist/resolvers/collections/findVersionByID.js.map +1 -1
  9. package/dist/resolvers/collections/findVersions.js +1 -1
  10. package/dist/resolvers/collections/findVersions.js.map +1 -1
  11. package/dist/resolvers/globals/findOne.js +1 -1
  12. package/dist/resolvers/globals/findOne.js.map +1 -1
  13. package/dist/resolvers/globals/findVersionByID.js +1 -1
  14. package/dist/resolvers/globals/findVersionByID.js.map +1 -1
  15. package/dist/resolvers/globals/findVersions.js +1 -1
  16. package/dist/resolvers/globals/findVersions.js.map +1 -1
  17. package/dist/schema/buildFallbackLocaleInputType.d.ts.map +1 -1
  18. package/dist/schema/buildLocaleInputType.d.ts.map +1 -1
  19. package/dist/schema/buildMutationInputType.d.ts.map +1 -1
  20. package/dist/schema/buildPaginatedListType.d.ts.map +1 -1
  21. package/dist/schema/buildPoliciesType.d.ts.map +1 -1
  22. package/dist/schema/buildWhereInputType.d.ts.map +1 -1
  23. package/dist/schema/fieldToSchemaMap.js +3 -3
  24. package/dist/schema/fieldToSchemaMap.js.map +1 -1
  25. package/dist/schema/fieldToWhereInputSchemaMap.d.ts.map +1 -1
  26. package/dist/schema/initCollections.d.ts.map +1 -1
  27. package/dist/schema/initCollections.js +9 -6
  28. package/dist/schema/initCollections.js.map +1 -1
  29. package/dist/schema/isFieldNullable.d.ts.map +1 -1
  30. package/dist/schema/operators.d.ts.map +1 -1
  31. package/dist/schema/recursivelyBuildNestedPaths.d.ts.map +1 -1
  32. package/dist/schema/withNullableType.d.ts.map +1 -1
  33. package/dist/schema/withOperators.d.ts +6 -0
  34. package/dist/schema/withOperators.d.ts.map +1 -1
  35. package/dist/schema/withOperators.js +15 -0
  36. package/dist/schema/withOperators.js.map +1 -1
  37. package/dist/utilities/combineParentName.d.ts.map +1 -1
  38. package/dist/utilities/formatName.d.ts.map +1 -1
  39. package/dist/utilities/formatOptions.d.ts.map +1 -1
  40. package/dist/utilities/formatUtcOffset.d.ts.map +1 -1
  41. package/dist/utilities/groupOrTabHasRequiredSubfield.d.ts.map +1 -1
  42. package/dist/utilities/select.d.ts +4 -3
  43. package/dist/utilities/select.d.ts.map +1 -1
  44. package/dist/utilities/select.js +83 -45
  45. package/dist/utilities/select.js.map +1 -1
  46. package/package.json +3 -3
  47. package/dist/utilities/formatName.spec.js +0 -57
  48. package/dist/utilities/formatName.spec.js.map +0 -1
  49. package/dist/utilities/formatUtcOffset.spec.js +0 -142
  50. package/dist/utilities/formatUtcOffset.spec.js.map +0 -1
@@ -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 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
+ {"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, context)\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, context)\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, context)\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":"AA+BA,SACEA,cAAc,EACdC,eAAe,EACfC,YAAY,EACZC,UAAU,EACVC,WAAW,EACXC,cAAc,EACdC,iBAAiB,EACjBC,aAAa,EACbC,gBAAgB,QACX,UAAS;AAChB,SAASC,gBAAgB,EAAEC,oBAAoB,QAAQ,kBAAiB;AACxE,SAASC,cAAc,EAAEC,wBAAwB,EAAEC,iBAAiB,EAAEC,OAAO,QAAQ,UAAS;AAC9F,SAASC,gBAAgB,EAAEC,UAAU,QAAQ,iBAAgB;AAI7D,SAASC,WAAW,QAAQ,yCAAwC;AACpE,SAASC,iBAAiB,QAAQ,oCAAmC;AACrE,SAASC,UAAU,QAAQ,6BAA4B;AACvD,SAASC,aAAa,QAAQ,gCAA+B;AAC7D,SAASC,aAAa,QAAQ,yBAAwB;AACtD,SAASC,eAAe,QAA+B,uBAAsB;AAC7E,SAASC,eAAe,QAAQ,uBAAsB;AACtD,SAASC,gBAAgB,QAAQ,wBAAuB;AAExD,SAASC,sBAAsB,EAC7BC,KAAK,EACL,GAAGC,MACsD;IAKzD,IAAI,UAAUD,OAAO;QACnB,IAAIP,WAAWO,MAAME,IAAI,MAAMF,MAAME,IAAI,EAAE;YACzC,OAAO;gBACL,GAAGD,IAAI;gBACPE,YAAY;oBAAE,GAAGF,KAAKE,UAAU;oBAAEH;gBAAM;gBACxCI,SAAS,CAACC,SAAWA,MAAM,CAACL,MAAME,IAAI,CAAC;YACzC;QACF;IACF;IACA,OAAOD;AACT;AAwCA,OAAO,MAAMK,mBAAqC;IAChDC,MAAM,CAAC,EAAEP,KAAK,EAAEQ,aAAa,EAAEC,gBAAgB,EAAEC,iBAAiB,EAAE,GAAM,CAAA;YACxE,GAAGD,gBAAgB;YACnB,CAAChB,WAAWO,MAAME,IAAI,EAAE,EAAEH,sBAAsB;gBAC9CY,MAAMb,iBAAiB;oBACrBa,MAAM9B;oBACNmB;oBACAQ;oBACAE;gBACF;gBACAV;YACF;QACF,CAAA;IACAY,OAAO,CAAC,EACNC,MAAM,EACNb,KAAK,EACLQ,aAAa,EACbM,aAAa,EACbL,gBAAgB,EAChBC,iBAAiB,EACjBK,UAAU,EACX;QACC,MAAMC,gBACJhB,OAAOgB,iBAAiBxB,kBAAkBuB,YAAY3B,QAAQY,MAAME,IAAI,EAAE;QAE5E,IAAI,CAACY,cAAcG,KAAK,CAACC,UAAU,CAACF,cAAc,EAAE;YAClD,MAAMG,aAAavB,gBAAgB;gBACjCM,MAAMc;gBACNH;gBACAO,QAAQpB,MAAMoB,MAAM;gBACpBZ,eAAeX,gBAAgB;oBAAEG;oBAAOQ;oBAAeE;gBAAkB;gBACzEI;gBACAJ,mBAAmBV,MAAMqB,SAAS,IAAIX;gBACtCK,YAAYC;YACd;YAEA,IAAIM,OAAOC,IAAI,CAACJ,WAAWK,SAAS,IAAIC,MAAM,EAAE;gBAC9CX,cAAcG,KAAK,CAACC,UAAU,CAACF,cAAc,GAAGG;YAClD;QACF;QAEA,IAAI,CAACL,cAAcG,KAAK,CAACC,UAAU,CAACF,cAAc,EAAE;YAClD,OAAOP;QACT;QAEA,MAAMiB,YAAY,IAAIhD,YACpB,IAAIC,eAAemC,cAAcG,KAAK,CAACC,UAAU,CAACF,cAAc;QAGlE,OAAO;YACL,GAAGP,gBAAgB;YACnB,CAAChB,WAAWO,MAAME,IAAI,EAAE,EAAEH,sBAAsB;gBAC9CY,MAAMb,iBAAiB;oBAAEa,MAAMe;oBAAW1B;oBAAOU;gBAAkB;gBACnEV;YACF;QACF;IACF;IACA2B,QAAQ,CAAC,EACPd,MAAM,EACNb,KAAK,EACLQ,aAAa,EACbM,aAAa,EACbL,gBAAgB,EAChBC,iBAAiB,EACjBK,UAAU,EACX;QACC,MAAMa,aAA4C5B,MAAM2B,MAAM,CAACE,MAAM,CAAC,CAACC,KAAKC;YAC1E,MAAMC,YAAY,OAAOD,WAAW,WAAWA,SAASA,OAAOxB,IAAI;YACnE,IAAI,CAACO,cAAcG,KAAK,CAACW,UAAU,CAACI,UAAU,EAAE;gBAC9C,uFAAuF;gBACvF,MAAMC,QACJ,OAAOF,WAAW,WAAWlB,OAAOc,MAAM,CAACO,IAAI,CAAC,CAACC,IAAMA,EAAE5B,IAAI,KAAKwB,UAAUA;gBAE9E,MAAMf,gBACJiB,OAAOjB,iBAAiBiB,OAAOG,SAASC,gBAAgBjD,QAAQ6C,MAAM1B,IAAI,EAAE;gBAE9E,MAAMY,aAAavB,gBAAgB;oBACjCM,MAAMc;oBACNH;oBACAO,QAAQ;2BACHa,MAAMb,MAAM;wBACf;4BACElB,MAAM;4BACNS,MAAM;wBACR;qBACD;oBACDH;oBACAM;oBACAJ;oBACAK,YAAYC;gBACd;gBAEA,IAAIM,OAAOC,IAAI,CAACJ,WAAWK,SAAS,IAAIC,MAAM,EAAE;oBAC9C,4DAA4D;oBAC5DN,WAAWhB,UAAU,GAAG;wBACtB,GAAGgB,WAAWhB,UAAU;wBACxB6B,WAAWC,MAAM1B,IAAI;oBACvB;oBACAO,cAAcG,KAAK,CAACW,UAAU,CAACK,MAAM1B,IAAI,CAAC,GAAGY;gBAC/C;YACF;YAEA,IAAIL,cAAcG,KAAK,CAACW,UAAU,CAACI,UAAU,EAAE;gBAC7CF,IAAIQ,IAAI,CAACxB,cAAcG,KAAK,CAACW,UAAU,CAACI,UAAU;YACpD;YAEA,OAAOF;QACT,GAAG,EAAE;QAEL,IAAIF,WAAWH,MAAM,KAAK,GAAG;YAC3B,OAAOhB;QACT;QAEA,MAAM8B,WAAW/C,kBAAkBuB,YAAY3B,QAAQY,MAAME,IAAI,EAAE;QAEnE,MAAMS,OAAO,IAAIjC,YACf,IAAIC,eACF,IAAIG,iBAAiB;YACnBoB,MAAMqC;YACNC,aAAa,CAACC,OAAS3B,cAAcG,KAAK,CAACW,UAAU,CAACa,KAAKC,SAAS,CAAC,CAACxC,IAAI;YAC1Ee,OAAOW;QACT;QAIJ,OAAO;YACL,GAAGnB,gBAAgB;YACnB,CAAChB,WAAWO,MAAME,IAAI,EAAE,EAAEH,sBAAsB;gBAC9CY,MAAMb,iBAAiB;oBAAEa;oBAAMX;oBAAOU;gBAAkB;gBACxDV;YACF;QACF;IACF;IACA2C,UAAU,CAAC,EAAE3C,KAAK,EAAEQ,aAAa,EAAEC,gBAAgB,EAAEC,iBAAiB,EAAE,GAAM,CAAA;YAC5E,GAAGD,gBAAgB;YACnB,CAAChB,WAAWO,MAAME,IAAI,EAAE,EAAEH,sBAAsB;gBAC9CY,MAAMb,iBAAiB;oBACrBa,MAAMrC;oBACN0B;oBACAQ;oBACAE;gBACF;gBACAV;YACF;QACF,CAAA;IACA4C,MAAM,CAAC,EAAE5C,KAAK,EAAEQ,aAAa,EAAEC,gBAAgB,EAAEC,iBAAiB,EAAE,GAAM,CAAA;YACxE,GAAGD,gBAAgB;YACnB,CAAChB,WAAWO,MAAME,IAAI,EAAE,EAAEH,sBAAsB;gBAC9CY,MAAMb,iBAAiB;oBACrBa,MAAM9B;oBACNmB;oBACAQ;oBACAE;gBACF;gBACAV;YACF;QACF,CAAA;IACA6C,aAAa,CAAC,EACZC,cAAc,EACdjC,MAAM,EACNb,KAAK,EACLQ,aAAa,EACbM,aAAa,EACbiC,qBAAqB,EACrBtC,gBAAgB,EAChBC,iBAAiB,EACjBK,UAAU,EACX,GACCf,MAAMoB,MAAM,CAACS,MAAM,CAAC,CAACmB,uCAAuCC;YAC1D,MAAMC,cAAuC5C,gBAAgB,CAAC2C,SAAStC,IAAI,CAAC;YAC5E,IAAIuC,aAAa;gBACf,OAAOA,YAAY;oBACjBJ;oBACAjC;oBACAb,OAAOiD;oBACPzC;oBACAM;oBACAiC;oBACAtC,kBAAkBuC;oBAClBtC;oBACAK;gBACF;YACF;YACA,OAAOiC;QACT,GAAGvC;IACL0C,MAAM,CAAC,EAAEnD,KAAK,EAAEQ,aAAa,EAAEC,gBAAgB,EAAEC,iBAAiB,EAAE,GAAM,CAAA;YACxE,GAAGD,gBAAgB;YACnB,CAAChB,WAAWO,MAAME,IAAI,EAAE,EAAEH,sBAAsB;gBAC9CY,MAAMb,iBAAiB;oBACrBa,MAAM5B;oBACNiB;oBACAQ;oBACAE;gBACF;gBACAV;YACF;QACF,CAAA;IACAoD,OAAO,CAAC,EAAEpD,KAAK,EAAEQ,aAAa,EAAEC,gBAAgB,EAAEC,iBAAiB,EAAE,GAAM,CAAA;YACzE,GAAGD,gBAAgB;YACnB,CAAChB,WAAWO,MAAME,IAAI,EAAE,EAAEH,sBAAsB;gBAC9CY,MAAMb,iBAAiB;oBACrBa,MAAM3B;oBACNgB;oBACAQ;oBACAE;gBACF;gBACAV;YACF;QACF,CAAA;IACAqD,OAAO,CAAC,EACNP,cAAc,EACdjC,MAAM,EACNb,KAAK,EACLQ,aAAa,EACbM,aAAa,EACbiC,qBAAqB,EACrBtC,gBAAgB,EAChBC,iBAAiB,EACjBK,UAAU,EACX;QACC,IAAI1B,iBAAiBW,QAAQ;YAC3B,MAAMgB,gBACJhB,OAAOgB,iBAAiBxB,kBAAkBuB,YAAY3B,QAAQY,MAAME,IAAI,EAAE;YAE5E,IAAI,CAACY,cAAcG,KAAK,CAACqC,UAAU,CAACtC,cAAc,EAAE;gBAClD,MAAMG,aAAavB,gBAAgB;oBACjCM,MAAMc;oBACNH;oBACAO,QAAQpB,MAAMoB,MAAM;oBACpBZ,eAAeX,gBAAgB;wBAAEG;wBAAOQ;wBAAeE;oBAAkB;oBACzEI;oBACAJ,mBAAmBV,MAAMqB,SAAS,IAAIX;oBACtCK,YAAYC;gBACd;gBAEA,IAAIM,OAAOC,IAAI,CAACJ,WAAWK,SAAS,IAAIC,MAAM,EAAE;oBAC9CX,cAAcG,KAAK,CAACqC,UAAU,CAACtC,cAAc,GAAGG;gBAClD;YACF;YAEA,IAAI,CAACL,cAAcG,KAAK,CAACqC,UAAU,CAACtC,cAAc,EAAE;gBAClD,OAAOP;YACT;YAEA,OAAO;gBACL,GAAGA,gBAAgB;gBACnB,CAAChB,WAAWO,MAAME,IAAI,EAAE,EAAE;oBACxBS,MAAMG,cAAcG,KAAK,CAACqC,UAAU,CAACtC,cAAc;oBACnDb,YAAY;wBAAEH;oBAAM;oBACpBI,SAAS,CAACC,QAAQkD,MAAMC;wBACtB,OAAO;4BACL,GAAGnD,MAAM,CAACL,MAAME,IAAI,CAAC;4BACrBuD,KAAKpD,OAAOoD,GAAG,IAAIpD,OAAOqD,EAAE;wBAC9B;oBACF;gBACF;YACF;QACF,OAAO;YACL,OAAO1D,MAAMoB,MAAM,CAACS,MAAM,CAAC,CAACmB,uCAAuCC;gBACjE,MAAMC,cAAuC5C,gBAAgB,CAAC2C,SAAStC,IAAI,CAAC;gBAC5E,IAAIuC,aAAa;oBACf,OAAOA,YAAY;wBACjBJ;wBACAjC;wBACAb,OAAOiD;wBACPzC;wBACAM;wBACAiC;wBACAtC,kBAAkBuC;wBAClBtC;wBACAK;oBACF;gBACF;gBACA,OAAOiC;YACT,GAAGvC;QACL;IACF;IACAkD,MAAM,CAAC,EAAEb,cAAc,EAAE9C,KAAK,EAAEc,aAAa,EAAEL,gBAAgB,EAAEM,UAAU,EAAE;QAC3E,MAAM6C,WAAWpE,kBAAkBuB,YAAY3B,QAAQY,MAAME,IAAI,EAAE;QAEnE,MAAM2D,WAAkD;YACtDlD,MAAM,IAAI/B,kBAAkB;gBAC1BsB,MAAM0D;gBACNxC,QAAQ;oBACN0C,MAAM;wBACJnD,MAAM,IAAIhC,eACRoF,MAAMC,OAAO,CAAChE,MAAMiE,UAAU,IAC1B1E,cACA,IAAIb,YACF,IAAIC,eAAemC,cAAcoD,WAAW,CAAClE,MAAMiE,UAAU,CAAC,CAAC7B,OAAO,CAACzB,IAAI;oBAGrF;oBACAwD,aAAa;wBAAExD,MAAM,IAAIhC,eAAeL;oBAAgB;oBACxD8F,WAAW;wBAAEzD,MAAMlC;oBAAW;gBAChC;YACF;YACA8E,MAAM;gBACJc,OAAO;oBAAE1D,MAAMrC;gBAAe;gBAC9BgG,OAAO;oBACL3D,MAAMlC;gBACR;gBACA8F,MAAM;oBACJ5D,MAAMlC;gBACR;gBACA+F,MAAM;oBACJ7D,MAAM9B;gBACR;gBACA4F,OAAO;oBACL9D,MAAMoD,MAAMC,OAAO,CAAChE,MAAMiE,UAAU,IAChC1E,cACAuB,cAAcoD,WAAW,CAAClE,MAAMiE,UAAU,CAAC,CAAC7B,OAAO,CAACsC,cAAc;gBACxE;YACF;YACAvE,YAAY;gBACVwE,YAAY,OAAO3E,OAAOoC,SAASuC,eAAe,WAAW3E,MAAMoC,OAAO,CAACuC,UAAU,GAAG;gBACxF3E;YACF;YACA,MAAMI,SAAQC,MAAM,EAAEkD,IAAI,EAAEC,OAAO,EAAEoB,IAAI;gBACvC,MAAM,EAAEX,UAAU,EAAE,GAAGjE;gBACvB,MAAM,EAAEqE,QAAQ,KAAK,EAAEC,KAAK,EAAEC,IAAI,EAAEC,IAAI,EAAEC,KAAK,EAAE,GAAGlB;gBACpD,MAAM,EAAEsB,GAAG,EAAE,GAAGrB;gBAEhB,MAAMsB,QAAQC,QAAQxB,KAAKuB,KAAK,IAAItB,QAAQqB,GAAG,CAACG,KAAK,EAAEF;gBACvD,MAAMG,SAAStF,cAAciF,MAAMpB,QAAQyB,MAAM,EAAEzB;gBAEnD,MAAM0B,cAAc,AAAClF,MAA6BkF,WAAW;gBAE7D,MAAMC,YAAYlG,eAChBwF,OACAV,MAAMC,OAAO,CAACkB,YAAYE,UAAU,IAChC;oBACE,CAACpF,MAAMqF,EAAE,CAAC,EAAE;wBACVC,QAAQ;4BACNF,YAAYtC;4BACZyC,OAAOlF,OAAOoD,GAAG,IAAIpD,OAAOqD,EAAE;wBAChC;oBACF;gBACF,IACA;oBACE,CAAC1D,MAAMqF,EAAE,CAAC,EAAE;wBAAEC,QAAQjF,OAAOoD,GAAG,IAAIpD,OAAOqD,EAAE;oBAAC;gBAChD;gBAGN,IAAIK,MAAMC,OAAO,CAACC,aAAa;oBAC7B,MAAM,IAAIuB,MAAM;gBAClB;gBAEA,IAAInB,SAASC,UAAU,GAAG;oBACxB,OAAO,MAAMO,IAAIY,OAAO,CAACpB,KAAK,CAAC;wBAC7BJ;wBACAyB,gBAAgB;wBAChBb;wBACAJ,OAAOU;oBACT;gBACF;gBAEA,MAAM,EAAErB,IAAI,EAAEM,SAAS,EAAE,GAAG,MAAMS,IAAIY,OAAO,CAACvD,IAAI,CAAC;oBACjD+B;oBACA0B,OAAO;oBACPb;oBACAc,gBAAgBf,IAAIe,cAAc;oBAClC,mIAAmI;oBACnItB,OAAO,OAAOA,UAAU,YAAYA,QAAQ,IAAIA,QAAQ,IAAI;oBAC5DuB,QAAQhB,IAAIgB,MAAM;oBAClBH,gBAAgB;oBAChBnB;oBACAuB,YAAYzB,QAAQ,OAAO;oBAC3BQ;oBACAI;oBACAT;oBACAC,OAAOU;gBACT;gBAEA,IAAIY,cAAc;gBAElB,IAAI,OAAOzB,UAAU,YAAYA,UAAU,KAAKA,QAAQR,KAAKrC,MAAM,EAAE;oBACnEsE,cAAc;gBAChB;gBAEA,OAAO;oBACLjC,MAAMiC,cAAcjC,KAAKkC,KAAK,CAAC,GAAG,CAAC,KAAKlC;oBACxCK,aAAaG,UAAU,IAAI,QAAQA,QAAQR,KAAKrC,MAAM;oBACtD,GAAI4C,QAAQ;wBAAED;oBAAU,IAAI,CAAC,CAAC;gBAChC;YACF;QACF;QAEA,OAAO;YACL,GAAG3D,gBAAgB;YACnB,CAAChB,WAAWO,MAAME,IAAI,EAAE,EAAE2D;QAC5B;IACF;IACAoC,MAAM,CAAC,EAAEjG,KAAK,EAAEQ,aAAa,EAAEC,gBAAgB,EAAEC,iBAAiB,EAAE,GAAM,CAAA;YACxE,GAAGD,gBAAgB;YACnB,CAAChB,WAAWO,MAAME,IAAI,EAAE,EAAEH,sBAAsB;gBAC9CY,MAAMb,iBAAiB;oBACrBa,MAAMpB;oBACNS;oBACAQ;oBACAE;gBACF;gBACAV;YACF;QACF,CAAA;IACAkG,QAAQ,CAAC,EAAElG,KAAK,EAAEQ,aAAa,EAAEC,gBAAgB,EAAEC,iBAAiB,EAAE;QACpE,MAAMC,OAAOX,OAAOE,SAAS,OAAOzB,aAAaD;QACjD,OAAO;YACL,GAAGiC,gBAAgB;YACnB,CAAChB,WAAWO,MAAME,IAAI,EAAE,EAAEH,sBAAsB;gBAC9CY,MAAMb,iBAAiB;oBACrBa,MAAMX,OAAOmG,YAAY,OAAO,IAAIzH,YAAY,IAAIC,eAAegC,SAASA;oBAC5EX;oBACAQ;oBACAE;gBACF;gBACAV;YACF;QACF;IACF;IACAoG,OAAO,CAAC,EAAEpG,KAAK,EAAEQ,aAAa,EAAEC,gBAAgB,EAAEC,iBAAiB,EAAE,GAAM,CAAA;YACzE,GAAGD,gBAAgB;YACnB,CAAChB,WAAWO,MAAME,IAAI,EAAE,EAAEH,sBAAsB;gBAC9CY,MAAMb,iBAAiB;oBACrBa,MAAM,IAAIjC,YAAY,IAAIC,eAAeH;oBACzCwB;oBACAQ;oBACAE;gBACF;gBACAV;YACF;QACF,CAAA;IACAqG,OAAO,CAAC,EAAErG,KAAK,EAAEQ,aAAa,EAAEC,gBAAgB,EAAEC,iBAAiB,EAAEK,UAAU,EAAE,GAAM,CAAA;YACrF,GAAGN,gBAAgB;YACnB,CAAChB,WAAWO,MAAME,IAAI,EAAE,EAAEH,sBAAsB;gBAC9CY,MAAMb,iBAAiB;oBACrBa,MAAM,IAAIpC,gBAAgB;wBACxB2B,MAAMV,kBAAkBuB,YAAYf,MAAME,IAAI;wBAC9CoG,QAAQ5G,cAAcM;oBACxB;oBACAA;oBACAQ;oBACAE;gBACF;gBACAV;YACF;QACF,CAAA;IACAuG,cAAc,CAAC,EACb1F,MAAM,EACNb,KAAK,EACLQ,aAAa,EACbM,aAAa,EACbiC,qBAAqB,EACrBtC,gBAAgB,EAChBC,iBAAiB,EACjBK,UAAU,EACX;QACC,MAAM,EAAEqE,UAAU,EAAE,GAAGpF;QACvB,MAAMwG,6BAA6BzC,MAAMC,OAAO,CAACoB;QACjD,MAAMqB,gBAAgBzG,MAAMmG,OAAO;QACnC,MAAMO,mBAAmBlH,kBAAkBuB,YAAY3B,QAAQY,MAAME,IAAI,EAAE;QAE3E,IAAIS;QACJ,IAAIgG,iBAAiB;QAErB,MAAMC,qBAAqB/F,OAAOqD,WAAW,CAAC2C,MAAM,CAClD,CAACC,mBAAqBA,iBAAiB1E,OAAO,KAAK;QAGrD,IAAI2B,MAAMC,OAAO,CAACoB,aAAa;YAC7BuB,iBAAiB,IAAIpI,gBAAgB;gBACnC2B,MAAM,GAAGwG,iBAAiB,WAAW,CAAC;gBACtCJ,QAAQlB,WACLyB,MAAM,CAAC,CAACE,WACPH,mBAAmBI,IAAI,CAAC,CAAC/C,aAAeA,WAAW1D,IAAI,KAAKwG,WAE7DlF,MAAM,CACL,CAACoF,WAAWF,WAAc,CAAA;wBACxB,GAAGE,SAAS;wBACZ,CAACxH,WAAWsH,UAAU,EAAE;4BACtBxB,OAAOwB;wBACT;oBACF,CAAA,GACA,CAAC;YAEP;YAEA,iDAAiD;YACjD,MAAM9F,QAAQmE,WACXyB,MAAM,CAAC,CAACE,WAAaH,mBAAmBI,IAAI,CAAC,CAAC/C,aAAeA,WAAW1D,IAAI,KAAKwG,WACjFG,GAAG,CAAC,CAACH,WAAajG,cAAcoD,WAAW,CAAC6C,SAAS,EAAE3E,QAAQzB;YAElEA,OAAO,IAAI/B,kBAAkB;gBAC3BsB,MAAM,GAAGwG,iBAAiB,aAAa,CAAC;gBACxCtF,QAAQ;oBACNgE,YAAY;wBACVzE,MAAMgG;oBACR;oBACApB,OAAO;wBACL5E,MAAM,IAAI7B,iBAAiB;4BACzBoB,MAAMwG;4BACNlE,aAAYC,IAAI;gCACd,OAAO3B,cAAcoD,WAAW,CAACzB,KAAKwB,UAAU,CAAC,CAAC7B,OAAO,CAACzB,IAAI,CAACT,IAAI;4BACrE;4BACAe;wBACF;oBACF;gBACF;YACF;QACF,OAAO;;YACH,CAAA,EAAEN,IAAI,EAAE,GAAGG,cAAcoD,WAAW,CAACkB,WAAW,CAAChD,OAAO,AAAD;QAC3D;QAEA,sDAAsD;QACtD,gEAAgE;QAChE,2EAA2E;QAC3E,mCAAmC;QAEnCzB,OAAOA,QAAQoC;QAEf,MAAMoE,mBAOF,CAAC;QAEL,MAAMC,qBAAqB,AAACrD,CAAAA,MAAMC,OAAO,CAACoB,cAAcA,aAAa;YAACA;SAAW,AAAD,EAC7EyB,MAAM,CAAC,CAACE,WAAaH,mBAAmBI,IAAI,CAAC,CAAC/C,aAAeA,WAAW1D,IAAI,KAAKwG,WACjFC,IAAI,CAAC,CAACD,WAAajG,cAAcoD,WAAW,CAAC6C,SAAS,CAAClG,MAAM,CAACwG,QAAQ,EAAEC;QAE3E,IAAIF,oBAAoB;YACtBD,iBAAiBrC,KAAK,GAAG;gBACvBnE,MAAMrC;YACR;QACF;QAEA,IAAIuC,OAAO0G,YAAY,EAAE;YACvBJ,iBAAiBtB,MAAM,GAAG;gBACxBlF,MAAMG,cAAcG,KAAK,CAACuG,eAAe;YAC3C;YAEAL,iBAAiBvB,cAAc,GAAG;gBAChCjF,MAAMG,cAAcG,KAAK,CAACwG,uBAAuB;YACnD;QACF;QAEA,MAAMlB,eAAsD;YAC1D5F,MAAMb,iBAAiB;gBACrBa,MAAM8F,gBAAgB,IAAI/H,YAAY,IAAIC,eAAegC,SAASA;gBAClEX;gBACA,0FAA0F;gBAC1FQ,eAAe,CAACR,MAAMmG,OAAO;gBAC7BzF;YACF;YACA6C,MAAM4D;YACNhH,YAAY;gBACVwE,YAAY,OAAO3E,OAAOoC,SAASuC,eAAe,WAAW3E,MAAMoC,OAAO,CAACuC,UAAU,GAAG;gBACxF3E;YACF;YACA,MAAMI,SAAQC,MAAM,EAAEkD,IAAI,EAAEC,OAAO,EAAEoB,IAAI;gBACvC,MAAMW,QAAQlF,MAAM,CAACL,MAAME,IAAI,CAAC;gBAChC,MAAM2F,SAAStC,KAAKsC,MAAM,IAAIrC,QAAQqB,GAAG,CAACgB,MAAM;gBAChD,MAAMD,iBAAiBrC,KAAKqC,cAAc,IAAIpC,QAAQqB,GAAG,CAACe,cAAc;gBACxE,IAAI8B,wBAAwB1H,MAAMoF,UAAU;gBAC5C,MAAMN,QAAQC,QAAQxB,KAAKuB,KAAK,IAAItB,QAAQqB,GAAG,CAACG,KAAK,EAAEF;gBACvD,MAAMG,SAAStF,cAAciF,MAAMpB,QAAQyB,MAAM,EAAEzB;gBAEnD,IAAIiD,eAAe;oBACjB,MAAMkB,UAAU,EAAE;oBAClB,MAAMC,iBAAiB,EAAE;oBAEzB,MAAMC,0BAA0B,OAAOC,YAAYC;wBACjD,IAAIrE,KAAKoE;wBACT,IAAIhF,iBAAiB9C,MAAMoF,UAAU;wBACrC,MAAM4C,2BAA2BxB,6BAC7BI,mBAAmBI,IAAI,CAAC,CAAC/C,aAAenB,eAAemF,QAAQ,CAAChE,WAAW1D,IAAI,KAC/EqG,mBAAmBI,IAAI,CAAC,CAAC/C,aAAenB,mBAAmBmB,WAAW1D,IAAI;wBAE9E,IAAIyH,0BAA0B;4BAC5B,IAAIxB,4BAA4B;gCAC9B1D,iBAAiBgF,WAAW1C,UAAU;gCACtC1B,KAAKoE,WAAWvC,KAAK;4BACvB;4BAEA,MAAM2C,SAAS,MAAM1E,QAAQqB,GAAG,CAACsD,iBAAiB,CAACC,IAAI,CACrDlJ,yBAAyB;gCACvB4D,gBAAgBA;gCAChBuF,cAAc;gCACd1C,OAAO;gCACP2C,OAAO5E;gCACPoB;gCACAc;gCACAC;gCACAH,gBAAgB;gCAChBT;gCACAsD,kBAAkB;gCAClBC,eAAehF,QAAQqB,GAAG,CAAC2D,aAAa;4BAC1C;4BAGF,IAAIN,QAAQ;gCACV,IAAI1B,4BAA4B;oCAC9BmB,QAAQrF,IAAI,CAAC;wCACX8C,YAAYtC;wCACZyC,OAAO;4CACL,GAAG2C,MAAM;4CACTjE,YAAYnB;wCACd;oCACF;gCACF,OAAO;oCACL6E,QAAQrF,IAAI,CAAC4F;gCACf;4BACF;wBACF;oBACF;oBAEA,IAAI3C,OAAO;wBACTA,MAAMkD,OAAO,CAAC,CAACX,YAAYC;4BACzBH,eAAetF,IAAI,CAACuF,wBAAwBC,YAAYC;wBAC1D;oBACF;oBAEA,MAAMW,QAAQC,GAAG,CAACf;oBAClB,OAAOD;gBACT;gBAEA,IAAIjE,KAAK6B;gBACT,IAAIiB,8BAA8BjB,OAAO;oBACvC7B,KAAK6B,MAAMA,KAAK;oBAChBmC,wBAAwBnC,MAAMH,UAAU;gBAC1C;gBAEA,IAAI1B,IAAI;oBACN,IAAIkD,mBAAmBI,IAAI,CAAC,CAAC/C,aAAeA,WAAW1D,IAAI,KAAKmH,wBAAwB;wBACtF,MAAMkB,kBAAkB,MAAMpF,QAAQqB,GAAG,CAACsD,iBAAiB,CAACC,IAAI,CAC9DlJ,yBAAyB;4BACvB4D,gBAAgB4E;4BAChBW,cAAc;4BACd1C,OAAO;4BACP2C,OAAO5E;4BACPoB;4BACAc;4BACAC;4BACAH,gBAAgB;4BAChBT;4BACAsD,kBAAkB;4BAClBC,eAAehF,QAAQqB,GAAG,CAAC2D,aAAa;wBAC1C;wBAGF,IAAII,iBAAiB;4BACnB,IAAIpC,4BAA4B;gCAC9B,OAAO;oCACLpB,YAAYsC;oCACZnC,OAAO;wCACL,GAAGqD,eAAe;wCAClB3E,YAAYyD;oCACd;gCACF;4BACF;4BAEA,OAAOkB;wBACT;oBACF;oBAEA,OAAO;gBACT;gBAEA,OAAO;YACT;QACF;QAEA,OAAO;YACL,GAAGnI,gBAAgB;YACnB,CAAChB,WAAWO,MAAME,IAAI,EAAE,EAAEqG;QAC5B;IACF;IACAsC,UAAU,CAAC,EAAEhI,MAAM,EAAEb,KAAK,EAAEQ,aAAa,EAAEC,gBAAgB,EAAEC,iBAAiB,EAAE,GAAM,CAAA;YACpF,GAAGD,gBAAgB;YACnB,CAAChB,WAAWO,MAAME,IAAI,EAAE,EAAE;gBACxBS,MAAMb,iBAAiB;oBACrBa,MAAMpB;oBACNS;oBACAQ;oBACAE;gBACF;gBACA6C,MAAM;oBACJoC,OAAO;wBACLhF,MAAMlC;oBACR;gBACF;gBACA0B,YAAY;oBACVH;gBACF;gBACA,MAAMI,SAAQC,MAAM,EAAEkD,IAAI,EAAEC,OAAgB;oBAC1C,IAAImC,QAAQ9E,OAAOiI,YAAY;oBAC/B,IAAI,OAAOvF,KAAKoC,KAAK,KAAK,aAAa;wBACrCA,QAAQpC,KAAKoC,KAAK;oBACpB;oBACA,IAAI,CAAC3F,OAAO+I,QAAQ;wBAClB,MAAM,IAAI5J,kBAAkBa,OAAO,8HAA8H;;oBACnK;oBAEA,IAAI,OAAOA,OAAO+I,WAAW,YAAY;wBACvC,MAAM,IAAIvD,MAAM;oBAClB;oBAEA,MAAMuD,SAA0B/I,OAAO+I;oBAEvC,4DAA4D;oBAC5D,qGAAqG;oBACrG,8CAA8C;oBAC9C,sEAAsE;oBACtE,gJAAgJ;oBAChJ,IAAIA,QAAQC,2BAA2B;wBACrC,MAAMC,gBAAgB,EAAE;wBACxB,MAAMC,qBAAqB,EAAE;wBAC7B,MAAMC,gBACJnJ,OAAOoJ,aAAaC,aAAarJ,OAAOoJ,WAAWzD,QAAQ3F,OAAOoJ,WAAWzD;wBAE/EoD,QAAQC,0BAA0B;4BAChCxF;4BACAmC,OAAOwD;4BACPrE,OAAOvB,KAAKuB,KAAK;4BACjB9E;4BACAiJ;4BACAK,UAAU;4BACVC,gBAAgB;4BAChB7D,gBAAgB;4BAChBhF;4BACAwI;4BACArE,KAAKrB,QAAQqB,GAAG;4BAChB0D,kBAAkB;4BAClBiB,YAAYnJ;wBACd;wBACA,MAAMqI,QAAQC,GAAG,CAACM;wBAClB,MAAMP,QAAQC,GAAG,CAACO;oBACpB;oBAEA,OAAO7I,MAAM,CAACL,MAAME,IAAI,CAAC;gBAC3B;YACF;QACF,CAAA;IACAuJ,KAAK,CAAC,EAAEzJ,KAAK,EAAES,gBAAgB,EAAE,GAAGR,MAAM,GACxCD,MAAMoB,MAAM,CAACS,MAAM,CAAC,CAAC6H,+BAA+BzG;YAClD,MAAMC,cAAuC5C,gBAAgB,CAAC2C,SAAStC,IAAI,CAAC;YAC5E,IAAIuC,aAAa;gBACf,OAAOA,YAAY;oBACjBlD,OAAOiD;oBACPxC,kBAAkBiJ;oBAClB,GAAGzJ,IAAI;gBACT;YACF;YACA,OAAOyJ;QACT,GAAGjJ;IACLwE,QAAQ,CAAC,EAAEjF,KAAK,EAAEQ,aAAa,EAAEC,gBAAgB,EAAEC,iBAAiB,EAAEK,UAAU,EAAE;QAChF,MAAMwB,WAAW/C,kBAAkBuB,YAAYf,MAAME,IAAI;QAEzD,IAAIS,OAA0B,IAAIpC,gBAAgB;YAChD2B,MAAMqC;YACN+D,QAAQ5G,cAAcM;QACxB;QAEAW,OAAOX,MAAMmG,OAAO,GAAG,IAAIzH,YAAY,IAAIC,eAAegC,SAASA;QACnEA,OAAOb,iBAAiB;YAAEa;YAAMX;YAAOQ;YAAeE;QAAkB;QAExE,OAAO;YACL,GAAGD,gBAAgB;YACnB,CAAChB,WAAWO,MAAME,IAAI,EAAE,EAAEH,sBAAsB;gBAAEY;gBAAMX;YAAM;QAChE;IACF;IACA2J,MAAM,CAAC,EACL7G,cAAc,EACdjC,MAAM,EACNb,KAAK,EACLQ,aAAa,EACbM,aAAa,EACbiC,qBAAqB,EACrBtC,gBAAgB,EAChBC,iBAAiB,EACjBK,UAAU,EACX,GACCf,MAAM2J,IAAI,CAAC9H,MAAM,CAAC,CAAC+H,WAAWC;YAC5B,IAAIvK,WAAWuK,MAAM;gBACnB,MAAM7I,gBACJ6I,KAAK7I,iBAAiBxB,kBAAkBuB,YAAY3B,QAAQyK,IAAI3J,IAAI,EAAE;gBAExE,IAAI,CAACY,cAAcG,KAAK,CAACqC,UAAU,CAACtC,cAAc,EAAE;oBAClD,MAAMG,aAAavB,gBAAgB;wBACjCM,MAAMc;wBACN8B;wBACAjC;wBACAO,QAAQyI,IAAIzI,MAAM;wBAClBZ;wBACAM;wBACAJ,mBAAmBmJ,IAAIxI,SAAS,IAAIX;wBACpCK,YAAYC;oBACd;oBAEA,IAAIM,OAAOC,IAAI,CAACJ,WAAWK,SAAS,IAAIC,MAAM,EAAE;wBAC9CX,cAAcG,KAAK,CAACqC,UAAU,CAACtC,cAAc,GAAGG;oBAClD;gBACF;gBAEA,IAAI,CAACL,cAAcG,KAAK,CAACqC,UAAU,CAACtC,cAAc,EAAE;oBAClD,OAAO4I;gBACT;gBAEA,OAAO;oBACL,GAAGA,SAAS;oBACZ,CAACC,IAAI3J,IAAI,CAAC,EAAE;wBACVS,MAAMG,cAAcG,KAAK,CAACqC,UAAU,CAACtC,cAAc;wBACnDZ,SAAQC,MAAM,EAAEkD,IAAI,EAAEC,OAAgB;4BACpC,OAAO;gCACL,GAAGnD,MAAM,CAACwJ,IAAI3J,IAAI,CAAC;gCACnBuD,KAAKpD,OAAOoD,GAAG,IAAIpD,OAAOqD,EAAE;4BAC9B;wBACF;oBACF;gBACF;YACF;YAEA,OAAO;gBACL,GAAGkG,SAAS;gBACZ,GAAGC,IAAIzI,MAAM,CAACS,MAAM,CAAC,CAACiI,gBAAgB7G;oBACpC,MAAMC,cAAuC5C,gBAAgB,CAAC2C,SAAStC,IAAI,CAAC;oBAC5E,IAAIuC,aAAa;wBACf,OAAOA,YAAY;4BACjBJ;4BACAjC;4BACAb,OAAOiD;4BACPzC;4BACAM;4BACAiC;4BACAtC,kBAAkBqJ;4BAClBpJ;4BACAK;wBACF;oBACF;oBACA,OAAO+I;gBACT,GAAGF,UAAU;YACf;QACF,GAAGnJ;IACLsJ,MAAM,CAAC,EAAE/J,KAAK,EAAEQ,aAAa,EAAEC,gBAAgB,EAAEC,iBAAiB,EAAE,GAAM,CAAA;YACxE,GAAGD,gBAAgB;YACnB,CAAChB,WAAWO,MAAME,IAAI,EAAE,EAAEH,sBAAsB;gBAC9CY,MAAMb,iBAAiB;oBACrBa,MACEX,MAAMmG,OAAO,KAAK,OACd,IAAIzH,YAAY,IAAIC,eAAeE,kBACnCA;oBACNmB;oBACAQ;oBACAE;gBACF;gBACAV;YACF;QACF,CAAA;IACAgK,UAAU,CAAC,EAAEhK,KAAK,EAAEQ,aAAa,EAAEC,gBAAgB,EAAEC,iBAAiB,EAAE,GAAM,CAAA;YAC5E,GAAGD,gBAAgB;YACnB,CAAChB,WAAWO,MAAME,IAAI,EAAE,EAAEH,sBAAsB;gBAC9CY,MAAMb,iBAAiB;oBACrBa,MAAM9B;oBACNmB;oBACAQ;oBACAE;gBACF;gBACAV;YACF;QACF,CAAA;IACAiK,QAAQ,CAAC,EACPpJ,MAAM,EACNb,KAAK,EACLQ,aAAa,EACbM,aAAa,EACbiC,qBAAqB,EACrBtC,gBAAgB,EAChBC,iBAAiB,EACjBK,UAAU,EACX;QACC,MAAM,EAAEqE,UAAU,EAAE,GAAGpF;QACvB,MAAMwG,6BAA6BzC,MAAMC,OAAO,CAACoB;QACjD,MAAMqB,gBAAgBzG,MAAMmG,OAAO;QACnC,MAAMO,mBAAmBlH,kBAAkBuB,YAAY3B,QAAQY,MAAME,IAAI,EAAE;QAE3E,IAAIS;QACJ,IAAIgG,iBAAiB;QAErB,MAAMC,qBAAqB/F,OAAOqD,WAAW,CAAC2C,MAAM,CAClD,CAACC,mBAAqBA,iBAAiB1E,OAAO,KAAK;QAGrD,IAAI2B,MAAMC,OAAO,CAACoB,aAAa;YAC7BuB,iBAAiB,IAAIpI,gBAAgB;gBACnC2B,MAAM,GAAGwG,iBAAiB,WAAW,CAAC;gBACtCJ,QAAQlB,WAAWvD,MAAM,CACvB,CAACoF,WAAWF,WAAc,CAAA;wBACxB,GAAGE,SAAS;wBACZ,CAACxH,WAAWsH,UAAU,EAAE;4BACtBxB,OAAOwB;wBACT;oBACF,CAAA,GACA,CAAC;YAEL;YAEA,MAAM9F,QAAQmE,WAAW8B,GAAG,CAAC,CAACH,WAAajG,cAAcoD,WAAW,CAAC6C,SAAS,CAAC3E,OAAO,CAACzB,IAAI;YAE3FA,OAAO,IAAI/B,kBAAkB;gBAC3BsB,MAAM,GAAGwG,iBAAiB,aAAa,CAAC;gBACxCtF,QAAQ;oBACNgE,YAAY;wBACVzE,MAAMgG;oBACR;oBACApB,OAAO;wBACL5E,MAAM,IAAI7B,iBAAiB;4BACzBoB,MAAMwG;4BACNlE,aAAYC,IAAI;gCACd,OAAO3B,cAAcoD,WAAW,CAACzB,KAAKwB,UAAU,CAAC,CAAC7B,OAAO,CAACzB,IAAI,CAACT,IAAI;4BACrE;4BACAe;wBACF;oBACF;gBACF;YACF;QACF,OAAO;;YACH,CAAA,EAAEN,IAAI,EAAE,GAAGG,cAAcoD,WAAW,CAACkB,WAAW,CAAChD,OAAO,AAAD;QAC3D;QAEA,sDAAsD;QACtD,gEAAgE;QAChE,2EAA2E;QAC3E,mCAAmC;QAEnCzB,OAAOA,QAAQoC;QAEf,MAAMoE,mBAOF,CAAC;QAEL,MAAMC,qBAAqB,AAACrD,CAAAA,MAAMC,OAAO,CAACoB,cAAcA,aAAa;YAACA;SAAW,AAAD,EAAG4B,IAAI,CACrF,CAACD,WAAajG,cAAcoD,WAAW,CAAC6C,SAAS,CAAClG,MAAM,CAACwG,QAAQ,EAAEC;QAGrE,IAAIF,oBAAoB;YACtBD,iBAAiBrC,KAAK,GAAG;gBACvBnE,MAAMrC;YACR;QACF;QAEA,IAAIuC,OAAO0G,YAAY,EAAE;YACvBJ,iBAAiBtB,MAAM,GAAG;gBACxBlF,MAAMG,cAAcG,KAAK,CAACuG,eAAe;YAC3C;YAEAL,iBAAiBvB,cAAc,GAAG;gBAChCjF,MAAMG,cAAcG,KAAK,CAACwG,uBAAuB;YACnD;QACF;QAEA,MAAMlB,eAAsD;YAC1D5F,MAAMb,iBAAiB;gBACrBa,MAAM8F,gBAAgB,IAAI/H,YAAY,IAAIC,eAAegC,SAASA;gBAClEX;gBACA,0FAA0F;gBAC1FQ,eAAe,CAACR,MAAMmG,OAAO;gBAC7BzF;YACF;YACA6C,MAAM4D;YACNhH,YAAY;gBACVwE,YAAY,OAAO3E,OAAOoC,SAASuC,eAAe,WAAW3E,MAAMoC,OAAO,CAACuC,UAAU,GAAG;gBACxF3E;YACF;YACA,MAAMI,SAAQC,MAAM,EAAEkD,IAAI,EAAEC,OAAO,EAAEoB,IAAI;gBACvC,MAAMW,QAAQlF,MAAM,CAACL,MAAME,IAAI,CAAC;gBAChC,MAAM2F,SAAStC,KAAKsC,MAAM,IAAIrC,QAAQqB,GAAG,CAACgB,MAAM;gBAChD,MAAMD,iBAAiBrC,KAAKqC,cAAc,IAAIpC,QAAQqB,GAAG,CAACe,cAAc;gBACxE,IAAI8B,wBAAwB1H,MAAMoF,UAAU;gBAC5C,MAAMN,QAAQC,QAAQxB,KAAKuB,KAAK,IAAItB,QAAQqB,GAAG,CAACG,KAAK,EAAEF;gBACvD,MAAMG,SAAStF,cAAciF,MAAMpB,QAAQyB,MAAM,EAAEzB;gBAEnD,IAAIiD,eAAe;oBACjB,MAAMkB,UAAU,EAAE;oBAClB,MAAMC,iBAAiB,EAAE;oBAEzB,MAAMC,0BAA0B,OAAOC,YAAYC;wBACjD,IAAIrE,KAAKoE;wBACT,IAAIhF,iBAAiB9C,MAAMoF,UAAU;wBACrC,MAAM4C,2BAA2BxB,6BAC7BI,mBAAmBI,IAAI,CAAC,CAAC/C,aAAenB,eAAemF,QAAQ,CAAChE,WAAW1D,IAAI,KAC/EqG,mBAAmBI,IAAI,CAAC,CAAC/C,aAAenB,mBAAmBmB,WAAW1D,IAAI;wBAE9E,IAAIyH,0BAA0B;4BAC5B,IAAIxB,4BAA4B;gCAC9B1D,iBAAiBgF,WAAW1C,UAAU;gCACtC1B,KAAKoE,WAAWvC,KAAK;4BACvB;4BAEA,MAAM2C,SAAS,MAAM1E,QAAQqB,GAAG,CAACsD,iBAAiB,CAACC,IAAI,CACrDlJ,yBAAyB;gCACvB4D,gBAAgBA;gCAChBuF,cAAc;gCACd1C,OAAO;gCACP2C,OAAO5E;gCACPoB;gCACAc;gCACAC;gCACAH,gBAAgB;gCAChBT;gCACAsD,kBAAkB;gCAClBC,eAAehF,QAAQqB,GAAG,CAAC2D,aAAa;4BAC1C;4BAGF,IAAIN,QAAQ;gCACV,IAAI1B,4BAA4B;oCAC9BmB,QAAQrF,IAAI,CAAC;wCACX8C,YAAYtC;wCACZyC,OAAO;4CACL,GAAG2C,MAAM;4CACTjE,YAAYnB;wCACd;oCACF;gCACF,OAAO;oCACL6E,QAAQrF,IAAI,CAAC4F;gCACf;4BACF;wBACF;oBACF;oBAEA,IAAI3C,OAAO;wBACTA,MAAMkD,OAAO,CAAC,CAACX,YAAYC;4BACzBH,eAAetF,IAAI,CAACuF,wBAAwBC,YAAYC;wBAC1D;oBACF;oBAEA,MAAMW,QAAQC,GAAG,CAACf;oBAClB,OAAOD;gBACT;gBAEA,IAAIjE,KAAK6B;gBACT,IAAIiB,8BAA8BjB,OAAO;oBACvC7B,KAAK6B,MAAMA,KAAK;oBAChBmC,wBAAwBnC,MAAMH,UAAU;gBAC1C;gBAEA,IAAI1B,IAAI;oBACN,IAAIkD,mBAAmBI,IAAI,CAAC,CAAC/C,aAAeA,WAAW1D,IAAI,KAAKmH,wBAAwB;wBACtF,MAAMkB,kBAAkB,MAAMpF,QAAQqB,GAAG,CAACsD,iBAAiB,CAACC,IAAI,CAC9DlJ,yBAAyB;4BACvB4D,gBAAgB4E;4BAChBW,cAAc;4BACd1C,OAAO;4BACP2C,OAAO5E;4BACPoB;4BACAc;4BACAC;4BACAH,gBAAgB;4BAChBT;4BACAsD,kBAAkB;4BAClBC,eAAehF,QAAQqB,GAAG,CAAC2D,aAAa;wBAC1C;wBAGF,IAAII,iBAAiB;4BACnB,IAAIpC,4BAA4B;gCAC9B,OAAO;oCACLpB,YAAYsC;oCACZnC,OAAO;wCACL,GAAGqD,eAAe;wCAClB3E,YAAYyD;oCACd;gCACF;4BACF;4BAEA,OAAOkB;wBACT;oBACF;oBAEA,OAAO;gBACT;gBAEA,OAAO;YACT;QACF;QAEA,OAAO;YACL,GAAGnI,gBAAgB;YACnB,CAAChB,WAAWO,MAAME,IAAI,EAAE,EAAEqG;QAC5B;IACF;AACF,EAAC"}
@@ -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,GAAI,iCAAiC,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,oCAAqC,IAAI,KAAG,GA+HvE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"initCollections.d.ts","sourceRoot":"","sources":["../../src/schema/initCollections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,WAAW,EAEX,eAAe,EAChB,MAAM,SAAS,CAAA;AAyChB,KAAK,0BAA0B,GAAG;IAChC,MAAM,EAAE,eAAe,CAAA;IACvB,aAAa,EAAE,WAAW,CAAA;CAC3B,CAAA;AACD,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,0BAA0B,GAAG,IAAI,CAohB3F"}
1
+ {"version":3,"file":"initCollections.d.ts","sourceRoot":"","sources":["../../src/schema/initCollections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,WAAW,EAEX,eAAe,EAChB,MAAM,SAAS,CAAA;AAyChB,KAAK,0BAA0B,GAAG;IAChC,MAAM,EAAE,eAAe,CAAA;IACvB,aAAa,EAAE,WAAW,CAAA;CAC3B,CAAA;AACD,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,0BAA0B,GAAG,IAAI,CAshB3F"}
@@ -70,6 +70,11 @@ export function initCollections({ config, graphqlResult }) {
70
70
  type: config.db.defaultIDType
71
71
  });
72
72
  }
73
+ if (collectionConfig.auth) {
74
+ baseFields._strategy = {
75
+ type: GraphQLString
76
+ };
77
+ }
73
78
  const forceNullableObjectType = Boolean(versions?.drafts);
74
79
  collection.graphQL.type = buildObjectType({
75
80
  name: singularName,
@@ -439,6 +444,10 @@ export function initCollections({ config, graphqlResult }) {
439
444
  name: 'collection',
440
445
  type: 'text',
441
446
  required: true
447
+ },
448
+ {
449
+ name: '_strategy',
450
+ type: 'text'
442
451
  }
443
452
  ],
444
453
  graphqlResult,
@@ -455,9 +464,6 @@ export function initCollections({ config, graphqlResult }) {
455
464
  exp: {
456
465
  type: GraphQLInt
457
466
  },
458
- strategy: {
459
- type: GraphQLString
460
- },
461
467
  token: {
462
468
  type: GraphQLString
463
469
  },
@@ -484,9 +490,6 @@ export function initCollections({ config, graphqlResult }) {
484
490
  refreshedToken: {
485
491
  type: GraphQLString
486
492
  },
487
- strategy: {
488
- type: GraphQLString
489
- },
490
493
  user: {
491
494
  type: collection.graphQL.JWT
492
495
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/initCollections.ts"],"sourcesContent":["import type {\n Collection,\n Field,\n GraphQLInfo,\n SanitizedCollectionConfig,\n SanitizedConfig,\n} from 'payload'\n\nimport {\n GraphQLBoolean,\n GraphQLInt,\n GraphQLNonNull,\n GraphQLObjectType,\n GraphQLString,\n} from 'graphql'\nimport { buildVersionCollectionFields, flattenTopLevelFields, formatNames, toWords } from 'payload'\nimport { fieldAffectsData, getLoginOptions } from 'payload/shared'\n\nimport type { ObjectTypeConfig } from './buildObjectType.js'\n\nimport { forgotPassword } from '../resolvers/auth/forgotPassword.js'\nimport { init } from '../resolvers/auth/init.js'\nimport { login } from '../resolvers/auth/login.js'\nimport { logout } from '../resolvers/auth/logout.js'\nimport { me } from '../resolvers/auth/me.js'\nimport { refresh } from '../resolvers/auth/refresh.js'\nimport { resetPassword } from '../resolvers/auth/resetPassword.js'\nimport { unlock } from '../resolvers/auth/unlock.js'\nimport { verifyEmail } from '../resolvers/auth/verifyEmail.js'\nimport { countResolver } from '../resolvers/collections/count.js'\nimport { createResolver } from '../resolvers/collections/create.js'\nimport { getDeleteResolver } from '../resolvers/collections/delete.js'\nimport { docAccessResolver } from '../resolvers/collections/docAccess.js'\nimport { duplicateResolver } from '../resolvers/collections/duplicate.js'\nimport { findResolver } from '../resolvers/collections/find.js'\nimport { findByIDResolver } from '../resolvers/collections/findByID.js'\nimport { findVersionByIDResolver } from '../resolvers/collections/findVersionByID.js'\nimport { findVersionsResolver } from '../resolvers/collections/findVersions.js'\nimport { restoreVersionResolver } from '../resolvers/collections/restoreVersion.js'\nimport { updateResolver } from '../resolvers/collections/update.js'\nimport { formatName } from '../utilities/formatName.js'\nimport { buildMutationInputType, getCollectionIDType } from './buildMutationInputType.js'\nimport { buildObjectType } from './buildObjectType.js'\nimport { buildPaginatedListType } from './buildPaginatedListType.js'\nimport { buildPolicyType } from './buildPoliciesType.js'\nimport { buildWhereInputType } from './buildWhereInputType.js'\n\ntype InitCollectionsGraphQLArgs = {\n config: SanitizedConfig\n graphqlResult: GraphQLInfo\n}\nexport function initCollections({ config, graphqlResult }: InitCollectionsGraphQLArgs): void {\n Object.keys(graphqlResult.collections).forEach((slug) => {\n const collection: Collection = graphqlResult.collections[slug]\n const {\n config: collectionConfig,\n config: { fields, graphQL = {} as SanitizedCollectionConfig['graphQL'], versions },\n } = collection\n\n if (!graphQL) {\n return\n }\n\n let singularName\n let pluralName\n\n const fromSlug = formatNames(collection.config.slug)\n\n if (graphQL.singularName) {\n singularName = toWords(graphQL.singularName, true)\n } else {\n singularName = fromSlug.singular\n }\n if (graphQL.pluralName) {\n pluralName = toWords(graphQL.pluralName, true)\n } else {\n pluralName = fromSlug.plural\n }\n\n // For collections named 'Media' or similar,\n // there is a possibility that the singular name\n // will equal the plural name. Append `all` to the beginning\n // of potential conflicts\n if (singularName === pluralName) {\n pluralName = `all${singularName}`\n }\n\n collection.graphQL = {} as Collection['graphQL']\n\n const hasIDField =\n flattenTopLevelFields(fields).findIndex(\n (field) => fieldAffectsData(field) && field.name === 'id',\n ) > -1\n\n const idType = getCollectionIDType(config.db.defaultIDType, collectionConfig)\n\n const baseFields: ObjectTypeConfig = {}\n\n const whereInputFields = [...fields]\n\n if (!hasIDField) {\n baseFields.id = { type: new GraphQLNonNull(idType) }\n whereInputFields.push({\n name: 'id',\n type: config.db.defaultIDType as 'text',\n })\n }\n\n const forceNullableObjectType = Boolean(versions?.drafts)\n\n collection.graphQL.type = buildObjectType({\n name: singularName,\n baseFields,\n collectionSlug: collectionConfig.slug,\n config,\n fields,\n forceNullable: forceNullableObjectType,\n graphqlResult,\n parentName: singularName,\n })\n\n collection.graphQL.paginatedType = buildPaginatedListType(pluralName, collection.graphQL.type)\n\n collection.graphQL.whereInputType = buildWhereInputType({\n name: singularName,\n fields: whereInputFields,\n parentName: singularName,\n })\n\n const mutationInputFields = [...fields]\n\n if (\n collectionConfig.auth &&\n (!collectionConfig.auth.disableLocalStrategy ||\n (typeof collectionConfig.auth.disableLocalStrategy === 'object' &&\n collectionConfig.auth.disableLocalStrategy.optionalPassword))\n ) {\n mutationInputFields.push({\n name: 'password',\n type: 'text',\n label: 'Password',\n required: !(\n typeof collectionConfig.auth.disableLocalStrategy === 'object' &&\n collectionConfig.auth.disableLocalStrategy.optionalPassword\n ),\n })\n }\n\n let mutationCreateInputFields = mutationInputFields\n\n if (\n config.db.allowIDOnCreate &&\n !collectionConfig.flattenedFields.some((field) => field.name === 'id')\n ) {\n mutationCreateInputFields = [\n ...mutationCreateInputFields,\n {\n name: 'id',\n type: config.db.defaultIDType,\n } as Field,\n ]\n }\n\n const createMutationInputType = buildMutationInputType({\n name: singularName,\n config,\n fields: mutationCreateInputFields,\n graphqlResult,\n parentIsLocalized: false,\n parentName: singularName,\n })\n if (createMutationInputType) {\n collection.graphQL.mutationInputType = new GraphQLNonNull(createMutationInputType)\n }\n\n const updateMutationInputType = buildMutationInputType({\n name: `${singularName}Update`,\n config,\n fields: mutationInputFields.filter(\n (field) => !(fieldAffectsData(field) && field.name === 'id'),\n ),\n forceNullable: true,\n graphqlResult,\n parentIsLocalized: false,\n parentName: `${singularName}Update`,\n })\n if (updateMutationInputType) {\n collection.graphQL.updateMutationInputType = new GraphQLNonNull(updateMutationInputType)\n }\n\n const queriesEnabled =\n typeof collectionConfig.graphQL !== 'object' || !collectionConfig.graphQL.disableQueries\n const mutationsEnabled =\n typeof collectionConfig.graphQL !== 'object' || !collectionConfig.graphQL.disableMutations\n\n if (queriesEnabled) {\n graphqlResult.Query.fields[singularName] = {\n type: collection.graphQL.type,\n args: {\n id: { type: new GraphQLNonNull(idType) },\n draft: { type: GraphQLBoolean },\n ...(config.localization\n ? {\n fallbackLocale: { type: graphqlResult.types.fallbackLocaleInputType },\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n select: { type: GraphQLBoolean },\n trash: { type: GraphQLBoolean },\n },\n resolve: findByIDResolver(collection),\n }\n\n graphqlResult.Query.fields[pluralName] = {\n type: buildPaginatedListType(pluralName, collection.graphQL.type),\n args: {\n draft: { type: GraphQLBoolean },\n where: { type: collection.graphQL.whereInputType },\n ...(config.localization\n ? {\n fallbackLocale: { type: graphqlResult.types.fallbackLocaleInputType },\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n limit: { type: GraphQLInt },\n page: { type: GraphQLInt },\n pagination: { type: GraphQLBoolean },\n select: { type: GraphQLBoolean },\n sort: { type: GraphQLString },\n trash: { type: GraphQLBoolean },\n },\n resolve: findResolver(collection),\n }\n\n graphqlResult.Query.fields[`count${pluralName}`] = {\n type: new GraphQLObjectType({\n name: `count${pluralName}`,\n fields: {\n totalDocs: { type: GraphQLInt },\n },\n }),\n args: {\n draft: { type: GraphQLBoolean },\n trash: { type: GraphQLBoolean },\n where: { type: collection.graphQL.whereInputType },\n ...(config.localization\n ? {\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n },\n resolve: countResolver(collection),\n }\n\n graphqlResult.Query.fields[`docAccess${singularName}`] = {\n type: buildPolicyType({\n type: 'collection',\n entity: collectionConfig,\n scope: 'docAccess',\n typeSuffix: 'DocAccess',\n }),\n args: {\n id: { type: new GraphQLNonNull(idType) },\n },\n resolve: docAccessResolver(collection),\n }\n }\n\n if (mutationsEnabled) {\n graphqlResult.Mutation.fields[`create${singularName}`] = {\n type: collection.graphQL.type,\n args: {\n ...(createMutationInputType\n ? { data: { type: collection.graphQL.mutationInputType } }\n : {}),\n draft: { type: GraphQLBoolean },\n ...(config.localization\n ? {\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n },\n resolve: createResolver(collection),\n }\n\n graphqlResult.Mutation.fields[`update${singularName}`] = {\n type: collection.graphQL.type,\n args: {\n id: { type: new GraphQLNonNull(idType) },\n autosave: { type: GraphQLBoolean },\n ...(updateMutationInputType\n ? { data: { type: collection.graphQL.updateMutationInputType } }\n : {}),\n draft: { type: GraphQLBoolean },\n ...(config.localization\n ? {\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n trash: { type: GraphQLBoolean },\n },\n resolve: updateResolver(collection),\n }\n\n graphqlResult.Mutation.fields[`delete${singularName}`] = {\n type: collection.graphQL.type,\n args: {\n id: { type: new GraphQLNonNull(idType) },\n trash: { type: GraphQLBoolean },\n },\n resolve: getDeleteResolver(collection),\n }\n\n if (collectionConfig.disableDuplicate !== true) {\n graphqlResult.Mutation.fields[`duplicate${singularName}`] = {\n type: collection.graphQL.type,\n args: {\n id: { type: new GraphQLNonNull(idType) },\n ...(createMutationInputType\n ? { data: { type: collection.graphQL.mutationInputType } }\n : {}),\n },\n resolve: duplicateResolver(collection),\n }\n }\n }\n\n if (collectionConfig.versions) {\n const versionIDType = config.db.defaultIDType === 'text' ? GraphQLString : GraphQLInt\n const versionCollectionFields: Field[] = [\n ...buildVersionCollectionFields(config, collectionConfig),\n {\n name: 'id',\n type: config.db.defaultIDType as 'text',\n },\n {\n name: 'createdAt',\n type: 'date',\n label: ({ t }) => t('general:createdAt'),\n },\n {\n name: 'updatedAt',\n type: 'date',\n label: ({ t }) => t('general:updatedAt'),\n },\n ]\n\n collection.graphQL.versionType = buildObjectType({\n name: `${singularName}Version`,\n collectionSlug: collectionConfig.slug,\n config,\n fields: versionCollectionFields,\n forceNullable: forceNullableObjectType,\n graphqlResult,\n parentName: `${singularName}Version`,\n })\n\n if (queriesEnabled) {\n graphqlResult.Query.fields[`version${formatName(singularName)}`] = {\n type: collection.graphQL.versionType,\n args: {\n id: { type: versionIDType },\n ...(config.localization\n ? {\n fallbackLocale: { type: graphqlResult.types.fallbackLocaleInputType },\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n trash: { type: GraphQLBoolean },\n },\n resolve: findVersionByIDResolver(collection),\n }\n graphqlResult.Query.fields[`versions${pluralName}`] = {\n type: buildPaginatedListType(\n `versions${formatName(pluralName)}`,\n collection.graphQL.versionType,\n ),\n args: {\n where: {\n type: buildWhereInputType({\n name: `versions${singularName}`,\n fields: versionCollectionFields,\n parentName: `versions${singularName}`,\n }),\n },\n ...(config.localization\n ? {\n fallbackLocale: { type: graphqlResult.types.fallbackLocaleInputType },\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n limit: { type: GraphQLInt },\n page: { type: GraphQLInt },\n pagination: { type: GraphQLBoolean },\n select: { type: GraphQLBoolean },\n sort: { type: GraphQLString },\n trash: { type: GraphQLBoolean },\n },\n resolve: findVersionsResolver(collection),\n }\n }\n\n if (mutationsEnabled) {\n graphqlResult.Mutation.fields[`restoreVersion${formatName(singularName)}`] = {\n type: collection.graphQL.type,\n args: {\n id: { type: versionIDType },\n draft: { type: GraphQLBoolean },\n },\n resolve: restoreVersionResolver(collection),\n }\n }\n }\n\n if (collectionConfig.auth) {\n const authFields: Field[] =\n collectionConfig.auth.disableLocalStrategy ||\n (collectionConfig.auth.loginWithUsername &&\n !collectionConfig.auth.loginWithUsername.allowEmailLogin &&\n !collectionConfig.auth.loginWithUsername.requireEmail)\n ? []\n : [\n {\n name: 'email',\n type: 'email',\n required: true,\n },\n ]\n collection.graphQL.JWT = buildObjectType({\n name: formatName(`${slug}JWT`),\n config,\n fields: [\n ...collectionConfig.fields.filter((field) => fieldAffectsData(field) && field.saveToJWT),\n ...authFields,\n {\n name: 'collection',\n type: 'text',\n required: true,\n },\n ],\n graphqlResult,\n parentName: formatName(`${slug}JWT`),\n })\n\n if (queriesEnabled) {\n graphqlResult.Query.fields[`me${singularName}`] = {\n type: new GraphQLObjectType({\n name: formatName(`${slug}Me`),\n fields: {\n collection: {\n type: GraphQLString,\n },\n exp: {\n type: GraphQLInt,\n },\n strategy: {\n type: GraphQLString,\n },\n token: {\n type: GraphQLString,\n },\n user: {\n type: collection.graphQL.type,\n },\n },\n }),\n resolve: me(collection),\n }\n\n graphqlResult.Query.fields[`initialized${singularName}`] = {\n type: GraphQLBoolean,\n resolve: init(collection.config.slug),\n }\n }\n\n if (mutationsEnabled) {\n graphqlResult.Mutation.fields[`refreshToken${singularName}`] = {\n type: new GraphQLObjectType({\n name: formatName(`${slug}Refreshed${singularName}`),\n fields: {\n exp: {\n type: GraphQLInt,\n },\n refreshedToken: {\n type: GraphQLString,\n },\n strategy: {\n type: GraphQLString,\n },\n user: {\n type: collection.graphQL.JWT,\n },\n },\n }),\n resolve: refresh(collection),\n }\n\n graphqlResult.Mutation.fields[`logout${singularName}`] = {\n type: GraphQLString,\n args: {\n allSessions: { type: GraphQLBoolean },\n },\n resolve: logout(collection),\n }\n\n if (!collectionConfig.auth.disableLocalStrategy) {\n const authArgs = {}\n\n const { canLoginWithEmail, canLoginWithUsername } = getLoginOptions(\n collectionConfig.auth.loginWithUsername,\n )\n\n if (canLoginWithEmail) {\n authArgs['email'] = { type: new GraphQLNonNull(GraphQLString) }\n }\n if (canLoginWithUsername) {\n authArgs['username'] = { type: new GraphQLNonNull(GraphQLString) }\n }\n\n if (collectionConfig.auth.maxLoginAttempts > 0) {\n graphqlResult.Mutation.fields[`unlock${singularName}`] = {\n type: new GraphQLNonNull(GraphQLBoolean),\n args: authArgs,\n resolve: unlock(collection),\n }\n }\n\n graphqlResult.Mutation.fields[`login${singularName}`] = {\n type: new GraphQLObjectType({\n name: formatName(`${slug}LoginResult`),\n fields: {\n exp: {\n type: GraphQLInt,\n },\n token: {\n type: GraphQLString,\n },\n user: {\n type: collection.graphQL.type,\n },\n },\n }),\n args: {\n ...authArgs,\n password: { type: GraphQLString },\n },\n resolve: login(collection),\n }\n\n graphqlResult.Mutation.fields[`forgotPassword${singularName}`] = {\n type: new GraphQLNonNull(GraphQLBoolean),\n args: {\n ...authArgs,\n },\n resolve: forgotPassword(collection),\n }\n\n graphqlResult.Mutation.fields[`resetPassword${singularName}`] = {\n type: new GraphQLObjectType({\n name: formatName(`${slug}ResetPassword`),\n fields: {\n token: { type: GraphQLString },\n user: { type: collection.graphQL.type },\n },\n }),\n args: {\n password: { type: GraphQLString },\n token: { type: GraphQLString },\n },\n resolve: resetPassword(collection),\n }\n\n graphqlResult.Mutation.fields[`verifyEmail${singularName}`] = {\n type: GraphQLBoolean,\n args: {\n token: { type: GraphQLString },\n },\n resolve: verifyEmail(collection),\n }\n }\n }\n }\n })\n}\n"],"names":["GraphQLBoolean","GraphQLInt","GraphQLNonNull","GraphQLObjectType","GraphQLString","buildVersionCollectionFields","flattenTopLevelFields","formatNames","toWords","fieldAffectsData","getLoginOptions","forgotPassword","init","login","logout","me","refresh","resetPassword","unlock","verifyEmail","countResolver","createResolver","getDeleteResolver","docAccessResolver","duplicateResolver","findResolver","findByIDResolver","findVersionByIDResolver","findVersionsResolver","restoreVersionResolver","updateResolver","formatName","buildMutationInputType","getCollectionIDType","buildObjectType","buildPaginatedListType","buildPolicyType","buildWhereInputType","initCollections","config","graphqlResult","Object","keys","collections","forEach","slug","collection","collectionConfig","fields","graphQL","versions","singularName","pluralName","fromSlug","singular","plural","hasIDField","findIndex","field","name","idType","db","defaultIDType","baseFields","whereInputFields","id","type","push","forceNullableObjectType","Boolean","drafts","collectionSlug","forceNullable","parentName","paginatedType","whereInputType","mutationInputFields","auth","disableLocalStrategy","optionalPassword","label","required","mutationCreateInputFields","allowIDOnCreate","flattenedFields","some","createMutationInputType","parentIsLocalized","mutationInputType","updateMutationInputType","filter","queriesEnabled","disableQueries","mutationsEnabled","disableMutations","Query","args","draft","localization","fallbackLocale","types","fallbackLocaleInputType","locale","localeInputType","select","trash","resolve","where","limit","page","pagination","sort","totalDocs","entity","scope","typeSuffix","Mutation","data","autosave","disableDuplicate","versionIDType","versionCollectionFields","t","versionType","authFields","loginWithUsername","allowEmailLogin","requireEmail","JWT","saveToJWT","exp","strategy","token","user","refreshedToken","allSessions","authArgs","canLoginWithEmail","canLoginWithUsername","maxLoginAttempts","password"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/schema/initCollections.ts"],"sourcesContent":["import type {\n Collection,\n Field,\n GraphQLInfo,\n SanitizedCollectionConfig,\n SanitizedConfig,\n} from 'payload'\n\nimport {\n GraphQLBoolean,\n GraphQLInt,\n GraphQLNonNull,\n GraphQLObjectType,\n GraphQLString,\n} from 'graphql'\nimport { buildVersionCollectionFields, flattenTopLevelFields, formatNames, toWords } from 'payload'\nimport { fieldAffectsData, getLoginOptions } from 'payload/shared'\n\nimport type { ObjectTypeConfig } from './buildObjectType.js'\n\nimport { forgotPassword } from '../resolvers/auth/forgotPassword.js'\nimport { init } from '../resolvers/auth/init.js'\nimport { login } from '../resolvers/auth/login.js'\nimport { logout } from '../resolvers/auth/logout.js'\nimport { me } from '../resolvers/auth/me.js'\nimport { refresh } from '../resolvers/auth/refresh.js'\nimport { resetPassword } from '../resolvers/auth/resetPassword.js'\nimport { unlock } from '../resolvers/auth/unlock.js'\nimport { verifyEmail } from '../resolvers/auth/verifyEmail.js'\nimport { countResolver } from '../resolvers/collections/count.js'\nimport { createResolver } from '../resolvers/collections/create.js'\nimport { getDeleteResolver } from '../resolvers/collections/delete.js'\nimport { docAccessResolver } from '../resolvers/collections/docAccess.js'\nimport { duplicateResolver } from '../resolvers/collections/duplicate.js'\nimport { findResolver } from '../resolvers/collections/find.js'\nimport { findByIDResolver } from '../resolvers/collections/findByID.js'\nimport { findVersionByIDResolver } from '../resolvers/collections/findVersionByID.js'\nimport { findVersionsResolver } from '../resolvers/collections/findVersions.js'\nimport { restoreVersionResolver } from '../resolvers/collections/restoreVersion.js'\nimport { updateResolver } from '../resolvers/collections/update.js'\nimport { formatName } from '../utilities/formatName.js'\nimport { buildMutationInputType, getCollectionIDType } from './buildMutationInputType.js'\nimport { buildObjectType } from './buildObjectType.js'\nimport { buildPaginatedListType } from './buildPaginatedListType.js'\nimport { buildPolicyType } from './buildPoliciesType.js'\nimport { buildWhereInputType } from './buildWhereInputType.js'\n\ntype InitCollectionsGraphQLArgs = {\n config: SanitizedConfig\n graphqlResult: GraphQLInfo\n}\nexport function initCollections({ config, graphqlResult }: InitCollectionsGraphQLArgs): void {\n Object.keys(graphqlResult.collections).forEach((slug) => {\n const collection: Collection = graphqlResult.collections[slug]\n const {\n config: collectionConfig,\n config: { fields, graphQL = {} as SanitizedCollectionConfig['graphQL'], versions },\n } = collection\n\n if (!graphQL) {\n return\n }\n\n let singularName\n let pluralName\n\n const fromSlug = formatNames(collection.config.slug)\n\n if (graphQL.singularName) {\n singularName = toWords(graphQL.singularName, true)\n } else {\n singularName = fromSlug.singular\n }\n if (graphQL.pluralName) {\n pluralName = toWords(graphQL.pluralName, true)\n } else {\n pluralName = fromSlug.plural\n }\n\n // For collections named 'Media' or similar,\n // there is a possibility that the singular name\n // will equal the plural name. Append `all` to the beginning\n // of potential conflicts\n if (singularName === pluralName) {\n pluralName = `all${singularName}`\n }\n\n collection.graphQL = {} as Collection['graphQL']\n\n const hasIDField =\n flattenTopLevelFields(fields).findIndex(\n (field) => fieldAffectsData(field) && field.name === 'id',\n ) > -1\n\n const idType = getCollectionIDType(config.db.defaultIDType, collectionConfig)\n\n const baseFields: ObjectTypeConfig = {}\n\n const whereInputFields = [...fields]\n\n if (!hasIDField) {\n baseFields.id = { type: new GraphQLNonNull(idType) }\n whereInputFields.push({\n name: 'id',\n type: config.db.defaultIDType as 'text',\n })\n }\n\n if (collectionConfig.auth) {\n baseFields._strategy = { type: GraphQLString }\n }\n\n const forceNullableObjectType = Boolean(versions?.drafts)\n\n collection.graphQL.type = buildObjectType({\n name: singularName,\n baseFields,\n collectionSlug: collectionConfig.slug,\n config,\n fields,\n forceNullable: forceNullableObjectType,\n graphqlResult,\n parentName: singularName,\n })\n\n collection.graphQL.paginatedType = buildPaginatedListType(pluralName, collection.graphQL.type)\n\n collection.graphQL.whereInputType = buildWhereInputType({\n name: singularName,\n fields: whereInputFields,\n parentName: singularName,\n })\n\n const mutationInputFields = [...fields]\n\n if (\n collectionConfig.auth &&\n (!collectionConfig.auth.disableLocalStrategy ||\n (typeof collectionConfig.auth.disableLocalStrategy === 'object' &&\n collectionConfig.auth.disableLocalStrategy.optionalPassword))\n ) {\n mutationInputFields.push({\n name: 'password',\n type: 'text',\n label: 'Password',\n required: !(\n typeof collectionConfig.auth.disableLocalStrategy === 'object' &&\n collectionConfig.auth.disableLocalStrategy.optionalPassword\n ),\n })\n }\n\n let mutationCreateInputFields = mutationInputFields\n\n if (\n config.db.allowIDOnCreate &&\n !collectionConfig.flattenedFields.some((field) => field.name === 'id')\n ) {\n mutationCreateInputFields = [\n ...mutationCreateInputFields,\n {\n name: 'id',\n type: config.db.defaultIDType,\n } as Field,\n ]\n }\n\n const createMutationInputType = buildMutationInputType({\n name: singularName,\n config,\n fields: mutationCreateInputFields,\n graphqlResult,\n parentIsLocalized: false,\n parentName: singularName,\n })\n if (createMutationInputType) {\n collection.graphQL.mutationInputType = new GraphQLNonNull(createMutationInputType)\n }\n\n const updateMutationInputType = buildMutationInputType({\n name: `${singularName}Update`,\n config,\n fields: mutationInputFields.filter(\n (field) => !(fieldAffectsData(field) && field.name === 'id'),\n ),\n forceNullable: true,\n graphqlResult,\n parentIsLocalized: false,\n parentName: `${singularName}Update`,\n })\n if (updateMutationInputType) {\n collection.graphQL.updateMutationInputType = new GraphQLNonNull(updateMutationInputType)\n }\n\n const queriesEnabled =\n typeof collectionConfig.graphQL !== 'object' || !collectionConfig.graphQL.disableQueries\n const mutationsEnabled =\n typeof collectionConfig.graphQL !== 'object' || !collectionConfig.graphQL.disableMutations\n\n if (queriesEnabled) {\n graphqlResult.Query.fields[singularName] = {\n type: collection.graphQL.type,\n args: {\n id: { type: new GraphQLNonNull(idType) },\n draft: { type: GraphQLBoolean },\n ...(config.localization\n ? {\n fallbackLocale: { type: graphqlResult.types.fallbackLocaleInputType },\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n select: { type: GraphQLBoolean },\n trash: { type: GraphQLBoolean },\n },\n resolve: findByIDResolver(collection),\n }\n\n graphqlResult.Query.fields[pluralName] = {\n type: buildPaginatedListType(pluralName, collection.graphQL.type),\n args: {\n draft: { type: GraphQLBoolean },\n where: { type: collection.graphQL.whereInputType },\n ...(config.localization\n ? {\n fallbackLocale: { type: graphqlResult.types.fallbackLocaleInputType },\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n limit: { type: GraphQLInt },\n page: { type: GraphQLInt },\n pagination: { type: GraphQLBoolean },\n select: { type: GraphQLBoolean },\n sort: { type: GraphQLString },\n trash: { type: GraphQLBoolean },\n },\n resolve: findResolver(collection),\n }\n\n graphqlResult.Query.fields[`count${pluralName}`] = {\n type: new GraphQLObjectType({\n name: `count${pluralName}`,\n fields: {\n totalDocs: { type: GraphQLInt },\n },\n }),\n args: {\n draft: { type: GraphQLBoolean },\n trash: { type: GraphQLBoolean },\n where: { type: collection.graphQL.whereInputType },\n ...(config.localization\n ? {\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n },\n resolve: countResolver(collection),\n }\n\n graphqlResult.Query.fields[`docAccess${singularName}`] = {\n type: buildPolicyType({\n type: 'collection',\n entity: collectionConfig,\n scope: 'docAccess',\n typeSuffix: 'DocAccess',\n }),\n args: {\n id: { type: new GraphQLNonNull(idType) },\n },\n resolve: docAccessResolver(collection),\n }\n }\n\n if (mutationsEnabled) {\n graphqlResult.Mutation.fields[`create${singularName}`] = {\n type: collection.graphQL.type,\n args: {\n ...(createMutationInputType\n ? { data: { type: collection.graphQL.mutationInputType } }\n : {}),\n draft: { type: GraphQLBoolean },\n ...(config.localization\n ? {\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n },\n resolve: createResolver(collection),\n }\n\n graphqlResult.Mutation.fields[`update${singularName}`] = {\n type: collection.graphQL.type,\n args: {\n id: { type: new GraphQLNonNull(idType) },\n autosave: { type: GraphQLBoolean },\n ...(updateMutationInputType\n ? { data: { type: collection.graphQL.updateMutationInputType } }\n : {}),\n draft: { type: GraphQLBoolean },\n ...(config.localization\n ? {\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n trash: { type: GraphQLBoolean },\n },\n resolve: updateResolver(collection),\n }\n\n graphqlResult.Mutation.fields[`delete${singularName}`] = {\n type: collection.graphQL.type,\n args: {\n id: { type: new GraphQLNonNull(idType) },\n trash: { type: GraphQLBoolean },\n },\n resolve: getDeleteResolver(collection),\n }\n\n if (collectionConfig.disableDuplicate !== true) {\n graphqlResult.Mutation.fields[`duplicate${singularName}`] = {\n type: collection.graphQL.type,\n args: {\n id: { type: new GraphQLNonNull(idType) },\n ...(createMutationInputType\n ? { data: { type: collection.graphQL.mutationInputType } }\n : {}),\n },\n resolve: duplicateResolver(collection),\n }\n }\n }\n\n if (collectionConfig.versions) {\n const versionIDType = config.db.defaultIDType === 'text' ? GraphQLString : GraphQLInt\n const versionCollectionFields: Field[] = [\n ...buildVersionCollectionFields(config, collectionConfig),\n {\n name: 'id',\n type: config.db.defaultIDType as 'text',\n },\n {\n name: 'createdAt',\n type: 'date',\n label: ({ t }) => t('general:createdAt'),\n },\n {\n name: 'updatedAt',\n type: 'date',\n label: ({ t }) => t('general:updatedAt'),\n },\n ]\n\n collection.graphQL.versionType = buildObjectType({\n name: `${singularName}Version`,\n collectionSlug: collectionConfig.slug,\n config,\n fields: versionCollectionFields,\n forceNullable: forceNullableObjectType,\n graphqlResult,\n parentName: `${singularName}Version`,\n })\n\n if (queriesEnabled) {\n graphqlResult.Query.fields[`version${formatName(singularName)}`] = {\n type: collection.graphQL.versionType,\n args: {\n id: { type: versionIDType },\n ...(config.localization\n ? {\n fallbackLocale: { type: graphqlResult.types.fallbackLocaleInputType },\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n trash: { type: GraphQLBoolean },\n },\n resolve: findVersionByIDResolver(collection),\n }\n graphqlResult.Query.fields[`versions${pluralName}`] = {\n type: buildPaginatedListType(\n `versions${formatName(pluralName)}`,\n collection.graphQL.versionType,\n ),\n args: {\n where: {\n type: buildWhereInputType({\n name: `versions${singularName}`,\n fields: versionCollectionFields,\n parentName: `versions${singularName}`,\n }),\n },\n ...(config.localization\n ? {\n fallbackLocale: { type: graphqlResult.types.fallbackLocaleInputType },\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n limit: { type: GraphQLInt },\n page: { type: GraphQLInt },\n pagination: { type: GraphQLBoolean },\n select: { type: GraphQLBoolean },\n sort: { type: GraphQLString },\n trash: { type: GraphQLBoolean },\n },\n resolve: findVersionsResolver(collection),\n }\n }\n\n if (mutationsEnabled) {\n graphqlResult.Mutation.fields[`restoreVersion${formatName(singularName)}`] = {\n type: collection.graphQL.type,\n args: {\n id: { type: versionIDType },\n draft: { type: GraphQLBoolean },\n },\n resolve: restoreVersionResolver(collection),\n }\n }\n }\n\n if (collectionConfig.auth) {\n const authFields: Field[] =\n collectionConfig.auth.disableLocalStrategy ||\n (collectionConfig.auth.loginWithUsername &&\n !collectionConfig.auth.loginWithUsername.allowEmailLogin &&\n !collectionConfig.auth.loginWithUsername.requireEmail)\n ? []\n : [\n {\n name: 'email',\n type: 'email',\n required: true,\n },\n ]\n collection.graphQL.JWT = buildObjectType({\n name: formatName(`${slug}JWT`),\n config,\n fields: [\n ...collectionConfig.fields.filter((field) => fieldAffectsData(field) && field.saveToJWT),\n ...authFields,\n {\n name: 'collection',\n type: 'text',\n required: true,\n },\n {\n name: '_strategy',\n type: 'text',\n },\n ],\n graphqlResult,\n parentName: formatName(`${slug}JWT`),\n })\n\n if (queriesEnabled) {\n graphqlResult.Query.fields[`me${singularName}`] = {\n type: new GraphQLObjectType({\n name: formatName(`${slug}Me`),\n fields: {\n collection: {\n type: GraphQLString,\n },\n exp: {\n type: GraphQLInt,\n },\n token: {\n type: GraphQLString,\n },\n user: {\n type: collection.graphQL.type,\n },\n },\n }),\n resolve: me(collection),\n }\n\n graphqlResult.Query.fields[`initialized${singularName}`] = {\n type: GraphQLBoolean,\n resolve: init(collection.config.slug),\n }\n }\n\n if (mutationsEnabled) {\n graphqlResult.Mutation.fields[`refreshToken${singularName}`] = {\n type: new GraphQLObjectType({\n name: formatName(`${slug}Refreshed${singularName}`),\n fields: {\n exp: {\n type: GraphQLInt,\n },\n refreshedToken: {\n type: GraphQLString,\n },\n user: {\n type: collection.graphQL.JWT,\n },\n },\n }),\n resolve: refresh(collection),\n }\n\n graphqlResult.Mutation.fields[`logout${singularName}`] = {\n type: GraphQLString,\n args: {\n allSessions: { type: GraphQLBoolean },\n },\n resolve: logout(collection),\n }\n\n if (!collectionConfig.auth.disableLocalStrategy) {\n const authArgs = {}\n\n const { canLoginWithEmail, canLoginWithUsername } = getLoginOptions(\n collectionConfig.auth.loginWithUsername,\n )\n\n if (canLoginWithEmail) {\n authArgs['email'] = { type: new GraphQLNonNull(GraphQLString) }\n }\n if (canLoginWithUsername) {\n authArgs['username'] = { type: new GraphQLNonNull(GraphQLString) }\n }\n\n if (collectionConfig.auth.maxLoginAttempts > 0) {\n graphqlResult.Mutation.fields[`unlock${singularName}`] = {\n type: new GraphQLNonNull(GraphQLBoolean),\n args: authArgs,\n resolve: unlock(collection),\n }\n }\n\n graphqlResult.Mutation.fields[`login${singularName}`] = {\n type: new GraphQLObjectType({\n name: formatName(`${slug}LoginResult`),\n fields: {\n exp: {\n type: GraphQLInt,\n },\n token: {\n type: GraphQLString,\n },\n user: {\n type: collection.graphQL.type,\n },\n },\n }),\n args: {\n ...authArgs,\n password: { type: GraphQLString },\n },\n resolve: login(collection),\n }\n\n graphqlResult.Mutation.fields[`forgotPassword${singularName}`] = {\n type: new GraphQLNonNull(GraphQLBoolean),\n args: {\n ...authArgs,\n },\n resolve: forgotPassword(collection),\n }\n\n graphqlResult.Mutation.fields[`resetPassword${singularName}`] = {\n type: new GraphQLObjectType({\n name: formatName(`${slug}ResetPassword`),\n fields: {\n token: { type: GraphQLString },\n user: { type: collection.graphQL.type },\n },\n }),\n args: {\n password: { type: GraphQLString },\n token: { type: GraphQLString },\n },\n resolve: resetPassword(collection),\n }\n\n graphqlResult.Mutation.fields[`verifyEmail${singularName}`] = {\n type: GraphQLBoolean,\n args: {\n token: { type: GraphQLString },\n },\n resolve: verifyEmail(collection),\n }\n }\n }\n }\n })\n}\n"],"names":["GraphQLBoolean","GraphQLInt","GraphQLNonNull","GraphQLObjectType","GraphQLString","buildVersionCollectionFields","flattenTopLevelFields","formatNames","toWords","fieldAffectsData","getLoginOptions","forgotPassword","init","login","logout","me","refresh","resetPassword","unlock","verifyEmail","countResolver","createResolver","getDeleteResolver","docAccessResolver","duplicateResolver","findResolver","findByIDResolver","findVersionByIDResolver","findVersionsResolver","restoreVersionResolver","updateResolver","formatName","buildMutationInputType","getCollectionIDType","buildObjectType","buildPaginatedListType","buildPolicyType","buildWhereInputType","initCollections","config","graphqlResult","Object","keys","collections","forEach","slug","collection","collectionConfig","fields","graphQL","versions","singularName","pluralName","fromSlug","singular","plural","hasIDField","findIndex","field","name","idType","db","defaultIDType","baseFields","whereInputFields","id","type","push","auth","_strategy","forceNullableObjectType","Boolean","drafts","collectionSlug","forceNullable","parentName","paginatedType","whereInputType","mutationInputFields","disableLocalStrategy","optionalPassword","label","required","mutationCreateInputFields","allowIDOnCreate","flattenedFields","some","createMutationInputType","parentIsLocalized","mutationInputType","updateMutationInputType","filter","queriesEnabled","disableQueries","mutationsEnabled","disableMutations","Query","args","draft","localization","fallbackLocale","types","fallbackLocaleInputType","locale","localeInputType","select","trash","resolve","where","limit","page","pagination","sort","totalDocs","entity","scope","typeSuffix","Mutation","data","autosave","disableDuplicate","versionIDType","versionCollectionFields","t","versionType","authFields","loginWithUsername","allowEmailLogin","requireEmail","JWT","saveToJWT","exp","token","user","refreshedToken","allSessions","authArgs","canLoginWithEmail","canLoginWithUsername","maxLoginAttempts","password"],"mappings":"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"}
@@ -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,GAAI,8CAI7B;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,iDAIzB;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":"operators.d.ts","sourceRoot":"","sources":["../../src/schema/operators.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;;;;;;CAOrB,CAAA"}
1
+ {"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../../src/schema/operators.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;IACpB,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,GAAG;IACH,OAAO;IACP,OAAO;CACR,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,GAAI,yCAAyC,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,4CAA6C,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;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
+ {"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,uDAK1B;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"}
@@ -11,6 +11,12 @@ import { GraphQLInputObjectType } from 'graphql';
11
11
  * @param field the field for which their valid operators inside a "where" argument is being defined
12
12
  * @param parentName the name of the parent field (if any)
13
13
  * @returns all the operators (including their types) which can be used as a condition for a given field inside a where
14
+ *
15
+ * @example
16
+ * A has-many relationship accepts a nested query with its relationship operators:
17
+ * ```graphql
18
+ * Burgers(where: { ingredients: { not_equals: { isHealthy: { equals: false } } } })
19
+ * ```
14
20
  */
15
21
  export declare const withOperators: (field: FieldAffectingData, parentName: string) => GraphQLInputObjectType;
16
22
  //# sourceMappingURL=withOperators.d.ts.map
@@ -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,GACxB,OAAO,kBAAkB,EACzB,YAAY,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;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,aAAa,UACjB,kBAAkB,cACb,MAAM,KACjB,sBA4DF,CAAA"}