@payloadcms/graphql 3.0.0-canary.ff8c8fd → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/dist/index.js +8 -8
  2. package/dist/index.js.map +1 -1
  3. package/dist/packages/graphql-query-complexity/QueryComplexity.d.ts +2 -2
  4. package/dist/packages/graphql-query-complexity/QueryComplexity.d.ts.map +1 -1
  5. package/dist/packages/graphql-query-complexity/QueryComplexity.js +6 -6
  6. package/dist/packages/graphql-query-complexity/QueryComplexity.js.map +1 -1
  7. package/dist/packages/graphql-query-complexity/createComplexityRule.d.ts +1 -1
  8. package/dist/packages/graphql-query-complexity/createComplexityRule.d.ts.map +1 -1
  9. package/dist/packages/graphql-query-complexity/createComplexityRule.js +1 -1
  10. package/dist/packages/graphql-query-complexity/createComplexityRule.js.map +1 -1
  11. package/dist/packages/graphql-type-json/index.js +4 -4
  12. package/dist/packages/graphql-type-json/index.js.map +1 -1
  13. package/dist/resolvers/auth/access.d.ts +1 -2
  14. package/dist/resolvers/auth/access.d.ts.map +1 -1
  15. package/dist/resolvers/auth/access.js +2 -3
  16. package/dist/resolvers/auth/access.js.map +1 -1
  17. package/dist/resolvers/auth/forgotPassword.d.ts +1 -2
  18. package/dist/resolvers/auth/forgotPassword.d.ts.map +1 -1
  19. package/dist/resolvers/auth/forgotPassword.js +1 -2
  20. package/dist/resolvers/auth/forgotPassword.js.map +1 -1
  21. package/dist/resolvers/auth/init.d.ts +1 -2
  22. package/dist/resolvers/auth/init.d.ts.map +1 -1
  23. package/dist/resolvers/auth/init.js +1 -2
  24. package/dist/resolvers/auth/init.js.map +1 -1
  25. package/dist/resolvers/auth/login.d.ts +1 -2
  26. package/dist/resolvers/auth/login.d.ts.map +1 -1
  27. package/dist/resolvers/auth/login.js +3 -4
  28. package/dist/resolvers/auth/login.js.map +1 -1
  29. package/dist/resolvers/auth/logout.d.ts +1 -2
  30. package/dist/resolvers/auth/logout.d.ts.map +1 -1
  31. package/dist/resolvers/auth/logout.js +4 -4
  32. package/dist/resolvers/auth/logout.js.map +1 -1
  33. package/dist/resolvers/auth/me.d.ts +1 -2
  34. package/dist/resolvers/auth/me.d.ts.map +1 -1
  35. package/dist/resolvers/auth/me.js +1 -2
  36. package/dist/resolvers/auth/me.js.map +1 -1
  37. package/dist/resolvers/auth/refresh.d.ts +1 -2
  38. package/dist/resolvers/auth/refresh.d.ts.map +1 -1
  39. package/dist/resolvers/auth/refresh.js +3 -4
  40. package/dist/resolvers/auth/refresh.js.map +1 -1
  41. package/dist/resolvers/auth/resetPassword.d.ts +1 -2
  42. package/dist/resolvers/auth/resetPassword.d.ts.map +1 -1
  43. package/dist/resolvers/auth/resetPassword.js +9 -6
  44. package/dist/resolvers/auth/resetPassword.js.map +1 -1
  45. package/dist/resolvers/auth/unlock.d.ts +1 -2
  46. package/dist/resolvers/auth/unlock.d.ts.map +1 -1
  47. package/dist/resolvers/auth/unlock.js +1 -2
  48. package/dist/resolvers/auth/unlock.js.map +1 -1
  49. package/dist/resolvers/auth/verifyEmail.d.ts +1 -2
  50. package/dist/resolvers/auth/verifyEmail.d.ts.map +1 -1
  51. package/dist/resolvers/auth/verifyEmail.js +7 -4
  52. package/dist/resolvers/auth/verifyEmail.js.map +1 -1
  53. package/dist/resolvers/collections/create.d.ts +1 -1
  54. package/dist/resolvers/collections/create.d.ts.map +1 -1
  55. package/dist/resolvers/collections/create.js +1 -1
  56. package/dist/resolvers/collections/create.js.map +1 -1
  57. package/dist/resolvers/collections/delete.d.ts.map +1 -1
  58. package/dist/resolvers/collections/delete.js +6 -2
  59. package/dist/resolvers/collections/delete.js.map +1 -1
  60. package/dist/resolvers/collections/duplicate.d.ts +1 -1
  61. package/dist/resolvers/collections/duplicate.d.ts.map +1 -1
  62. package/dist/resolvers/collections/duplicate.js +1 -1
  63. package/dist/resolvers/collections/duplicate.js.map +1 -1
  64. package/dist/resolvers/collections/find.d.ts.map +1 -1
  65. package/dist/resolvers/collections/find.js +6 -2
  66. package/dist/resolvers/collections/find.js.map +1 -1
  67. package/dist/resolvers/collections/findByID.d.ts.map +1 -1
  68. package/dist/resolvers/collections/findByID.js +6 -2
  69. package/dist/resolvers/collections/findByID.js.map +1 -1
  70. package/dist/resolvers/collections/findVersions.d.ts.map +1 -1
  71. package/dist/resolvers/collections/findVersions.js +6 -2
  72. package/dist/resolvers/collections/findVersions.js.map +1 -1
  73. package/dist/resolvers/collections/restoreVersion.d.ts +1 -1
  74. package/dist/resolvers/collections/restoreVersion.d.ts.map +1 -1
  75. package/dist/resolvers/collections/restoreVersion.js +1 -1
  76. package/dist/resolvers/collections/restoreVersion.js.map +1 -1
  77. package/dist/resolvers/collections/update.d.ts.map +1 -1
  78. package/dist/resolvers/collections/update.js +6 -2
  79. package/dist/resolvers/collections/update.js.map +1 -1
  80. package/dist/resolvers/globals/findOne.d.ts +1 -1
  81. package/dist/resolvers/globals/findOne.d.ts.map +1 -1
  82. package/dist/resolvers/globals/findOne.js +7 -3
  83. package/dist/resolvers/globals/findOne.js.map +1 -1
  84. package/dist/resolvers/globals/findVersionByID.d.ts +1 -1
  85. package/dist/resolvers/globals/findVersionByID.d.ts.map +1 -1
  86. package/dist/resolvers/globals/findVersionByID.js +7 -3
  87. package/dist/resolvers/globals/findVersionByID.js.map +1 -1
  88. package/dist/resolvers/globals/findVersions.d.ts +1 -1
  89. package/dist/resolvers/globals/findVersions.d.ts.map +1 -1
  90. package/dist/resolvers/globals/findVersions.js +1 -1
  91. package/dist/resolvers/globals/findVersions.js.map +1 -1
  92. package/dist/resolvers/globals/index.d.ts +5 -5
  93. package/dist/resolvers/globals/index.d.ts.map +1 -1
  94. package/dist/resolvers/globals/index.js +5 -5
  95. package/dist/resolvers/globals/index.js.map +1 -1
  96. package/dist/resolvers/globals/restoreVersion.d.ts +1 -1
  97. package/dist/resolvers/globals/restoreVersion.d.ts.map +1 -1
  98. package/dist/resolvers/globals/restoreVersion.js +1 -1
  99. package/dist/resolvers/globals/restoreVersion.js.map +1 -1
  100. package/dist/resolvers/globals/update.d.ts +1 -1
  101. package/dist/resolvers/globals/update.d.ts.map +1 -1
  102. package/dist/resolvers/globals/update.js +7 -3
  103. package/dist/resolvers/globals/update.js.map +1 -1
  104. package/dist/schema/buildFallbackLocaleInputType.d.ts +1 -2
  105. package/dist/schema/buildFallbackLocaleInputType.d.ts.map +1 -1
  106. package/dist/schema/buildFallbackLocaleInputType.js +2 -3
  107. package/dist/schema/buildFallbackLocaleInputType.js.map +1 -1
  108. package/dist/schema/buildLocaleInputType.d.ts +1 -2
  109. package/dist/schema/buildLocaleInputType.d.ts.map +1 -1
  110. package/dist/schema/buildLocaleInputType.js +2 -3
  111. package/dist/schema/buildLocaleInputType.js.map +1 -1
  112. package/dist/schema/buildMutationInputType.d.ts.map +1 -1
  113. package/dist/schema/buildMutationInputType.js +27 -11
  114. package/dist/schema/buildMutationInputType.js.map +1 -1
  115. package/dist/schema/buildObjectType.d.ts.map +1 -1
  116. package/dist/schema/buildObjectType.js +148 -66
  117. package/dist/schema/buildObjectType.js.map +1 -1
  118. package/dist/schema/buildPoliciesType.d.ts +1 -1
  119. package/dist/schema/buildPoliciesType.d.ts.map +1 -1
  120. package/dist/schema/buildPoliciesType.js +5 -3
  121. package/dist/schema/buildPoliciesType.js.map +1 -1
  122. package/dist/schema/buildWhereInputType.d.ts +2 -2
  123. package/dist/schema/buildWhereInputType.d.ts.map +1 -1
  124. package/dist/schema/buildWhereInputType.js +3 -4
  125. package/dist/schema/buildWhereInputType.js.map +1 -1
  126. package/dist/schema/fieldToWhereInputSchemaMap.d.ts +2 -2
  127. package/dist/schema/fieldToWhereInputSchemaMap.d.ts.map +1 -1
  128. package/dist/schema/fieldToWhereInputSchemaMap.js +4 -5
  129. package/dist/schema/fieldToWhereInputSchemaMap.js.map +1 -1
  130. package/dist/schema/initCollections.d.ts +2 -2
  131. package/dist/schema/initCollections.d.ts.map +1 -1
  132. package/dist/schema/initCollections.js +26 -22
  133. package/dist/schema/initCollections.js.map +1 -1
  134. package/dist/schema/initGlobals.d.ts +2 -2
  135. package/dist/schema/initGlobals.d.ts.map +1 -1
  136. package/dist/schema/initGlobals.js +17 -16
  137. package/dist/schema/initGlobals.js.map +1 -1
  138. package/dist/schema/isFieldNullable.d.ts +1 -2
  139. package/dist/schema/isFieldNullable.d.ts.map +1 -1
  140. package/dist/schema/isFieldNullable.js +1 -2
  141. package/dist/schema/isFieldNullable.js.map +1 -1
  142. package/dist/schema/operators.d.ts +1 -2
  143. package/dist/schema/operators.d.ts.map +1 -1
  144. package/dist/schema/operators.js +1 -2
  145. package/dist/schema/operators.js.map +1 -1
  146. package/dist/schema/recursivelyBuildNestedPaths.d.ts +2 -2
  147. package/dist/schema/recursivelyBuildNestedPaths.d.ts.map +1 -1
  148. package/dist/schema/recursivelyBuildNestedPaths.js +2 -3
  149. package/dist/schema/recursivelyBuildNestedPaths.js.map +1 -1
  150. package/dist/schema/withNullableType.d.ts +1 -2
  151. package/dist/schema/withNullableType.d.ts.map +1 -1
  152. package/dist/schema/withNullableType.js +1 -2
  153. package/dist/schema/withNullableType.js.map +1 -1
  154. package/dist/schema/withOperators.d.ts.map +1 -1
  155. package/dist/schema/withOperators.js +6 -4
  156. package/dist/schema/withOperators.js.map +1 -1
  157. package/dist/utilities/combineParentName.d.ts +1 -2
  158. package/dist/utilities/combineParentName.d.ts.map +1 -1
  159. package/dist/utilities/combineParentName.js +2 -3
  160. package/dist/utilities/combineParentName.js.map +1 -1
  161. package/dist/utilities/formatName.d.ts +1 -2
  162. package/dist/utilities/formatName.d.ts.map +1 -1
  163. package/dist/utilities/formatName.js +1 -2
  164. package/dist/utilities/formatName.js.map +1 -1
  165. package/dist/utilities/formatName.spec.js +1 -1
  166. package/dist/utilities/formatName.spec.js.map +1 -1
  167. package/dist/utilities/formatOptions.d.ts +1 -2
  168. package/dist/utilities/formatOptions.d.ts.map +1 -1
  169. package/dist/utilities/formatOptions.js +2 -3
  170. package/dist/utilities/formatOptions.js.map +1 -1
  171. package/license.md +22 -0
  172. package/package.json +18 -7
  173. package/dist/utilities/getCheckIfLocaleObject.d.ts +0 -5
  174. package/dist/utilities/getCheckIfLocaleObject.d.ts.map +0 -1
  175. package/dist/utilities/getCheckIfLocaleObject.js +0 -3
  176. package/dist/utilities/getCheckIfLocaleObject.js.map +0 -1
  177. package/dist/utilities/uppercase.d.ts +0 -3
  178. package/dist/utilities/uppercase.d.ts.map +0 -1
  179. package/dist/utilities/uppercase.js +0 -11
  180. package/dist/utilities/uppercase.js.map +0 -1
