@payloadcms/graphql 3.0.0-beta.11 → 3.0.0-beta.110

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 (252) hide show
  1. package/bin.js +54 -0
  2. package/dist/bin/generateSchema.d.ts +3 -0
  3. package/dist/bin/generateSchema.d.ts.map +1 -0
  4. package/dist/bin/generateSchema.js +10 -0
  5. package/dist/bin/generateSchema.js.map +1 -0
  6. package/dist/bin/index.d.ts +2 -0
  7. package/dist/bin/index.d.ts.map +1 -0
  8. package/dist/bin/index.js +17 -0
  9. package/dist/bin/index.js.map +1 -0
  10. package/dist/exports/types.d.ts +4 -0
  11. package/dist/exports/types.d.ts.map +1 -0
  12. package/dist/exports/types.js +5 -0
  13. package/dist/exports/types.js.map +1 -0
  14. package/dist/exports/utilities.d.ts +3 -0
  15. package/dist/exports/utilities.d.ts.map +1 -0
  16. package/dist/exports/utilities.js +4 -0
  17. package/dist/exports/utilities.js.map +1 -0
  18. package/dist/index.d.ts +3 -3
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +11 -11
  21. package/dist/index.js.map +1 -1
  22. package/dist/packages/graphql-query-complexity/QueryComplexity.d.ts +51 -0
  23. package/dist/packages/graphql-query-complexity/QueryComplexity.d.ts.map +1 -0
  24. package/dist/packages/graphql-query-complexity/QueryComplexity.js +270 -0
  25. package/dist/packages/graphql-query-complexity/QueryComplexity.js.map +1 -0
  26. package/dist/packages/graphql-query-complexity/createComplexityRule.d.ts +5 -0
  27. package/dist/packages/graphql-query-complexity/createComplexityRule.d.ts.map +1 -0
  28. package/dist/packages/graphql-query-complexity/createComplexityRule.js +8 -0
  29. package/dist/packages/graphql-query-complexity/createComplexityRule.js.map +1 -0
  30. package/dist/packages/graphql-query-complexity/estimators/fieldExtensions/index.d.ts +3 -0
  31. package/dist/packages/graphql-query-complexity/estimators/fieldExtensions/index.d.ts.map +1 -0
  32. package/dist/packages/graphql-query-complexity/estimators/fieldExtensions/index.js +14 -0
  33. package/dist/packages/graphql-query-complexity/estimators/fieldExtensions/index.js.map +1 -0
  34. package/dist/packages/graphql-query-complexity/estimators/simple/index.d.ts +5 -0
  35. package/dist/packages/graphql-query-complexity/estimators/simple/index.d.ts.map +1 -0
  36. package/dist/packages/graphql-query-complexity/estimators/simple/index.js +8 -0
  37. package/dist/packages/graphql-query-complexity/estimators/simple/index.js.map +1 -0
  38. package/dist/packages/graphql-query-complexity/index.d.ts +4 -0
  39. package/dist/packages/graphql-query-complexity/index.d.ts.map +1 -0
  40. package/dist/packages/graphql-query-complexity/index.js +5 -0
  41. package/dist/packages/graphql-query-complexity/index.js.map +1 -0
  42. package/dist/packages/graphql-type-json/index.d.ts +4 -0
  43. package/dist/packages/graphql-type-json/index.d.ts.map +1 -0
  44. package/dist/packages/graphql-type-json/index.js +63 -0
  45. package/dist/packages/graphql-type-json/index.js.map +1 -0
  46. package/dist/resolvers/auth/access.d.ts +2 -3
  47. package/dist/resolvers/auth/access.d.ts.map +1 -1
  48. package/dist/resolvers/auth/access.js +3 -5
  49. package/dist/resolvers/auth/access.js.map +1 -1
  50. package/dist/resolvers/auth/forgotPassword.d.ts +2 -3
  51. package/dist/resolvers/auth/forgotPassword.d.ts.map +1 -1
  52. package/dist/resolvers/auth/forgotPassword.js +4 -5
  53. package/dist/resolvers/auth/forgotPassword.js.map +1 -1
  54. package/dist/resolvers/auth/init.d.ts +1 -2
  55. package/dist/resolvers/auth/init.d.ts.map +1 -1
  56. package/dist/resolvers/auth/init.js +2 -4
  57. package/dist/resolvers/auth/init.js.map +1 -1
  58. package/dist/resolvers/auth/login.d.ts +2 -3
  59. package/dist/resolvers/auth/login.d.ts.map +1 -1
  60. package/dist/resolvers/auth/login.js +4 -6
  61. package/dist/resolvers/auth/login.js.map +1 -1
  62. package/dist/resolvers/auth/logout.d.ts +2 -3
  63. package/dist/resolvers/auth/logout.d.ts.map +1 -1
  64. package/dist/resolvers/auth/logout.js +2 -5
  65. package/dist/resolvers/auth/logout.js.map +1 -1
  66. package/dist/resolvers/auth/me.d.ts +2 -3
  67. package/dist/resolvers/auth/me.d.ts.map +1 -1
  68. package/dist/resolvers/auth/me.js +4 -4
  69. package/dist/resolvers/auth/me.js.map +1 -1
  70. package/dist/resolvers/auth/refresh.d.ts +2 -3
  71. package/dist/resolvers/auth/refresh.d.ts.map +1 -1
  72. package/dist/resolvers/auth/refresh.js +4 -13
  73. package/dist/resolvers/auth/refresh.js.map +1 -1
  74. package/dist/resolvers/auth/resetPassword.d.ts +2 -3
  75. package/dist/resolvers/auth/resetPassword.d.ts.map +1 -1
  76. package/dist/resolvers/auth/resetPassword.js +8 -7
  77. package/dist/resolvers/auth/resetPassword.js.map +1 -1
  78. package/dist/resolvers/auth/unlock.d.ts +2 -3
  79. package/dist/resolvers/auth/unlock.d.ts.map +1 -1
  80. package/dist/resolvers/auth/unlock.js +4 -5
  81. package/dist/resolvers/auth/unlock.js.map +1 -1
  82. package/dist/resolvers/auth/verifyEmail.d.ts +2 -3
  83. package/dist/resolvers/auth/verifyEmail.d.ts.map +1 -1
  84. package/dist/resolvers/auth/verifyEmail.js +8 -6
  85. package/dist/resolvers/auth/verifyEmail.js.map +1 -1
  86. package/dist/resolvers/collections/count.d.ts +12 -0
  87. package/dist/resolvers/collections/count.d.ts.map +1 -0
  88. package/dist/resolvers/collections/count.js +22 -0
  89. package/dist/resolvers/collections/count.js.map +1 -0
  90. package/dist/resolvers/collections/create.d.ts +5 -8
  91. package/dist/resolvers/collections/create.d.ts.map +1 -1
  92. package/dist/resolvers/collections/create.js +2 -3
  93. package/dist/resolvers/collections/create.js.map +1 -1
  94. package/dist/resolvers/collections/delete.d.ts +6 -6
  95. package/dist/resolvers/collections/delete.d.ts.map +1 -1
  96. package/dist/resolvers/collections/delete.js +12 -6
  97. package/dist/resolvers/collections/delete.js.map +1 -1
  98. package/dist/resolvers/collections/docAccess.d.ts +1 -2
  99. package/dist/resolvers/collections/docAccess.d.ts.map +1 -1
  100. package/dist/resolvers/collections/docAccess.js +1 -2
  101. package/dist/resolvers/collections/docAccess.js.map +1 -1
  102. package/dist/resolvers/collections/duplicate.d.ts +4 -6
  103. package/dist/resolvers/collections/duplicate.d.ts.map +1 -1
  104. package/dist/resolvers/collections/duplicate.js +3 -3
  105. package/dist/resolvers/collections/duplicate.js.map +1 -1
  106. package/dist/resolvers/collections/find.d.ts +2 -4
  107. package/dist/resolvers/collections/find.d.ts.map +1 -1
  108. package/dist/resolvers/collections/find.js +16 -6
  109. package/dist/resolvers/collections/find.js.map +1 -1
  110. package/dist/resolvers/collections/findByID.d.ts +4 -6
  111. package/dist/resolvers/collections/findByID.d.ts.map +1 -1
  112. package/dist/resolvers/collections/findByID.js +10 -3
  113. package/dist/resolvers/collections/findByID.js.map +1 -1
  114. package/dist/resolvers/collections/findVersionByID.d.ts +2 -5
  115. package/dist/resolvers/collections/findVersionByID.d.ts.map +1 -1
  116. package/dist/resolvers/collections/findVersionByID.js +3 -4
  117. package/dist/resolvers/collections/findVersionByID.js.map +1 -1
  118. package/dist/resolvers/collections/findVersions.d.ts +3 -4
  119. package/dist/resolvers/collections/findVersions.d.ts.map +1 -1
  120. package/dist/resolvers/collections/findVersions.js +12 -6
  121. package/dist/resolvers/collections/findVersions.js.map +1 -1
  122. package/dist/resolvers/collections/restoreVersion.d.ts +3 -3
  123. package/dist/resolvers/collections/restoreVersion.d.ts.map +1 -1
  124. package/dist/resolvers/collections/restoreVersion.js +3 -3
  125. package/dist/resolvers/collections/restoreVersion.js.map +1 -1
  126. package/dist/resolvers/collections/update.d.ts +6 -7
  127. package/dist/resolvers/collections/update.d.ts.map +1 -1
  128. package/dist/resolvers/collections/update.js +12 -6
  129. package/dist/resolvers/collections/update.js.map +1 -1
  130. package/dist/resolvers/globals/docAccess.d.ts +1 -2
  131. package/dist/resolvers/globals/docAccess.d.ts.map +1 -1
  132. package/dist/resolvers/globals/docAccess.js +1 -2
  133. package/dist/resolvers/globals/docAccess.js.map +1 -1
  134. package/dist/resolvers/globals/findOne.d.ts +2 -2
  135. package/dist/resolvers/globals/findOne.d.ts.map +1 -1
  136. package/dist/resolvers/globals/findOne.js +8 -5
  137. package/dist/resolvers/globals/findOne.js.map +1 -1
  138. package/dist/resolvers/globals/findVersionByID.d.ts +2 -2
  139. package/dist/resolvers/globals/findVersionByID.d.ts.map +1 -1
  140. package/dist/resolvers/globals/findVersionByID.js +8 -5
  141. package/dist/resolvers/globals/findVersionByID.js.map +1 -1
  142. package/dist/resolvers/globals/findVersions.d.ts +2 -2
  143. package/dist/resolvers/globals/findVersions.d.ts.map +1 -1
  144. package/dist/resolvers/globals/findVersions.js +2 -3
  145. package/dist/resolvers/globals/findVersions.js.map +1 -1
  146. package/dist/resolvers/globals/index.d.ts +5 -5
  147. package/dist/resolvers/globals/index.d.ts.map +1 -1
  148. package/dist/resolvers/globals/index.js +5 -5
  149. package/dist/resolvers/globals/index.js.map +1 -1
  150. package/dist/resolvers/globals/restoreVersion.d.ts +3 -2
  151. package/dist/resolvers/globals/restoreVersion.d.ts.map +1 -1
  152. package/dist/resolvers/globals/restoreVersion.js +3 -3
  153. package/dist/resolvers/globals/restoreVersion.js.map +1 -1
  154. package/dist/resolvers/globals/update.d.ts +5 -6
  155. package/dist/resolvers/globals/update.d.ts.map +1 -1
  156. package/dist/resolvers/globals/update.js +8 -5
  157. package/dist/resolvers/globals/update.js.map +1 -1
  158. package/dist/resolvers/types.d.ts +1 -1
  159. package/dist/resolvers/types.d.ts.map +1 -1
  160. package/dist/resolvers/types.js.map +1 -1
  161. package/dist/schema/buildFallbackLocaleInputType.d.ts +2 -3
  162. package/dist/schema/buildFallbackLocaleInputType.d.ts.map +1 -1
  163. package/dist/schema/buildFallbackLocaleInputType.js +2 -3
  164. package/dist/schema/buildFallbackLocaleInputType.js.map +1 -1
  165. package/dist/schema/buildLocaleInputType.d.ts +2 -3
  166. package/dist/schema/buildLocaleInputType.d.ts.map +1 -1
  167. package/dist/schema/buildLocaleInputType.js +2 -3
  168. package/dist/schema/buildLocaleInputType.js.map +1 -1
  169. package/dist/schema/buildMutationInputType.d.ts +1 -2
  170. package/dist/schema/buildMutationInputType.d.ts.map +1 -1
  171. package/dist/schema/buildMutationInputType.js +62 -19
  172. package/dist/schema/buildMutationInputType.js.map +1 -1
  173. package/dist/schema/buildObjectType.d.ts +3 -4
  174. package/dist/schema/buildObjectType.d.ts.map +1 -1
  175. package/dist/schema/buildObjectType.js +303 -102
  176. package/dist/schema/buildObjectType.js.map +1 -1
  177. package/dist/schema/buildPaginatedListType.d.ts +1 -2
  178. package/dist/schema/buildPaginatedListType.d.ts.map +1 -1
  179. package/dist/schema/buildPaginatedListType.js +1 -2
  180. package/dist/schema/buildPaginatedListType.js.map +1 -1
  181. package/dist/schema/buildPoliciesType.d.ts +2 -2
  182. package/dist/schema/buildPoliciesType.d.ts.map +1 -1
  183. package/dist/schema/buildPoliciesType.js +7 -5
  184. package/dist/schema/buildPoliciesType.js.map +1 -1
  185. package/dist/schema/buildWhereInputType.d.ts +3 -3
  186. package/dist/schema/buildWhereInputType.d.ts.map +1 -1
  187. package/dist/schema/buildWhereInputType.js +6 -7
  188. package/dist/schema/buildWhereInputType.js.map +1 -1
  189. package/dist/schema/fieldToWhereInputSchemaMap.d.ts +2 -2
  190. package/dist/schema/fieldToWhereInputSchemaMap.d.ts.map +1 -1
  191. package/dist/schema/fieldToWhereInputSchemaMap.js +32 -9
  192. package/dist/schema/fieldToWhereInputSchemaMap.js.map +1 -1
  193. package/dist/schema/initCollections.d.ts +3 -4
  194. package/dist/schema/initCollections.d.ts.map +1 -1
  195. package/dist/schema/initCollections.js +83 -49
  196. package/dist/schema/initCollections.js.map +1 -1
  197. package/dist/schema/initGlobals.d.ts +3 -4
  198. package/dist/schema/initGlobals.d.ts.map +1 -1
  199. package/dist/schema/initGlobals.js +27 -21
  200. package/dist/schema/initGlobals.js.map +1 -1
  201. package/dist/schema/isFieldNullable.d.ts +2 -3
  202. package/dist/schema/isFieldNullable.d.ts.map +1 -1
  203. package/dist/schema/isFieldNullable.js +2 -3
  204. package/dist/schema/isFieldNullable.js.map +1 -1
  205. package/dist/schema/operators.d.ts +1 -2
  206. package/dist/schema/operators.d.ts.map +1 -1
  207. package/dist/schema/operators.js +1 -2
  208. package/dist/schema/operators.js.map +1 -1
  209. package/dist/schema/recursivelyBuildNestedPaths.d.ts +3 -3
  210. package/dist/schema/recursivelyBuildNestedPaths.d.ts.map +1 -1
  211. package/dist/schema/recursivelyBuildNestedPaths.js +3 -4
  212. package/dist/schema/recursivelyBuildNestedPaths.js.map +1 -1
  213. package/dist/schema/withNullableType.d.ts +2 -3
  214. package/dist/schema/withNullableType.d.ts.map +1 -1
  215. package/dist/schema/withNullableType.js +1 -2
  216. package/dist/schema/withNullableType.js.map +1 -1
  217. package/dist/schema/withOperators.d.ts +1 -1
  218. package/dist/schema/withOperators.d.ts.map +1 -1
  219. package/dist/schema/withOperators.js +13 -8
  220. package/dist/schema/withOperators.js.map +1 -1
  221. package/dist/utilities/combineParentName.d.ts +1 -2
  222. package/dist/utilities/combineParentName.d.ts.map +1 -1
  223. package/dist/utilities/combineParentName.js +2 -3
  224. package/dist/utilities/combineParentName.js.map +1 -1
  225. package/dist/utilities/formatName.d.ts +1 -2
  226. package/dist/utilities/formatName.d.ts.map +1 -1
  227. package/dist/utilities/formatName.js +1 -2
  228. package/dist/utilities/formatName.js.map +1 -1
  229. package/dist/utilities/formatName.spec.js +1 -1
  230. package/dist/utilities/formatName.spec.js.map +1 -1
  231. package/dist/utilities/formatOptions.d.ts +2 -3
  232. package/dist/utilities/formatOptions.d.ts.map +1 -1
  233. package/dist/utilities/formatOptions.js +2 -3
  234. package/dist/utilities/formatOptions.js.map +1 -1
  235. package/dist/utilities/groupOrTabHasRequiredSubfield.d.ts +1 -1
  236. package/dist/utilities/groupOrTabHasRequiredSubfield.d.ts.map +1 -1
  237. package/dist/utilities/groupOrTabHasRequiredSubfield.js +1 -1
  238. package/dist/utilities/groupOrTabHasRequiredSubfield.js.map +1 -1
  239. package/dist/utilities/wrapCustomResolver.d.ts +1 -1
  240. package/dist/utilities/wrapCustomResolver.d.ts.map +1 -1
  241. package/dist/utilities/wrapCustomResolver.js +1 -1
  242. package/dist/utilities/wrapCustomResolver.js.map +1 -1
  243. package/package.json +37 -24
  244. package/dist/utilities/getCheckIfLocaleObject.d.ts +0 -5
  245. package/dist/utilities/getCheckIfLocaleObject.d.ts.map +0 -1
  246. package/dist/utilities/getCheckIfLocaleObject.js +0 -3
  247. package/dist/utilities/getCheckIfLocaleObject.js.map +0 -1
  248. package/dist/utilities/uppercase.d.ts +0 -3
  249. package/dist/utilities/uppercase.d.ts.map +0 -1
  250. package/dist/utilities/uppercase.js +0 -11
  251. package/dist/utilities/uppercase.js.map +0 -1
  252. package/src/index.ts +0 -126
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/buildObjectType.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\n/* eslint-disable no-await-in-loop */\n/* eslint-disable no-restricted-syntax */\nimport type { GraphQLFieldConfig, GraphQLType } from 'graphql'\nimport type { GraphQLInfo } from 'payload/config'\nimport type {\n ArrayField,\n BlockField,\n CheckboxField,\n CodeField,\n CollapsibleField,\n DateField,\n EmailField,\n Field,\n GroupField,\n JSONField,\n NumberField,\n PointField,\n RadioField,\n RelationshipField,\n RichTextAdapter,\n RichTextField,\n RowField,\n SanitizedConfig,\n SelectField,\n TabsField,\n TextField,\n TextareaField,\n UploadField,\n} from 'payload/types'\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'\n/* eslint-disable no-use-before-define */\nimport { GraphQLJSON } from 'graphql-type-json'\nimport { tabHasName } from 'payload/types'\nimport { toWords } from 'payload/utilities'\n\nimport type { Context } from '../resolvers/types.js'\n\nimport combineParentName from '../utilities/combineParentName.js'\nimport formatName from '../utilities/formatName.js'\nimport formatOptions from '../utilities/formatOptions.js'\nimport buildWhereInputType from './buildWhereInputType.js'\nimport isFieldNullable from './isFieldNullable.js'\nimport withNullableType from './withNullableType.js'\n\ntype LocaleInputType = {\n fallbackLocale: {\n type: GraphQLType\n }\n locale: {\n type: GraphQLType\n }\n where: {\n type: GraphQLType\n }\n}\n\nexport type ObjectTypeConfig = {\n [path: string]: GraphQLFieldConfig<any, any>\n}\n\ntype Args = {\n baseFields?: ObjectTypeConfig\n config: SanitizedConfig\n fields: Field[]\n forceNullable?: boolean\n graphqlResult: GraphQLInfo\n name: string\n parentName: string\n}\n\nfunction buildObjectType({\n name,\n baseFields = {},\n config,\n fields,\n forceNullable,\n graphqlResult,\n parentName,\n}: Args): GraphQLObjectType {\n const fieldToSchemaMap = {\n array: (objectTypeConfig: ObjectTypeConfig, field: ArrayField) => {\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),\n graphqlResult,\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 [field.name]: { type: withNullableType(field, arrayType) },\n }\n },\n blocks: (objectTypeConfig: ObjectTypeConfig, field: BlockField) => {\n const blockTypes: GraphQLObjectType<any, any>[] = field.blocks.reduce((acc, block) => {\n if (!graphqlResult.types.blockTypes[block.slug]) {\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 parentName: interfaceName,\n })\n\n if (Object.keys(objectType.getFields()).length) {\n graphqlResult.types.blockTypes[block.slug] = objectType\n }\n }\n\n if (graphqlResult.types.blockTypes[block.slug]) {\n acc.push(graphqlResult.types.blockTypes[block.slug])\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 )\n\n return {\n ...objectTypeConfig,\n [field.name]: { type: withNullableType(field, type) },\n }\n },\n checkbox: (objectTypeConfig: ObjectTypeConfig, field: CheckboxField) => ({\n ...objectTypeConfig,\n [field.name]: { type: withNullableType(field, GraphQLBoolean, forceNullable) },\n }),\n code: (objectTypeConfig: ObjectTypeConfig, field: CodeField) => ({\n ...objectTypeConfig,\n [field.name]: { type: withNullableType(field, GraphQLString, forceNullable) },\n }),\n collapsible: (objectTypeConfig: ObjectTypeConfig, field: CollapsibleField) =>\n field.fields.reduce((objectTypeConfigWithCollapsibleFields, subField) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) return addSubField(objectTypeConfigWithCollapsibleFields, subField)\n return objectTypeConfigWithCollapsibleFields\n }, objectTypeConfig),\n date: (objectTypeConfig: ObjectTypeConfig, field: DateField) => ({\n ...objectTypeConfig,\n [field.name]: { type: withNullableType(field, DateTimeResolver, forceNullable) },\n }),\n email: (objectTypeConfig: ObjectTypeConfig, field: EmailField) => ({\n ...objectTypeConfig,\n [field.name]: { type: withNullableType(field, EmailAddressResolver, forceNullable) },\n }),\n group: (objectTypeConfig: ObjectTypeConfig, field: GroupField) => {\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),\n graphqlResult,\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 [field.name]: { type: graphqlResult.types.groupTypes[interfaceName] },\n }\n },\n json: (objectTypeConfig: ObjectTypeConfig, field: JSONField) => ({\n ...objectTypeConfig,\n [field.name]: { type: withNullableType(field, GraphQLJSON, forceNullable) },\n }),\n number: (objectTypeConfig: ObjectTypeConfig, field: NumberField) => {\n const type = field?.name === 'id' ? GraphQLInt : GraphQLFloat\n return {\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType(\n field,\n field?.hasMany === true ? new GraphQLList(type) : type,\n forceNullable,\n ),\n },\n }\n },\n point: (objectTypeConfig: ObjectTypeConfig, field: PointField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType(\n field,\n new GraphQLList(new GraphQLNonNull(GraphQLFloat)),\n forceNullable,\n ),\n },\n }),\n radio: (objectTypeConfig: ObjectTypeConfig, field: RadioField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType(\n field,\n new GraphQLEnumType({\n name: combineParentName(parentName, field.name),\n values: formatOptions(field),\n }),\n forceNullable,\n ),\n },\n }),\n relationship: (objectTypeConfig: ObjectTypeConfig, field: RelationshipField) => {\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 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 async resolveType(data, { req }) {\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 fallbackLocale?: unknown\n limit?: unknown\n locale?: unknown\n page?: unknown\n where?: unknown\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 = {\n type: withNullableType(\n field,\n hasManyValues ? new GraphQLList(new GraphQLNonNull(type)) : type,\n forceNullable,\n ),\n args: relationshipArgs,\n extensions: { complexity: 10 },\n async resolve(parent, args, context: Context) {\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\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\n if (isRelatedToManyCollections) {\n collectionSlug = relatedDoc.relationTo\n id = relatedDoc.value\n }\n\n const result = await context.req.payloadDataLoader.load(\n JSON.stringify([\n context.req.transactionID,\n collectionSlug,\n id,\n 0,\n 0,\n locale,\n fallbackLocale,\n false,\n false,\n ]),\n )\n\n if (result) {\n if (isRelatedToManyCollections) {\n results[i] = {\n relationTo: collectionSlug,\n value: {\n ...result,\n collection: collectionSlug,\n },\n }\n } else {\n results[i] = result\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 const relatedDocument = await context.req.payloadDataLoader.load(\n JSON.stringify([\n context.req.transactionID,\n relatedCollectionSlug,\n id,\n 0,\n 0,\n locale,\n fallbackLocale,\n false,\n false,\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 return null\n }\n\n return null\n },\n }\n\n return {\n ...objectTypeConfig,\n [field.name]: relationship,\n }\n },\n richText: (objectTypeConfig: ObjectTypeConfig, field: RichTextField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType(field, GraphQLJSON, forceNullable),\n args: {\n depth: {\n type: GraphQLInt,\n },\n },\n async resolve(parent, args, context: Context) {\n let depth = config.defaultDepth\n if (typeof args.depth !== 'undefined') depth = args.depth\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?.populationPromise) {\n await editor?.populationPromise({\n context,\n depth,\n field,\n findMany: false,\n flattenLocales: false,\n overrideAccess: false,\n populationPromises: [],\n req: context.req,\n showHiddenFields: false,\n siblingDoc: parent,\n })\n }\n\n return parent[field.name]\n },\n },\n }),\n row: (objectTypeConfig: ObjectTypeConfig, field: RowField) =>\n field.fields.reduce((objectTypeConfigWithRowFields, subField) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) return addSubField(objectTypeConfigWithRowFields, subField)\n return objectTypeConfigWithRowFields\n }, objectTypeConfig),\n select: (objectTypeConfig: ObjectTypeConfig, field: SelectField) => {\n const fullName = combineParentName(parentName, field.name)\n\n let type: GraphQLType = new GraphQLEnumType({\n name: fullName,\n values: formatOptions(field),\n })\n\n type = field.hasMany ? new GraphQLList(new GraphQLNonNull(type)) : type\n type = withNullableType(field, type, forceNullable)\n\n return {\n ...objectTypeConfig,\n [field.name]: { type },\n }\n },\n tabs: (objectTypeConfig: ObjectTypeConfig, field: TabsField) =>\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 config,\n fields: tab.fields,\n forceNullable,\n graphqlResult,\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]: { type: graphqlResult.types.groupTypes[interfaceName] },\n }\n }\n\n return {\n ...tabSchema,\n ...tab.fields.reduce((subFieldSchema, subField) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) return addSubField(subFieldSchema, subField)\n return subFieldSchema\n }, tabSchema),\n }\n }, objectTypeConfig),\n text: (objectTypeConfig: ObjectTypeConfig, field: TextField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType(\n field,\n field.hasMany === true ? new GraphQLList(GraphQLString) : GraphQLString,\n forceNullable,\n ),\n },\n }),\n textarea: (objectTypeConfig: ObjectTypeConfig, field: TextareaField) => ({\n ...objectTypeConfig,\n [field.name]: { type: withNullableType(field, GraphQLString, forceNullable) },\n }),\n upload: (objectTypeConfig: ObjectTypeConfig, field: UploadField) => {\n const { relationTo } = field\n\n const uploadName = combineParentName(parentName, toWords(field.name, true))\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 const type = withNullableType(\n field,\n graphqlResult.collections[relationTo].graphQL.type || newlyCreatedBlockType,\n forceNullable,\n )\n\n const uploadArgs = {} as LocaleInputType\n\n if (config.localization) {\n uploadArgs.locale = {\n type: graphqlResult.types.localeInputType,\n }\n\n uploadArgs.fallbackLocale = {\n type: graphqlResult.types.fallbackLocaleInputType,\n }\n }\n\n const relatedCollectionSlug = field.relationTo\n\n const upload = {\n type,\n args: uploadArgs,\n extensions: { complexity: 20 },\n async resolve(parent, args, context: Context) {\n const value = parent[field.name]\n const locale = args.locale || context.req.locale\n const fallbackLocale = args.fallbackLocale || context.req.fallbackLocale\n const id = value\n\n if (id) {\n const relatedDocument = await context.req.payloadDataLoader.load(\n JSON.stringify([\n context.req.transactionID,\n relatedCollectionSlug,\n id,\n 0,\n 0,\n locale,\n fallbackLocale,\n false,\n false,\n ]),\n )\n\n return relatedDocument || null\n }\n\n return null\n },\n }\n\n const whereFields = graphqlResult.collections[relationTo].config.fields\n\n upload.args.where = {\n type: buildWhereInputType({\n name: uploadName,\n fields: whereFields,\n parentName: uploadName,\n }),\n }\n\n return {\n ...objectTypeConfig,\n [field.name]: upload,\n }\n },\n }\n\n const objectSchema = {\n name,\n fields: () =>\n fields.reduce((objectTypeConfig, field) => {\n const fieldSchema = fieldToSchemaMap[field.type]\n\n if (typeof fieldSchema !== 'function') {\n return objectTypeConfig\n }\n\n return {\n ...objectTypeConfig,\n ...fieldSchema(objectTypeConfig, field),\n }\n }, baseFields),\n }\n\n const newlyCreatedBlockType = new GraphQLObjectType(objectSchema)\n\n return newlyCreatedBlockType\n}\n\nexport default buildObjectType\n"],"names":["GraphQLBoolean","GraphQLEnumType","GraphQLFloat","GraphQLInt","GraphQLList","GraphQLNonNull","GraphQLObjectType","GraphQLString","GraphQLUnionType","DateTimeResolver","EmailAddressResolver","GraphQLJSON","tabHasName","toWords","combineParentName","formatName","formatOptions","buildWhereInputType","isFieldNullable","withNullableType","buildObjectType","name","baseFields","config","fields","forceNullable","graphqlResult","parentName","fieldToSchemaMap","array","objectTypeConfig","field","interfaceName","types","arrayTypes","objectType","Object","keys","getFields","length","arrayType","type","blocks","blockTypes","reduce","acc","block","slug","graphQL","singularName","push","fullName","resolveType","data","blockType","checkbox","code","collapsible","objectTypeConfigWithCollapsibleFields","subField","addSubField","date","email","group","groupTypes","json","number","hasMany","point","radio","values","relationship","relationTo","isRelatedToManyCollections","Array","isArray","hasManyValues","relationshipName","relationToType","relations","relation","value","map","collections","req","collection","newlyCreatedBlockType","relationshipArgs","localization","locale","localeInputType","fallbackLocale","fallbackLocaleInputType","args","extensions","complexity","resolve","parent","context","relatedCollectionSlug","results","resultPromises","createPopulationPromise","relatedDoc","i","id","collectionSlug","result","payloadDataLoader","load","JSON","stringify","transactionID","forEach","Promise","all","relatedDocument","richText","depth","defaultDepth","editor","populationPromise","findMany","flattenLocales","overrideAccess","populationPromises","showHiddenFields","siblingDoc","row","objectTypeConfigWithRowFields","select","tabs","tabSchema","tab","subFieldSchema","text","textarea","upload","uploadName","uploadArgs","whereFields","where","objectSchema","fieldSchema"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/schema/buildObjectType.ts"],"sourcesContent":["import type { GraphQLFieldConfig, GraphQLType } from 'graphql'\nimport type {\n ArrayField,\n BlocksField,\n CheckboxField,\n CodeField,\n CollapsibleField,\n DateField,\n EmailField,\n Field,\n GraphQLInfo,\n GroupField,\n JoinField,\n JSONField,\n NumberField,\n PointField,\n RadioField,\n RelationshipField,\n RichTextAdapter,\n RichTextField,\n RowField,\n SanitizedConfig,\n SelectField,\n TabsField,\n TextareaField,\n TextField,\n UploadField,\n} from 'payload'\n\nimport {\n GraphQLBoolean,\n GraphQLEnumType,\n GraphQLFloat,\n GraphQLInt,\n GraphQLList,\n GraphQLNonNull,\n GraphQLObjectType,\n GraphQLString,\n GraphQLUnionType,\n} from 'graphql'\nimport { DateTimeResolver, EmailAddressResolver } from 'graphql-scalars'\nimport { combineQueries, createDataloaderCacheKey, MissingEditorProp, toWords } from 'payload'\nimport { 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 { isFieldNullable } from './isFieldNullable.js'\nimport { withNullableType } from './withNullableType.js'\n\nexport type ObjectTypeConfig = {\n [path: string]: GraphQLFieldConfig<any, any>\n}\n\ntype Args = {\n baseFields?: ObjectTypeConfig\n config: SanitizedConfig\n fields: Field[]\n forceNullable?: boolean\n graphqlResult: GraphQLInfo\n name: string\n parentName: string\n}\n\nexport function buildObjectType({\n name,\n baseFields = {},\n config,\n fields,\n forceNullable,\n graphqlResult,\n parentName,\n}: Args): GraphQLObjectType {\n const fieldToSchemaMap = {\n array: (objectTypeConfig: ObjectTypeConfig, field: ArrayField) => {\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),\n graphqlResult,\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 [field.name]: { type: withNullableType(field, arrayType) },\n }\n },\n blocks: (objectTypeConfig: ObjectTypeConfig, field: BlocksField) => {\n const blockTypes: GraphQLObjectType<any, any>[] = field.blocks.reduce((acc, block) => {\n if (!graphqlResult.types.blockTypes[block.slug]) {\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 parentName: interfaceName,\n })\n\n if (Object.keys(objectType.getFields()).length) {\n graphqlResult.types.blockTypes[block.slug] = objectType\n }\n }\n\n if (graphqlResult.types.blockTypes[block.slug]) {\n acc.push(graphqlResult.types.blockTypes[block.slug])\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 )\n\n return {\n ...objectTypeConfig,\n [field.name]: { type: withNullableType(field, type) },\n }\n },\n checkbox: (objectTypeConfig: ObjectTypeConfig, field: CheckboxField) => ({\n ...objectTypeConfig,\n [field.name]: { type: withNullableType(field, GraphQLBoolean, forceNullable) },\n }),\n code: (objectTypeConfig: ObjectTypeConfig, field: CodeField) => ({\n ...objectTypeConfig,\n [field.name]: { type: withNullableType(field, GraphQLString, forceNullable) },\n }),\n collapsible: (objectTypeConfig: ObjectTypeConfig, field: CollapsibleField) =>\n field.fields.reduce((objectTypeConfigWithCollapsibleFields, subField) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField(objectTypeConfigWithCollapsibleFields, subField)\n }\n return objectTypeConfigWithCollapsibleFields\n }, objectTypeConfig),\n date: (objectTypeConfig: ObjectTypeConfig, field: DateField) => ({\n ...objectTypeConfig,\n [field.name]: { type: withNullableType(field, DateTimeResolver, forceNullable) },\n }),\n email: (objectTypeConfig: ObjectTypeConfig, field: EmailField) => ({\n ...objectTypeConfig,\n [field.name]: { type: withNullableType(field, EmailAddressResolver, forceNullable) },\n }),\n group: (objectTypeConfig: ObjectTypeConfig, field: GroupField) => {\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),\n graphqlResult,\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 [field.name]: {\n type: graphqlResult.types.groupTypes[interfaceName],\n resolve: (parent, args, context: Context) => {\n return {\n ...parent[field.name],\n _id: parent._id ?? parent.id,\n }\n },\n },\n }\n },\n join: (objectTypeConfig: ObjectTypeConfig, field: JoinField) => {\n const joinName = combineParentName(parentName, toWords(field.name, true))\n\n const joinType = {\n type: new GraphQLObjectType({\n name: joinName,\n fields: {\n docs: {\n type: new GraphQLList(graphqlResult.collections[field.collection].graphQL.type),\n },\n hasNextPage: { type: GraphQLBoolean },\n },\n }),\n args: {\n limit: {\n type: GraphQLInt,\n },\n sort: {\n type: GraphQLString,\n },\n where: {\n type: graphqlResult.collections[field.collection].graphQL.whereInputType,\n },\n },\n extensions: { complexity: 10 },\n async resolve(parent, args, context: Context) {\n const { collection } = field\n const { limit, sort, where } = args\n const { req } = context\n\n const fullWhere = combineQueries(where, {\n [field.on]: { equals: parent._id ?? parent.id },\n })\n\n const results = await req.payload.find({\n collection,\n depth: 0,\n fallbackLocale: req.fallbackLocale,\n limit,\n locale: req.locale,\n req,\n sort,\n where: fullWhere,\n })\n\n return results\n },\n }\n\n return {\n ...objectTypeConfig,\n [field.name]: joinType,\n }\n },\n json: (objectTypeConfig: ObjectTypeConfig, field: JSONField) => ({\n ...objectTypeConfig,\n [field.name]: { type: withNullableType(field, GraphQLJSON, forceNullable) },\n }),\n number: (objectTypeConfig: ObjectTypeConfig, field: NumberField) => {\n const type = field?.name === 'id' ? GraphQLInt : GraphQLFloat\n return {\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType(\n field,\n field?.hasMany === true ? new GraphQLList(type) : type,\n forceNullable,\n ),\n },\n }\n },\n point: (objectTypeConfig: ObjectTypeConfig, field: PointField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType(\n field,\n new GraphQLList(new GraphQLNonNull(GraphQLFloat)),\n forceNullable,\n ),\n },\n }),\n radio: (objectTypeConfig: ObjectTypeConfig, field: RadioField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType(\n field,\n new GraphQLEnumType({\n name: combineParentName(parentName, field.name),\n values: formatOptions(field),\n }),\n forceNullable,\n ),\n },\n }),\n relationship: (objectTypeConfig: ObjectTypeConfig, field: RelationshipField) => {\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\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) =>\n graphQLCollections.some((collection) => collection.slug === relation),\n )\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 }),\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?: unknown\n fallbackLocale?: unknown\n limit?: unknown\n locale?: unknown\n page?: unknown\n where?: unknown\n } = {}\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 = {\n type: withNullableType(\n field,\n hasManyValues ? new GraphQLList(new GraphQLNonNull(type)) : type,\n forceNullable,\n ),\n args: relationshipArgs,\n extensions: { complexity: 10 },\n async resolve(parent, args, context: Context) {\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\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\n if (graphQLCollections.some((collection) => collection.slug === collectionSlug)) {\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 showHiddenFields: false,\n transactionID: context.req.transactionID,\n }),\n )\n\n if (result) {\n if (isRelatedToManyCollections) {\n results[i] = {\n relationTo: collectionSlug,\n value: {\n ...result,\n collection: collectionSlug,\n },\n }\n } else {\n results[i] = 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 (\n graphQLCollections.some((collection) => collection.slug === relatedCollectionSlug)\n ) {\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 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 [field.name]: relationship,\n }\n },\n richText: (objectTypeConfig: ObjectTypeConfig, field: RichTextField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType(field, GraphQLJSON, forceNullable),\n args: {\n depth: {\n type: GraphQLInt,\n },\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 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: (objectTypeConfig: ObjectTypeConfig, field: RowField) =>\n field.fields.reduce((objectTypeConfigWithRowFields, subField) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField(objectTypeConfigWithRowFields, subField)\n }\n return objectTypeConfigWithRowFields\n }, objectTypeConfig),\n select: (objectTypeConfig: ObjectTypeConfig, field: SelectField) => {\n const fullName = combineParentName(parentName, field.name)\n\n let type: GraphQLType = new GraphQLEnumType({\n name: fullName,\n values: formatOptions(field),\n })\n\n type = field.hasMany ? new GraphQLList(new GraphQLNonNull(type)) : type\n type = withNullableType(field, type, forceNullable)\n\n return {\n ...objectTypeConfig,\n [field.name]: { type },\n }\n },\n tabs: (objectTypeConfig: ObjectTypeConfig, field: TabsField) =>\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 config,\n fields: tab.fields,\n forceNullable,\n graphqlResult,\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 = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField(subFieldSchema, subField)\n }\n return subFieldSchema\n }, tabSchema),\n }\n }, objectTypeConfig),\n text: (objectTypeConfig: ObjectTypeConfig, field: TextField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType(\n field,\n field.hasMany === true ? new GraphQLList(GraphQLString) : GraphQLString,\n forceNullable,\n ),\n },\n }),\n textarea: (objectTypeConfig: ObjectTypeConfig, field: TextareaField) => ({\n ...objectTypeConfig,\n [field.name]: { type: withNullableType(field, GraphQLString, forceNullable) },\n }),\n upload: (objectTypeConfig: ObjectTypeConfig, field: UploadField) => {\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 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?: unknown\n fallbackLocale?: unknown\n limit?: unknown\n locale?: unknown\n page?: unknown\n where?: unknown\n } = {}\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 = {\n type: withNullableType(\n field,\n hasManyValues ? new GraphQLList(new GraphQLNonNull(type)) : type,\n forceNullable,\n ),\n args: relationshipArgs,\n extensions: { complexity: 10 },\n async resolve(parent, args, context: Context) {\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\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\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,\n currentDepth: 0,\n depth: 0,\n docID: id,\n draft,\n fallbackLocale,\n locale,\n overrideAccess: false,\n showHiddenFields: false,\n transactionID: context.req.transactionID,\n }),\n )\n\n if (result) {\n if (isRelatedToManyCollections) {\n results[i] = {\n relationTo: collectionSlug,\n value: {\n ...result,\n collection: collectionSlug,\n },\n }\n } else {\n results[i] = result\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 const relatedDocument = await context.req.payloadDataLoader.load(\n createDataloaderCacheKey({\n collectionSlug: relatedCollectionSlug,\n currentDepth: 0,\n depth: 0,\n docID: id,\n draft,\n fallbackLocale,\n locale,\n overrideAccess: false,\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 return null\n }\n\n return null\n },\n }\n\n return {\n ...objectTypeConfig,\n [field.name]: relationship,\n }\n },\n }\n\n const objectSchema = {\n name,\n fields: () =>\n fields.reduce((objectTypeConfig, field) => {\n const fieldSchema = fieldToSchemaMap[field.type]\n\n if (typeof fieldSchema !== 'function') {\n return objectTypeConfig\n }\n\n return {\n ...objectTypeConfig,\n ...fieldSchema(objectTypeConfig, field),\n }\n }, baseFields),\n }\n\n const newlyCreatedBlockType = new GraphQLObjectType(objectSchema)\n\n return newlyCreatedBlockType\n}\n"],"names":["GraphQLBoolean","GraphQLEnumType","GraphQLFloat","GraphQLInt","GraphQLList","GraphQLNonNull","GraphQLObjectType","GraphQLString","GraphQLUnionType","DateTimeResolver","EmailAddressResolver","combineQueries","createDataloaderCacheKey","MissingEditorProp","toWords","tabHasName","GraphQLJSON","combineParentName","formatName","formatOptions","isFieldNullable","withNullableType","buildObjectType","name","baseFields","config","fields","forceNullable","graphqlResult","parentName","fieldToSchemaMap","array","objectTypeConfig","field","interfaceName","types","arrayTypes","objectType","Object","keys","getFields","length","arrayType","type","blocks","blockTypes","reduce","acc","block","slug","graphQL","singularName","push","fullName","resolveType","data","blockType","checkbox","code","collapsible","objectTypeConfigWithCollapsibleFields","subField","addSubField","date","email","group","groupTypes","resolve","parent","args","context","_id","id","join","joinName","joinType","docs","collections","collection","hasNextPage","limit","sort","where","whereInputType","extensions","complexity","req","fullWhere","on","equals","results","payload","find","depth","fallbackLocale","locale","json","number","hasMany","point","radio","values","relationship","relationTo","isRelatedToManyCollections","Array","isArray","hasManyValues","relationshipName","relationToType","graphQLCollections","filter","collectionConfig","relation","some","relations","value","map","newlyCreatedBlockType","relationshipArgs","relationsUseDrafts","versions","drafts","draft","localization","localeInputType","fallbackLocaleInputType","relatedCollectionSlug","Boolean","query","resultPromises","createPopulationPromise","relatedDoc","i","collectionSlug","result","payloadDataLoader","load","currentDepth","docID","overrideAccess","showHiddenFields","transactionID","forEach","Promise","all","relatedDocument","richText","defaultDepth","editor","Error","graphQLPopulationPromises","fieldPromises","populationPromises","populateDepth","maxDepth","undefined","findMany","flattenLocales","siblingDoc","row","objectTypeConfigWithRowFields","select","tabs","tabSchema","tab","subFieldSchema","text","textarea","upload","objectSchema","fieldSchema"],"mappings":"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"}
@@ -1,4 +1,3 @@
1
1
  import { GraphQLObjectType } from 'graphql';
2
- declare const buildPaginatedListType: (name: any, docType: any) => GraphQLObjectType<any, any>;
3
- export default buildPaginatedListType;
2
+ export declare const buildPaginatedListType: (name: any, docType: any) => GraphQLObjectType<any, any>;
4
3
  //# sourceMappingURL=buildPaginatedListType.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"buildPaginatedListType.d.ts","sourceRoot":"","sources":["../../src/schema/buildPaginatedListType.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2C,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEpF,QAAA,MAAM,sBAAsB,0DAkBxB,CAAA;AAEJ,eAAe,sBAAsB,CAAA"}
1
+ {"version":3,"file":"buildPaginatedListType.d.ts","sourceRoot":"","sources":["../../src/schema/buildPaginatedListType.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2C,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEpF,eAAO,MAAM,sBAAsB,0DAkB/B,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { GraphQLBoolean, GraphQLInt, GraphQLList, GraphQLObjectType } from 'graphql';
2
- const buildPaginatedListType = (name, docType)=>new GraphQLObjectType({
2
+ export const buildPaginatedListType = (name, docType)=>new GraphQLObjectType({
3
3
  name,
4
4
  fields: {
5
5
  docs: {
@@ -37,6 +37,5 @@ const buildPaginatedListType = (name, docType)=>new GraphQLObjectType({
37
37
  }
38
38
  }
39
39
  });
40
- export default buildPaginatedListType;
41
40
 
42
41
  //# sourceMappingURL=buildPaginatedListType.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/buildPaginatedListType.ts"],"sourcesContent":["import { GraphQLBoolean, GraphQLInt, GraphQLList, GraphQLObjectType } from 'graphql'\n\nconst buildPaginatedListType = (name, docType) =>\n new GraphQLObjectType({\n name,\n fields: {\n docs: {\n type: new GraphQLList(docType),\n },\n hasNextPage: { type: GraphQLBoolean },\n hasPrevPage: { type: GraphQLBoolean },\n limit: { type: GraphQLInt },\n nextPage: { type: GraphQLInt },\n offset: { type: GraphQLInt },\n page: { type: GraphQLInt },\n pagingCounter: { type: GraphQLInt },\n prevPage: { type: GraphQLInt },\n totalDocs: { type: GraphQLInt },\n totalPages: { type: GraphQLInt },\n },\n })\n\nexport default buildPaginatedListType\n"],"names":["GraphQLBoolean","GraphQLInt","GraphQLList","GraphQLObjectType","buildPaginatedListType","name","docType","fields","docs","type","hasNextPage","hasPrevPage","limit","nextPage","offset","page","pagingCounter","prevPage","totalDocs","totalPages"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,cAAc,EAAEC,UAAU,EAAEC,WAAW,EAAEC,iBAAiB,QAAQ,UAAS;AAEpF,MAAMC,yBAAyB,CAACC,MAAMC,UACpC,IAAIH,kBAAkB;QACpBE;QACAE,QAAQ;YACNC,MAAM;gBACJC,MAAM,IAAIP,YAAYI;YACxB;YACAI,aAAa;gBAAED,MAAMT;YAAe;YACpCW,aAAa;gBAAEF,MAAMT;YAAe;YACpCY,OAAO;gBAAEH,MAAMR;YAAW;YAC1BY,UAAU;gBAAEJ,MAAMR;YAAW;YAC7Ba,QAAQ;gBAAEL,MAAMR;YAAW;YAC3Bc,MAAM;gBAAEN,MAAMR;YAAW;YACzBe,eAAe;gBAAEP,MAAMR;YAAW;YAClCgB,UAAU;gBAAER,MAAMR;YAAW;YAC7BiB,WAAW;gBAAET,MAAMR;YAAW;YAC9BkB,YAAY;gBAAEV,MAAMR;YAAW;QACjC;IACF;AAEF,eAAeG,uBAAsB"}
1
+ {"version":3,"sources":["../../src/schema/buildPaginatedListType.ts"],"sourcesContent":["import { GraphQLBoolean, GraphQLInt, GraphQLList, GraphQLObjectType } from 'graphql'\n\nexport const buildPaginatedListType = (name, docType) =>\n new GraphQLObjectType({\n name,\n fields: {\n docs: {\n type: new GraphQLList(docType),\n },\n hasNextPage: { type: GraphQLBoolean },\n hasPrevPage: { type: GraphQLBoolean },\n limit: { type: GraphQLInt },\n nextPage: { type: GraphQLInt },\n offset: { type: GraphQLInt },\n page: { type: GraphQLInt },\n pagingCounter: { type: GraphQLInt },\n prevPage: { type: GraphQLInt },\n totalDocs: { type: GraphQLInt },\n totalPages: { type: GraphQLInt },\n },\n })\n"],"names":["GraphQLBoolean","GraphQLInt","GraphQLList","GraphQLObjectType","buildPaginatedListType","name","docType","fields","docs","type","hasNextPage","hasPrevPage","limit","nextPage","offset","page","pagingCounter","prevPage","totalDocs","totalPages"],"mappings":"AAAA,SAASA,cAAc,EAAEC,UAAU,EAAEC,WAAW,EAAEC,iBAAiB,QAAQ,UAAS;AAEpF,OAAO,MAAMC,yBAAyB,CAACC,MAAMC,UAC3C,IAAIH,kBAAkB;QACpBE;QACAE,QAAQ;YACNC,MAAM;gBACJC,MAAM,IAAIP,YAAYI;YACxB;YACAI,aAAa;gBAAED,MAAMT;YAAe;YACpCW,aAAa;gBAAEF,MAAMT;YAAe;YACpCY,OAAO;gBAAEH,MAAMR;YAAW;YAC1BY,UAAU;gBAAEJ,MAAMR;YAAW;YAC7Ba,QAAQ;gBAAEL,MAAMR;YAAW;YAC3Bc,MAAM;gBAAEN,MAAMR;YAAW;YACzBe,eAAe;gBAAEP,MAAMR;YAAW;YAClCgB,UAAU;gBAAER,MAAMR;YAAW;YAC7BiB,WAAW;gBAAET,MAAMR;YAAW;YAC9BkB,YAAY;gBAAEV,MAAMR;YAAW;QACjC;IACF,GAAE"}
@@ -1,4 +1,4 @@
1
- import type { CollectionConfig, Field, GlobalConfig, SanitizedConfig } from 'payload/types';
1
+ import type { CollectionConfig, Field, GlobalConfig, SanitizedConfig } from 'payload';
2
2
  import { GraphQLObjectType } from 'graphql';
3
3
  type OperationType = 'create' | 'delete' | 'read' | 'readVersions' | 'unlock' | 'update';
4
4
  type AccessScopes = 'docAccess' | undefined;
@@ -24,6 +24,6 @@ type BuildPolicyType = {
24
24
  type: 'global';
25
25
  });
26
26
  export declare function buildPolicyType(args: BuildPolicyType): GraphQLObjectType;
27
- export default function buildPoliciesType(config: SanitizedConfig): GraphQLObjectType;
27
+ export declare function buildPoliciesType(config: SanitizedConfig): GraphQLObjectType;
28
28
  export {};
29
29
  //# sourceMappingURL=buildPoliciesType.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"buildPoliciesType.d.ts","sourceRoot":"","sources":["../../src/schema/buildPoliciesType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,KAAK,EACL,YAAY,EAEZ,eAAe,EAEhB,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAkC,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAM3E,KAAK,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAExF,KAAK,YAAY,GAAG,WAAW,GAAG,SAAS,CAAA;AA8E3C,KAAK,iBAAiB,GAAG;IACvB,YAAY,EAAE,KAAK,EAAE,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,aAAa,EAAE,CAAA;IAC3B,KAAK,EAAE,YAAY,CAAA;CACpB,CAAA;AACD,eAAO,MAAM,iBAAiB,SAAU,iBAAiB;;;;CA4BxD,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,GAAG,CACA;IACE,MAAM,EAAE,gBAAgB,CAAA;IACxB,IAAI,EAAE,YAAY,CAAA;CACnB,GACD;IACE,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,EAAE,QAAQ,CAAA;CACf,CACJ,CAAA;AACD,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,iBAAiB,CAuDxE;AAED,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,iBAAiB,CAyCpF"}
1
+ {"version":3,"file":"buildPoliciesType.d.ts","sourceRoot":"","sources":["../../src/schema/buildPoliciesType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,KAAK,EACL,YAAY,EAEZ,eAAe,EAEhB,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAkC,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAM3E,KAAK,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAExF,KAAK,YAAY,GAAG,WAAW,GAAG,SAAS,CAAA;AA8E3C,KAAK,iBAAiB,GAAG;IACvB,YAAY,EAAE,KAAK,EAAE,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,aAAa,EAAE,CAAA;IAC3B,KAAK,EAAE,YAAY,CAAA;CACpB,CAAA;AACD,eAAO,MAAM,iBAAiB,SAAU,iBAAiB;;;;CA4BxD,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,GAAG,CACA;IACE,MAAM,EAAE,gBAAgB,CAAA;IACxB,IAAI,EAAE,YAAY,CAAA;CACnB,GACD;IACE,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,EAAE,QAAQ,CAAA;CACf,CACJ,CAAA;AACD,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,iBAAiB,CAyDxE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,iBAAiB,CAyC5E"}
@@ -1,7 +1,7 @@
1
1
  import { GraphQLBoolean, GraphQLNonNull, GraphQLObjectType } from 'graphql';
2
- import { GraphQLJSONObject } from 'graphql-type-json';
3
- import { toWords } from 'payload/utilities';
4
- import formatName from '../utilities/formatName.js';
2
+ import { toWords } from 'payload';
3
+ import { GraphQLJSONObject } from '../packages/graphql-type-json/index.js';
4
+ import { formatName } from '../utilities/formatName.js';
5
5
  const buildFields = (label, fieldsToBuild)=>fieldsToBuild.reduce((builtFields, field)=>{
6
6
  const includeField = !field.hidden && field.type !== 'ui';
7
7
  if (includeField) {
@@ -99,7 +99,9 @@ export function buildPolicyType(args) {
99
99
  const { type, entity, scope, typeSuffix } = args;
100
100
  const { slug, fields, graphQL, versions } = entity;
101
101
  let operations = [];
102
- if (graphQL === false) return null;
102
+ if (graphQL === false) {
103
+ return null;
104
+ }
103
105
  if (type === 'collection') {
104
106
  operations = [
105
107
  'create',
@@ -143,7 +145,7 @@ export function buildPolicyType(args) {
143
145
  })
144
146
  });
145
147
  }
146
- export default function buildPoliciesType(config) {
148
+ export function buildPoliciesType(config) {
147
149
  const fields = {
148
150
  canAccessAdmin: {
149
151
  type: new GraphQLNonNull(GraphQLBoolean)
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/buildPoliciesType.ts"],"sourcesContent":["import type {\n CollectionConfig,\n Field,\n GlobalConfig,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n} from 'payload/types'\n\nimport { GraphQLBoolean, GraphQLNonNull, GraphQLObjectType } from 'graphql'\nimport { GraphQLJSONObject } from 'graphql-type-json'\nimport { toWords } from 'payload/utilities'\n\nimport formatName from '../utilities/formatName.js'\n\ntype OperationType = 'create' | 'delete' | 'read' | 'readVersions' | 'unlock' | 'update'\n\ntype AccessScopes = 'docAccess' | undefined\n\ntype ObjectTypeFields = {\n [key in 'fields' | OperationType]?: { type: GraphQLObjectType }\n}\n\nconst buildFields = (label, fieldsToBuild) =>\n fieldsToBuild.reduce((builtFields, field) => {\n const includeField = !field.hidden && field.type !== 'ui'\n if (includeField) {\n if (field.name) {\n const fieldName = formatName(field.name)\n\n const objectTypeFields: ObjectTypeFields = ['create', 'read', 'update', 'delete'].reduce(\n (operations, operation) => {\n const capitalizedOperation = operation.charAt(0).toUpperCase() + operation.slice(1)\n\n return {\n ...operations,\n [operation]: {\n type: new GraphQLObjectType({\n name: `${label}_${fieldName}_${capitalizedOperation}`,\n fields: {\n permission: {\n type: new GraphQLNonNull(GraphQLBoolean),\n },\n },\n }),\n },\n }\n },\n {},\n )\n\n if (field.fields) {\n objectTypeFields.fields = {\n type: new GraphQLObjectType({\n name: `${label}_${fieldName}_Fields`,\n fields: buildFields(`${label}_${fieldName}`, field.fields),\n }),\n }\n }\n\n return {\n ...builtFields,\n [field.name]: {\n type: new GraphQLObjectType({\n name: `${label}_${fieldName}`,\n fields: objectTypeFields,\n }),\n },\n }\n }\n\n if (!field.name && field.fields) {\n const subFields = buildFields(label, field.fields)\n\n return {\n ...builtFields,\n ...subFields,\n }\n }\n\n if (field.type === 'tabs') {\n return field.tabs.reduce(\n (fieldsWithTabFields, tab) => {\n return {\n ...fieldsWithTabFields,\n ...buildFields(label, tab.fields),\n }\n },\n { ...builtFields },\n )\n }\n }\n return builtFields\n }, {})\n\ntype BuildEntityPolicy = {\n entityFields: Field[]\n name: string\n operations: OperationType[]\n scope: AccessScopes\n}\nexport const buildEntityPolicy = (args: BuildEntityPolicy) => {\n const { name, entityFields, operations, scope } = args\n\n const fieldsTypeName = toWords(`${name}-${scope || ''}-Fields`, true)\n const fields = {\n fields: {\n type: new GraphQLObjectType({\n name: fieldsTypeName,\n fields: buildFields(fieldsTypeName, entityFields),\n }),\n },\n }\n\n operations.forEach((operation) => {\n const operationTypeName = toWords(`${name}-${operation}-${scope || 'Access'}`, true)\n\n fields[operation] = {\n type: new GraphQLObjectType({\n name: operationTypeName,\n fields: {\n permission: { type: new GraphQLNonNull(GraphQLBoolean) },\n where: { type: GraphQLJSONObject },\n },\n }),\n }\n })\n\n return fields\n}\n\ntype BuildPolicyType = {\n scope?: AccessScopes\n typeSuffix?: string\n} & (\n | {\n entity: CollectionConfig\n type: 'collection'\n }\n | {\n entity: GlobalConfig\n type: 'global'\n }\n)\nexport function buildPolicyType(args: BuildPolicyType): GraphQLObjectType {\n const { type, entity, scope, typeSuffix } = args\n const { slug, fields, graphQL, versions } = entity\n\n let operations = []\n\n if (graphQL === false) return null\n\n if (type === 'collection') {\n operations = ['create', 'read', 'update', 'delete']\n\n if (\n entity.auth &&\n typeof entity.auth === 'object' &&\n typeof entity.auth.maxLoginAttempts !== 'undefined' &&\n entity.auth.maxLoginAttempts !== 0\n ) {\n operations.push('unlock')\n }\n\n if (versions) {\n operations.push('readVersions')\n }\n\n const collectionTypeName = formatName(`${slug}${typeSuffix || ''}`)\n\n return new GraphQLObjectType({\n name: collectionTypeName,\n fields: buildEntityPolicy({\n name: slug,\n entityFields: fields,\n operations,\n scope,\n }),\n })\n }\n\n // else create global type\n operations = ['read', 'update']\n\n if (entity.versions) {\n operations.push('readVersions')\n }\n\n const globalTypeName = formatName(`${global?.graphQL?.name || slug}${typeSuffix || ''}`)\n\n return new GraphQLObjectType({\n name: globalTypeName,\n fields: buildEntityPolicy({\n name: entity.graphQL ? entity?.graphQL?.name || slug : slug,\n entityFields: entity.fields,\n operations,\n scope,\n }),\n })\n}\n\nexport default function buildPoliciesType(config: SanitizedConfig): GraphQLObjectType {\n const fields = {\n canAccessAdmin: {\n type: new GraphQLNonNull(GraphQLBoolean),\n },\n }\n\n Object.values(config.collections).forEach((collection: SanitizedCollectionConfig) => {\n if (collection.graphQL === false) {\n return\n }\n const collectionPolicyType = buildPolicyType({\n type: 'collection',\n entity: collection,\n typeSuffix: 'Access',\n })\n\n fields[formatName(collection.slug)] = {\n type: collectionPolicyType,\n }\n })\n\n Object.values(config.globals).forEach((global: SanitizedGlobalConfig) => {\n if (global.graphQL === false) {\n return\n }\n const globalPolicyType = buildPolicyType({\n type: 'global',\n entity: global,\n typeSuffix: 'Access',\n })\n\n fields[formatName(global.slug)] = {\n type: globalPolicyType,\n }\n })\n\n return new GraphQLObjectType({\n name: 'Access',\n fields,\n })\n}\n"],"names":["GraphQLBoolean","GraphQLNonNull","GraphQLObjectType","GraphQLJSONObject","toWords","formatName","buildFields","label","fieldsToBuild","reduce","builtFields","field","includeField","hidden","type","name","fieldName","objectTypeFields","operations","operation","capitalizedOperation","charAt","toUpperCase","slice","fields","permission","subFields","tabs","fieldsWithTabFields","tab","buildEntityPolicy","args","entityFields","scope","fieldsTypeName","forEach","operationTypeName","where","buildPolicyType","entity","typeSuffix","slug","graphQL","versions","auth","maxLoginAttempts","push","collectionTypeName","globalTypeName","global","buildPoliciesType","config","canAccessAdmin","Object","values","collections","collection","collectionPolicyType","globals","globalPolicyType"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/schema/buildPoliciesType.ts"],"sourcesContent":["import type {\n CollectionConfig,\n Field,\n GlobalConfig,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport { GraphQLBoolean, GraphQLNonNull, GraphQLObjectType } from 'graphql'\nimport { toWords } from 'payload'\n\nimport { GraphQLJSONObject } from '../packages/graphql-type-json/index.js'\nimport { formatName } from '../utilities/formatName.js'\n\ntype OperationType = 'create' | 'delete' | 'read' | 'readVersions' | 'unlock' | 'update'\n\ntype AccessScopes = 'docAccess' | undefined\n\ntype ObjectTypeFields = {\n [key in 'fields' | OperationType]?: { type: GraphQLObjectType }\n}\n\nconst buildFields = (label, fieldsToBuild) =>\n fieldsToBuild.reduce((builtFields, field) => {\n const includeField = !field.hidden && field.type !== 'ui'\n if (includeField) {\n if (field.name) {\n const fieldName = formatName(field.name)\n\n const objectTypeFields: ObjectTypeFields = ['create', 'read', 'update', 'delete'].reduce(\n (operations, operation) => {\n const capitalizedOperation = operation.charAt(0).toUpperCase() + operation.slice(1)\n\n return {\n ...operations,\n [operation]: {\n type: new GraphQLObjectType({\n name: `${label}_${fieldName}_${capitalizedOperation}`,\n fields: {\n permission: {\n type: new GraphQLNonNull(GraphQLBoolean),\n },\n },\n }),\n },\n }\n },\n {},\n )\n\n if (field.fields) {\n objectTypeFields.fields = {\n type: new GraphQLObjectType({\n name: `${label}_${fieldName}_Fields`,\n fields: buildFields(`${label}_${fieldName}`, field.fields),\n }),\n }\n }\n\n return {\n ...builtFields,\n [field.name]: {\n type: new GraphQLObjectType({\n name: `${label}_${fieldName}`,\n fields: objectTypeFields,\n }),\n },\n }\n }\n\n if (!field.name && field.fields) {\n const subFields = buildFields(label, field.fields)\n\n return {\n ...builtFields,\n ...subFields,\n }\n }\n\n if (field.type === 'tabs') {\n return field.tabs.reduce(\n (fieldsWithTabFields, tab) => {\n return {\n ...fieldsWithTabFields,\n ...buildFields(label, tab.fields),\n }\n },\n { ...builtFields },\n )\n }\n }\n return builtFields\n }, {})\n\ntype BuildEntityPolicy = {\n entityFields: Field[]\n name: string\n operations: OperationType[]\n scope: AccessScopes\n}\nexport const buildEntityPolicy = (args: BuildEntityPolicy) => {\n const { name, entityFields, operations, scope } = args\n\n const fieldsTypeName = toWords(`${name}-${scope || ''}-Fields`, true)\n const fields = {\n fields: {\n type: new GraphQLObjectType({\n name: fieldsTypeName,\n fields: buildFields(fieldsTypeName, entityFields),\n }),\n },\n }\n\n operations.forEach((operation) => {\n const operationTypeName = toWords(`${name}-${operation}-${scope || 'Access'}`, true)\n\n fields[operation] = {\n type: new GraphQLObjectType({\n name: operationTypeName,\n fields: {\n permission: { type: new GraphQLNonNull(GraphQLBoolean) },\n where: { type: GraphQLJSONObject },\n },\n }),\n }\n })\n\n return fields\n}\n\ntype BuildPolicyType = {\n scope?: AccessScopes\n typeSuffix?: string\n} & (\n | {\n entity: CollectionConfig\n type: 'collection'\n }\n | {\n entity: GlobalConfig\n type: 'global'\n }\n)\nexport function buildPolicyType(args: BuildPolicyType): GraphQLObjectType {\n const { type, entity, scope, typeSuffix } = args\n const { slug, fields, graphQL, versions } = entity\n\n let operations = []\n\n if (graphQL === false) {\n return null\n }\n\n if (type === 'collection') {\n operations = ['create', 'read', 'update', 'delete']\n\n if (\n entity.auth &&\n typeof entity.auth === 'object' &&\n typeof entity.auth.maxLoginAttempts !== 'undefined' &&\n entity.auth.maxLoginAttempts !== 0\n ) {\n operations.push('unlock')\n }\n\n if (versions) {\n operations.push('readVersions')\n }\n\n const collectionTypeName = formatName(`${slug}${typeSuffix || ''}`)\n\n return new GraphQLObjectType({\n name: collectionTypeName,\n fields: buildEntityPolicy({\n name: slug,\n entityFields: fields,\n operations,\n scope,\n }),\n })\n }\n\n // else create global type\n operations = ['read', 'update']\n\n if (entity.versions) {\n operations.push('readVersions')\n }\n\n const globalTypeName = formatName(`${global?.graphQL?.name || slug}${typeSuffix || ''}`)\n\n return new GraphQLObjectType({\n name: globalTypeName,\n fields: buildEntityPolicy({\n name: entity.graphQL ? entity?.graphQL?.name || slug : slug,\n entityFields: entity.fields,\n operations,\n scope,\n }),\n })\n}\n\nexport function buildPoliciesType(config: SanitizedConfig): GraphQLObjectType {\n const fields = {\n canAccessAdmin: {\n type: new GraphQLNonNull(GraphQLBoolean),\n },\n }\n\n Object.values(config.collections).forEach((collection: SanitizedCollectionConfig) => {\n if (collection.graphQL === false) {\n return\n }\n const collectionPolicyType = buildPolicyType({\n type: 'collection',\n entity: collection,\n typeSuffix: 'Access',\n })\n\n fields[formatName(collection.slug)] = {\n type: collectionPolicyType,\n }\n })\n\n Object.values(config.globals).forEach((global: SanitizedGlobalConfig) => {\n if (global.graphQL === false) {\n return\n }\n const globalPolicyType = buildPolicyType({\n type: 'global',\n entity: global,\n typeSuffix: 'Access',\n })\n\n fields[formatName(global.slug)] = {\n type: globalPolicyType,\n }\n })\n\n return new GraphQLObjectType({\n name: 'Access',\n fields,\n })\n}\n"],"names":["GraphQLBoolean","GraphQLNonNull","GraphQLObjectType","toWords","GraphQLJSONObject","formatName","buildFields","label","fieldsToBuild","reduce","builtFields","field","includeField","hidden","type","name","fieldName","objectTypeFields","operations","operation","capitalizedOperation","charAt","toUpperCase","slice","fields","permission","subFields","tabs","fieldsWithTabFields","tab","buildEntityPolicy","args","entityFields","scope","fieldsTypeName","forEach","operationTypeName","where","buildPolicyType","entity","typeSuffix","slug","graphQL","versions","auth","maxLoginAttempts","push","collectionTypeName","globalTypeName","global","buildPoliciesType","config","canAccessAdmin","Object","values","collections","collection","collectionPolicyType","globals","globalPolicyType"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Field } from 'payload/types';
1
+ import type { Field } from 'payload';
2
2
  import { GraphQLInputObjectType } from 'graphql';
3
3
  type Args = {
4
4
  fields: Field[];
@@ -19,6 +19,6 @@ type Args = {
19
19
  * directly searchable. Instead, we need to build a chained pathname
20
20
  * using dot notation so MongoDB can properly search nested paths.
21
21
  */
22
- declare const buildWhereInputType: ({ name, fields, parentName }: Args) => GraphQLInputObjectType;
23
- export default buildWhereInputType;
22
+ export declare const buildWhereInputType: ({ name, fields, parentName }: Args) => GraphQLInputObjectType;
23
+ export {};
24
24
  //# sourceMappingURL=buildWhereInputType.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"buildWhereInputType.d.ts","sourceRoot":"","sources":["../../src/schema/buildWhereInputType.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAsB,MAAM,eAAe,CAAA;AAG9D,OAAO,EAAE,sBAAsB,EAAe,MAAM,SAAS,CAAA;AAQ7D,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,QAAA,MAAM,mBAAmB,iCAAkC,IAAI,KAAG,sBAgFjE,CAAA;AAED,eAAe,mBAAmB,CAAA"}
1
+ {"version":3,"file":"buildWhereInputType.d.ts","sourceRoot":"","sources":["../../src/schema/buildWhereInputType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAsB,MAAM,SAAS,CAAA;AAExD,OAAO,EAAE,sBAAsB,EAAe,MAAM,SAAS,CAAA;AAQ7D,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,mBAAmB,iCAAkC,IAAI,KAAG,sBAgFxE,CAAA"}
@@ -1,8 +1,8 @@
1
- /* eslint-disable @typescript-eslint/no-use-before-define */ /* eslint-disable no-use-before-define */ import { GraphQLInputObjectType, GraphQLList } from 'graphql';
2
- import { fieldAffectsData, fieldHasSubFields, fieldIsPresentationalOnly } from 'payload/types';
3
- import { flattenTopLevelFields } from 'payload/utilities';
4
- import formatName from '../utilities/formatName.js';
5
- import fieldToSchemaMap from './fieldToWhereInputSchemaMap.js';
1
+ import { GraphQLInputObjectType, GraphQLList } from 'graphql';
2
+ import { flattenTopLevelFields } from 'payload';
3
+ import { fieldAffectsData, fieldHasSubFields, fieldIsPresentationalOnly } from 'payload/shared';
4
+ import { formatName } from '../utilities/formatName.js';
5
+ import { fieldToSchemaMap } from './fieldToWhereInputSchemaMap.js';
6
6
  import { withOperators } from './withOperators.js';
7
7
  /** This does as the function name suggests. It builds a where GraphQL input type
8
8
  * for all the fields which are passed to the function.
@@ -17,7 +17,7 @@ import { withOperators } from './withOperators.js';
17
17
  * 2. Relationships, groups, repeaters and flex content are not
18
18
  * directly searchable. Instead, we need to build a chained pathname
19
19
  * using dot notation so MongoDB can properly search nested paths.
20
- */ const buildWhereInputType = ({ name, fields, parentName })=>{
20
+ */ export const buildWhereInputType = ({ name, fields, parentName })=>{
21
21
  // This is the function that builds nested paths for all
22
22
  // field types with nested paths.
23
23
  const idField = flattenTopLevelFields(fields).find((field)=>fieldAffectsData(field) && field.name === 'id');
@@ -82,6 +82,5 @@ import { withOperators } from './withOperators.js';
82
82
  }
83
83
  });
84
84
  };
85
- export default buildWhereInputType;
86
85
 
87
86
  //# sourceMappingURL=buildWhereInputType.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/buildWhereInputType.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\nimport type { Field, FieldAffectingData } from 'payload/types'\n\n/* eslint-disable no-use-before-define */\nimport { GraphQLInputObjectType, GraphQLList } from 'graphql'\nimport { fieldAffectsData, fieldHasSubFields, fieldIsPresentationalOnly } from 'payload/types'\nimport { flattenTopLevelFields } from 'payload/utilities'\n\nimport formatName from '../utilities/formatName.js'\nimport fieldToSchemaMap from './fieldToWhereInputSchemaMap.js'\nimport { withOperators } from './withOperators.js'\n\ntype Args = {\n fields: Field[]\n name: string\n parentName: string\n}\n\n/** This does as the function name suggests. It builds a where GraphQL input type\n * for all the fields which are passed to the function.\n * Each field has different operators which may be valid for a where input type.\n * For example, a text field may have a \"contains\" operator, but a number field\n * may not.\n *\n * buildWhereInputType is similar to buildObjectType and operates\n * on a field basis with a few distinct differences.\n *\n * 1. Everything needs to be a GraphQLInputObjectType or scalar / enum\n * 2. Relationships, groups, repeaters and flex content are not\n * directly searchable. Instead, we need to build a chained pathname\n * using dot notation so MongoDB can properly search nested paths.\n */\nconst buildWhereInputType = ({ name, fields, parentName }: Args): GraphQLInputObjectType => {\n // This is the function that builds nested paths for all\n // field types with nested paths.\n\n const idField = flattenTopLevelFields(fields).find(\n (field) => fieldAffectsData(field) && field.name === 'id',\n )\n\n const fieldTypes = fields.reduce((schema, field) => {\n if (!fieldIsPresentationalOnly(field) && !field.hidden) {\n const getFieldSchema = fieldToSchemaMap({\n parentName,\n })[field.type]\n\n if (getFieldSchema) {\n const fieldSchema = getFieldSchema(field)\n\n if (fieldHasSubFields(field) || field.type === 'tabs') {\n return {\n ...schema,\n ...fieldSchema.reduce(\n (subFields, subField) => ({\n ...subFields,\n [formatName(subField.key)]: subField.type,\n }),\n {},\n ),\n }\n }\n\n return {\n ...schema,\n [formatName(field.name)]: fieldSchema,\n }\n }\n }\n\n return schema\n }, {})\n\n if (!idField) {\n fieldTypes.id = {\n type: withOperators({ name: 'id', type: 'text' } as FieldAffectingData, parentName),\n }\n }\n\n const fieldName = formatName(name)\n\n const recursiveFields = {\n AND: {\n type: new GraphQLList(\n new GraphQLInputObjectType({\n name: `${fieldName}_where_and`,\n fields: () => ({\n ...fieldTypes,\n ...recursiveFields,\n }),\n }),\n ),\n },\n OR: {\n type: new GraphQLList(\n new GraphQLInputObjectType({\n name: `${fieldName}_where_or`,\n fields: () => ({\n ...fieldTypes,\n ...recursiveFields,\n }),\n }),\n ),\n },\n }\n\n return new GraphQLInputObjectType({\n name: `${fieldName}_where`,\n fields: {\n ...fieldTypes,\n ...recursiveFields,\n },\n })\n}\n\nexport default buildWhereInputType\n"],"names":["GraphQLInputObjectType","GraphQLList","fieldAffectsData","fieldHasSubFields","fieldIsPresentationalOnly","flattenTopLevelFields","formatName","fieldToSchemaMap","withOperators","buildWhereInputType","name","fields","parentName","idField","find","field","fieldTypes","reduce","schema","hidden","getFieldSchema","type","fieldSchema","subFields","subField","key","id","fieldName","recursiveFields","AND","OR"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,0DAA0D,GAG1D,uCAAuC,GACvC,SAASA,sBAAsB,EAAEC,WAAW,QAAQ,UAAS;AAC7D,SAASC,gBAAgB,EAAEC,iBAAiB,EAAEC,yBAAyB,QAAQ,gBAAe;AAC9F,SAASC,qBAAqB,QAAQ,oBAAmB;AAEzD,OAAOC,gBAAgB,6BAA4B;AACnD,OAAOC,sBAAsB,kCAAiC;AAC9D,SAASC,aAAa,QAAQ,qBAAoB;AAQlD;;;;;;;;;;;;;CAaC,GACD,MAAMC,sBAAsB,CAAC,EAAEC,IAAI,EAAEC,MAAM,EAAEC,UAAU,EAAQ;IAC7D,wDAAwD;IACxD,iCAAiC;IAEjC,MAAMC,UAAUR,sBAAsBM,QAAQG,IAAI,CAChD,CAACC,QAAUb,iBAAiBa,UAAUA,MAAML,IAAI,KAAK;IAGvD,MAAMM,aAAaL,OAAOM,MAAM,CAAC,CAACC,QAAQH;QACxC,IAAI,CAACX,0BAA0BW,UAAU,CAACA,MAAMI,MAAM,EAAE;YACtD,MAAMC,iBAAiBb,iBAAiB;gBACtCK;YACF,EAAE,CAACG,MAAMM,IAAI,CAAC;YAEd,IAAID,gBAAgB;gBAClB,MAAME,cAAcF,eAAeL;gBAEnC,IAAIZ,kBAAkBY,UAAUA,MAAMM,IAAI,KAAK,QAAQ;oBACrD,OAAO;wBACL,GAAGH,MAAM;wBACT,GAAGI,YAAYL,MAAM,CACnB,CAACM,WAAWC,WAAc,CAAA;gCACxB,GAAGD,SAAS;gCACZ,CAACjB,WAAWkB,SAASC,GAAG,EAAE,EAAED,SAASH,IAAI;4BAC3C,CAAA,GACA,CAAC,EACF;oBACH;gBACF;gBAEA,OAAO;oBACL,GAAGH,MAAM;oBACT,CAACZ,WAAWS,MAAML,IAAI,EAAE,EAAEY;gBAC5B;YACF;QACF;QAEA,OAAOJ;IACT,GAAG,CAAC;IAEJ,IAAI,CAACL,SAAS;QACZG,WAAWU,EAAE,GAAG;YACdL,MAAMb,cAAc;gBAAEE,MAAM;gBAAMW,MAAM;YAAO,GAAyBT;QAC1E;IACF;IAEA,MAAMe,YAAYrB,WAAWI;IAE7B,MAAMkB,kBAAkB;QACtBC,KAAK;YACHR,MAAM,IAAIpB,YACR,IAAID,uBAAuB;gBACzBU,MAAM,CAAC,EAAEiB,UAAU,UAAU,CAAC;gBAC9BhB,QAAQ,IAAO,CAAA;wBACb,GAAGK,UAAU;wBACb,GAAGY,eAAe;oBACpB,CAAA;YACF;QAEJ;QACAE,IAAI;YACFT,MAAM,IAAIpB,YACR,IAAID,uBAAuB;gBACzBU,MAAM,CAAC,EAAEiB,UAAU,SAAS,CAAC;gBAC7BhB,QAAQ,IAAO,CAAA;wBACb,GAAGK,UAAU;wBACb,GAAGY,eAAe;oBACpB,CAAA;YACF;QAEJ;IACF;IAEA,OAAO,IAAI5B,uBAAuB;QAChCU,MAAM,CAAC,EAAEiB,UAAU,MAAM,CAAC;QAC1BhB,QAAQ;YACN,GAAGK,UAAU;YACb,GAAGY,eAAe;QACpB;IACF;AACF;AAEA,eAAenB,oBAAmB"}
1
+ {"version":3,"sources":["../../src/schema/buildWhereInputType.ts"],"sourcesContent":["import type { Field, FieldAffectingData } from 'payload'\n\nimport { GraphQLInputObjectType, GraphQLList } from 'graphql'\nimport { flattenTopLevelFields } from 'payload'\nimport { fieldAffectsData, fieldHasSubFields, fieldIsPresentationalOnly } from 'payload/shared'\n\nimport { formatName } from '../utilities/formatName.js'\nimport { fieldToSchemaMap } from './fieldToWhereInputSchemaMap.js'\nimport { withOperators } from './withOperators.js'\n\ntype Args = {\n fields: Field[]\n name: string\n parentName: string\n}\n\n/** This does as the function name suggests. It builds a where GraphQL input type\n * for all the fields which are passed to the function.\n * Each field has different operators which may be valid for a where input type.\n * For example, a text field may have a \"contains\" operator, but a number field\n * may not.\n *\n * buildWhereInputType is similar to buildObjectType and operates\n * on a field basis with a few distinct differences.\n *\n * 1. Everything needs to be a GraphQLInputObjectType or scalar / enum\n * 2. Relationships, groups, repeaters and flex content are not\n * directly searchable. Instead, we need to build a chained pathname\n * using dot notation so MongoDB can properly search nested paths.\n */\nexport const buildWhereInputType = ({ name, fields, parentName }: Args): GraphQLInputObjectType => {\n // This is the function that builds nested paths for all\n // field types with nested paths.\n\n const idField = flattenTopLevelFields(fields).find(\n (field) => fieldAffectsData(field) && field.name === 'id',\n )\n\n const fieldTypes = fields.reduce((schema, field) => {\n if (!fieldIsPresentationalOnly(field) && !field.hidden) {\n const getFieldSchema = fieldToSchemaMap({\n parentName,\n })[field.type]\n\n if (getFieldSchema) {\n const fieldSchema = getFieldSchema(field)\n\n if (fieldHasSubFields(field) || field.type === 'tabs') {\n return {\n ...schema,\n ...fieldSchema.reduce(\n (subFields, subField) => ({\n ...subFields,\n [formatName(subField.key)]: subField.type,\n }),\n {},\n ),\n }\n }\n\n return {\n ...schema,\n [formatName(field.name)]: fieldSchema,\n }\n }\n }\n\n return schema\n }, {})\n\n if (!idField) {\n fieldTypes.id = {\n type: withOperators({ name: 'id', type: 'text' } as FieldAffectingData, parentName),\n }\n }\n\n const fieldName = formatName(name)\n\n const recursiveFields = {\n AND: {\n type: new GraphQLList(\n new GraphQLInputObjectType({\n name: `${fieldName}_where_and`,\n fields: () => ({\n ...fieldTypes,\n ...recursiveFields,\n }),\n }),\n ),\n },\n OR: {\n type: new GraphQLList(\n new GraphQLInputObjectType({\n name: `${fieldName}_where_or`,\n fields: () => ({\n ...fieldTypes,\n ...recursiveFields,\n }),\n }),\n ),\n },\n }\n\n return new GraphQLInputObjectType({\n name: `${fieldName}_where`,\n fields: {\n ...fieldTypes,\n ...recursiveFields,\n },\n })\n}\n"],"names":["GraphQLInputObjectType","GraphQLList","flattenTopLevelFields","fieldAffectsData","fieldHasSubFields","fieldIsPresentationalOnly","formatName","fieldToSchemaMap","withOperators","buildWhereInputType","name","fields","parentName","idField","find","field","fieldTypes","reduce","schema","hidden","getFieldSchema","type","fieldSchema","subFields","subField","key","id","fieldName","recursiveFields","AND","OR"],"mappings":"AAEA,SAASA,sBAAsB,EAAEC,WAAW,QAAQ,UAAS;AAC7D,SAASC,qBAAqB,QAAQ,UAAS;AAC/C,SAASC,gBAAgB,EAAEC,iBAAiB,EAAEC,yBAAyB,QAAQ,iBAAgB;AAE/F,SAASC,UAAU,QAAQ,6BAA4B;AACvD,SAASC,gBAAgB,QAAQ,kCAAiC;AAClE,SAASC,aAAa,QAAQ,qBAAoB;AAQlD;;;;;;;;;;;;;CAaC,GACD,OAAO,MAAMC,sBAAsB,CAAC,EAAEC,IAAI,EAAEC,MAAM,EAAEC,UAAU,EAAQ;IACpE,wDAAwD;IACxD,iCAAiC;IAEjC,MAAMC,UAAUX,sBAAsBS,QAAQG,IAAI,CAChD,CAACC,QAAUZ,iBAAiBY,UAAUA,MAAML,IAAI,KAAK;IAGvD,MAAMM,aAAaL,OAAOM,MAAM,CAAC,CAACC,QAAQH;QACxC,IAAI,CAACV,0BAA0BU,UAAU,CAACA,MAAMI,MAAM,EAAE;YACtD,MAAMC,iBAAiBb,iBAAiB;gBACtCK;YACF,EAAE,CAACG,MAAMM,IAAI,CAAC;YAEd,IAAID,gBAAgB;gBAClB,MAAME,cAAcF,eAAeL;gBAEnC,IAAIX,kBAAkBW,UAAUA,MAAMM,IAAI,KAAK,QAAQ;oBACrD,OAAO;wBACL,GAAGH,MAAM;wBACT,GAAGI,YAAYL,MAAM,CACnB,CAACM,WAAWC,WAAc,CAAA;gCACxB,GAAGD,SAAS;gCACZ,CAACjB,WAAWkB,SAASC,GAAG,EAAE,EAAED,SAASH,IAAI;4BAC3C,CAAA,GACA,CAAC,EACF;oBACH;gBACF;gBAEA,OAAO;oBACL,GAAGH,MAAM;oBACT,CAACZ,WAAWS,MAAML,IAAI,EAAE,EAAEY;gBAC5B;YACF;QACF;QAEA,OAAOJ;IACT,GAAG,CAAC;IAEJ,IAAI,CAACL,SAAS;QACZG,WAAWU,EAAE,GAAG;YACdL,MAAMb,cAAc;gBAAEE,MAAM;gBAAMW,MAAM;YAAO,GAAyBT;QAC1E;IACF;IAEA,MAAMe,YAAYrB,WAAWI;IAE7B,MAAMkB,kBAAkB;QACtBC,KAAK;YACHR,MAAM,IAAIpB,YACR,IAAID,uBAAuB;gBACzBU,MAAM,CAAC,EAAEiB,UAAU,UAAU,CAAC;gBAC9BhB,QAAQ,IAAO,CAAA;wBACb,GAAGK,UAAU;wBACb,GAAGY,eAAe;oBACpB,CAAA;YACF;QAEJ;QACAE,IAAI;YACFT,MAAM,IAAIpB,YACR,IAAID,uBAAuB;gBACzBU,MAAM,CAAC,EAAEiB,UAAU,SAAS,CAAC;gBAC7BhB,QAAQ,IAAO,CAAA;wBACb,GAAGK,UAAU;wBACb,GAAGY,eAAe;oBACpB,CAAA;YACF;QAEJ;IACF;IAEA,OAAO,IAAI5B,uBAAuB;QAChCU,MAAM,CAAC,EAAEiB,UAAU,MAAM,CAAC;QAC1BhB,QAAQ;YACN,GAAGK,UAAU;YACb,GAAGY,eAAe;QACpB;IACF;AACF,EAAC"}
@@ -2,6 +2,6 @@ type Args = {
2
2
  nestedFieldName?: string;
3
3
  parentName: string;
4
4
  };
5
- declare const fieldToSchemaMap: ({ nestedFieldName, parentName }: Args) => any;
6
- export default fieldToSchemaMap;
5
+ export declare const fieldToSchemaMap: ({ nestedFieldName, parentName }: Args) => any;
6
+ export {};
7
7
  //# sourceMappingURL=fieldToWhereInputSchemaMap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fieldToWhereInputSchemaMap.d.ts","sourceRoot":"","sources":["../../src/schema/fieldToWhereInputSchemaMap.ts"],"names":[],"mappings":"AAiCA,KAAK,IAAI,GAAG;IACV,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,QAAA,MAAM,gBAAgB,oCAAqC,IAAI,KAAG,GAoGhE,CAAA;AAEF,eAAe,gBAAgB,CAAA"}
1
+ {"version":3,"file":"fieldToWhereInputSchemaMap.d.ts","sourceRoot":"","sources":["../../src/schema/fieldToWhereInputSchemaMap.ts"],"names":[],"mappings":"AA8BA,KAAK,IAAI,GAAG;IACV,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,gBAAgB,oCAAqC,IAAI,KAAG,GA+HvE,CAAA"}
@@ -1,11 +1,10 @@
1
1
  import { GraphQLEnumType, GraphQLInputObjectType } from 'graphql';
2
- import GraphQLJSONImport from 'graphql-type-json';
3
- import combineParentName from '../utilities/combineParentName.js';
4
- import formatName from '../utilities/formatName.js';
5
- import recursivelyBuildNestedPaths from './recursivelyBuildNestedPaths.js';
2
+ import { GraphQLJSON } from '../packages/graphql-type-json/index.js';
3
+ import { combineParentName } from '../utilities/combineParentName.js';
4
+ import { formatName } from '../utilities/formatName.js';
5
+ import { recursivelyBuildNestedPaths } from './recursivelyBuildNestedPaths.js';
6
6
  import { withOperators } from './withOperators.js';
7
- const GraphQLJSON = GraphQLJSONImport || GraphQLJSONImport.default;
8
- const fieldToSchemaMap = ({ nestedFieldName, parentName })=>({
7
+ export const fieldToSchemaMap = ({ nestedFieldName, parentName })=>({
9
8
  array: (field)=>recursivelyBuildNestedPaths({
10
9
  field,
11
10
  nestedFieldName2: nestedFieldName,
@@ -95,10 +94,34 @@ const fieldToSchemaMap = ({ nestedFieldName, parentName })=>({
95
94
  textarea: (field)=>({
96
95
  type: withOperators(field, parentName)
97
96
  }),
98
- upload: (field)=>({
97
+ upload: (field)=>{
98
+ if (Array.isArray(field.relationTo)) {
99
+ return {
100
+ type: new GraphQLInputObjectType({
101
+ name: `${combineParentName(parentName, field.name)}_Relation`,
102
+ fields: {
103
+ relationTo: {
104
+ type: new GraphQLEnumType({
105
+ name: `${combineParentName(parentName, field.name)}_Relation_RelationTo`,
106
+ values: field.relationTo.reduce((values, relation)=>({
107
+ ...values,
108
+ [formatName(relation)]: {
109
+ value: relation
110
+ }
111
+ }), {})
112
+ })
113
+ },
114
+ value: {
115
+ type: GraphQLJSON
116
+ }
117
+ }
118
+ })
119
+ };
120
+ }
121
+ return {
99
122
  type: withOperators(field, parentName)
100
- })
123
+ };
124
+ }
101
125
  });
102
- export default fieldToSchemaMap;
103
126
 
104
127
  //# sourceMappingURL=fieldToWhereInputSchemaMap.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/fieldToWhereInputSchemaMap.ts"],"sourcesContent":["import type {\n ArrayField,\n CheckboxField,\n CodeField,\n CollapsibleField,\n DateField,\n EmailField,\n GroupField,\n JSONField,\n NumberField,\n PointField,\n RadioField,\n RelationshipField,\n RichTextField,\n RowField,\n SelectField,\n TabsField,\n TextField,\n TextareaField,\n UploadField,\n} from 'payload/types'\n\nimport { GraphQLEnumType, GraphQLInputObjectType } from 'graphql'\nimport GraphQLJSONImport from 'graphql-type-json'\n\nimport combineParentName from '../utilities/combineParentName.js'\nimport formatName from '../utilities/formatName.js'\nimport recursivelyBuildNestedPaths from './recursivelyBuildNestedPaths.js'\nimport { withOperators } from './withOperators.js'\n\nconst GraphQLJSON = (GraphQLJSONImport ||\n GraphQLJSONImport.default) as unknown as typeof GraphQLJSONImport.default\n\ntype Args = {\n nestedFieldName?: string\n parentName: string\n}\n\nconst fieldToSchemaMap = ({ nestedFieldName, parentName }: Args): any => ({\n array: (field: ArrayField) =>\n recursivelyBuildNestedPaths({\n field,\n nestedFieldName2: nestedFieldName,\n parentName,\n }),\n checkbox: (field: CheckboxField) => ({\n type: withOperators(field, parentName),\n }),\n code: (field: CodeField) => ({\n type: withOperators(field, parentName),\n }),\n collapsible: (field: CollapsibleField) =>\n recursivelyBuildNestedPaths({\n field,\n nestedFieldName2: nestedFieldName,\n parentName,\n }),\n date: (field: DateField) => ({\n type: withOperators(field, parentName),\n }),\n email: (field: EmailField) => ({\n type: withOperators(field, parentName),\n }),\n group: (field: GroupField) =>\n recursivelyBuildNestedPaths({\n field,\n nestedFieldName2: nestedFieldName,\n parentName,\n }),\n json: (field: JSONField) => ({\n type: withOperators(field, parentName),\n }),\n number: (field: NumberField) => ({\n type: withOperators(field, parentName),\n }),\n point: (field: PointField) => ({\n type: withOperators(field, parentName),\n }),\n radio: (field: RadioField) => ({\n type: withOperators(field, parentName),\n }),\n relationship: (field: RelationshipField) => {\n if (Array.isArray(field.relationTo)) {\n return {\n type: new GraphQLInputObjectType({\n name: `${combineParentName(parentName, field.name)}_Relation`,\n fields: {\n relationTo: {\n type: new GraphQLEnumType({\n name: `${combineParentName(parentName, field.name)}_Relation_RelationTo`,\n values: field.relationTo.reduce(\n (values, relation) => ({\n ...values,\n [formatName(relation)]: {\n value: relation,\n },\n }),\n {},\n ),\n }),\n },\n value: { type: GraphQLJSON },\n },\n }),\n }\n }\n\n return {\n type: withOperators(field, parentName),\n }\n },\n richText: (field: RichTextField) => ({\n type: withOperators(field, parentName),\n }),\n row: (field: RowField) =>\n recursivelyBuildNestedPaths({\n field,\n nestedFieldName2: nestedFieldName,\n parentName,\n }),\n select: (field: SelectField) => ({\n type: withOperators(field, parentName),\n }),\n tabs: (field: TabsField) =>\n recursivelyBuildNestedPaths({\n field,\n nestedFieldName2: nestedFieldName,\n parentName,\n }),\n text: (field: TextField) => ({\n type: withOperators(field, parentName),\n }),\n textarea: (field: TextareaField) => ({\n type: withOperators(field, parentName),\n }),\n upload: (field: UploadField) => ({\n type: withOperators(field, parentName),\n }),\n})\n\nexport default fieldToSchemaMap\n"],"names":["GraphQLEnumType","GraphQLInputObjectType","GraphQLJSONImport","combineParentName","formatName","recursivelyBuildNestedPaths","withOperators","GraphQLJSON","default","fieldToSchemaMap","nestedFieldName","parentName","array","field","nestedFieldName2","checkbox","type","code","collapsible","date","email","group","json","number","point","radio","relationship","Array","isArray","relationTo","name","fields","values","reduce","relation","value","richText","row","select","tabs","text","textarea","upload"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/schema/fieldToWhereInputSchemaMap.ts"],"sourcesContent":["import type {\n ArrayField,\n CheckboxField,\n CodeField,\n CollapsibleField,\n DateField,\n EmailField,\n GroupField,\n JSONField,\n NumberField,\n PointField,\n RadioField,\n RelationshipField,\n RichTextField,\n RowField,\n SelectField,\n TabsField,\n TextareaField,\n TextField,\n UploadField,\n} from 'payload'\n\nimport { GraphQLEnumType, GraphQLInputObjectType } from 'graphql'\n\nimport { GraphQLJSON } from '../packages/graphql-type-json/index.js'\nimport { combineParentName } from '../utilities/combineParentName.js'\nimport { formatName } from '../utilities/formatName.js'\nimport { recursivelyBuildNestedPaths } from './recursivelyBuildNestedPaths.js'\nimport { withOperators } from './withOperators.js'\n\ntype Args = {\n nestedFieldName?: string\n parentName: string\n}\n\nexport const fieldToSchemaMap = ({ nestedFieldName, parentName }: Args): any => ({\n array: (field: ArrayField) =>\n recursivelyBuildNestedPaths({\n field,\n nestedFieldName2: nestedFieldName,\n parentName,\n }),\n checkbox: (field: CheckboxField) => ({\n type: withOperators(field, parentName),\n }),\n code: (field: CodeField) => ({\n type: withOperators(field, parentName),\n }),\n collapsible: (field: CollapsibleField) =>\n recursivelyBuildNestedPaths({\n field,\n nestedFieldName2: nestedFieldName,\n parentName,\n }),\n date: (field: DateField) => ({\n type: withOperators(field, parentName),\n }),\n email: (field: EmailField) => ({\n type: withOperators(field, parentName),\n }),\n group: (field: GroupField) =>\n recursivelyBuildNestedPaths({\n field,\n nestedFieldName2: nestedFieldName,\n parentName,\n }),\n json: (field: JSONField) => ({\n type: withOperators(field, parentName),\n }),\n number: (field: NumberField) => ({\n type: withOperators(field, parentName),\n }),\n point: (field: PointField) => ({\n type: withOperators(field, parentName),\n }),\n radio: (field: RadioField) => ({\n type: withOperators(field, parentName),\n }),\n relationship: (field: RelationshipField) => {\n if (Array.isArray(field.relationTo)) {\n return {\n type: new GraphQLInputObjectType({\n name: `${combineParentName(parentName, field.name)}_Relation`,\n fields: {\n relationTo: {\n type: new GraphQLEnumType({\n name: `${combineParentName(parentName, field.name)}_Relation_RelationTo`,\n values: field.relationTo.reduce(\n (values, relation) => ({\n ...values,\n [formatName(relation)]: {\n value: relation,\n },\n }),\n {},\n ),\n }),\n },\n value: { type: GraphQLJSON },\n },\n }),\n }\n }\n\n return {\n type: withOperators(field, parentName),\n }\n },\n richText: (field: RichTextField) => ({\n type: withOperators(field, parentName),\n }),\n row: (field: RowField) =>\n recursivelyBuildNestedPaths({\n field,\n nestedFieldName2: nestedFieldName,\n parentName,\n }),\n select: (field: SelectField) => ({\n type: withOperators(field, parentName),\n }),\n tabs: (field: TabsField) =>\n recursivelyBuildNestedPaths({\n field,\n nestedFieldName2: nestedFieldName,\n parentName,\n }),\n text: (field: TextField) => ({\n type: withOperators(field, parentName),\n }),\n textarea: (field: TextareaField) => ({\n type: withOperators(field, parentName),\n }),\n upload: (field: UploadField) => {\n if (Array.isArray(field.relationTo)) {\n return {\n type: new GraphQLInputObjectType({\n name: `${combineParentName(parentName, field.name)}_Relation`,\n fields: {\n relationTo: {\n type: new GraphQLEnumType({\n name: `${combineParentName(parentName, field.name)}_Relation_RelationTo`,\n values: field.relationTo.reduce(\n (values, relation) => ({\n ...values,\n [formatName(relation)]: {\n value: relation,\n },\n }),\n {},\n ),\n }),\n },\n value: { type: GraphQLJSON },\n },\n }),\n }\n }\n\n return {\n type: withOperators(field, parentName),\n }\n },\n})\n"],"names":["GraphQLEnumType","GraphQLInputObjectType","GraphQLJSON","combineParentName","formatName","recursivelyBuildNestedPaths","withOperators","fieldToSchemaMap","nestedFieldName","parentName","array","field","nestedFieldName2","checkbox","type","code","collapsible","date","email","group","json","number","point","radio","relationship","Array","isArray","relationTo","name","fields","values","reduce","relation","value","richText","row","select","tabs","text","textarea","upload"],"mappings":"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"}
@@ -1,9 +1,8 @@
1
- import type { GraphQLInfo } from 'payload/config';
2
- import type { SanitizedConfig } from 'payload/types';
1
+ import type { GraphQLInfo, SanitizedConfig } from 'payload';
3
2
  type InitCollectionsGraphQLArgs = {
4
3
  config: SanitizedConfig;
5
4
  graphqlResult: GraphQLInfo;
6
5
  };
7
- declare function initCollectionsGraphQL({ config, graphqlResult }: InitCollectionsGraphQLArgs): void;
8
- export default initCollectionsGraphQL;
6
+ export declare function initCollections({ config, graphqlResult }: InitCollectionsGraphQLArgs): void;
7
+ export {};
9
8
  //# sourceMappingURL=initCollections.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"initCollections.d.ts","sourceRoot":"","sources":["../../src/schema/initCollections.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAgD,eAAe,EAAE,MAAM,eAAe,CAAA;AAyClG,KAAK,0BAA0B,GAAG;IAChC,MAAM,EAAE,eAAe,CAAA;IACvB,aAAa,EAAE,WAAW,CAAA;CAC3B,CAAA;AACD,iBAAS,sBAAsB,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,0BAA0B,GAAG,IAAI,CAya3F;AAED,eAAe,sBAAsB,CAAA"}
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,CAkd3F"}