@@ -1,13 +1,13 @@
1
1
  import { GraphQLBoolean, GraphQLEnumType, GraphQLFloat, GraphQLInt, GraphQLList, GraphQLNonNull, GraphQLObjectType, GraphQLString, GraphQLUnionType } from 'graphql';
2
2
  import { DateTimeResolver, EmailAddressResolver } from 'graphql-scalars';
3
- import { MissingEditorProp, createDataloaderCacheKey, toWords } from 'payload';
3
+ import { combineQueries, createDataloaderCacheKey, MissingEditorProp, toWords } from 'payload';
4
4
  import { tabHasName } from 'payload/shared';
5
5
  import { GraphQLJSON } from '../packages/graphql-type-json/index.js';
6
- import combineParentName from '../utilities/combineParentName.js';
7
- import formatName from '../utilities/formatName.js';
8
- import formatOptions from '../utilities/formatOptions.js';
9
- import isFieldNullable from './isFieldNullable.js';
10
- import withNullableType from './withNullableType.js';
6
+ import { combineParentName } from '../utilities/combineParentName.js';
7
+ import { formatName } from '../utilities/formatName.js';
8
+ import { formatOptions } from '../utilities/formatOptions.js';
9
+ import { isFieldNullable } from './isFieldNullable.js';
10
+ import { withNullableType } from './withNullableType.js';
11
11
  export function buildObjectType({ name, baseFields = {}, config, fields, forceNullable, graphqlResult, parentName }) {
12
12
  const fieldToSchemaMap = {
13
13
  array: (objectTypeConfig, field)=>{
@@ -93,7 +93,9 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
93
93
  }),
94
94
  collapsible: (objectTypeConfig, field)=>field.fields.reduce((objectTypeConfigWithCollapsibleFields, subField)=>{
95
95
  const addSubField = fieldToSchemaMap[subField.type];
96
- if (addSubField) return addSubField(objectTypeConfigWithCollapsibleFields, subField);
96
+ if (addSubField) {
97
+ return addSubField(objectTypeConfigWithCollapsibleFields, subField);
98
+ }
97
99
  return objectTypeConfigWithCollapsibleFields;
98
100
  }, objectTypeConfig),
99
101
  date: (objectTypeConfig, field)=>({
@@ -129,10 +131,71 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
129
131
  return {
130
132
  ...objectTypeConfig,
131
133
  [field.name]: {
132
- type: graphqlResult.types.groupTypes[interfaceName]
134
+ type: graphqlResult.types.groupTypes[interfaceName],
135
+ resolve: (parent, args, context)=>{
136
+ return {
137
+ ...parent[field.name],
138
+ _id: parent._id ?? parent.id
139
+ };
140
+ }
133
141
  }
134
142
  };
135
143
  },
144
+ join: (objectTypeConfig, field)=>{
145
+ const joinName = combineParentName(parentName, toWords(field.name, true));
146
+ const joinType = {
147
+ type: new GraphQLObjectType({
148
+ name: joinName,
149
+ fields: {
150
+ docs: {
151
+ type: new GraphQLList(graphqlResult.collections[field.collection].graphQL.type)
152
+ },
153
+ hasNextPage: {
154
+ type: GraphQLBoolean
155
+ }
156
+ }
157
+ }),
158
+ args: {
159
+ limit: {
160
+ type: GraphQLInt
161
+ },
162
+ sort: {
163
+ type: GraphQLString
164
+ },
165
+ where: {
166
+ type: graphqlResult.collections[field.collection].graphQL.whereInputType
167
+ }
168
+ },
169
+ extensions: {
170
+ complexity: 10
171
+ },
172
+ async resolve (parent, args, context) {
173
+ const { collection } = field;
174
+ const { limit, sort, where } = args;
175
+ const { req } = context;
176
+ const fullWhere = combineQueries(where, {
177
+ [field.on]: {
178
+ equals: parent._id ?? parent.id
179
+ }
180
+ });
181
+ const results = await req.payload.find({
182
+ collection,
183
+ depth: 0,
184
+ fallbackLocale: req.fallbackLocale,
185
+ limit,
186
+ locale: req.locale,
187
+ req,
188
+ sort,
189
+ where: fullWhere
190
+ });
191
+ return results;
192
+ }
193
+ };
194
+ return {
195
+ ...objectTypeConfig,
196
+ [field.name]: joinType
197
+ };
198
+ },
136
199
  json: (objectTypeConfig, field)=>({
137
200
  ...objectTypeConfig,
138
201
  [field.name]: {
@@ -170,17 +233,19 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
170
233
  const relationshipName = combineParentName(parentName, toWords(field.name, true));
171
234
  let type;
172
235
  let relationToType = null;
236
+ const graphQLCollections = config.collections.filter((collectionConfig)=>collectionConfig.graphQL !== false);
173
237
  if (Array.isArray(relationTo)) {
174
238
  relationToType = new GraphQLEnumType({
175
239
  name: `${relationshipName}_RelationTo`,
176
- values: relationTo.reduce((relations, relation)=>({
240
+ values: relationTo.filter((relation)=>graphQLCollections.some((collection)=>collection.slug === relation)).reduce((relations, relation)=>({
177
241
  ...relations,
178
242
  [formatName(relation)]: {
179
243
  value: relation
180
244
  }
181
245
  }), {})
182
246
  });
183
- const types = relationTo.map((relation)=>graphqlResult.collections[relation].graphQL.type);
247
+ // Only pass collections that are GraphQL enabled
248
+ const types = relationTo.filter((relation)=>graphQLCollections.some((collection)=>collection.slug === relation)).map((relation)=>graphqlResult.collections[relation]?.graphQL.type);
184
249
  type = new GraphQLObjectType({
185
250
  name: `${relationshipName}_Relationship`,
186
251
  fields: {
@@ -190,7 +255,7 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
190
255
  value: {
191
256
  type: new GraphQLUnionType({
192
257
  name: relationshipName,
193
- resolveType (data, { req }) {
258
+ resolveType (data) {
194
259
  return graphqlResult.collections[data.collection].graphQL.type.name;
195
260
  },
196
261
  types
@@ -209,7 +274,7 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
209
274
  const relationshipArgs = {};
210
275
  const relationsUseDrafts = (Array.isArray(relationTo) ? relationTo : [
211
276
  relationTo
212
- ]).some((relation)=>graphqlResult.collections[relation].config.versions?.drafts);
277
+ ]).filter((relation)=>graphQLCollections.some((collection)=>collection.slug === relation)).some((relation)=>graphqlResult.collections[relation].config.versions?.drafts);
213
278
  if (relationsUseDrafts) {
214
279
  relationshipArgs.draft = {
215
280
  type: GraphQLBoolean
@@ -241,33 +306,36 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
241
306
  const createPopulationPromise = async (relatedDoc, i)=>{
242
307
  let id = relatedDoc;
243
308
  let collectionSlug = field.relationTo;
244
- if (isRelatedToManyCollections) {
245
- collectionSlug = relatedDoc.relationTo;
246
- id = relatedDoc.value;
247
- }
248
- const result = await context.req.payloadDataLoader.load(createDataloaderCacheKey({
249
- collectionSlug: collectionSlug,
250
- currentDepth: 0,
251
- depth: 0,
252
- docID: id,
253
- draft,
254
- fallbackLocale,
255
- locale,
256
- overrideAccess: false,
257
- showHiddenFields: false,
258
- transactionID: context.req.transactionID
259
- }));
260
- if (result) {
309
+ const isValidGraphQLCollection = isRelatedToManyCollections ? graphQLCollections.some((collection)=>collectionSlug.includes(collection.slug)) : graphQLCollections.some((collection)=>collectionSlug === collection.slug);
310
+ if (isValidGraphQLCollection) {
261
311
  if (isRelatedToManyCollections) {
262
- results[i] = {
263
- relationTo: collectionSlug,
264
- value: {
265
- ...result,
266
- collection: collectionSlug
267
- }
268
- };
269
- } else {
270
- results[i] = result;
312
+ collectionSlug = relatedDoc.relationTo;
313
+ id = relatedDoc.value;
314
+ }
315
+ const result = await context.req.payloadDataLoader.load(createDataloaderCacheKey({
316
+ collectionSlug: collectionSlug,
317
+ currentDepth: 0,
318
+ depth: 0,
319
+ docID: id,
320
+ draft,
321
+ fallbackLocale,
322
+ locale,
323
+ overrideAccess: false,
324
+ showHiddenFields: false,
325
+ transactionID: context.req.transactionID
326
+ }));
327
+ if (result) {
328
+ if (isRelatedToManyCollections) {
329
+ results[i] = {
330
+ relationTo: collectionSlug,
331
+ value: {
332
+ ...result,
333
+ collection: collectionSlug
334
+ }
335
+ };
336
+ } else {
337
+ results[i] = result;
338
+ }
271
339
  }
272
340
  }
273
341
  };
@@ -285,29 +353,31 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
285
353
  relatedCollectionSlug = value.relationTo;
286
354
  }
287
355
  if (id) {
288
- const relatedDocument = await context.req.payloadDataLoader.load(createDataloaderCacheKey({
289
- collectionSlug: relatedCollectionSlug,
290
- currentDepth: 0,
291
- depth: 0,
292
- docID: id,
293
- draft,
294
- fallbackLocale,
295
- locale,
296
- overrideAccess: false,
297
- showHiddenFields: false,
298
- transactionID: context.req.transactionID
299
- }));
300
- if (relatedDocument) {
301
- if (isRelatedToManyCollections) {
302
- return {
303
- relationTo: relatedCollectionSlug,
304
- value: {
305
- ...relatedDocument,
306
- collection: relatedCollectionSlug
307
- }
308
- };
356
+ if (graphQLCollections.some((collection)=>collection.slug === relatedCollectionSlug)) {
357
+ const relatedDocument = await context.req.payloadDataLoader.load(createDataloaderCacheKey({
358
+ collectionSlug: relatedCollectionSlug,
359
+ currentDepth: 0,
360
+ depth: 0,
361
+ docID: id,
362
+ draft,
363
+ fallbackLocale,
364
+ locale,
365
+ overrideAccess: false,
366
+ showHiddenFields: false,
367
+ transactionID: context.req.transactionID
368
+ }));
369
+ if (relatedDocument) {
370
+ if (isRelatedToManyCollections) {
371
+ return {
372
+ relationTo: relatedCollectionSlug,
373
+ value: {
374
+ ...relatedDocument,
375
+ collection: relatedCollectionSlug
376
+ }
377
+ };
378
+ }
379
+ return relatedDocument;
309
380
  }
310
- return relatedDocument;
311
381
  }
312
382
  return null;
313
383
  }
@@ -330,7 +400,9 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
330
400
  },
331
401
  async resolve (parent, args, context) {
332
402
  let depth = config.defaultDepth;
333
- if (typeof args.depth !== 'undefined') depth = args.depth;
403
+ if (typeof args.depth !== 'undefined') {
404
+ depth = args.depth;
405
+ }
334
406
  if (!field?.editor) {
335
407
  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
336
408
  ;
@@ -371,7 +443,9 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
371
443
  }),
372
444
  row: (objectTypeConfig, field)=>field.fields.reduce((objectTypeConfigWithRowFields, subField)=>{
373
445
  const addSubField = fieldToSchemaMap[subField.type];
374
- if (addSubField) return addSubField(objectTypeConfigWithRowFields, subField);
446
+ if (addSubField) {
447
+ return addSubField(objectTypeConfigWithRowFields, subField);
448
+ }
375
449
  return objectTypeConfigWithRowFields;
376
450
  }, objectTypeConfig),
377
451
  select: (objectTypeConfig, field)=>{
@@ -411,7 +485,13 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
411
485
  return {
412
486
  ...tabSchema,
413
487
  [tab.name]: {
414
- type: graphqlResult.types.groupTypes[interfaceName]
488
+ type: graphqlResult.types.groupTypes[interfaceName],
489
+ resolve (parent, args, context) {
490
+ return {
491
+ ...parent[tab.name],
492
+ _id: parent._id ?? parent.id
493
+ };
494
+ }
415
495
  }
416
496
  };
417
497
  }
@@ -419,7 +499,9 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
419
499
  ...tabSchema,
420
500
  ...tab.fields.reduce((subFieldSchema, subField)=>{
421
501
  const addSubField = fieldToSchemaMap[subField.type];
422
- if (addSubField) return addSubField(subFieldSchema, subField);
502
+ if (addSubField) {
503
+ return addSubField(subFieldSchema, subField);
504
+ }
423
505
  return subFieldSchema;
424
506
  }, tabSchema)
425
507
  };
@@ -463,7 +545,7 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
463
545
  value: {
464
546
  type: new GraphQLUnionType({
465
547
  name: relationshipName,
466
- resolveType (data, { req }) {
548
+ resolveType (data) {
467
549
  return graphqlResult.collections[data.collection].graphQL.type.name;
468
550
  },
469
551
  types
@@ -519,7 +601,7 @@ export function buildObjectType({ name, baseFields = {}, config, fields, forceNu
519
601
  id = relatedDoc.value;
520
602
  }
521
603
  const result = await context.req.payloadDataLoader.load(createDataloaderCacheKey({
522
- collectionSlug: collectionSlug,
604
+ collectionSlug,
523
605
  currentDepth: 0,
524
606
  depth: 0,
525
607
  docID: id,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/buildObjectType.ts"],"sourcesContent":["import type { GraphQLFieldConfig, GraphQLType } from 'graphql'\nimport type {\n ArrayField,\n BlockField,\n CheckboxField,\n CodeField,\n CollapsibleField,\n DateField,\n EmailField,\n Field,\n GraphQLInfo,\n GroupField,\n JSONField,\n NumberField,\n PointField,\n RadioField,\n RelationshipField,\n RichTextAdapter,\n RichTextField,\n RowField,\n SanitizedConfig,\n SelectField,\n TabsField,\n TextField,\n TextareaField,\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 { MissingEditorProp, createDataloaderCacheKey, 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 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\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: 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 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 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: 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 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 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 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 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) 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 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, { 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 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: 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 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 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 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","MissingEditorProp","createDataloaderCacheKey","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","json","number","hasMany","point","radio","values","relationship","relationTo","isRelatedToManyCollections","Array","isArray","hasManyValues","relationshipName","relationToType","relations","relation","value","map","collections","req","collection","newlyCreatedBlockType","relationshipArgs","relationsUseDrafts","some","versions","drafts","draft","localization","locale","localeInputType","fallbackLocale","fallbackLocaleInputType","args","extensions","complexity","resolve","parent","context","relatedCollectionSlug","Boolean","query","results","resultPromises","createPopulationPromise","relatedDoc","i","id","collectionSlug","result","payloadDataLoader","load","currentDepth","depth","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
+ {"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 const isValidGraphQLCollection = isRelatedToManyCollections\n ? graphQLCollections.some((collection) => collectionSlug.includes(collection.slug))\n : graphQLCollections.some((collection) => collectionSlug === collection.slug)\n\n if (isValidGraphQLCollection) {\n if (isRelatedToManyCollections) {\n collectionSlug = relatedDoc.relationTo\n id = relatedDoc.value\n }\n\n const result = await context.req.payloadDataLoader.load(\n createDataloaderCacheKey({\n collectionSlug: collectionSlug as string,\n currentDepth: 0,\n depth: 0,\n docID: id,\n draft,\n fallbackLocale,\n locale,\n overrideAccess: false,\n 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","isValidGraphQLCollection","includes","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":"AA6BA,SACEA,cAAc,EACdC,eAAe,EACfC,YAAY,EACZC,UAAU,EACVC,WAAW,EACXC,cAAc,EACdC,iBAAiB,EACjBC,aAAa,EACbC,gBAAgB,QACX,UAAS;AAChB,SAASC,gBAAgB,EAAEC,oBAAoB,QAAQ,kBAAiB;AACxE,SAASC,cAAc,EAAEC,wBAAwB,EAAEC,iBAAiB,EAAEC,OAAO,QAAQ,UAAS;AAC9F,SAASC,UAAU,QAAQ,iBAAgB;AAI3C,SAASC,WAAW,QAAQ,yCAAwC;AACpE,SAASC,iBAAiB,QAAQ,oCAAmC;AACrE,SAASC,UAAU,QAAQ,6BAA4B;AACvD,SAASC,aAAa,QAAQ,gCAA+B;AAC7D,SAASC,eAAe,QAAQ,uBAAsB;AACtD,SAASC,gBAAgB,QAAQ,wBAAuB;AAgBxD,OAAO,SAASC,gBAAgB,EAC9BC,IAAI,EACJC,aAAa,CAAC,CAAC,EACfC,MAAM,EACNC,MAAM,EACNC,aAAa,EACbC,aAAa,EACbC,UAAU,EACL;IACL,MAAMC,mBAAmB;QACvBC,OAAO,CAACC,kBAAoCC;YAC1C,MAAMC,gBACJD,OAAOC,iBAAiBjB,kBAAkBY,YAAYf,QAAQmB,MAAMV,IAAI,EAAE;YAE5E,IAAI,CAACK,cAAcO,KAAK,CAACC,UAAU,CAACF,cAAc,EAAE;gBAClD,MAAMG,aAAaf,gBAAgB;oBACjCC,MAAMW;oBACNT;oBACAC,QAAQO,MAAMP,MAAM;oBACpBC,eAAeP,gBAAgBa,OAAON;oBACtCC;oBACAC,YAAYK;gBACd;gBAEA,IAAII,OAAOC,IAAI,CAACF,WAAWG,SAAS,IAAIC,MAAM,EAAE;oBAC9Cb,cAAcO,KAAK,CAACC,UAAU,CAACF,cAAc,GAAGG;gBAClD;YACF;YAEA,IAAI,CAACT,cAAcO,KAAK,CAACC,UAAU,CAACF,cAAc,EAAE;gBAClD,OAAOF;YACT;YAEA,MAAMU,YAAY,IAAItC,YACpB,IAAIC,eAAeuB,cAAcO,KAAK,CAACC,UAAU,CAACF,cAAc;YAGlE,OAAO;gBACL,GAAGF,gBAAgB;gBACnB,CAACC,MAAMV,IAAI,CAAC,EAAE;oBAAEoB,MAAMtB,iBAAiBY,OAAOS;gBAAW;YAC3D;QACF;QACAE,QAAQ,CAACZ,kBAAoCC;YAC3C,MAAMY,aAA4CZ,MAAMW,MAAM,CAACE,MAAM,CAAC,CAACC,KAAKC;gBAC1E,IAAI,CAACpB,cAAcO,KAAK,CAACU,UAAU,CAACG,MAAMC,IAAI,CAAC,EAAE;oBAC/C,MAAMf,gBACJc,OAAOd,iBAAiBc,OAAOE,SAASC,gBAAgBrC,QAAQkC,MAAMC,IAAI,EAAE;oBAE9E,MAAMZ,aAAaf,gBAAgB;wBACjCC,MAAMW;wBACNT;wBACAC,QAAQ;+BACHsB,MAAMtB,MAAM;4BACf;gCACEH,MAAM;gCACNoB,MAAM;4BACR;yBACD;wBACDhB;wBACAC;wBACAC,YAAYK;oBACd;oBAEA,IAAII,OAAOC,IAAI,CAACF,WAAWG,SAAS,IAAIC,MAAM,EAAE;wBAC9Cb,cAAcO,KAAK,CAACU,UAAU,CAACG,MAAMC,IAAI,CAAC,GAAGZ;oBAC/C;gBACF;gBAEA,IAAIT,cAAcO,KAAK,CAACU,UAAU,CAACG,MAAMC,IAAI,CAAC,EAAE;oBAC9CF,IAAIK,IAAI,CAACxB,cAAcO,KAAK,CAACU,UAAU,CAACG,MAAMC,IAAI,CAAC;gBACrD;gBAEA,OAAOF;YACT,GAAG,EAAE;YAEL,IAAIF,WAAWJ,MAAM,KAAK,GAAG;gBAC3B,OAAOT;YACT;YAEA,MAAMqB,WAAWpC,kBAAkBY,YAAYf,QAAQmB,MAAMV,IAAI,EAAE;YAEnE,MAAMoB,OAAO,IAAIvC,YACf,IAAIC,eACF,IAAIG,iBAAiB;gBACnBe,MAAM8B;gBACNC,aAAa,CAACC,OAAS3B,cAAcO,KAAK,CAACU,UAAU,CAACU,KAAKC,SAAS,CAAC,CAACjC,IAAI;gBAC1EY,OAAOU;YACT;YAIJ,OAAO;gBACL,GAAGb,gBAAgB;gBACnB,CAACC,MAAMV,IAAI,CAAC,EAAE;oBAAEoB,MAAMtB,iBAAiBY,OAAOU;gBAAM;YACtD;QACF;QACAc,UAAU,CAACzB,kBAAoCC,QAA0B,CAAA;gBACvE,GAAGD,gBAAgB;gBACnB,CAACC,MAAMV,IAAI,CAAC,EAAE;oBAAEoB,MAAMtB,iBAAiBY,OAAOjC,gBAAgB2B;gBAAe;YAC/E,CAAA;QACA+B,MAAM,CAAC1B,kBAAoCC,QAAsB,CAAA;gBAC/D,GAAGD,gBAAgB;gBACnB,CAACC,MAAMV,IAAI,CAAC,EAAE;oBAAEoB,MAAMtB,iBAAiBY,OAAO1B,eAAeoB;gBAAe;YAC9E,CAAA;QACAgC,aAAa,CAAC3B,kBAAoCC,QAChDA,MAAMP,MAAM,CAACoB,MAAM,CAAC,CAACc,uCAAuCC;gBAC1D,MAAMC,cAAchC,gBAAgB,CAAC+B,SAASlB,IAAI,CAAC;gBACnD,IAAImB,aAAa;oBACf,OAAOA,YAAYF,uCAAuCC;gBAC5D;gBACA,OAAOD;YACT,GAAG5B;QACL+B,MAAM,CAAC/B,kBAAoCC,QAAsB,CAAA;gBAC/D,GAAGD,gBAAgB;gBACnB,CAACC,MAAMV,IAAI,CAAC,EAAE;oBAAEoB,MAAMtB,iBAAiBY,OAAOxB,kBAAkBkB;gBAAe;YACjF,CAAA;QACAqC,OAAO,CAAChC,kBAAoCC,QAAuB,CAAA;gBACjE,GAAGD,gBAAgB;gBACnB,CAACC,MAAMV,IAAI,CAAC,EAAE;oBAAEoB,MAAMtB,iBAAiBY,OAAOvB,sBAAsBiB;gBAAe;YACrF,CAAA;QACAsC,OAAO,CAACjC,kBAAoCC;YAC1C,MAAMC,gBACJD,OAAOC,iBAAiBjB,kBAAkBY,YAAYf,QAAQmB,MAAMV,IAAI,EAAE;YAE5E,IAAI,CAACK,cAAcO,KAAK,CAAC+B,UAAU,CAAChC,cAAc,EAAE;gBAClD,MAAMG,aAAaf,gBAAgB;oBACjCC,MAAMW;oBACNT;oBACAC,QAAQO,MAAMP,MAAM;oBACpBC,eAAeP,gBAAgBa,OAAON;oBACtCC;oBACAC,YAAYK;gBACd;gBAEA,IAAII,OAAOC,IAAI,CAACF,WAAWG,SAAS,IAAIC,MAAM,EAAE;oBAC9Cb,cAAcO,KAAK,CAAC+B,UAAU,CAAChC,cAAc,GAAGG;gBAClD;YACF;YAEA,IAAI,CAACT,cAAcO,KAAK,CAAC+B,UAAU,CAAChC,cAAc,EAAE;gBAClD,OAAOF;YACT;YAEA,OAAO;gBACL,GAAGA,gBAAgB;gBACnB,CAACC,MAAMV,IAAI,CAAC,EAAE;oBACZoB,MAAMf,cAAcO,KAAK,CAAC+B,UAAU,CAAChC,cAAc;oBACnDiC,SAAS,CAACC,QAAQC,MAAMC;wBACtB,OAAO;4BACL,GAAGF,MAAM,CAACnC,MAAMV,IAAI,CAAC;4BACrBgD,KAAKH,OAAOG,GAAG,IAAIH,OAAOI,EAAE;wBAC9B;oBACF;gBACF;YACF;QACF;QACAC,MAAM,CAACzC,kBAAoCC;YACzC,MAAMyC,WAAWzD,kBAAkBY,YAAYf,QAAQmB,MAAMV,IAAI,EAAE;YAEnE,MAAMoD,WAAW;gBACfhC,MAAM,IAAIrC,kBAAkB;oBAC1BiB,MAAMmD;oBACNhD,QAAQ;wBACNkD,MAAM;4BACJjC,MAAM,IAAIvC,YAAYwB,cAAciD,WAAW,CAAC5C,MAAM6C,UAAU,CAAC,CAAC5B,OAAO,CAACP,IAAI;wBAChF;wBACAoC,aAAa;4BAAEpC,MAAM3C;wBAAe;oBACtC;gBACF;gBACAqE,MAAM;oBACJW,OAAO;wBACLrC,MAAMxC;oBACR;oBACA8E,MAAM;wBACJtC,MAAMpC;oBACR;oBACA2E,OAAO;wBACLvC,MAAMf,cAAciD,WAAW,CAAC5C,MAAM6C,UAAU,CAAC,CAAC5B,OAAO,CAACiC,cAAc;oBAC1E;gBACF;gBACAC,YAAY;oBAAEC,YAAY;gBAAG;gBAC7B,MAAMlB,SAAQC,MAAM,EAAEC,IAAI,EAAEC,OAAgB;oBAC1C,MAAM,EAAEQ,UAAU,EAAE,GAAG7C;oBACvB,MAAM,EAAE+C,KAAK,EAAEC,IAAI,EAAEC,KAAK,EAAE,GAAGb;oBAC/B,MAAM,EAAEiB,GAAG,EAAE,GAAGhB;oBAEhB,MAAMiB,YAAY5E,eAAeuE,OAAO;wBACtC,CAACjD,MAAMuD,EAAE,CAAC,EAAE;4BAAEC,QAAQrB,OAAOG,GAAG,IAAIH,OAAOI,EAAE;wBAAC;oBAChD;oBAEA,MAAMkB,UAAU,MAAMJ,IAAIK,OAAO,CAACC,IAAI,CAAC;wBACrCd;wBACAe,OAAO;wBACPC,gBAAgBR,IAAIQ,cAAc;wBAClCd;wBACAe,QAAQT,IAAIS,MAAM;wBAClBT;wBACAL;wBACAC,OAAOK;oBACT;oBAEA,OAAOG;gBACT;YACF;YAEA,OAAO;gBACL,GAAG1D,gBAAgB;gBACnB,CAACC,MAAMV,IAAI,CAAC,EAAEoD;YAChB;QACF;QACAqB,MAAM,CAAChE,kBAAoCC,QAAsB,CAAA;gBAC/D,GAAGD,gBAAgB;gBACnB,CAACC,MAAMV,IAAI,CAAC,EAAE;oBAAEoB,MAAMtB,iBAAiBY,OAAOjB,aAAaW;gBAAe;YAC5E,CAAA;QACAsE,QAAQ,CAACjE,kBAAoCC;YAC3C,MAAMU,OAAOV,OAAOV,SAAS,OAAOpB,aAAaD;YACjD,OAAO;gBACL,GAAG8B,gBAAgB;gBACnB,CAACC,MAAMV,IAAI,CAAC,EAAE;oBACZoB,MAAMtB,iBACJY,OACAA,OAAOiE,YAAY,OAAO,IAAI9F,YAAYuC,QAAQA,MAClDhB;gBAEJ;YACF;QACF;QACAwE,OAAO,CAACnE,kBAAoCC,QAAuB,CAAA;gBACjE,GAAGD,gBAAgB;gBACnB,CAACC,MAAMV,IAAI,CAAC,EAAE;oBACZoB,MAAMtB,iBACJY,OACA,IAAI7B,YAAY,IAAIC,eAAeH,gBACnCyB;gBAEJ;YACF,CAAA;QACAyE,OAAO,CAACpE,kBAAoCC,QAAuB,CAAA;gBACjE,GAAGD,gBAAgB;gBACnB,CAACC,MAAMV,IAAI,CAAC,EAAE;oBACZoB,MAAMtB,iBACJY,OACA,IAAIhC,gBAAgB;wBAClBsB,MAAMN,kBAAkBY,YAAYI,MAAMV,IAAI;wBAC9C8E,QAAQlF,cAAcc;oBACxB,IACAN;gBAEJ;YACF,CAAA;QACA2E,cAAc,CAACtE,kBAAoCC;YACjD,MAAM,EAAEsE,UAAU,EAAE,GAAGtE;YACvB,MAAMuE,6BAA6BC,MAAMC,OAAO,CAACH;YACjD,MAAMI,gBAAgB1E,MAAMiE,OAAO;YACnC,MAAMU,mBAAmB3F,kBAAkBY,YAAYf,QAAQmB,MAAMV,IAAI,EAAE;YAE3E,IAAIoB;YACJ,IAAIkE,iBAAiB;YAErB,MAAMC,qBAAqBrF,OAAOoD,WAAW,CAACkC,MAAM,CAClD,CAACC,mBAAqBA,iBAAiB9D,OAAO,KAAK;YAGrD,IAAIuD,MAAMC,OAAO,CAACH,aAAa;gBAC7BM,iBAAiB,IAAI5G,gBAAgB;oBACnCsB,MAAM,CAAC,EAAEqF,iBAAiB,WAAW,CAAC;oBACtCP,QAAQE,WACLQ,MAAM,CAAC,CAACE,WACPH,mBAAmBI,IAAI,CAAC,CAACpC,aAAeA,WAAW7B,IAAI,KAAKgE,WAE7DnE,MAAM,CACL,CAACqE,WAAWF,WAAc,CAAA;4BACxB,GAAGE,SAAS;4BACZ,CAACjG,WAAW+F,UAAU,EAAE;gCACtBG,OAAOH;4BACT;wBACF,CAAA,GACA,CAAC;gBAEP;gBAEA,iDAAiD;gBACjD,MAAM9E,QAAQoE,WACXQ,MAAM,CAAC,CAACE,WACPH,mBAAmBI,IAAI,CAAC,CAACpC,aAAeA,WAAW7B,IAAI,KAAKgE,WAE7DI,GAAG,CAAC,CAACJ,WAAarF,cAAciD,WAAW,CAACoC,SAAS,EAAE/D,QAAQP;gBAElEA,OAAO,IAAIrC,kBAAkB;oBAC3BiB,MAAM,CAAC,EAAEqF,iBAAiB,aAAa,CAAC;oBACxClF,QAAQ;wBACN6E,YAAY;4BACV5D,MAAMkE;wBACR;wBACAO,OAAO;4BACLzE,MAAM,IAAInC,iBAAiB;gCACzBe,MAAMqF;gCACNtD,aAAYC,IAAI;oCACd,OAAO3B,cAAciD,WAAW,CAACtB,KAAKuB,UAAU,CAAC,CAAC5B,OAAO,CAACP,IAAI,CAACpB,IAAI;gCACrE;gCACAY;4BACF;wBACF;oBACF;gBACF;YACF,OAAO;gBACH,CAAA,EAAEQ,IAAI,EAAE,GAAGf,cAAciD,WAAW,CAAC0B,WAAW,CAACrD,OAAO,AAAD;YAC3D;YAEA,sDAAsD;YACtD,gEAAgE;YAChE,2EAA2E;YAC3E,mCAAmC;YAEnCP,OAAOA,QAAQ2E;YAEf,MAAMC,mBAOF,CAAC;YAEL,MAAMC,qBAAqB,AAACf,CAAAA,MAAMC,OAAO,CAACH,cAAcA,aAAa;gBAACA;aAAW,AAAD,EAC7EQ,MAAM,CAAC,CAACE,WAAaH,mBAAmBI,IAAI,CAAC,CAACpC,aAAeA,WAAW7B,IAAI,KAAKgE,WACjFC,IAAI,CAAC,CAACD,WAAarF,cAAciD,WAAW,CAACoC,SAAS,CAACxF,MAAM,CAACgG,QAAQ,EAAEC;YAE3E,IAAIF,oBAAoB;gBACtBD,iBAAiBI,KAAK,GAAG;oBACvBhF,MAAM3C;gBACR;YACF;YAEA,IAAIyB,OAAOmG,YAAY,EAAE;gBACvBL,iBAAiBxB,MAAM,GAAG;oBACxBpD,MAAMf,cAAcO,KAAK,CAAC0F,eAAe;gBAC3C;gBAEAN,iBAAiBzB,cAAc,GAAG;oBAChCnD,MAAMf,cAAcO,KAAK,CAAC2F,uBAAuB;gBACnD;YACF;YAEA,MAAMxB,eAAe;gBACnB3D,MAAMtB,iBACJY,OACA0E,gBAAgB,IAAIvG,YAAY,IAAIC,eAAesC,SAASA,MAC5DhB;gBAEF0C,MAAMkD;gBACNnC,YAAY;oBAAEC,YAAY;gBAAG;gBAC7B,MAAMlB,SAAQC,MAAM,EAAEC,IAAI,EAAEC,OAAgB;oBAC1C,MAAM8C,QAAQhD,MAAM,CAACnC,MAAMV,IAAI,CAAC;oBAChC,MAAMwE,SAAS1B,KAAK0B,MAAM,IAAIzB,QAAQgB,GAAG,CAACS,MAAM;oBAChD,MAAMD,iBAAiBzB,KAAKyB,cAAc,IAAIxB,QAAQgB,GAAG,CAACQ,cAAc;oBACxE,IAAIiC,wBAAwB9F,MAAMsE,UAAU;oBAC5C,MAAMoB,QAAQK,QAAQ3D,KAAKsD,KAAK,IAAIrD,QAAQgB,GAAG,CAAC2C,KAAK,EAAEN;oBAEvD,IAAIhB,eAAe;wBACjB,MAAMjB,UAAU,EAAE;wBAClB,MAAMwC,iBAAiB,EAAE;wBAEzB,MAAMC,0BAA0B,OAAOC,YAAYC;4BACjD,IAAI7D,KAAK4D;4BACT,IAAIE,iBAAiBrG,MAAMsE,UAAU;4BACrC,MAAMgC,2BAA2B/B,6BAC7BM,mBAAmBI,IAAI,CAAC,CAACpC,aAAewD,eAAeE,QAAQ,CAAC1D,WAAW7B,IAAI,KAC/E6D,mBAAmBI,IAAI,CAAC,CAACpC,aAAewD,mBAAmBxD,WAAW7B,IAAI;4BAE9E,IAAIsF,0BAA0B;gCAC5B,IAAI/B,4BAA4B;oCAC9B8B,iBAAiBF,WAAW7B,UAAU;oCACtC/B,KAAK4D,WAAWhB,KAAK;gCACvB;gCAEA,MAAMqB,SAAS,MAAMnE,QAAQgB,GAAG,CAACoD,iBAAiB,CAACC,IAAI,CACrD/H,yBAAyB;oCACvB0H,gBAAgBA;oCAChBM,cAAc;oCACd/C,OAAO;oCACPgD,OAAOrE;oCACPmD;oCACA7B;oCACAC;oCACA+C,gBAAgB;oCAChBC,kBAAkB;oCAClBC,eAAe1E,QAAQgB,GAAG,CAAC0D,aAAa;gCAC1C;gCAGF,IAAIP,QAAQ;oCACV,IAAIjC,4BAA4B;wCAC9Bd,OAAO,CAAC2C,EAAE,GAAG;4CACX9B,YAAY+B;4CACZlB,OAAO;gDACL,GAAGqB,MAAM;gDACT3D,YAAYwD;4CACd;wCACF;oCACF,OAAO;wCACL5C,OAAO,CAAC2C,EAAE,GAAGI;oCACf;gCACF;4BACF;wBACF;wBAEA,IAAIrB,OAAO;4BACTA,MAAM6B,OAAO,CAAC,CAACb,YAAYC;gCACzBH,eAAe9E,IAAI,CAAC+E,wBAAwBC,YAAYC;4BAC1D;wBACF;wBAEA,MAAMa,QAAQC,GAAG,CAACjB;wBAClB,OAAOxC;oBACT;oBAEA,IAAIlB,KAAK4C;oBACT,IAAIZ,8BAA8BY,OAAO;wBACvC5C,KAAK4C,MAAMA,KAAK;wBAChBW,wBAAwBX,MAAMb,UAAU;oBAC1C;oBAEA,IAAI/B,IAAI;wBACN,IACEsC,mBAAmBI,IAAI,CAAC,CAACpC,aAAeA,WAAW7B,IAAI,KAAK8E,wBAC5D;4BACA,MAAMqB,kBAAkB,MAAM9E,QAAQgB,GAAG,CAACoD,iBAAiB,CAACC,IAAI,CAC9D/H,yBAAyB;gCACvB0H,gBAAgBP;gCAChBa,cAAc;gCACd/C,OAAO;gCACPgD,OAAOrE;gCACPmD;gCACA7B;gCACAC;gCACA+C,gBAAgB;gCAChBC,kBAAkB;gCAClBC,eAAe1E,QAAQgB,GAAG,CAAC0D,aAAa;4BAC1C;4BAGF,IAAII,iBAAiB;gCACnB,IAAI5C,4BAA4B;oCAC9B,OAAO;wCACLD,YAAYwB;wCACZX,OAAO;4CACL,GAAGgC,eAAe;4CAClBtE,YAAYiD;wCACd;oCACF;gCACF;gCAEA,OAAOqB;4BACT;wBACF;wBAEA,OAAO;oBACT;oBAEA,OAAO;gBACT;YACF;YAEA,OAAO;gBACL,GAAGpH,gBAAgB;gBACnB,CAACC,MAAMV,IAAI,CAAC,EAAE+E;YAChB;QACF;QACA+C,UAAU,CAACrH,kBAAoCC,QAA0B,CAAA;gBACvE,GAAGD,gBAAgB;gBACnB,CAACC,MAAMV,IAAI,CAAC,EAAE;oBACZoB,MAAMtB,iBAAiBY,OAAOjB,aAAaW;oBAC3C0C,MAAM;wBACJwB,OAAO;4BACLlD,MAAMxC;wBACR;oBACF;oBACA,MAAMgE,SAAQC,MAAM,EAAEC,IAAI,EAAEC,OAAgB;wBAC1C,IAAIuB,QAAQpE,OAAO6H,YAAY;wBAC/B,IAAI,OAAOjF,KAAKwB,KAAK,KAAK,aAAa;4BACrCA,QAAQxB,KAAKwB,KAAK;wBACpB;wBACA,IAAI,CAAC5D,OAAOsH,QAAQ;4BAClB,MAAM,IAAI1I,kBAAkBoB,OAAO,8HAA8H;;wBACnK;wBAEA,IAAI,OAAOA,OAAOsH,WAAW,YAAY;4BACvC,MAAM,IAAIC,MAAM;wBAClB;wBAEA,MAAMD,SAA0BtH,OAAOsH;wBAEvC,4DAA4D;wBAC5D,qGAAqG;wBACrG,8CAA8C;wBAC9C,sEAAsE;wBACtE,gJAAgJ;wBAChJ,IAAIA,QAAQE,2BAA2B;4BACrC,MAAMC,gBAAgB,EAAE;4BACxB,MAAMC,qBAAqB,EAAE;4BAC7B,MAAMC,gBACJ3H,OAAO4H,aAAaC,aAAa7H,OAAO4H,WAAWhE,QAAQ5D,OAAO4H,WAAWhE;4BAE/E0D,QAAQE,0BAA0B;gCAChCnF;gCACAuB,OAAO+D;gCACPjC,OAAOtD,KAAKsD,KAAK;gCACjB1F;gCACAyH;gCACAK,UAAU;gCACVC,gBAAgB;gCAChBlB,gBAAgB;gCAChBa;gCACArE,KAAKhB,QAAQgB,GAAG;gCAChByD,kBAAkB;gCAClBkB,YAAY7F;4BACd;4BACA,MAAM8E,QAAQC,GAAG,CAACO;4BAClB,MAAMR,QAAQC,GAAG,CAACQ;wBACpB;wBAEA,OAAOvF,MAAM,CAACnC,MAAMV,IAAI,CAAC;oBAC3B;gBACF;YACF,CAAA;QACA2I,KAAK,CAAClI,kBAAoCC,QACxCA,MAAMP,MAAM,CAACoB,MAAM,CAAC,CAACqH,+BAA+BtG;gBAClD,MAAMC,cAAchC,gBAAgB,CAAC+B,SAASlB,IAAI,CAAC;gBACnD,IAAImB,aAAa;oBACf,OAAOA,YAAYqG,+BAA+BtG;gBACpD;gBACA,OAAOsG;YACT,GAAGnI;QACLoI,QAAQ,CAACpI,kBAAoCC;YAC3C,MAAMoB,WAAWpC,kBAAkBY,YAAYI,MAAMV,IAAI;YAEzD,IAAIoB,OAAoB,IAAI1C,gBAAgB;gBAC1CsB,MAAM8B;gBACNgD,QAAQlF,cAAcc;YACxB;YAEAU,OAAOV,MAAMiE,OAAO,GAAG,IAAI9F,YAAY,IAAIC,eAAesC,SAASA;YACnEA,OAAOtB,iBAAiBY,OAAOU,MAAMhB;YAErC,OAAO;gBACL,GAAGK,gBAAgB;gBACnB,CAACC,MAAMV,IAAI,CAAC,EAAE;oBAAEoB;gBAAK;YACvB;QACF;QACA0H,MAAM,CAACrI,kBAAoCC,QACzCA,MAAMoI,IAAI,CAACvH,MAAM,CAAC,CAACwH,WAAWC;gBAC5B,IAAIxJ,WAAWwJ,MAAM;oBACnB,MAAMrI,gBACJqI,KAAKrI,iBAAiBjB,kBAAkBY,YAAYf,QAAQyJ,IAAIhJ,IAAI,EAAE;oBAExE,IAAI,CAACK,cAAcO,KAAK,CAAC+B,UAAU,CAAChC,cAAc,EAAE;wBAClD,MAAMG,aAAaf,gBAAgB;4BACjCC,MAAMW;4BACNT;4BACAC,QAAQ6I,IAAI7I,MAAM;4BAClBC;4BACAC;4BACAC,YAAYK;wBACd;wBAEA,IAAII,OAAOC,IAAI,CAACF,WAAWG,SAAS,IAAIC,MAAM,EAAE;4BAC9Cb,cAAcO,KAAK,CAAC+B,UAAU,CAAChC,cAAc,GAAGG;wBAClD;oBACF;oBAEA,IAAI,CAACT,cAAcO,KAAK,CAAC+B,UAAU,CAAChC,cAAc,EAAE;wBAClD,OAAOoI;oBACT;oBAEA,OAAO;wBACL,GAAGA,SAAS;wBACZ,CAACC,IAAIhJ,IAAI,CAAC,EAAE;4BACVoB,MAAMf,cAAcO,KAAK,CAAC+B,UAAU,CAAChC,cAAc;4BACnDiC,SAAQC,MAAM,EAAEC,IAAI,EAAEC,OAAgB;gCACpC,OAAO;oCACL,GAAGF,MAAM,CAACmG,IAAIhJ,IAAI,CAAC;oCACnBgD,KAAKH,OAAOG,GAAG,IAAIH,OAAOI,EAAE;gCAC9B;4BACF;wBACF;oBACF;gBACF;gBAEA,OAAO;oBACL,GAAG8F,SAAS;oBACZ,GAAGC,IAAI7I,MAAM,CAACoB,MAAM,CAAC,CAAC0H,gBAAgB3G;wBACpC,MAAMC,cAAchC,gBAAgB,CAAC+B,SAASlB,IAAI,CAAC;wBACnD,IAAImB,aAAa;4BACf,OAAOA,YAAY0G,gBAAgB3G;wBACrC;wBACA,OAAO2G;oBACT,GAAGF,UAAU;gBACf;YACF,GAAGtI;QACLyI,MAAM,CAACzI,kBAAoCC,QAAsB,CAAA;gBAC/D,GAAGD,gBAAgB;gBACnB,CAACC,MAAMV,IAAI,CAAC,EAAE;oBACZoB,MAAMtB,iBACJY,OACAA,MAAMiE,OAAO,KAAK,OAAO,IAAI9F,YAAYG,iBAAiBA,eAC1DoB;gBAEJ;YACF,CAAA;QACA+I,UAAU,CAAC1I,kBAAoCC,QAA0B,CAAA;gBACvE,GAAGD,gBAAgB;gBACnB,CAACC,MAAMV,IAAI,CAAC,EAAE;oBAAEoB,MAAMtB,iBAAiBY,OAAO1B,eAAeoB;gBAAe;YAC9E,CAAA;QACAgJ,QAAQ,CAAC3I,kBAAoCC;YAC3C,MAAM,EAAEsE,UAAU,EAAE,GAAGtE;YACvB,MAAMuE,6BAA6BC,MAAMC,OAAO,CAACH;YACjD,MAAMI,gBAAgB1E,MAAMiE,OAAO;YACnC,MAAMU,mBAAmB3F,kBAAkBY,YAAYf,QAAQmB,MAAMV,IAAI,EAAE;YAE3E,IAAIoB;YACJ,IAAIkE,iBAAiB;YAErB,IAAIJ,MAAMC,OAAO,CAACH,aAAa;gBAC7BM,iBAAiB,IAAI5G,gBAAgB;oBACnCsB,MAAM,CAAC,EAAEqF,iBAAiB,WAAW,CAAC;oBACtCP,QAAQE,WAAWzD,MAAM,CACvB,CAACqE,WAAWF,WAAc,CAAA;4BACxB,GAAGE,SAAS;4BACZ,CAACjG,WAAW+F,UAAU,EAAE;gCACtBG,OAAOH;4BACT;wBACF,CAAA,GACA,CAAC;gBAEL;gBAEA,MAAM9E,QAAQoE,WAAWc,GAAG,CAAC,CAACJ,WAAarF,cAAciD,WAAW,CAACoC,SAAS,CAAC/D,OAAO,CAACP,IAAI;gBAE3FA,OAAO,IAAIrC,kBAAkB;oBAC3BiB,MAAM,CAAC,EAAEqF,iBAAiB,aAAa,CAAC;oBACxClF,QAAQ;wBACN6E,YAAY;4BACV5D,MAAMkE;wBACR;wBACAO,OAAO;4BACLzE,MAAM,IAAInC,iBAAiB;gCACzBe,MAAMqF;gCACNtD,aAAYC,IAAI;oCACd,OAAO3B,cAAciD,WAAW,CAACtB,KAAKuB,UAAU,CAAC,CAAC5B,OAAO,CAACP,IAAI,CAACpB,IAAI;gCACrE;gCACAY;4BACF;wBACF;oBACF;gBACF;YACF,OAAO;gBACH,CAAA,EAAEQ,IAAI,EAAE,GAAGf,cAAciD,WAAW,CAAC0B,WAAW,CAACrD,OAAO,AAAD;YAC3D;YAEA,sDAAsD;YACtD,gEAAgE;YAChE,2EAA2E;YAC3E,mCAAmC;YAEnCP,OAAOA,QAAQ2E;YAEf,MAAMC,mBAOF,CAAC;YAEL,MAAMC,qBAAqB,AAACf,CAAAA,MAAMC,OAAO,CAACH,cAAcA,aAAa;gBAACA;aAAW,AAAD,EAAGW,IAAI,CACrF,CAACD,WAAarF,cAAciD,WAAW,CAACoC,SAAS,CAACxF,MAAM,CAACgG,QAAQ,EAAEC;YAGrE,IAAIF,oBAAoB;gBACtBD,iBAAiBI,KAAK,GAAG;oBACvBhF,MAAM3C;gBACR;YACF;YAEA,IAAIyB,OAAOmG,YAAY,EAAE;gBACvBL,iBAAiBxB,MAAM,GAAG;oBACxBpD,MAAMf,cAAcO,KAAK,CAAC0F,eAAe;gBAC3C;gBAEAN,iBAAiBzB,cAAc,GAAG;oBAChCnD,MAAMf,cAAcO,KAAK,CAAC2F,uBAAuB;gBACnD;YACF;YAEA,MAAMxB,eAAe;gBACnB3D,MAAMtB,iBACJY,OACA0E,gBAAgB,IAAIvG,YAAY,IAAIC,eAAesC,SAASA,MAC5DhB;gBAEF0C,MAAMkD;gBACNnC,YAAY;oBAAEC,YAAY;gBAAG;gBAC7B,MAAMlB,SAAQC,MAAM,EAAEC,IAAI,EAAEC,OAAgB;oBAC1C,MAAM8C,QAAQhD,MAAM,CAACnC,MAAMV,IAAI,CAAC;oBAChC,MAAMwE,SAAS1B,KAAK0B,MAAM,IAAIzB,QAAQgB,GAAG,CAACS,MAAM;oBAChD,MAAMD,iBAAiBzB,KAAKyB,cAAc,IAAIxB,QAAQgB,GAAG,CAACQ,cAAc;oBACxE,IAAIiC,wBAAwB9F,MAAMsE,UAAU;oBAC5C,MAAMoB,QAAQK,QAAQ3D,KAAKsD,KAAK,IAAIrD,QAAQgB,GAAG,CAAC2C,KAAK,EAAEN;oBAEvD,IAAIhB,eAAe;wBACjB,MAAMjB,UAAU,EAAE;wBAClB,MAAMwC,iBAAiB,EAAE;wBAEzB,MAAMC,0BAA0B,OAAOC,YAAYC;4BACjD,IAAI7D,KAAK4D;4BACT,IAAIE,iBAAiBrG,MAAMsE,UAAU;4BAErC,IAAIC,4BAA4B;gCAC9B8B,iBAAiBF,WAAW7B,UAAU;gCACtC/B,KAAK4D,WAAWhB,KAAK;4BACvB;4BAEA,MAAMqB,SAAS,MAAMnE,QAAQgB,GAAG,CAACoD,iBAAiB,CAACC,IAAI,CACrD/H,yBAAyB;gCACvB0H;gCACAM,cAAc;gCACd/C,OAAO;gCACPgD,OAAOrE;gCACPmD;gCACA7B;gCACAC;gCACA+C,gBAAgB;gCAChBC,kBAAkB;gCAClBC,eAAe1E,QAAQgB,GAAG,CAAC0D,aAAa;4BAC1C;4BAGF,IAAIP,QAAQ;gCACV,IAAIjC,4BAA4B;oCAC9Bd,OAAO,CAAC2C,EAAE,GAAG;wCACX9B,YAAY+B;wCACZlB,OAAO;4CACL,GAAGqB,MAAM;4CACT3D,YAAYwD;wCACd;oCACF;gCACF,OAAO;oCACL5C,OAAO,CAAC2C,EAAE,GAAGI;gCACf;4BACF;wBACF;wBAEA,IAAIrB,OAAO;4BACTA,MAAM6B,OAAO,CAAC,CAACb,YAAYC;gCACzBH,eAAe9E,IAAI,CAAC+E,wBAAwBC,YAAYC;4BAC1D;wBACF;wBAEA,MAAMa,QAAQC,GAAG,CAACjB;wBAClB,OAAOxC;oBACT;oBAEA,IAAIlB,KAAK4C;oBACT,IAAIZ,8BAA8BY,OAAO;wBACvC5C,KAAK4C,MAAMA,KAAK;wBAChBW,wBAAwBX,MAAMb,UAAU;oBAC1C;oBAEA,IAAI/B,IAAI;wBACN,MAAM4E,kBAAkB,MAAM9E,QAAQgB,GAAG,CAACoD,iBAAiB,CAACC,IAAI,CAC9D/H,yBAAyB;4BACvB0H,gBAAgBP;4BAChBa,cAAc;4BACd/C,OAAO;4BACPgD,OAAOrE;4BACPmD;4BACA7B;4BACAC;4BACA+C,gBAAgB;4BAChBC,kBAAkB;4BAClBC,eAAe1E,QAAQgB,GAAG,CAAC0D,aAAa;wBAC1C;wBAGF,IAAII,iBAAiB;4BACnB,IAAI5C,4BAA4B;gCAC9B,OAAO;oCACLD,YAAYwB;oCACZX,OAAO;wCACL,GAAGgC,eAAe;wCAClBtE,YAAYiD;oCACd;gCACF;4BACF;4BAEA,OAAOqB;wBACT;wBAEA,OAAO;oBACT;oBAEA,OAAO;gBACT;YACF;YAEA,OAAO;gBACL,GAAGpH,gBAAgB;gBACnB,CAACC,MAAMV,IAAI,CAAC,EAAE+E;YAChB;QACF;IACF;IAEA,MAAMsE,eAAe;QACnBrJ;QACAG,QAAQ,IACNA,OAAOoB,MAAM,CAAC,CAACd,kBAAkBC;gBAC/B,MAAM4I,cAAc/I,gBAAgB,CAACG,MAAMU,IAAI,CAAC;gBAEhD,IAAI,OAAOkI,gBAAgB,YAAY;oBACrC,OAAO7I;gBACT;gBAEA,OAAO;oBACL,GAAGA,gBAAgB;oBACnB,GAAG6I,YAAY7I,kBAAkBC,MAAM;gBACzC;YACF,GAAGT;IACP;IAEA,MAAM8F,wBAAwB,IAAIhH,kBAAkBsK;IAEpD,OAAOtD;AACT"}
@@ -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,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,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
2
  import { toWords } from 'payload';
3
3
  import { GraphQLJSONObject } from '../packages/graphql-type-json/index.js';
4
- import formatName from '../utilities/formatName.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)