@strapi/plugin-graphql 5.37.1 → 5.38.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 (219) hide show
  1. package/dist/admin/index.js.map +1 -1
  2. package/dist/admin/index.mjs.map +1 -1
  3. package/dist/admin/package.json.js +1 -133
  4. package/dist/admin/package.json.js.map +1 -1
  5. package/dist/admin/package.json.mjs +2 -120
  6. package/dist/admin/package.json.mjs.map +1 -1
  7. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -1
  8. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -1
  9. package/dist/server/bootstrap.js.map +1 -1
  10. package/dist/server/bootstrap.mjs.map +1 -1
  11. package/dist/server/config/default-config.js.map +1 -1
  12. package/dist/server/config/default-config.mjs.map +1 -1
  13. package/dist/server/config/index.js.map +1 -1
  14. package/dist/server/config/index.mjs.map +1 -1
  15. package/dist/server/format-graphql-error.js.map +1 -1
  16. package/dist/server/format-graphql-error.mjs.map +1 -1
  17. package/dist/server/index.js +4 -4
  18. package/dist/server/index.js.map +1 -1
  19. package/dist/server/index.mjs.map +1 -1
  20. package/dist/server/services/builders/dynamic-zones.js.map +1 -1
  21. package/dist/server/services/builders/dynamic-zones.mjs.map +1 -1
  22. package/dist/server/services/builders/entity.js.map +1 -1
  23. package/dist/server/services/builders/entity.mjs.map +1 -1
  24. package/dist/server/services/builders/enums.js.map +1 -1
  25. package/dist/server/services/builders/enums.mjs.map +1 -1
  26. package/dist/server/services/builders/filters/content-type.js.map +1 -1
  27. package/dist/server/services/builders/filters/content-type.mjs.map +1 -1
  28. package/dist/server/services/builders/filters/index.js.map +1 -1
  29. package/dist/server/services/builders/filters/index.mjs.map +1 -1
  30. package/dist/server/services/builders/filters/operators/and.js.map +1 -1
  31. package/dist/server/services/builders/filters/operators/and.mjs.map +1 -1
  32. package/dist/server/services/builders/filters/operators/between.js.map +1 -1
  33. package/dist/server/services/builders/filters/operators/between.mjs.map +1 -1
  34. package/dist/server/services/builders/filters/operators/contains.js.map +1 -1
  35. package/dist/server/services/builders/filters/operators/contains.mjs.map +1 -1
  36. package/dist/server/services/builders/filters/operators/containsi.js.map +1 -1
  37. package/dist/server/services/builders/filters/operators/containsi.mjs.map +1 -1
  38. package/dist/server/services/builders/filters/operators/ends-with.js.map +1 -1
  39. package/dist/server/services/builders/filters/operators/ends-with.mjs.map +1 -1
  40. package/dist/server/services/builders/filters/operators/eq.js.map +1 -1
  41. package/dist/server/services/builders/filters/operators/eq.mjs.map +1 -1
  42. package/dist/server/services/builders/filters/operators/eqi.js.map +1 -1
  43. package/dist/server/services/builders/filters/operators/eqi.mjs.map +1 -1
  44. package/dist/server/services/builders/filters/operators/gt.js.map +1 -1
  45. package/dist/server/services/builders/filters/operators/gt.mjs.map +1 -1
  46. package/dist/server/services/builders/filters/operators/gte.js.map +1 -1
  47. package/dist/server/services/builders/filters/operators/gte.mjs.map +1 -1
  48. package/dist/server/services/builders/filters/operators/in.js.map +1 -1
  49. package/dist/server/services/builders/filters/operators/in.mjs.map +1 -1
  50. package/dist/server/services/builders/filters/operators/index.js.map +1 -1
  51. package/dist/server/services/builders/filters/operators/index.mjs +4 -4
  52. package/dist/server/services/builders/filters/operators/index.mjs.map +1 -1
  53. package/dist/server/services/builders/filters/operators/lt.js.map +1 -1
  54. package/dist/server/services/builders/filters/operators/lt.mjs.map +1 -1
  55. package/dist/server/services/builders/filters/operators/lte.js.map +1 -1
  56. package/dist/server/services/builders/filters/operators/lte.mjs.map +1 -1
  57. package/dist/server/services/builders/filters/operators/ne.js.map +1 -1
  58. package/dist/server/services/builders/filters/operators/ne.mjs.map +1 -1
  59. package/dist/server/services/builders/filters/operators/nei.js.map +1 -1
  60. package/dist/server/services/builders/filters/operators/nei.mjs.map +1 -1
  61. package/dist/server/services/builders/filters/operators/not-contains.js.map +1 -1
  62. package/dist/server/services/builders/filters/operators/not-contains.mjs.map +1 -1
  63. package/dist/server/services/builders/filters/operators/not-containsi.js.map +1 -1
  64. package/dist/server/services/builders/filters/operators/not-containsi.mjs.map +1 -1
  65. package/dist/server/services/builders/filters/operators/not-in.js.map +1 -1
  66. package/dist/server/services/builders/filters/operators/not-in.mjs.map +1 -1
  67. package/dist/server/services/builders/filters/operators/not-null.js.map +1 -1
  68. package/dist/server/services/builders/filters/operators/not-null.mjs.map +1 -1
  69. package/dist/server/services/builders/filters/operators/not.js.map +1 -1
  70. package/dist/server/services/builders/filters/operators/not.mjs.map +1 -1
  71. package/dist/server/services/builders/filters/operators/null.js.map +1 -1
  72. package/dist/server/services/builders/filters/operators/null.mjs.map +1 -1
  73. package/dist/server/services/builders/filters/operators/or.js.map +1 -1
  74. package/dist/server/services/builders/filters/operators/or.mjs.map +1 -1
  75. package/dist/server/services/builders/filters/operators/starts-with.js.map +1 -1
  76. package/dist/server/services/builders/filters/operators/starts-with.mjs.map +1 -1
  77. package/dist/server/services/builders/generic-morph.js.map +1 -1
  78. package/dist/server/services/builders/generic-morph.mjs.map +1 -1
  79. package/dist/server/services/builders/index.js.map +1 -1
  80. package/dist/server/services/builders/index.mjs.map +1 -1
  81. package/dist/server/services/builders/input.js.map +1 -1
  82. package/dist/server/services/builders/input.mjs.map +1 -1
  83. package/dist/server/services/builders/mutations/collection-type.js.map +1 -1
  84. package/dist/server/services/builders/mutations/collection-type.mjs.map +1 -1
  85. package/dist/server/services/builders/mutations/index.js.map +1 -1
  86. package/dist/server/services/builders/mutations/index.mjs.map +1 -1
  87. package/dist/server/services/builders/mutations/single-type.js.map +1 -1
  88. package/dist/server/services/builders/mutations/single-type.mjs.map +1 -1
  89. package/dist/server/services/builders/queries/collection-type.js.map +1 -1
  90. package/dist/server/services/builders/queries/collection-type.mjs.map +1 -1
  91. package/dist/server/services/builders/queries/index.js.map +1 -1
  92. package/dist/server/services/builders/queries/index.mjs.map +1 -1
  93. package/dist/server/services/builders/queries/single-type.js.map +1 -1
  94. package/dist/server/services/builders/queries/single-type.mjs.map +1 -1
  95. package/dist/server/services/builders/relation-response-collection.js.map +1 -1
  96. package/dist/server/services/builders/relation-response-collection.mjs.map +1 -1
  97. package/dist/server/services/builders/resolvers/association.js.map +1 -1
  98. package/dist/server/services/builders/resolvers/association.mjs +1 -1
  99. package/dist/server/services/builders/resolvers/association.mjs.map +1 -1
  100. package/dist/server/services/builders/resolvers/component.js.map +1 -1
  101. package/dist/server/services/builders/resolvers/component.mjs.map +1 -1
  102. package/dist/server/services/builders/resolvers/dynamic-zone.js.map +1 -1
  103. package/dist/server/services/builders/resolvers/dynamic-zone.mjs.map +1 -1
  104. package/dist/server/services/builders/resolvers/index.js.map +1 -1
  105. package/dist/server/services/builders/resolvers/index.mjs.map +1 -1
  106. package/dist/server/services/builders/resolvers/pagination.js.map +1 -1
  107. package/dist/server/services/builders/resolvers/pagination.mjs.map +1 -1
  108. package/dist/server/services/builders/resolvers/query.js.map +1 -1
  109. package/dist/server/services/builders/resolvers/query.mjs.map +1 -1
  110. package/dist/server/services/builders/response-collection.js.map +1 -1
  111. package/dist/server/services/builders/response-collection.mjs.map +1 -1
  112. package/dist/server/services/builders/response.js.map +1 -1
  113. package/dist/server/services/builders/response.mjs.map +1 -1
  114. package/dist/server/services/builders/type.js +1 -3
  115. package/dist/server/services/builders/type.js.map +1 -1
  116. package/dist/server/services/builders/type.mjs +1 -3
  117. package/dist/server/services/builders/type.mjs.map +1 -1
  118. package/dist/server/services/builders/utils.js.map +1 -1
  119. package/dist/server/services/builders/utils.mjs +2 -2
  120. package/dist/server/services/builders/utils.mjs.map +1 -1
  121. package/dist/server/services/constants.js.map +1 -1
  122. package/dist/server/services/constants.mjs.map +1 -1
  123. package/dist/server/services/content-api/index.js.map +1 -1
  124. package/dist/server/services/content-api/index.mjs.map +1 -1
  125. package/dist/server/services/content-api/policy.js.map +1 -1
  126. package/dist/server/services/content-api/policy.mjs +1 -1
  127. package/dist/server/services/content-api/policy.mjs.map +1 -1
  128. package/dist/server/services/content-api/register-functions/collection-type.js.map +1 -1
  129. package/dist/server/services/content-api/register-functions/collection-type.mjs.map +1 -1
  130. package/dist/server/services/content-api/register-functions/component.js.map +1 -1
  131. package/dist/server/services/content-api/register-functions/component.mjs.map +1 -1
  132. package/dist/server/services/content-api/register-functions/dynamic-zones.js.map +1 -1
  133. package/dist/server/services/content-api/register-functions/dynamic-zones.mjs.map +1 -1
  134. package/dist/server/services/content-api/register-functions/enums.js.map +1 -1
  135. package/dist/server/services/content-api/register-functions/enums.mjs.map +1 -1
  136. package/dist/server/services/content-api/register-functions/filters.js.map +1 -1
  137. package/dist/server/services/content-api/register-functions/filters.mjs.map +1 -1
  138. package/dist/server/services/content-api/register-functions/inputs.js.map +1 -1
  139. package/dist/server/services/content-api/register-functions/inputs.mjs.map +1 -1
  140. package/dist/server/services/content-api/register-functions/internals.js.map +1 -1
  141. package/dist/server/services/content-api/register-functions/internals.mjs.map +1 -1
  142. package/dist/server/services/content-api/register-functions/polymorphic.js.map +1 -1
  143. package/dist/server/services/content-api/register-functions/polymorphic.mjs.map +1 -1
  144. package/dist/server/services/content-api/register-functions/scalars.js.map +1 -1
  145. package/dist/server/services/content-api/register-functions/scalars.mjs.map +1 -1
  146. package/dist/server/services/content-api/register-functions/single-type.js.map +1 -1
  147. package/dist/server/services/content-api/register-functions/single-type.mjs.map +1 -1
  148. package/dist/server/services/content-api/wrap-resolvers.js.map +1 -1
  149. package/dist/server/services/content-api/wrap-resolvers.mjs.map +1 -1
  150. package/dist/server/services/extension/extension.js.map +1 -1
  151. package/dist/server/services/extension/extension.mjs.map +1 -1
  152. package/dist/server/services/extension/shadow-crud-manager.js.map +1 -1
  153. package/dist/server/services/extension/shadow-crud-manager.mjs.map +1 -1
  154. package/dist/server/services/format/index.js.map +1 -1
  155. package/dist/server/services/format/index.mjs.map +1 -1
  156. package/dist/server/services/format/return-types.js.map +1 -1
  157. package/dist/server/services/format/return-types.mjs.map +1 -1
  158. package/dist/server/services/index.js +8 -8
  159. package/dist/server/services/index.js.map +1 -1
  160. package/dist/server/services/index.mjs.map +1 -1
  161. package/dist/server/services/internals/args/index.js.map +1 -1
  162. package/dist/server/services/internals/args/index.mjs.map +1 -1
  163. package/dist/server/services/internals/args/pagination.js.map +1 -1
  164. package/dist/server/services/internals/args/pagination.mjs.map +1 -1
  165. package/dist/server/services/internals/args/publication-status.js.map +1 -1
  166. package/dist/server/services/internals/args/publication-status.mjs.map +1 -1
  167. package/dist/server/services/internals/args/sort.js.map +1 -1
  168. package/dist/server/services/internals/args/sort.mjs.map +1 -1
  169. package/dist/server/services/internals/helpers/get-enabled-scalars.js.map +1 -1
  170. package/dist/server/services/internals/helpers/get-enabled-scalars.mjs.map +1 -1
  171. package/dist/server/services/internals/helpers/index.js.map +1 -1
  172. package/dist/server/services/internals/helpers/index.mjs.map +1 -1
  173. package/dist/server/services/internals/index.js +8 -8
  174. package/dist/server/services/internals/index.js.map +1 -1
  175. package/dist/server/services/internals/index.mjs.map +1 -1
  176. package/dist/server/services/internals/scalars/date.js.map +1 -1
  177. package/dist/server/services/internals/scalars/date.mjs.map +1 -1
  178. package/dist/server/services/internals/scalars/index.js.map +1 -1
  179. package/dist/server/services/internals/scalars/index.mjs +1 -1
  180. package/dist/server/services/internals/scalars/index.mjs.map +1 -1
  181. package/dist/server/services/internals/scalars/time.js.map +1 -1
  182. package/dist/server/services/internals/scalars/time.mjs +1 -1
  183. package/dist/server/services/internals/scalars/time.mjs.map +1 -1
  184. package/dist/server/services/internals/types/delete-mutation-response.js.map +1 -1
  185. package/dist/server/services/internals/types/delete-mutation-response.mjs.map +1 -1
  186. package/dist/server/services/internals/types/error.js.map +1 -1
  187. package/dist/server/services/internals/types/error.mjs.map +1 -1
  188. package/dist/server/services/internals/types/filters.js.map +1 -1
  189. package/dist/server/services/internals/types/filters.mjs.map +1 -1
  190. package/dist/server/services/internals/types/index.js.map +1 -1
  191. package/dist/server/services/internals/types/index.mjs.map +1 -1
  192. package/dist/server/services/internals/types/pagination.js.map +1 -1
  193. package/dist/server/services/internals/types/pagination.mjs.map +1 -1
  194. package/dist/server/services/internals/types/publication-status.js.map +1 -1
  195. package/dist/server/services/internals/types/publication-status.mjs.map +1 -1
  196. package/dist/server/services/internals/types/response-collection-meta.js.map +1 -1
  197. package/dist/server/services/internals/types/response-collection-meta.mjs.map +1 -1
  198. package/dist/server/services/type-registry.js.map +1 -1
  199. package/dist/server/services/type-registry.mjs.map +1 -1
  200. package/dist/server/services/utils/attributes.js.map +1 -1
  201. package/dist/server/services/utils/attributes.mjs.map +1 -1
  202. package/dist/server/services/utils/index.js.map +1 -1
  203. package/dist/server/services/utils/index.mjs.map +1 -1
  204. package/dist/server/services/utils/mappers/entity-to-response-entity.js.map +1 -1
  205. package/dist/server/services/utils/mappers/entity-to-response-entity.mjs +5 -5
  206. package/dist/server/services/utils/mappers/entity-to-response-entity.mjs.map +1 -1
  207. package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.js.map +1 -1
  208. package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.mjs.map +1 -1
  209. package/dist/server/services/utils/mappers/graphql-scalar-to-operators.js.map +1 -1
  210. package/dist/server/services/utils/mappers/graphql-scalar-to-operators.mjs.map +1 -1
  211. package/dist/server/services/utils/mappers/index.js.map +1 -1
  212. package/dist/server/services/utils/mappers/index.mjs.map +1 -1
  213. package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.js.map +1 -1
  214. package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.mjs.map +1 -1
  215. package/dist/server/services/utils/naming.js.map +1 -1
  216. package/dist/server/services/utils/naming.mjs.map +1 -1
  217. package/dist/server/services/utils/playground.js.map +1 -1
  218. package/dist/server/services/utils/playground.mjs.map +1 -1
  219. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"single-type.mjs","sources":["../../../../../server/src/services/builders/mutations/single-type.ts"],"sourcesContent":["import { extendType, nonNull } from 'nexus';\nimport { errors } from '@strapi/utils';\nimport type * as Nexus from 'nexus';\nimport type { Struct } from '@strapi/types';\nimport type { Context } from '../../types';\n\nconst { NotFoundError } = errors;\n\nexport default ({ strapi }: Context) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { naming } = getService('utils');\n const { args } = getService('internals');\n\n const {\n getUpdateMutationTypeName,\n getTypeName,\n getContentTypeInputName,\n getDeleteMutationTypeName,\n } = naming;\n\n const addUpdateMutation = (\n t: Nexus.blocks.ObjectDefinitionBlock<'Mutation'>,\n contentType: Struct.SingleTypeSchema\n ) => {\n const { uid } = contentType;\n\n const updateMutationName = getUpdateMutationTypeName(contentType);\n const typeName = getTypeName(contentType);\n\n t.field(updateMutationName, {\n type: typeName,\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: {\n // Update payload\n status: args.PublicationStatusArg,\n data: nonNull(getContentTypeInputName(contentType)),\n },\n\n async resolve(parent, args, context) {\n const { auth } = context.state;\n\n // Sanitize input data\n const sanitizedInputData = await strapi.contentAPI.sanitize.input(args.data, contentType, {\n auth,\n });\n\n const document = await strapi.db?.query(uid).findOne();\n\n if (document) {\n return strapi.documents!(uid).update({\n ...args,\n documentId: document.documentId,\n data: sanitizedInputData,\n });\n }\n\n return strapi.documents!(uid).create({\n ...args,\n data: sanitizedInputData,\n });\n },\n });\n };\n\n const addDeleteMutation = (\n t: Nexus.blocks.ObjectDefinitionBlock<'Mutation'>,\n contentType: Struct.SingleTypeSchema\n ) => {\n const { uid } = contentType;\n\n const deleteMutationName = getDeleteMutationTypeName(contentType);\n const { DELETE_MUTATION_RESPONSE_TYPE_NAME } = strapi.plugin('graphql').service('constants');\n\n t.field(deleteMutationName, {\n type: DELETE_MUTATION_RESPONSE_TYPE_NAME,\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: {},\n\n async resolve(parent, args) {\n const document = await strapi.db?.query(uid).findOne();\n\n if (!document) {\n throw new NotFoundError('Document not found');\n }\n\n await strapi.documents!(uid).delete({ ...args, documentId: document.documentId });\n\n return document;\n },\n });\n };\n\n return {\n buildSingleTypeMutations(contentType: Struct.SingleTypeSchema) {\n const updateMutationName = `Mutation.${getUpdateMutationTypeName(contentType)}`;\n const deleteMutationName = `Mutation.${getDeleteMutationTypeName(contentType)}`;\n\n const extension = getService('extension');\n\n const registerAuthConfig = (action: string, auth: any) => {\n return extension.use({ resolversConfig: { [action]: { auth } } });\n };\n\n const isActionEnabled = (action: string) => {\n return extension.shadowCRUD(contentType.uid).isActionEnabled(action);\n };\n\n const isUpdateEnabled = isActionEnabled('update');\n const isDeleteEnabled = isActionEnabled('delete');\n\n if (isUpdateEnabled) {\n registerAuthConfig(updateMutationName, { scope: [`${contentType.uid}.update`] });\n }\n\n if (isDeleteEnabled) {\n registerAuthConfig(deleteMutationName, { scope: [`${contentType.uid}.delete`] });\n }\n\n return extendType({\n type: 'Mutation',\n\n definition(t) {\n if (isUpdateEnabled) {\n addUpdateMutation(t, contentType);\n }\n\n if (isDeleteEnabled) {\n addDeleteMutation(t, contentType);\n }\n },\n });\n },\n };\n};\n"],"names":["NotFoundError","errors","strapi","service","getService","plugin","naming","args","getUpdateMutationTypeName","getTypeName","getContentTypeInputName","getDeleteMutationTypeName","addUpdateMutation","t","contentType","uid","updateMutationName","typeName","field","type","extensions","status","PublicationStatusArg","data","nonNull","resolve","parent","context","auth","state","sanitizedInputData","contentAPI","sanitize","input","document","db","query","findOne","documents","update","documentId","create","addDeleteMutation","deleteMutationName","DELETE_MUTATION_RESPONSE_TYPE_NAME","delete","buildSingleTypeMutations","extension","registerAuthConfig","action","use","resolversConfig","isActionEnabled","shadowCRUD","isUpdateEnabled","isDeleteEnabled","scope","extendType","definition"],"mappings":"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"}
1
+ {"version":3,"file":"single-type.mjs","sources":["../../../../../server/src/services/builders/mutations/single-type.ts"],"sourcesContent":["import { extendType, nonNull } from 'nexus';\nimport { errors } from '@strapi/utils';\nimport type * as Nexus from 'nexus';\nimport type { Struct } from '@strapi/types';\nimport type { Context } from '../../types';\n\nconst { NotFoundError } = errors;\n\nexport default ({ strapi }: Context) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { naming } = getService('utils');\n const { args } = getService('internals');\n\n const {\n getUpdateMutationTypeName,\n getTypeName,\n getContentTypeInputName,\n getDeleteMutationTypeName,\n } = naming;\n\n const addUpdateMutation = (\n t: Nexus.blocks.ObjectDefinitionBlock<'Mutation'>,\n contentType: Struct.SingleTypeSchema\n ) => {\n const { uid } = contentType;\n\n const updateMutationName = getUpdateMutationTypeName(contentType);\n const typeName = getTypeName(contentType);\n\n t.field(updateMutationName, {\n type: typeName,\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: {\n // Update payload\n status: args.PublicationStatusArg,\n data: nonNull(getContentTypeInputName(contentType)),\n },\n\n async resolve(parent, args, context) {\n const { auth } = context.state;\n\n // Sanitize input data\n const sanitizedInputData = await strapi.contentAPI.sanitize.input(args.data, contentType, {\n auth,\n });\n\n const document = await strapi.db?.query(uid).findOne();\n\n if (document) {\n return strapi.documents!(uid).update({\n ...args,\n documentId: document.documentId,\n data: sanitizedInputData,\n });\n }\n\n return strapi.documents!(uid).create({\n ...args,\n data: sanitizedInputData,\n });\n },\n });\n };\n\n const addDeleteMutation = (\n t: Nexus.blocks.ObjectDefinitionBlock<'Mutation'>,\n contentType: Struct.SingleTypeSchema\n ) => {\n const { uid } = contentType;\n\n const deleteMutationName = getDeleteMutationTypeName(contentType);\n const { DELETE_MUTATION_RESPONSE_TYPE_NAME } = strapi.plugin('graphql').service('constants');\n\n t.field(deleteMutationName, {\n type: DELETE_MUTATION_RESPONSE_TYPE_NAME,\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: {},\n\n async resolve(parent, args) {\n const document = await strapi.db?.query(uid).findOne();\n\n if (!document) {\n throw new NotFoundError('Document not found');\n }\n\n await strapi.documents!(uid).delete({ ...args, documentId: document.documentId });\n\n return document;\n },\n });\n };\n\n return {\n buildSingleTypeMutations(contentType: Struct.SingleTypeSchema) {\n const updateMutationName = `Mutation.${getUpdateMutationTypeName(contentType)}`;\n const deleteMutationName = `Mutation.${getDeleteMutationTypeName(contentType)}`;\n\n const extension = getService('extension');\n\n const registerAuthConfig = (action: string, auth: any) => {\n return extension.use({ resolversConfig: { [action]: { auth } } });\n };\n\n const isActionEnabled = (action: string) => {\n return extension.shadowCRUD(contentType.uid).isActionEnabled(action);\n };\n\n const isUpdateEnabled = isActionEnabled('update');\n const isDeleteEnabled = isActionEnabled('delete');\n\n if (isUpdateEnabled) {\n registerAuthConfig(updateMutationName, { scope: [`${contentType.uid}.update`] });\n }\n\n if (isDeleteEnabled) {\n registerAuthConfig(deleteMutationName, { scope: [`${contentType.uid}.delete`] });\n }\n\n return extendType({\n type: 'Mutation',\n\n definition(t) {\n if (isUpdateEnabled) {\n addUpdateMutation(t, contentType);\n }\n\n if (isDeleteEnabled) {\n addDeleteMutation(t, contentType);\n }\n },\n });\n },\n };\n};\n"],"names":["NotFoundError","errors","strapi","service","getService","plugin","naming","args","getUpdateMutationTypeName","getTypeName","getContentTypeInputName","getDeleteMutationTypeName","addUpdateMutation","t","contentType","uid","updateMutationName","typeName","field","type","extensions","status","PublicationStatusArg","data","nonNull","resolve","parent","context","auth","state","sanitizedInputData","contentAPI","sanitize","input","document","db","query","findOne","documents","update","documentId","create","addDeleteMutation","deleteMutationName","DELETE_MUTATION_RESPONSE_TYPE_NAME","delete","buildSingleTypeMutations","extension","registerAuthConfig","action","use","resolversConfig","isActionEnabled","shadowCRUD","isUpdateEnabled","isDeleteEnabled","scope","extendType","definition"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"collection-type.js","sources":["../../../../../server/src/services/builders/queries/collection-type.ts"],"sourcesContent":["import { extendType, nonNull, list } from 'nexus';\nimport type * as Nexus from 'nexus';\nimport type { Struct } from '@strapi/types';\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { naming } = getService('utils');\n const { transformArgs, getContentTypeArgs } = getService('builders').utils;\n const { toEntityResponseCollection } = getService('format').returnTypes;\n\n const {\n getFindOneQueryName,\n getTypeName,\n getFindQueryName,\n getFindConnectionQueryName,\n getEntityResponseCollectionName,\n } = naming;\n\n const buildCollectionTypeQueries = (contentType: Struct.CollectionTypeSchema) => {\n const findOneQueryName = `Query.${getFindOneQueryName(contentType)}`;\n const findQueryName = `Query.${getFindQueryName(contentType)}`;\n const findConnectionQueryName = `Query.${getFindConnectionQueryName(contentType)}`;\n\n const extension = getService('extension');\n\n const registerAuthConfig = (action: string, auth: any) => {\n return extension.use({ resolversConfig: { [action]: { auth } } });\n };\n\n const isActionEnabled = (action: string) => {\n return extension.shadowCRUD(contentType.uid).isActionEnabled(action);\n };\n\n const isFindOneEnabled = isActionEnabled('findOne');\n const isFindEnabled = isActionEnabled('find');\n\n if (isFindOneEnabled) {\n registerAuthConfig(findOneQueryName, { scope: [`${contentType.uid}.findOne`] });\n }\n\n if (isFindEnabled) {\n registerAuthConfig(findQueryName, { scope: [`${contentType.uid}.find`] });\n registerAuthConfig(findConnectionQueryName, { scope: [`${contentType.uid}.find`] });\n }\n\n return extendType({\n type: 'Query',\n\n definition(t) {\n if (isFindOneEnabled) {\n addFindOneQuery(t, contentType);\n }\n\n if (isFindEnabled) {\n addFindConnectionQuery(t, contentType);\n addFindQuery(t, contentType);\n }\n },\n });\n };\n\n /**\n * Register a \"find one\" query field to the nexus type definition\n */\n const addFindOneQuery = (\n t: Nexus.blocks.ObjectDefinitionBlock<'Query'>,\n contentType: Struct.CollectionTypeSchema\n ) => {\n const findOneQueryName = getFindOneQueryName(contentType);\n const typeName = getTypeName(contentType);\n\n t.field(findOneQueryName, {\n type: typeName,\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: getContentTypeArgs(contentType, { multiple: false }),\n\n async resolve(parent, args, ctx) {\n const transformedArgs = transformArgs(args, { contentType });\n\n const { findOne } = getService('builders')\n .get('content-api')\n .buildQueriesResolvers({ contentType });\n\n // queryResolvers will sanitize params\n return findOne(parent, transformedArgs, ctx);\n },\n });\n };\n\n /**\n * Register a \"find\" query field to the nexus type definition\n */\n const addFindQuery = (\n t: Nexus.blocks.ObjectDefinitionBlock<'Query'>,\n contentType: Struct.CollectionTypeSchema\n ) => {\n const findQueryName = getFindQueryName(contentType);\n const typeName = getTypeName(contentType);\n\n t.field(findQueryName, {\n type: nonNull(list(typeName)),\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: getContentTypeArgs(contentType),\n\n async resolve(parent, args, ctx) {\n const transformedArgs = transformArgs(args, { contentType, usePagination: true });\n\n const { findMany } = getService('builders')\n .get('content-api')\n .buildQueriesResolvers({ contentType });\n\n // queryResolvers will sanitize params\n return findMany(parent, transformedArgs, ctx);\n },\n });\n };\n\n /**\n * Register a \"find\" query field to the nexus type definition\n */\n const addFindConnectionQuery = (\n t: Nexus.blocks.ObjectDefinitionBlock<'Query'>,\n contentType: Struct.CollectionTypeSchema\n ) => {\n const { uid } = contentType;\n\n const queryName = getFindConnectionQueryName(contentType);\n const responseCollectionTypeName = getEntityResponseCollectionName(contentType);\n\n t.field(queryName, {\n type: responseCollectionTypeName,\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: getContentTypeArgs(contentType),\n\n async resolve(parent, args, ctx) {\n const transformedArgs = transformArgs(args, { contentType, usePagination: true });\n\n const { findMany } = getService('builders')\n .get('content-api')\n .buildQueriesResolvers({ contentType });\n\n // queryResolvers will sanitize params\n const nodes = await findMany(parent, transformedArgs, ctx);\n\n return toEntityResponseCollection(nodes, { args: transformedArgs, resourceUID: uid });\n },\n });\n };\n\n return { buildCollectionTypeQueries };\n};\n"],"names":["strapi","service","getService","plugin","naming","transformArgs","getContentTypeArgs","utils","toEntityResponseCollection","returnTypes","getFindOneQueryName","getTypeName","getFindQueryName","getFindConnectionQueryName","getEntityResponseCollectionName","buildCollectionTypeQueries","contentType","findOneQueryName","findQueryName","findConnectionQueryName","extension","registerAuthConfig","action","auth","use","resolversConfig","isActionEnabled","shadowCRUD","uid","isFindOneEnabled","isFindEnabled","scope","extendType","type","definition","t","addFindOneQuery","addFindConnectionQuery","addFindQuery","typeName","field","extensions","args","multiple","resolve","parent","ctx","transformedArgs","findOne","get","buildQueriesResolvers","nonNull","list","usePagination","findMany","queryName","responseCollectionTypeName","nodes","resourceUID"],"mappings":"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"}
1
+ {"version":3,"file":"collection-type.js","sources":["../../../../../server/src/services/builders/queries/collection-type.ts"],"sourcesContent":["import { extendType, nonNull, list } from 'nexus';\nimport type * as Nexus from 'nexus';\nimport type { Struct } from '@strapi/types';\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { naming } = getService('utils');\n const { transformArgs, getContentTypeArgs } = getService('builders').utils;\n const { toEntityResponseCollection } = getService('format').returnTypes;\n\n const {\n getFindOneQueryName,\n getTypeName,\n getFindQueryName,\n getFindConnectionQueryName,\n getEntityResponseCollectionName,\n } = naming;\n\n const buildCollectionTypeQueries = (contentType: Struct.CollectionTypeSchema) => {\n const findOneQueryName = `Query.${getFindOneQueryName(contentType)}`;\n const findQueryName = `Query.${getFindQueryName(contentType)}`;\n const findConnectionQueryName = `Query.${getFindConnectionQueryName(contentType)}`;\n\n const extension = getService('extension');\n\n const registerAuthConfig = (action: string, auth: any) => {\n return extension.use({ resolversConfig: { [action]: { auth } } });\n };\n\n const isActionEnabled = (action: string) => {\n return extension.shadowCRUD(contentType.uid).isActionEnabled(action);\n };\n\n const isFindOneEnabled = isActionEnabled('findOne');\n const isFindEnabled = isActionEnabled('find');\n\n if (isFindOneEnabled) {\n registerAuthConfig(findOneQueryName, { scope: [`${contentType.uid}.findOne`] });\n }\n\n if (isFindEnabled) {\n registerAuthConfig(findQueryName, { scope: [`${contentType.uid}.find`] });\n registerAuthConfig(findConnectionQueryName, { scope: [`${contentType.uid}.find`] });\n }\n\n return extendType({\n type: 'Query',\n\n definition(t) {\n if (isFindOneEnabled) {\n addFindOneQuery(t, contentType);\n }\n\n if (isFindEnabled) {\n addFindConnectionQuery(t, contentType);\n addFindQuery(t, contentType);\n }\n },\n });\n };\n\n /**\n * Register a \"find one\" query field to the nexus type definition\n */\n const addFindOneQuery = (\n t: Nexus.blocks.ObjectDefinitionBlock<'Query'>,\n contentType: Struct.CollectionTypeSchema\n ) => {\n const findOneQueryName = getFindOneQueryName(contentType);\n const typeName = getTypeName(contentType);\n\n t.field(findOneQueryName, {\n type: typeName,\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: getContentTypeArgs(contentType, { multiple: false }),\n\n async resolve(parent, args, ctx) {\n const transformedArgs = transformArgs(args, { contentType });\n\n const { findOne } = getService('builders')\n .get('content-api')\n .buildQueriesResolvers({ contentType });\n\n // queryResolvers will sanitize params\n return findOne(parent, transformedArgs, ctx);\n },\n });\n };\n\n /**\n * Register a \"find\" query field to the nexus type definition\n */\n const addFindQuery = (\n t: Nexus.blocks.ObjectDefinitionBlock<'Query'>,\n contentType: Struct.CollectionTypeSchema\n ) => {\n const findQueryName = getFindQueryName(contentType);\n const typeName = getTypeName(contentType);\n\n t.field(findQueryName, {\n type: nonNull(list(typeName)),\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: getContentTypeArgs(contentType),\n\n async resolve(parent, args, ctx) {\n const transformedArgs = transformArgs(args, { contentType, usePagination: true });\n\n const { findMany } = getService('builders')\n .get('content-api')\n .buildQueriesResolvers({ contentType });\n\n // queryResolvers will sanitize params\n return findMany(parent, transformedArgs, ctx);\n },\n });\n };\n\n /**\n * Register a \"find\" query field to the nexus type definition\n */\n const addFindConnectionQuery = (\n t: Nexus.blocks.ObjectDefinitionBlock<'Query'>,\n contentType: Struct.CollectionTypeSchema\n ) => {\n const { uid } = contentType;\n\n const queryName = getFindConnectionQueryName(contentType);\n const responseCollectionTypeName = getEntityResponseCollectionName(contentType);\n\n t.field(queryName, {\n type: responseCollectionTypeName,\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: getContentTypeArgs(contentType),\n\n async resolve(parent, args, ctx) {\n const transformedArgs = transformArgs(args, { contentType, usePagination: true });\n\n const { findMany } = getService('builders')\n .get('content-api')\n .buildQueriesResolvers({ contentType });\n\n // queryResolvers will sanitize params\n const nodes = await findMany(parent, transformedArgs, ctx);\n\n return toEntityResponseCollection(nodes, { args: transformedArgs, resourceUID: uid });\n },\n });\n };\n\n return { buildCollectionTypeQueries };\n};\n"],"names":["strapi","service","getService","plugin","naming","transformArgs","getContentTypeArgs","utils","toEntityResponseCollection","returnTypes","getFindOneQueryName","getTypeName","getFindQueryName","getFindConnectionQueryName","getEntityResponseCollectionName","buildCollectionTypeQueries","contentType","findOneQueryName","findQueryName","findConnectionQueryName","extension","registerAuthConfig","action","auth","use","resolversConfig","isActionEnabled","shadowCRUD","uid","isFindOneEnabled","isFindEnabled","scope","extendType","type","definition","t","addFindOneQuery","addFindConnectionQuery","addFindQuery","typeName","field","extensions","args","multiple","resolve","parent","ctx","transformedArgs","findOne","get","buildQueriesResolvers","nonNull","list","usePagination","findMany","queryName","responseCollectionTypeName","nodes","resourceUID"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"collection-type.mjs","sources":["../../../../../server/src/services/builders/queries/collection-type.ts"],"sourcesContent":["import { extendType, nonNull, list } from 'nexus';\nimport type * as Nexus from 'nexus';\nimport type { Struct } from '@strapi/types';\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { naming } = getService('utils');\n const { transformArgs, getContentTypeArgs } = getService('builders').utils;\n const { toEntityResponseCollection } = getService('format').returnTypes;\n\n const {\n getFindOneQueryName,\n getTypeName,\n getFindQueryName,\n getFindConnectionQueryName,\n getEntityResponseCollectionName,\n } = naming;\n\n const buildCollectionTypeQueries = (contentType: Struct.CollectionTypeSchema) => {\n const findOneQueryName = `Query.${getFindOneQueryName(contentType)}`;\n const findQueryName = `Query.${getFindQueryName(contentType)}`;\n const findConnectionQueryName = `Query.${getFindConnectionQueryName(contentType)}`;\n\n const extension = getService('extension');\n\n const registerAuthConfig = (action: string, auth: any) => {\n return extension.use({ resolversConfig: { [action]: { auth } } });\n };\n\n const isActionEnabled = (action: string) => {\n return extension.shadowCRUD(contentType.uid).isActionEnabled(action);\n };\n\n const isFindOneEnabled = isActionEnabled('findOne');\n const isFindEnabled = isActionEnabled('find');\n\n if (isFindOneEnabled) {\n registerAuthConfig(findOneQueryName, { scope: [`${contentType.uid}.findOne`] });\n }\n\n if (isFindEnabled) {\n registerAuthConfig(findQueryName, { scope: [`${contentType.uid}.find`] });\n registerAuthConfig(findConnectionQueryName, { scope: [`${contentType.uid}.find`] });\n }\n\n return extendType({\n type: 'Query',\n\n definition(t) {\n if (isFindOneEnabled) {\n addFindOneQuery(t, contentType);\n }\n\n if (isFindEnabled) {\n addFindConnectionQuery(t, contentType);\n addFindQuery(t, contentType);\n }\n },\n });\n };\n\n /**\n * Register a \"find one\" query field to the nexus type definition\n */\n const addFindOneQuery = (\n t: Nexus.blocks.ObjectDefinitionBlock<'Query'>,\n contentType: Struct.CollectionTypeSchema\n ) => {\n const findOneQueryName = getFindOneQueryName(contentType);\n const typeName = getTypeName(contentType);\n\n t.field(findOneQueryName, {\n type: typeName,\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: getContentTypeArgs(contentType, { multiple: false }),\n\n async resolve(parent, args, ctx) {\n const transformedArgs = transformArgs(args, { contentType });\n\n const { findOne } = getService('builders')\n .get('content-api')\n .buildQueriesResolvers({ contentType });\n\n // queryResolvers will sanitize params\n return findOne(parent, transformedArgs, ctx);\n },\n });\n };\n\n /**\n * Register a \"find\" query field to the nexus type definition\n */\n const addFindQuery = (\n t: Nexus.blocks.ObjectDefinitionBlock<'Query'>,\n contentType: Struct.CollectionTypeSchema\n ) => {\n const findQueryName = getFindQueryName(contentType);\n const typeName = getTypeName(contentType);\n\n t.field(findQueryName, {\n type: nonNull(list(typeName)),\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: getContentTypeArgs(contentType),\n\n async resolve(parent, args, ctx) {\n const transformedArgs = transformArgs(args, { contentType, usePagination: true });\n\n const { findMany } = getService('builders')\n .get('content-api')\n .buildQueriesResolvers({ contentType });\n\n // queryResolvers will sanitize params\n return findMany(parent, transformedArgs, ctx);\n },\n });\n };\n\n /**\n * Register a \"find\" query field to the nexus type definition\n */\n const addFindConnectionQuery = (\n t: Nexus.blocks.ObjectDefinitionBlock<'Query'>,\n contentType: Struct.CollectionTypeSchema\n ) => {\n const { uid } = contentType;\n\n const queryName = getFindConnectionQueryName(contentType);\n const responseCollectionTypeName = getEntityResponseCollectionName(contentType);\n\n t.field(queryName, {\n type: responseCollectionTypeName,\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: getContentTypeArgs(contentType),\n\n async resolve(parent, args, ctx) {\n const transformedArgs = transformArgs(args, { contentType, usePagination: true });\n\n const { findMany } = getService('builders')\n .get('content-api')\n .buildQueriesResolvers({ contentType });\n\n // queryResolvers will sanitize params\n const nodes = await findMany(parent, transformedArgs, ctx);\n\n return toEntityResponseCollection(nodes, { args: transformedArgs, resourceUID: uid });\n },\n });\n };\n\n return { buildCollectionTypeQueries };\n};\n"],"names":["strapi","service","getService","plugin","naming","transformArgs","getContentTypeArgs","utils","toEntityResponseCollection","returnTypes","getFindOneQueryName","getTypeName","getFindQueryName","getFindConnectionQueryName","getEntityResponseCollectionName","buildCollectionTypeQueries","contentType","findOneQueryName","findQueryName","findConnectionQueryName","extension","registerAuthConfig","action","auth","use","resolversConfig","isActionEnabled","shadowCRUD","uid","isFindOneEnabled","isFindEnabled","scope","extendType","type","definition","t","addFindOneQuery","addFindConnectionQuery","addFindQuery","typeName","field","extensions","args","multiple","resolve","parent","ctx","transformedArgs","findOne","get","buildQueriesResolvers","nonNull","list","usePagination","findMany","queryName","responseCollectionTypeName","nodes","resourceUID"],"mappings":"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"}
1
+ {"version":3,"file":"collection-type.mjs","sources":["../../../../../server/src/services/builders/queries/collection-type.ts"],"sourcesContent":["import { extendType, nonNull, list } from 'nexus';\nimport type * as Nexus from 'nexus';\nimport type { Struct } from '@strapi/types';\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { naming } = getService('utils');\n const { transformArgs, getContentTypeArgs } = getService('builders').utils;\n const { toEntityResponseCollection } = getService('format').returnTypes;\n\n const {\n getFindOneQueryName,\n getTypeName,\n getFindQueryName,\n getFindConnectionQueryName,\n getEntityResponseCollectionName,\n } = naming;\n\n const buildCollectionTypeQueries = (contentType: Struct.CollectionTypeSchema) => {\n const findOneQueryName = `Query.${getFindOneQueryName(contentType)}`;\n const findQueryName = `Query.${getFindQueryName(contentType)}`;\n const findConnectionQueryName = `Query.${getFindConnectionQueryName(contentType)}`;\n\n const extension = getService('extension');\n\n const registerAuthConfig = (action: string, auth: any) => {\n return extension.use({ resolversConfig: { [action]: { auth } } });\n };\n\n const isActionEnabled = (action: string) => {\n return extension.shadowCRUD(contentType.uid).isActionEnabled(action);\n };\n\n const isFindOneEnabled = isActionEnabled('findOne');\n const isFindEnabled = isActionEnabled('find');\n\n if (isFindOneEnabled) {\n registerAuthConfig(findOneQueryName, { scope: [`${contentType.uid}.findOne`] });\n }\n\n if (isFindEnabled) {\n registerAuthConfig(findQueryName, { scope: [`${contentType.uid}.find`] });\n registerAuthConfig(findConnectionQueryName, { scope: [`${contentType.uid}.find`] });\n }\n\n return extendType({\n type: 'Query',\n\n definition(t) {\n if (isFindOneEnabled) {\n addFindOneQuery(t, contentType);\n }\n\n if (isFindEnabled) {\n addFindConnectionQuery(t, contentType);\n addFindQuery(t, contentType);\n }\n },\n });\n };\n\n /**\n * Register a \"find one\" query field to the nexus type definition\n */\n const addFindOneQuery = (\n t: Nexus.blocks.ObjectDefinitionBlock<'Query'>,\n contentType: Struct.CollectionTypeSchema\n ) => {\n const findOneQueryName = getFindOneQueryName(contentType);\n const typeName = getTypeName(contentType);\n\n t.field(findOneQueryName, {\n type: typeName,\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: getContentTypeArgs(contentType, { multiple: false }),\n\n async resolve(parent, args, ctx) {\n const transformedArgs = transformArgs(args, { contentType });\n\n const { findOne } = getService('builders')\n .get('content-api')\n .buildQueriesResolvers({ contentType });\n\n // queryResolvers will sanitize params\n return findOne(parent, transformedArgs, ctx);\n },\n });\n };\n\n /**\n * Register a \"find\" query field to the nexus type definition\n */\n const addFindQuery = (\n t: Nexus.blocks.ObjectDefinitionBlock<'Query'>,\n contentType: Struct.CollectionTypeSchema\n ) => {\n const findQueryName = getFindQueryName(contentType);\n const typeName = getTypeName(contentType);\n\n t.field(findQueryName, {\n type: nonNull(list(typeName)),\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: getContentTypeArgs(contentType),\n\n async resolve(parent, args, ctx) {\n const transformedArgs = transformArgs(args, { contentType, usePagination: true });\n\n const { findMany } = getService('builders')\n .get('content-api')\n .buildQueriesResolvers({ contentType });\n\n // queryResolvers will sanitize params\n return findMany(parent, transformedArgs, ctx);\n },\n });\n };\n\n /**\n * Register a \"find\" query field to the nexus type definition\n */\n const addFindConnectionQuery = (\n t: Nexus.blocks.ObjectDefinitionBlock<'Query'>,\n contentType: Struct.CollectionTypeSchema\n ) => {\n const { uid } = contentType;\n\n const queryName = getFindConnectionQueryName(contentType);\n const responseCollectionTypeName = getEntityResponseCollectionName(contentType);\n\n t.field(queryName, {\n type: responseCollectionTypeName,\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: getContentTypeArgs(contentType),\n\n async resolve(parent, args, ctx) {\n const transformedArgs = transformArgs(args, { contentType, usePagination: true });\n\n const { findMany } = getService('builders')\n .get('content-api')\n .buildQueriesResolvers({ contentType });\n\n // queryResolvers will sanitize params\n const nodes = await findMany(parent, transformedArgs, ctx);\n\n return toEntityResponseCollection(nodes, { args: transformedArgs, resourceUID: uid });\n },\n });\n };\n\n return { buildCollectionTypeQueries };\n};\n"],"names":["strapi","service","getService","plugin","naming","transformArgs","getContentTypeArgs","utils","toEntityResponseCollection","returnTypes","getFindOneQueryName","getTypeName","getFindQueryName","getFindConnectionQueryName","getEntityResponseCollectionName","buildCollectionTypeQueries","contentType","findOneQueryName","findQueryName","findConnectionQueryName","extension","registerAuthConfig","action","auth","use","resolversConfig","isActionEnabled","shadowCRUD","uid","isFindOneEnabled","isFindEnabled","scope","extendType","type","definition","t","addFindOneQuery","addFindConnectionQuery","addFindQuery","typeName","field","extensions","args","multiple","resolve","parent","ctx","transformedArgs","findOne","get","buildQueriesResolvers","nonNull","list","usePagination","findMany","queryName","responseCollectionTypeName","nodes","resourceUID"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../server/src/services/builders/queries/index.ts"],"sourcesContent":["import createCollectionTypeQueriesBuilder from './collection-type';\nimport createSingleTypeQueriesBuilder from './single-type';\nimport type { Context } from '../../types';\n\nexport default (context: Context) => ({\n ...createCollectionTypeQueriesBuilder(context),\n ...createSingleTypeQueriesBuilder(context),\n});\n"],"names":["context","createCollectionTypeQueriesBuilder","createSingleTypeQueriesBuilder"],"mappings":";;;;;AAIA,cAAe,CAAA,CAACA,OAAAA,IAAsB;AACpC,QAAA,GAAGC,eAAmCD,OAAQ,CAAA;AAC9C,QAAA,GAAGE,WAA+BF,OAAQ;AAC5C,KAAA,CAAC;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../server/src/services/builders/queries/index.ts"],"sourcesContent":["import createCollectionTypeQueriesBuilder from './collection-type';\nimport createSingleTypeQueriesBuilder from './single-type';\nimport type { Context } from '../../types';\n\nexport default (context: Context) => ({\n ...createCollectionTypeQueriesBuilder(context),\n ...createSingleTypeQueriesBuilder(context),\n});\n"],"names":["context","createCollectionTypeQueriesBuilder","createSingleTypeQueriesBuilder"],"mappings":";;;;;AAIA,cAAe,CAAA,CAACA,OAAAA,IAAsB;AACpC,QAAA,GAAGC,eAAmCD,OAAAA,CAAQ;AAC9C,QAAA,GAAGE,WAA+BF,OAAAA;AACpC,KAAA,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../server/src/services/builders/queries/index.ts"],"sourcesContent":["import createCollectionTypeQueriesBuilder from './collection-type';\nimport createSingleTypeQueriesBuilder from './single-type';\nimport type { Context } from '../../types';\n\nexport default (context: Context) => ({\n ...createCollectionTypeQueriesBuilder(context),\n ...createSingleTypeQueriesBuilder(context),\n});\n"],"names":["context","createCollectionTypeQueriesBuilder","createSingleTypeQueriesBuilder"],"mappings":";;;AAIA,cAAe,CAAA,CAACA,OAAAA,IAAsB;AACpC,QAAA,GAAGC,mCAAmCD,OAAQ,CAAA;AAC9C,QAAA,GAAGE,+BAA+BF,OAAQ;AAC5C,KAAA,CAAC;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../server/src/services/builders/queries/index.ts"],"sourcesContent":["import createCollectionTypeQueriesBuilder from './collection-type';\nimport createSingleTypeQueriesBuilder from './single-type';\nimport type { Context } from '../../types';\n\nexport default (context: Context) => ({\n ...createCollectionTypeQueriesBuilder(context),\n ...createSingleTypeQueriesBuilder(context),\n});\n"],"names":["context","createCollectionTypeQueriesBuilder","createSingleTypeQueriesBuilder"],"mappings":";;;AAIA,cAAe,CAAA,CAACA,OAAAA,IAAsB;AACpC,QAAA,GAAGC,mCAAmCD,OAAAA,CAAQ;AAC9C,QAAA,GAAGE,+BAA+BF,OAAAA;AACpC,KAAA,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"single-type.js","sources":["../../../../../server/src/services/builders/queries/single-type.ts"],"sourcesContent":["import { extendType } from 'nexus';\nimport type * as Nexus from 'nexus';\nimport type { Struct } from '@strapi/types';\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { naming } = getService('utils');\n const { transformArgs, getContentTypeArgs } = getService('builders').utils;\n\n const { getFindOneQueryName, getTypeName } = naming;\n\n const buildSingleTypeQueries = (contentType: Struct.SingleTypeSchema) => {\n const findQueryName = `Query.${getFindOneQueryName(contentType)}`;\n\n const extension = getService('extension');\n\n const registerAuthConfig = (action: string, auth: any) => {\n return extension.use({ resolversConfig: { [action]: { auth } } });\n };\n\n const isActionEnabled = (action: string) => {\n return extension.shadowCRUD(contentType.uid).isActionEnabled(action);\n };\n\n const isFindEnabled = isActionEnabled('find');\n\n if (isFindEnabled) {\n registerAuthConfig(findQueryName, { scope: [`${contentType.uid}.find`] });\n }\n\n return extendType({\n type: 'Query',\n\n definition(t) {\n if (isFindEnabled) {\n addFindQuery(t, contentType);\n }\n },\n });\n };\n\n const addFindQuery = (\n t: Nexus.blocks.ObjectDefinitionBlock<string>,\n contentType: Struct.SingleTypeSchema\n ) => {\n const findQueryName = getFindOneQueryName(contentType);\n const typeName = getTypeName(contentType);\n\n t.field(findQueryName, {\n type: typeName,\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: getContentTypeArgs(contentType),\n\n async resolve(parent, args, ctx) {\n const transformedArgs = transformArgs(args, { contentType });\n\n const { findFirst } = getService('builders')\n .get('content-api')\n .buildQueriesResolvers({ contentType });\n\n return findFirst(parent, transformedArgs, ctx);\n },\n });\n };\n\n return { buildSingleTypeQueries };\n};\n"],"names":["strapi","service","getService","plugin","naming","transformArgs","getContentTypeArgs","utils","getFindOneQueryName","getTypeName","buildSingleTypeQueries","contentType","findQueryName","extension","registerAuthConfig","action","auth","use","resolversConfig","isActionEnabled","shadowCRUD","uid","isFindEnabled","scope","extendType","type","definition","t","addFindQuery","typeName","field","extensions","args","resolve","parent","ctx","transformedArgs","findFirst","get","buildQueriesResolvers"],"mappings":";;;;AAKA,qCAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,GAAA;AACjC,IAAA,MAAM,EAAEC,OAASC,EAAAA,UAAU,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA;AAE9C,IAAA,MAAM,EAAEC,MAAM,EAAE,GAAGF,UAAW,CAAA,OAAA,CAAA;IAC9B,MAAM,EAAEG,aAAa,EAAEC,kBAAkB,EAAE,GAAGJ,UAAAA,CAAW,YAAYK,KAAK;AAE1E,IAAA,MAAM,EAAEC,mBAAmB,EAAEC,WAAW,EAAE,GAAGL,MAAAA;AAE7C,IAAA,MAAMM,yBAAyB,CAACC,WAAAA,GAAAA;AAC9B,QAAA,MAAMC,aAAgB,GAAA,CAAC,MAAM,EAAEJ,oBAAoBG,WAAc,CAAA,CAAA,CAAA;AAEjE,QAAA,MAAME,YAAYX,UAAW,CAAA,WAAA,CAAA;QAE7B,MAAMY,kBAAAA,GAAqB,CAACC,MAAgBC,EAAAA,IAAAA,GAAAA;YAC1C,OAAOH,SAAAA,CAAUI,GAAG,CAAC;gBAAEC,eAAiB,EAAA;AAAE,oBAAA,CAACH,SAAS;AAAEC,wBAAAA;AAAK;AAAE;AAAE,aAAA,CAAA;AACjE,SAAA;AAEA,QAAA,MAAMG,kBAAkB,CAACJ,MAAAA,GAAAA;AACvB,YAAA,OAAOF,UAAUO,UAAU,CAACT,YAAYU,GAAG,CAAA,CAAEF,eAAe,CAACJ,MAAAA,CAAAA;AAC/D,SAAA;AAEA,QAAA,MAAMO,gBAAgBH,eAAgB,CAAA,MAAA,CAAA;AAEtC,QAAA,IAAIG,aAAe,EAAA;AACjBR,YAAAA,kBAAAA,CAAmBF,aAAe,EAAA;gBAAEW,KAAO,EAAA;AAAC,oBAAA,CAAA,EAAGZ,WAAYU,CAAAA,GAAG,CAAC,KAAK;AAAE;AAAC,aAAA,CAAA;AACzE;AAEA,QAAA,OAAOG,gBAAW,CAAA;YAChBC,IAAM,EAAA,OAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACV,gBAAA,IAAIL,aAAe,EAAA;AACjBM,oBAAAA,YAAAA,CAAaD,CAAGhB,EAAAA,WAAAA,CAAAA;AAClB;AACF;AACF,SAAA,CAAA;AACF,KAAA;IAEA,MAAMiB,YAAAA,GAAe,CACnBD,CACAhB,EAAAA,WAAAA,GAAAA;AAEA,QAAA,MAAMC,gBAAgBJ,mBAAoBG,CAAAA,WAAAA,CAAAA;AAC1C,QAAA,MAAMkB,WAAWpB,WAAYE,CAAAA,WAAAA,CAAAA;QAE7BgB,CAAEG,CAAAA,KAAK,CAAClB,aAAe,EAAA;YACrBa,IAAMI,EAAAA,QAAAA;YAENE,UAAY,EAAA;gBACV/B,MAAQ,EAAA;AACNW,oBAAAA;AACF;AACF,aAAA;AAEAqB,YAAAA,IAAAA,EAAM1B,kBAAmBK,CAAAA,WAAAA,CAAAA;AAEzB,YAAA,MAAMsB,OAAQC,CAAAA,CAAAA,MAAM,EAAEF,IAAI,EAAEG,GAAG,EAAA;gBAC7B,MAAMC,eAAAA,GAAkB/B,cAAc2B,IAAM,EAAA;AAAErB,oBAAAA;AAAY,iBAAA,CAAA;gBAE1D,MAAM,EAAE0B,SAAS,EAAE,GAAGnC,UAAAA,CAAW,YAC9BoC,GAAG,CAAC,aACJC,CAAAA,CAAAA,qBAAqB,CAAC;AAAE5B,oBAAAA;AAAY,iBAAA,CAAA;gBAEvC,OAAO0B,SAAAA,CAAUH,QAAQE,eAAiBD,EAAAA,GAAAA,CAAAA;AAC5C;AACF,SAAA,CAAA;AACF,KAAA;IAEA,OAAO;AAAEzB,QAAAA;AAAuB,KAAA;AAClC,CAAA;;;;"}
1
+ {"version":3,"file":"single-type.js","sources":["../../../../../server/src/services/builders/queries/single-type.ts"],"sourcesContent":["import { extendType } from 'nexus';\nimport type * as Nexus from 'nexus';\nimport type { Struct } from '@strapi/types';\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { naming } = getService('utils');\n const { transformArgs, getContentTypeArgs } = getService('builders').utils;\n\n const { getFindOneQueryName, getTypeName } = naming;\n\n const buildSingleTypeQueries = (contentType: Struct.SingleTypeSchema) => {\n const findQueryName = `Query.${getFindOneQueryName(contentType)}`;\n\n const extension = getService('extension');\n\n const registerAuthConfig = (action: string, auth: any) => {\n return extension.use({ resolversConfig: { [action]: { auth } } });\n };\n\n const isActionEnabled = (action: string) => {\n return extension.shadowCRUD(contentType.uid).isActionEnabled(action);\n };\n\n const isFindEnabled = isActionEnabled('find');\n\n if (isFindEnabled) {\n registerAuthConfig(findQueryName, { scope: [`${contentType.uid}.find`] });\n }\n\n return extendType({\n type: 'Query',\n\n definition(t) {\n if (isFindEnabled) {\n addFindQuery(t, contentType);\n }\n },\n });\n };\n\n const addFindQuery = (\n t: Nexus.blocks.ObjectDefinitionBlock<string>,\n contentType: Struct.SingleTypeSchema\n ) => {\n const findQueryName = getFindOneQueryName(contentType);\n const typeName = getTypeName(contentType);\n\n t.field(findQueryName, {\n type: typeName,\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: getContentTypeArgs(contentType),\n\n async resolve(parent, args, ctx) {\n const transformedArgs = transformArgs(args, { contentType });\n\n const { findFirst } = getService('builders')\n .get('content-api')\n .buildQueriesResolvers({ contentType });\n\n return findFirst(parent, transformedArgs, ctx);\n },\n });\n };\n\n return { buildSingleTypeQueries };\n};\n"],"names":["strapi","service","getService","plugin","naming","transformArgs","getContentTypeArgs","utils","getFindOneQueryName","getTypeName","buildSingleTypeQueries","contentType","findQueryName","extension","registerAuthConfig","action","auth","use","resolversConfig","isActionEnabled","shadowCRUD","uid","isFindEnabled","scope","extendType","type","definition","t","addFindQuery","typeName","field","extensions","args","resolve","parent","ctx","transformedArgs","findFirst","get","buildQueriesResolvers"],"mappings":";;;;AAKA,qCAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,GAAA;AACjC,IAAA,MAAM,EAAEC,OAAAA,EAASC,UAAU,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA;AAE9C,IAAA,MAAM,EAAEC,MAAM,EAAE,GAAGF,UAAAA,CAAW,OAAA,CAAA;IAC9B,MAAM,EAAEG,aAAa,EAAEC,kBAAkB,EAAE,GAAGJ,UAAAA,CAAW,YAAYK,KAAK;AAE1E,IAAA,MAAM,EAAEC,mBAAmB,EAAEC,WAAW,EAAE,GAAGL,MAAAA;AAE7C,IAAA,MAAMM,yBAAyB,CAACC,WAAAA,GAAAA;AAC9B,QAAA,MAAMC,aAAAA,GAAgB,CAAC,MAAM,EAAEJ,oBAAoBG,WAAAA,CAAAA,CAAAA,CAAc;AAEjE,QAAA,MAAME,YAAYX,UAAAA,CAAW,WAAA,CAAA;QAE7B,MAAMY,kBAAAA,GAAqB,CAACC,MAAAA,EAAgBC,IAAAA,GAAAA;YAC1C,OAAOH,SAAAA,CAAUI,GAAG,CAAC;gBAAEC,eAAAA,EAAiB;AAAE,oBAAA,CAACH,SAAS;AAAEC,wBAAAA;AAAK;AAAE;AAAE,aAAA,CAAA;AACjE,QAAA,CAAA;AAEA,QAAA,MAAMG,kBAAkB,CAACJ,MAAAA,GAAAA;AACvB,YAAA,OAAOF,UAAUO,UAAU,CAACT,YAAYU,GAAG,CAAA,CAAEF,eAAe,CAACJ,MAAAA,CAAAA;AAC/D,QAAA,CAAA;AAEA,QAAA,MAAMO,gBAAgBH,eAAAA,CAAgB,MAAA,CAAA;AAEtC,QAAA,IAAIG,aAAAA,EAAe;AACjBR,YAAAA,kBAAAA,CAAmBF,aAAAA,EAAe;gBAAEW,KAAAA,EAAO;AAAC,oBAAA,CAAA,EAAGZ,WAAAA,CAAYU,GAAG,CAAC,KAAK;AAAE;AAAC,aAAA,CAAA;AACzE,QAAA;AAEA,QAAA,OAAOG,gBAAAA,CAAW;YAChBC,IAAAA,EAAM,OAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACV,gBAAA,IAAIL,aAAAA,EAAe;AACjBM,oBAAAA,YAAAA,CAAaD,CAAAA,EAAGhB,WAAAA,CAAAA;AAClB,gBAAA;AACF,YAAA;AACF,SAAA,CAAA;AACF,IAAA,CAAA;IAEA,MAAMiB,YAAAA,GAAe,CACnBD,CAAAA,EACAhB,WAAAA,GAAAA;AAEA,QAAA,MAAMC,gBAAgBJ,mBAAAA,CAAoBG,WAAAA,CAAAA;AAC1C,QAAA,MAAMkB,WAAWpB,WAAAA,CAAYE,WAAAA,CAAAA;QAE7BgB,CAAAA,CAAEG,KAAK,CAAClB,aAAAA,EAAe;YACrBa,IAAAA,EAAMI,QAAAA;YAENE,UAAAA,EAAY;gBACV/B,MAAAA,EAAQ;AACNW,oBAAAA;AACF;AACF,aAAA;AAEAqB,YAAAA,IAAAA,EAAM1B,kBAAAA,CAAmBK,WAAAA,CAAAA;AAEzB,YAAA,MAAMsB,OAAAA,CAAAA,CAAQC,MAAM,EAAEF,IAAI,EAAEG,GAAG,EAAA;gBAC7B,MAAMC,eAAAA,GAAkB/B,cAAc2B,IAAAA,EAAM;AAAErB,oBAAAA;AAAY,iBAAA,CAAA;gBAE1D,MAAM,EAAE0B,SAAS,EAAE,GAAGnC,UAAAA,CAAW,YAC9BoC,GAAG,CAAC,aAAA,CAAA,CACJC,qBAAqB,CAAC;AAAE5B,oBAAAA;AAAY,iBAAA,CAAA;gBAEvC,OAAO0B,SAAAA,CAAUH,QAAQE,eAAAA,EAAiBD,GAAAA,CAAAA;AAC5C,YAAA;AACF,SAAA,CAAA;AACF,IAAA,CAAA;IAEA,OAAO;AAAEzB,QAAAA;AAAuB,KAAA;AAClC,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"single-type.mjs","sources":["../../../../../server/src/services/builders/queries/single-type.ts"],"sourcesContent":["import { extendType } from 'nexus';\nimport type * as Nexus from 'nexus';\nimport type { Struct } from '@strapi/types';\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { naming } = getService('utils');\n const { transformArgs, getContentTypeArgs } = getService('builders').utils;\n\n const { getFindOneQueryName, getTypeName } = naming;\n\n const buildSingleTypeQueries = (contentType: Struct.SingleTypeSchema) => {\n const findQueryName = `Query.${getFindOneQueryName(contentType)}`;\n\n const extension = getService('extension');\n\n const registerAuthConfig = (action: string, auth: any) => {\n return extension.use({ resolversConfig: { [action]: { auth } } });\n };\n\n const isActionEnabled = (action: string) => {\n return extension.shadowCRUD(contentType.uid).isActionEnabled(action);\n };\n\n const isFindEnabled = isActionEnabled('find');\n\n if (isFindEnabled) {\n registerAuthConfig(findQueryName, { scope: [`${contentType.uid}.find`] });\n }\n\n return extendType({\n type: 'Query',\n\n definition(t) {\n if (isFindEnabled) {\n addFindQuery(t, contentType);\n }\n },\n });\n };\n\n const addFindQuery = (\n t: Nexus.blocks.ObjectDefinitionBlock<string>,\n contentType: Struct.SingleTypeSchema\n ) => {\n const findQueryName = getFindOneQueryName(contentType);\n const typeName = getTypeName(contentType);\n\n t.field(findQueryName, {\n type: typeName,\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: getContentTypeArgs(contentType),\n\n async resolve(parent, args, ctx) {\n const transformedArgs = transformArgs(args, { contentType });\n\n const { findFirst } = getService('builders')\n .get('content-api')\n .buildQueriesResolvers({ contentType });\n\n return findFirst(parent, transformedArgs, ctx);\n },\n });\n };\n\n return { buildSingleTypeQueries };\n};\n"],"names":["strapi","service","getService","plugin","naming","transformArgs","getContentTypeArgs","utils","getFindOneQueryName","getTypeName","buildSingleTypeQueries","contentType","findQueryName","extension","registerAuthConfig","action","auth","use","resolversConfig","isActionEnabled","shadowCRUD","uid","isFindEnabled","scope","extendType","type","definition","t","addFindQuery","typeName","field","extensions","args","resolve","parent","ctx","transformedArgs","findFirst","get","buildQueriesResolvers"],"mappings":";;AAKA,qCAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,GAAA;AACjC,IAAA,MAAM,EAAEC,OAASC,EAAAA,UAAU,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA;AAE9C,IAAA,MAAM,EAAEC,MAAM,EAAE,GAAGF,UAAW,CAAA,OAAA,CAAA;IAC9B,MAAM,EAAEG,aAAa,EAAEC,kBAAkB,EAAE,GAAGJ,UAAAA,CAAW,YAAYK,KAAK;AAE1E,IAAA,MAAM,EAAEC,mBAAmB,EAAEC,WAAW,EAAE,GAAGL,MAAAA;AAE7C,IAAA,MAAMM,yBAAyB,CAACC,WAAAA,GAAAA;AAC9B,QAAA,MAAMC,aAAgB,GAAA,CAAC,MAAM,EAAEJ,oBAAoBG,WAAc,CAAA,CAAA,CAAA;AAEjE,QAAA,MAAME,YAAYX,UAAW,CAAA,WAAA,CAAA;QAE7B,MAAMY,kBAAAA,GAAqB,CAACC,MAAgBC,EAAAA,IAAAA,GAAAA;YAC1C,OAAOH,SAAAA,CAAUI,GAAG,CAAC;gBAAEC,eAAiB,EAAA;AAAE,oBAAA,CAACH,SAAS;AAAEC,wBAAAA;AAAK;AAAE;AAAE,aAAA,CAAA;AACjE,SAAA;AAEA,QAAA,MAAMG,kBAAkB,CAACJ,MAAAA,GAAAA;AACvB,YAAA,OAAOF,UAAUO,UAAU,CAACT,YAAYU,GAAG,CAAA,CAAEF,eAAe,CAACJ,MAAAA,CAAAA;AAC/D,SAAA;AAEA,QAAA,MAAMO,gBAAgBH,eAAgB,CAAA,MAAA,CAAA;AAEtC,QAAA,IAAIG,aAAe,EAAA;AACjBR,YAAAA,kBAAAA,CAAmBF,aAAe,EAAA;gBAAEW,KAAO,EAAA;AAAC,oBAAA,CAAA,EAAGZ,WAAYU,CAAAA,GAAG,CAAC,KAAK;AAAE;AAAC,aAAA,CAAA;AACzE;AAEA,QAAA,OAAOG,UAAW,CAAA;YAChBC,IAAM,EAAA,OAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACV,gBAAA,IAAIL,aAAe,EAAA;AACjBM,oBAAAA,YAAAA,CAAaD,CAAGhB,EAAAA,WAAAA,CAAAA;AAClB;AACF;AACF,SAAA,CAAA;AACF,KAAA;IAEA,MAAMiB,YAAAA,GAAe,CACnBD,CACAhB,EAAAA,WAAAA,GAAAA;AAEA,QAAA,MAAMC,gBAAgBJ,mBAAoBG,CAAAA,WAAAA,CAAAA;AAC1C,QAAA,MAAMkB,WAAWpB,WAAYE,CAAAA,WAAAA,CAAAA;QAE7BgB,CAAEG,CAAAA,KAAK,CAAClB,aAAe,EAAA;YACrBa,IAAMI,EAAAA,QAAAA;YAENE,UAAY,EAAA;gBACV/B,MAAQ,EAAA;AACNW,oBAAAA;AACF;AACF,aAAA;AAEAqB,YAAAA,IAAAA,EAAM1B,kBAAmBK,CAAAA,WAAAA,CAAAA;AAEzB,YAAA,MAAMsB,OAAQC,CAAAA,CAAAA,MAAM,EAAEF,IAAI,EAAEG,GAAG,EAAA;gBAC7B,MAAMC,eAAAA,GAAkB/B,cAAc2B,IAAM,EAAA;AAAErB,oBAAAA;AAAY,iBAAA,CAAA;gBAE1D,MAAM,EAAE0B,SAAS,EAAE,GAAGnC,UAAAA,CAAW,YAC9BoC,GAAG,CAAC,aACJC,CAAAA,CAAAA,qBAAqB,CAAC;AAAE5B,oBAAAA;AAAY,iBAAA,CAAA;gBAEvC,OAAO0B,SAAAA,CAAUH,QAAQE,eAAiBD,EAAAA,GAAAA,CAAAA;AAC5C;AACF,SAAA,CAAA;AACF,KAAA;IAEA,OAAO;AAAEzB,QAAAA;AAAuB,KAAA;AAClC,CAAA;;;;"}
1
+ {"version":3,"file":"single-type.mjs","sources":["../../../../../server/src/services/builders/queries/single-type.ts"],"sourcesContent":["import { extendType } from 'nexus';\nimport type * as Nexus from 'nexus';\nimport type { Struct } from '@strapi/types';\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { naming } = getService('utils');\n const { transformArgs, getContentTypeArgs } = getService('builders').utils;\n\n const { getFindOneQueryName, getTypeName } = naming;\n\n const buildSingleTypeQueries = (contentType: Struct.SingleTypeSchema) => {\n const findQueryName = `Query.${getFindOneQueryName(contentType)}`;\n\n const extension = getService('extension');\n\n const registerAuthConfig = (action: string, auth: any) => {\n return extension.use({ resolversConfig: { [action]: { auth } } });\n };\n\n const isActionEnabled = (action: string) => {\n return extension.shadowCRUD(contentType.uid).isActionEnabled(action);\n };\n\n const isFindEnabled = isActionEnabled('find');\n\n if (isFindEnabled) {\n registerAuthConfig(findQueryName, { scope: [`${contentType.uid}.find`] });\n }\n\n return extendType({\n type: 'Query',\n\n definition(t) {\n if (isFindEnabled) {\n addFindQuery(t, contentType);\n }\n },\n });\n };\n\n const addFindQuery = (\n t: Nexus.blocks.ObjectDefinitionBlock<string>,\n contentType: Struct.SingleTypeSchema\n ) => {\n const findQueryName = getFindOneQueryName(contentType);\n const typeName = getTypeName(contentType);\n\n t.field(findQueryName, {\n type: typeName,\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: getContentTypeArgs(contentType),\n\n async resolve(parent, args, ctx) {\n const transformedArgs = transformArgs(args, { contentType });\n\n const { findFirst } = getService('builders')\n .get('content-api')\n .buildQueriesResolvers({ contentType });\n\n return findFirst(parent, transformedArgs, ctx);\n },\n });\n };\n\n return { buildSingleTypeQueries };\n};\n"],"names":["strapi","service","getService","plugin","naming","transformArgs","getContentTypeArgs","utils","getFindOneQueryName","getTypeName","buildSingleTypeQueries","contentType","findQueryName","extension","registerAuthConfig","action","auth","use","resolversConfig","isActionEnabled","shadowCRUD","uid","isFindEnabled","scope","extendType","type","definition","t","addFindQuery","typeName","field","extensions","args","resolve","parent","ctx","transformedArgs","findFirst","get","buildQueriesResolvers"],"mappings":";;AAKA,qCAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,GAAA;AACjC,IAAA,MAAM,EAAEC,OAAAA,EAASC,UAAU,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA;AAE9C,IAAA,MAAM,EAAEC,MAAM,EAAE,GAAGF,UAAAA,CAAW,OAAA,CAAA;IAC9B,MAAM,EAAEG,aAAa,EAAEC,kBAAkB,EAAE,GAAGJ,UAAAA,CAAW,YAAYK,KAAK;AAE1E,IAAA,MAAM,EAAEC,mBAAmB,EAAEC,WAAW,EAAE,GAAGL,MAAAA;AAE7C,IAAA,MAAMM,yBAAyB,CAACC,WAAAA,GAAAA;AAC9B,QAAA,MAAMC,aAAAA,GAAgB,CAAC,MAAM,EAAEJ,oBAAoBG,WAAAA,CAAAA,CAAAA,CAAc;AAEjE,QAAA,MAAME,YAAYX,UAAAA,CAAW,WAAA,CAAA;QAE7B,MAAMY,kBAAAA,GAAqB,CAACC,MAAAA,EAAgBC,IAAAA,GAAAA;YAC1C,OAAOH,SAAAA,CAAUI,GAAG,CAAC;gBAAEC,eAAAA,EAAiB;AAAE,oBAAA,CAACH,SAAS;AAAEC,wBAAAA;AAAK;AAAE;AAAE,aAAA,CAAA;AACjE,QAAA,CAAA;AAEA,QAAA,MAAMG,kBAAkB,CAACJ,MAAAA,GAAAA;AACvB,YAAA,OAAOF,UAAUO,UAAU,CAACT,YAAYU,GAAG,CAAA,CAAEF,eAAe,CAACJ,MAAAA,CAAAA;AAC/D,QAAA,CAAA;AAEA,QAAA,MAAMO,gBAAgBH,eAAAA,CAAgB,MAAA,CAAA;AAEtC,QAAA,IAAIG,aAAAA,EAAe;AACjBR,YAAAA,kBAAAA,CAAmBF,aAAAA,EAAe;gBAAEW,KAAAA,EAAO;AAAC,oBAAA,CAAA,EAAGZ,WAAAA,CAAYU,GAAG,CAAC,KAAK;AAAE;AAAC,aAAA,CAAA;AACzE,QAAA;AAEA,QAAA,OAAOG,UAAAA,CAAW;YAChBC,IAAAA,EAAM,OAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACV,gBAAA,IAAIL,aAAAA,EAAe;AACjBM,oBAAAA,YAAAA,CAAaD,CAAAA,EAAGhB,WAAAA,CAAAA;AAClB,gBAAA;AACF,YAAA;AACF,SAAA,CAAA;AACF,IAAA,CAAA;IAEA,MAAMiB,YAAAA,GAAe,CACnBD,CAAAA,EACAhB,WAAAA,GAAAA;AAEA,QAAA,MAAMC,gBAAgBJ,mBAAAA,CAAoBG,WAAAA,CAAAA;AAC1C,QAAA,MAAMkB,WAAWpB,WAAAA,CAAYE,WAAAA,CAAAA;QAE7BgB,CAAAA,CAAEG,KAAK,CAAClB,aAAAA,EAAe;YACrBa,IAAAA,EAAMI,QAAAA;YAENE,UAAAA,EAAY;gBACV/B,MAAAA,EAAQ;AACNW,oBAAAA;AACF;AACF,aAAA;AAEAqB,YAAAA,IAAAA,EAAM1B,kBAAAA,CAAmBK,WAAAA,CAAAA;AAEzB,YAAA,MAAMsB,OAAAA,CAAAA,CAAQC,MAAM,EAAEF,IAAI,EAAEG,GAAG,EAAA;gBAC7B,MAAMC,eAAAA,GAAkB/B,cAAc2B,IAAAA,EAAM;AAAErB,oBAAAA;AAAY,iBAAA,CAAA;gBAE1D,MAAM,EAAE0B,SAAS,EAAE,GAAGnC,UAAAA,CAAW,YAC9BoC,GAAG,CAAC,aAAA,CAAA,CACJC,qBAAqB,CAAC;AAAE5B,oBAAAA;AAAY,iBAAA,CAAA;gBAEvC,OAAO0B,SAAAA,CAAUH,QAAQE,eAAAA,EAAiBD,GAAAA,CAAAA;AAC5C,YAAA;AACF,SAAA,CAAA;AACF,IAAA,CAAA;IAEA,OAAO;AAAEzB,QAAAA;AAAuB,KAAA;AAClC,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"relation-response-collection.js","sources":["../../../../server/src/services/builders/relation-response-collection.ts"],"sourcesContent":["import { objectType, nonNull } from 'nexus';\nimport { defaultTo, prop, pipe } from 'lodash/fp';\nimport type { Schema } from '@strapi/types';\nimport type { Context } from '../types';\n\nexport default ({ strapi }: Context) => {\n const { naming } = strapi.plugin('graphql').service('utils');\n\n return {\n /**\n * Build a type definition for a content API relation's collection response for a given content type\n */\n buildRelationResponseCollectionDefinition(contentType: Schema.ContentType) {\n const name = naming.getRelationResponseCollectionName(contentType);\n const typeName = naming.getTypeName(contentType);\n\n return objectType({\n name,\n\n definition(t) {\n t.nonNull.list.field('nodes', {\n type: nonNull(typeName),\n\n resolve: pipe(prop('nodes'), defaultTo([])),\n });\n\n if (strapi.plugin('graphql').config('v4CompatibilityMode', false)) {\n t.nonNull.list.field('data', {\n deprecation: 'Use `nodes` field instead',\n type: nonNull(typeName),\n resolve: pipe(prop('nodes'), defaultTo([])),\n });\n }\n },\n });\n },\n };\n};\n"],"names":["strapi","naming","plugin","service","buildRelationResponseCollectionDefinition","contentType","name","getRelationResponseCollectionName","typeName","getTypeName","objectType","definition","t","nonNull","list","field","type","resolve","pipe","prop","defaultTo","config","deprecation"],"mappings":";;;;;AAKA,iCAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,GAAA;IACjC,MAAM,EAAEC,MAAM,EAAE,GAAGD,OAAOE,MAAM,CAAC,SAAWC,CAAAA,CAAAA,OAAO,CAAC,OAAA,CAAA;IAEpD,OAAO;AACL;;AAEC,QACDC,2CAA0CC,WAA+B,EAAA;YACvE,MAAMC,IAAAA,GAAOL,MAAOM,CAAAA,iCAAiC,CAACF,WAAAA,CAAAA;YACtD,MAAMG,QAAAA,GAAWP,MAAOQ,CAAAA,WAAW,CAACJ,WAAAA,CAAAA;AAEpC,YAAA,OAAOK,gBAAW,CAAA;AAChBJ,gBAAAA,IAAAA;AAEAK,gBAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACVA,oBAAAA,CAAAA,CAAEC,OAAO,CAACC,IAAI,CAACC,KAAK,CAAC,OAAS,EAAA;AAC5BC,wBAAAA,IAAAA,EAAMH,aAAQL,CAAAA,QAAAA,CAAAA;AAEdS,wBAAAA,OAAAA,EAASC,OAAKC,CAAAA,OAAAA,CAAK,OAAUC,CAAAA,EAAAA,YAAAA,CAAU,EAAE,CAAA;AAC3C,qBAAA,CAAA;AAEA,oBAAA,IAAIpB,OAAOE,MAAM,CAAC,WAAWmB,MAAM,CAAC,uBAAuB,KAAQ,CAAA,EAAA;AACjET,wBAAAA,CAAAA,CAAEC,OAAO,CAACC,IAAI,CAACC,KAAK,CAAC,MAAQ,EAAA;4BAC3BO,WAAa,EAAA,2BAAA;AACbN,4BAAAA,IAAAA,EAAMH,aAAQL,CAAAA,QAAAA,CAAAA;AACdS,4BAAAA,OAAAA,EAASC,OAAKC,CAAAA,OAAAA,CAAK,OAAUC,CAAAA,EAAAA,YAAAA,CAAU,EAAE,CAAA;AAC3C,yBAAA,CAAA;AACF;AACF;AACF,aAAA,CAAA;AACF;AACF,KAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"relation-response-collection.js","sources":["../../../../server/src/services/builders/relation-response-collection.ts"],"sourcesContent":["import { objectType, nonNull } from 'nexus';\nimport { defaultTo, prop, pipe } from 'lodash/fp';\nimport type { Schema } from '@strapi/types';\nimport type { Context } from '../types';\n\nexport default ({ strapi }: Context) => {\n const { naming } = strapi.plugin('graphql').service('utils');\n\n return {\n /**\n * Build a type definition for a content API relation's collection response for a given content type\n */\n buildRelationResponseCollectionDefinition(contentType: Schema.ContentType) {\n const name = naming.getRelationResponseCollectionName(contentType);\n const typeName = naming.getTypeName(contentType);\n\n return objectType({\n name,\n\n definition(t) {\n t.nonNull.list.field('nodes', {\n type: nonNull(typeName),\n\n resolve: pipe(prop('nodes'), defaultTo([])),\n });\n\n if (strapi.plugin('graphql').config('v4CompatibilityMode', false)) {\n t.nonNull.list.field('data', {\n deprecation: 'Use `nodes` field instead',\n type: nonNull(typeName),\n resolve: pipe(prop('nodes'), defaultTo([])),\n });\n }\n },\n });\n },\n };\n};\n"],"names":["strapi","naming","plugin","service","buildRelationResponseCollectionDefinition","contentType","name","getRelationResponseCollectionName","typeName","getTypeName","objectType","definition","t","nonNull","list","field","type","resolve","pipe","prop","defaultTo","config","deprecation"],"mappings":";;;;;AAKA,iCAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,GAAA;IACjC,MAAM,EAAEC,MAAM,EAAE,GAAGD,OAAOE,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,OAAA,CAAA;IAEpD,OAAO;AACL;;AAEC,QACDC,2CAA0CC,WAA+B,EAAA;YACvE,MAAMC,IAAAA,GAAOL,MAAAA,CAAOM,iCAAiC,CAACF,WAAAA,CAAAA;YACtD,MAAMG,QAAAA,GAAWP,MAAAA,CAAOQ,WAAW,CAACJ,WAAAA,CAAAA;AAEpC,YAAA,OAAOK,gBAAAA,CAAW;AAChBJ,gBAAAA,IAAAA;AAEAK,gBAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACVA,oBAAAA,CAAAA,CAAEC,OAAO,CAACC,IAAI,CAACC,KAAK,CAAC,OAAA,EAAS;AAC5BC,wBAAAA,IAAAA,EAAMH,aAAAA,CAAQL,QAAAA,CAAAA;AAEdS,wBAAAA,OAAAA,EAASC,OAAAA,CAAKC,OAAAA,CAAK,OAAA,CAAA,EAAUC,YAAAA,CAAU,EAAE,CAAA;AAC3C,qBAAA,CAAA;AAEA,oBAAA,IAAIpB,OAAOE,MAAM,CAAC,WAAWmB,MAAM,CAAC,uBAAuB,KAAA,CAAA,EAAQ;AACjET,wBAAAA,CAAAA,CAAEC,OAAO,CAACC,IAAI,CAACC,KAAK,CAAC,MAAA,EAAQ;4BAC3BO,WAAAA,EAAa,2BAAA;AACbN,4BAAAA,IAAAA,EAAMH,aAAAA,CAAQL,QAAAA,CAAAA;AACdS,4BAAAA,OAAAA,EAASC,OAAAA,CAAKC,OAAAA,CAAK,OAAA,CAAA,EAAUC,YAAAA,CAAU,EAAE,CAAA;AAC3C,yBAAA,CAAA;AACF,oBAAA;AACF,gBAAA;AACF,aAAA,CAAA;AACF,QAAA;AACF,KAAA;AACF,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"relation-response-collection.mjs","sources":["../../../../server/src/services/builders/relation-response-collection.ts"],"sourcesContent":["import { objectType, nonNull } from 'nexus';\nimport { defaultTo, prop, pipe } from 'lodash/fp';\nimport type { Schema } from '@strapi/types';\nimport type { Context } from '../types';\n\nexport default ({ strapi }: Context) => {\n const { naming } = strapi.plugin('graphql').service('utils');\n\n return {\n /**\n * Build a type definition for a content API relation's collection response for a given content type\n */\n buildRelationResponseCollectionDefinition(contentType: Schema.ContentType) {\n const name = naming.getRelationResponseCollectionName(contentType);\n const typeName = naming.getTypeName(contentType);\n\n return objectType({\n name,\n\n definition(t) {\n t.nonNull.list.field('nodes', {\n type: nonNull(typeName),\n\n resolve: pipe(prop('nodes'), defaultTo([])),\n });\n\n if (strapi.plugin('graphql').config('v4CompatibilityMode', false)) {\n t.nonNull.list.field('data', {\n deprecation: 'Use `nodes` field instead',\n type: nonNull(typeName),\n resolve: pipe(prop('nodes'), defaultTo([])),\n });\n }\n },\n });\n },\n };\n};\n"],"names":["strapi","naming","plugin","service","buildRelationResponseCollectionDefinition","contentType","name","getRelationResponseCollectionName","typeName","getTypeName","objectType","definition","t","nonNull","list","field","type","resolve","pipe","prop","defaultTo","config","deprecation"],"mappings":";;;AAKA,iCAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,GAAA;IACjC,MAAM,EAAEC,MAAM,EAAE,GAAGD,OAAOE,MAAM,CAAC,SAAWC,CAAAA,CAAAA,OAAO,CAAC,OAAA,CAAA;IAEpD,OAAO;AACL;;AAEC,QACDC,2CAA0CC,WAA+B,EAAA;YACvE,MAAMC,IAAAA,GAAOL,MAAOM,CAAAA,iCAAiC,CAACF,WAAAA,CAAAA;YACtD,MAAMG,QAAAA,GAAWP,MAAOQ,CAAAA,WAAW,CAACJ,WAAAA,CAAAA;AAEpC,YAAA,OAAOK,UAAW,CAAA;AAChBJ,gBAAAA,IAAAA;AAEAK,gBAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACVA,oBAAAA,CAAAA,CAAEC,OAAO,CAACC,IAAI,CAACC,KAAK,CAAC,OAAS,EAAA;AAC5BC,wBAAAA,IAAAA,EAAMH,OAAQL,CAAAA,QAAAA,CAAAA;AAEdS,wBAAAA,OAAAA,EAASC,IAAKC,CAAAA,IAAAA,CAAK,OAAUC,CAAAA,EAAAA,SAAAA,CAAU,EAAE,CAAA;AAC3C,qBAAA,CAAA;AAEA,oBAAA,IAAIpB,OAAOE,MAAM,CAAC,WAAWmB,MAAM,CAAC,uBAAuB,KAAQ,CAAA,EAAA;AACjET,wBAAAA,CAAAA,CAAEC,OAAO,CAACC,IAAI,CAACC,KAAK,CAAC,MAAQ,EAAA;4BAC3BO,WAAa,EAAA,2BAAA;AACbN,4BAAAA,IAAAA,EAAMH,OAAQL,CAAAA,QAAAA,CAAAA;AACdS,4BAAAA,OAAAA,EAASC,IAAKC,CAAAA,IAAAA,CAAK,OAAUC,CAAAA,EAAAA,SAAAA,CAAU,EAAE,CAAA;AAC3C,yBAAA,CAAA;AACF;AACF;AACF,aAAA,CAAA;AACF;AACF,KAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"relation-response-collection.mjs","sources":["../../../../server/src/services/builders/relation-response-collection.ts"],"sourcesContent":["import { objectType, nonNull } from 'nexus';\nimport { defaultTo, prop, pipe } from 'lodash/fp';\nimport type { Schema } from '@strapi/types';\nimport type { Context } from '../types';\n\nexport default ({ strapi }: Context) => {\n const { naming } = strapi.plugin('graphql').service('utils');\n\n return {\n /**\n * Build a type definition for a content API relation's collection response for a given content type\n */\n buildRelationResponseCollectionDefinition(contentType: Schema.ContentType) {\n const name = naming.getRelationResponseCollectionName(contentType);\n const typeName = naming.getTypeName(contentType);\n\n return objectType({\n name,\n\n definition(t) {\n t.nonNull.list.field('nodes', {\n type: nonNull(typeName),\n\n resolve: pipe(prop('nodes'), defaultTo([])),\n });\n\n if (strapi.plugin('graphql').config('v4CompatibilityMode', false)) {\n t.nonNull.list.field('data', {\n deprecation: 'Use `nodes` field instead',\n type: nonNull(typeName),\n resolve: pipe(prop('nodes'), defaultTo([])),\n });\n }\n },\n });\n },\n };\n};\n"],"names":["strapi","naming","plugin","service","buildRelationResponseCollectionDefinition","contentType","name","getRelationResponseCollectionName","typeName","getTypeName","objectType","definition","t","nonNull","list","field","type","resolve","pipe","prop","defaultTo","config","deprecation"],"mappings":";;;AAKA,iCAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,GAAA;IACjC,MAAM,EAAEC,MAAM,EAAE,GAAGD,OAAOE,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,OAAA,CAAA;IAEpD,OAAO;AACL;;AAEC,QACDC,2CAA0CC,WAA+B,EAAA;YACvE,MAAMC,IAAAA,GAAOL,MAAAA,CAAOM,iCAAiC,CAACF,WAAAA,CAAAA;YACtD,MAAMG,QAAAA,GAAWP,MAAAA,CAAOQ,WAAW,CAACJ,WAAAA,CAAAA;AAEpC,YAAA,OAAOK,UAAAA,CAAW;AAChBJ,gBAAAA,IAAAA;AAEAK,gBAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACVA,oBAAAA,CAAAA,CAAEC,OAAO,CAACC,IAAI,CAACC,KAAK,CAAC,OAAA,EAAS;AAC5BC,wBAAAA,IAAAA,EAAMH,OAAAA,CAAQL,QAAAA,CAAAA;AAEdS,wBAAAA,OAAAA,EAASC,IAAAA,CAAKC,IAAAA,CAAK,OAAA,CAAA,EAAUC,SAAAA,CAAU,EAAE,CAAA;AAC3C,qBAAA,CAAA;AAEA,oBAAA,IAAIpB,OAAOE,MAAM,CAAC,WAAWmB,MAAM,CAAC,uBAAuB,KAAA,CAAA,EAAQ;AACjET,wBAAAA,CAAAA,CAAEC,OAAO,CAACC,IAAI,CAACC,KAAK,CAAC,MAAA,EAAQ;4BAC3BO,WAAAA,EAAa,2BAAA;AACbN,4BAAAA,IAAAA,EAAMH,OAAAA,CAAQL,QAAAA,CAAAA;AACdS,4BAAAA,OAAAA,EAASC,IAAAA,CAAKC,IAAAA,CAAK,OAAA,CAAA,EAAUC,SAAAA,CAAU,EAAE,CAAA;AAC3C,yBAAA,CAAA;AACF,oBAAA;AACF,gBAAA;AACF,aAAA,CAAA;AACF,QAAA;AACF,KAAA;AACF,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"association.js","sources":["../../../../../server/src/services/builders/resolvers/association.ts"],"sourcesContent":["import { get, merge } from 'lodash/fp';\nimport { async, contentTypes, errors } from '@strapi/utils';\nimport type { Internal } from '@strapi/types';\n\nimport type { Context } from '../../types';\n\nconst { ApplicationError } = errors;\n\nexport default ({ strapi }: Context) => {\n const { service: getGraphQLService } = strapi.plugin('graphql');\n\n const { isMorphRelation, isMedia } = getGraphQLService('utils').attributes;\n const { transformArgs } = getGraphQLService('builders').utils;\n const { toEntityResponse, toEntityResponseCollection } = getGraphQLService('format').returnTypes;\n\n return {\n buildAssociationResolver({\n contentTypeUID,\n attributeName,\n }: {\n contentTypeUID: Internal.UID.ContentType;\n attributeName: string;\n }) {\n const contentType = strapi.getModel(contentTypeUID);\n const attribute: any = contentType.attributes[attributeName];\n\n if (!attribute) {\n throw new ApplicationError(\n `Failed to build an association resolver for ${contentTypeUID}::${attributeName}`\n );\n }\n\n const isMediaAttribute = isMedia(attribute);\n const isMorphAttribute = isMorphRelation(attribute);\n\n const targetUID = isMediaAttribute ? 'plugin::upload.file' : attribute.target;\n const isToMany = isMediaAttribute ? attribute.multiple : attribute.relation.endsWith('Many');\n\n const targetContentType = strapi.getModel(targetUID);\n\n return async (parent: any, args: any = {}, context: any = {}) => {\n const { auth } = context.state;\n\n const transformedArgs = transformArgs(args, {\n contentType: targetContentType,\n usePagination: true,\n });\n\n await strapi.contentAPI.validate.query(transformedArgs, targetContentType, {\n auth,\n });\n\n const sanitizedQuery = await strapi.contentAPI.sanitize.query(\n transformedArgs,\n targetContentType,\n {\n auth,\n }\n );\n const transformedQuery = strapi.get('query-params').transform(targetUID, sanitizedQuery);\n\n const isTargetDraftAndPublishContentType =\n contentTypes.hasDraftAndPublish(targetContentType);\n\n // Helper to check if a field is from built-in queries (not custom resolvers)\n // Use the precomputed lookup populated by the content-api service at schema build time.\n const isBuiltInQueryField = (fieldName: string) => {\n const graphqlService = strapi.plugin('graphql').service('content-api');\n return graphqlService.isBuiltInQueryField(fieldName);\n };\n\n // Only inherit status from built-in queries to avoid conflicts with custom resolvers\n const inheritedStatus =\n context.rootQueryArgs?.status &&\n context.rootQueryArgs?._originField &&\n isBuiltInQueryField(context.rootQueryArgs._originField)\n ? context.rootQueryArgs.status\n : null;\n\n const statusToApply = args.status || inheritedStatus;\n\n const defaultFilters =\n isTargetDraftAndPublishContentType && statusToApply\n ? {\n where: {\n publishedAt: statusToApply === 'published' ? { $notNull: true } : { $null: true },\n },\n }\n : {};\n\n // Inherit hasPublishedVersion from root query (same pattern as status)\n const inheritedHasPublishedVersion =\n context.rootQueryArgs?.hasPublishedVersion !== undefined &&\n context.rootQueryArgs?._originField &&\n isBuiltInQueryField(context.rootQueryArgs._originField)\n ? context.rootQueryArgs.hasPublishedVersion\n : undefined;\n\n // Build hasPublishedVersion condition for this relation's model\n let hasPublishedVersionFilters: Record<string, any> = {};\n if (isTargetDraftAndPublishContentType && inheritedHasPublishedVersion !== undefined) {\n const meta = strapi.db.metadata.get(targetUID);\n const tableName = meta.tableName;\n const documentIdAttr = meta.attributes.documentId;\n const publishedAtAttr = meta.attributes.publishedAt;\n const documentIdColumn =\n ('columnName' in documentIdAttr && documentIdAttr.columnName) || 'document_id';\n const publishedAtColumn =\n ('columnName' in publishedAtAttr && publishedAtAttr.columnName) || 'published_at';\n\n const knex = strapi.db.connection;\n const subquery = knex(tableName)\n .distinct(documentIdColumn)\n .whereNotNull(publishedAtColumn);\n\n hasPublishedVersionFilters = {\n where: {\n documentId: inheritedHasPublishedVersion ? { $in: subquery } : { $notIn: subquery },\n },\n };\n }\n\n const dbQuery = merge(merge(defaultFilters, hasPublishedVersionFilters), transformedQuery);\n\n // Sign media URLs if upload plugin is available and using private provider\n const data = await (async () => {\n const rawData = await strapi.db\n .query(contentTypeUID)\n .load(parent, attributeName, dbQuery);\n if (isMediaAttribute && strapi.plugin('upload')) {\n const { signFileUrls } = strapi.plugin('upload').service('file');\n\n if (Array.isArray(rawData)) {\n return async.map(rawData, (item: any) => signFileUrls(item));\n }\n\n if (rawData) {\n return signFileUrls(rawData);\n }\n }\n\n return rawData;\n })();\n\n const sanitizeInfo = {\n args: sanitizedQuery,\n resourceUID: targetUID,\n };\n\n // If this a polymorphic association, it sanitizes & returns the raw data\n // Note: The value needs to be wrapped in a fake object that represents its parent\n // so that the sanitize util can work properly.\n if (isMorphAttribute) {\n // Helpers used for the data cleanup\n const wrapData = (dataToWrap: any) => ({ [attributeName]: dataToWrap });\n const sanitizeData = (dataToSanitize: any) => {\n return strapi.contentAPI.sanitize.output(dataToSanitize, contentType, { auth });\n };\n const unwrapData = get(attributeName);\n\n // Sanitizer definition\n const sanitizeMorphAttribute = async.pipe(wrapData, sanitizeData, unwrapData);\n\n return sanitizeMorphAttribute(data);\n }\n\n // If this is a to-many relation, it returns an object that\n // matches what the entity-response-collection's resolvers expect\n if (isToMany) {\n return toEntityResponseCollection(data, sanitizeInfo);\n }\n\n // Else, it returns an object that matches\n // what the entity-response's resolvers expect\n return toEntityResponse(data, sanitizeInfo);\n };\n },\n };\n};\n"],"names":["ApplicationError","errors","strapi","service","getGraphQLService","plugin","isMorphRelation","isMedia","attributes","transformArgs","utils","toEntityResponse","toEntityResponseCollection","returnTypes","buildAssociationResolver","contentTypeUID","attributeName","contentType","getModel","attribute","isMediaAttribute","isMorphAttribute","targetUID","target","isToMany","multiple","relation","endsWith","targetContentType","parent","args","context","auth","state","transformedArgs","usePagination","contentAPI","validate","query","sanitizedQuery","sanitize","transformedQuery","get","transform","isTargetDraftAndPublishContentType","contentTypes","hasDraftAndPublish","isBuiltInQueryField","fieldName","graphqlService","inheritedStatus","rootQueryArgs","status","_originField","statusToApply","defaultFilters","where","publishedAt","$notNull","$null","inheritedHasPublishedVersion","hasPublishedVersion","undefined","hasPublishedVersionFilters","meta","db","metadata","tableName","documentIdAttr","documentId","publishedAtAttr","documentIdColumn","columnName","publishedAtColumn","knex","connection","subquery","distinct","whereNotNull","$in","$notIn","dbQuery","merge","data","rawData","load","signFileUrls","Array","isArray","async","map","item","sanitizeInfo","resourceUID","wrapData","dataToWrap","sanitizeData","dataToSanitize","output","unwrapData","sanitizeMorphAttribute","pipe"],"mappings":"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"}
1
+ {"version":3,"file":"association.js","sources":["../../../../../server/src/services/builders/resolvers/association.ts"],"sourcesContent":["import { get, merge } from 'lodash/fp';\nimport { async, contentTypes, errors } from '@strapi/utils';\nimport type { Internal } from '@strapi/types';\n\nimport type { Context } from '../../types';\n\nconst { ApplicationError } = errors;\n\nexport default ({ strapi }: Context) => {\n const { service: getGraphQLService } = strapi.plugin('graphql');\n\n const { isMorphRelation, isMedia } = getGraphQLService('utils').attributes;\n const { transformArgs } = getGraphQLService('builders').utils;\n const { toEntityResponse, toEntityResponseCollection } = getGraphQLService('format').returnTypes;\n\n return {\n buildAssociationResolver({\n contentTypeUID,\n attributeName,\n }: {\n contentTypeUID: Internal.UID.ContentType;\n attributeName: string;\n }) {\n const contentType = strapi.getModel(contentTypeUID);\n const attribute: any = contentType.attributes[attributeName];\n\n if (!attribute) {\n throw new ApplicationError(\n `Failed to build an association resolver for ${contentTypeUID}::${attributeName}`\n );\n }\n\n const isMediaAttribute = isMedia(attribute);\n const isMorphAttribute = isMorphRelation(attribute);\n\n const targetUID = isMediaAttribute ? 'plugin::upload.file' : attribute.target;\n const isToMany = isMediaAttribute ? attribute.multiple : attribute.relation.endsWith('Many');\n\n const targetContentType = strapi.getModel(targetUID);\n\n return async (parent: any, args: any = {}, context: any = {}) => {\n const { auth } = context.state;\n\n const transformedArgs = transformArgs(args, {\n contentType: targetContentType,\n usePagination: true,\n });\n\n await strapi.contentAPI.validate.query(transformedArgs, targetContentType, {\n auth,\n });\n\n const sanitizedQuery = await strapi.contentAPI.sanitize.query(\n transformedArgs,\n targetContentType,\n {\n auth,\n }\n );\n const transformedQuery = strapi.get('query-params').transform(targetUID, sanitizedQuery);\n\n const isTargetDraftAndPublishContentType =\n contentTypes.hasDraftAndPublish(targetContentType);\n\n // Helper to check if a field is from built-in queries (not custom resolvers)\n // Use the precomputed lookup populated by the content-api service at schema build time.\n const isBuiltInQueryField = (fieldName: string) => {\n const graphqlService = strapi.plugin('graphql').service('content-api');\n return graphqlService.isBuiltInQueryField(fieldName);\n };\n\n // Only inherit status from built-in queries to avoid conflicts with custom resolvers\n const inheritedStatus =\n context.rootQueryArgs?.status &&\n context.rootQueryArgs?._originField &&\n isBuiltInQueryField(context.rootQueryArgs._originField)\n ? context.rootQueryArgs.status\n : null;\n\n const statusToApply = args.status || inheritedStatus;\n\n const defaultFilters =\n isTargetDraftAndPublishContentType && statusToApply\n ? {\n where: {\n publishedAt: statusToApply === 'published' ? { $notNull: true } : { $null: true },\n },\n }\n : {};\n\n // Inherit hasPublishedVersion from root query (same pattern as status)\n const inheritedHasPublishedVersion =\n context.rootQueryArgs?.hasPublishedVersion !== undefined &&\n context.rootQueryArgs?._originField &&\n isBuiltInQueryField(context.rootQueryArgs._originField)\n ? context.rootQueryArgs.hasPublishedVersion\n : undefined;\n\n // Build hasPublishedVersion condition for this relation's model\n let hasPublishedVersionFilters: Record<string, any> = {};\n if (isTargetDraftAndPublishContentType && inheritedHasPublishedVersion !== undefined) {\n const meta = strapi.db.metadata.get(targetUID);\n const tableName = meta.tableName;\n const documentIdAttr = meta.attributes.documentId;\n const publishedAtAttr = meta.attributes.publishedAt;\n const documentIdColumn =\n ('columnName' in documentIdAttr && documentIdAttr.columnName) || 'document_id';\n const publishedAtColumn =\n ('columnName' in publishedAtAttr && publishedAtAttr.columnName) || 'published_at';\n\n const knex = strapi.db.connection;\n const subquery = knex(tableName)\n .distinct(documentIdColumn)\n .whereNotNull(publishedAtColumn);\n\n hasPublishedVersionFilters = {\n where: {\n documentId: inheritedHasPublishedVersion ? { $in: subquery } : { $notIn: subquery },\n },\n };\n }\n\n const dbQuery = merge(merge(defaultFilters, hasPublishedVersionFilters), transformedQuery);\n\n // Sign media URLs if upload plugin is available and using private provider\n const data = await (async () => {\n const rawData = await strapi.db\n .query(contentTypeUID)\n .load(parent, attributeName, dbQuery);\n if (isMediaAttribute && strapi.plugin('upload')) {\n const { signFileUrls } = strapi.plugin('upload').service('file');\n\n if (Array.isArray(rawData)) {\n return async.map(rawData, (item: any) => signFileUrls(item));\n }\n\n if (rawData) {\n return signFileUrls(rawData);\n }\n }\n\n return rawData;\n })();\n\n const sanitizeInfo = {\n args: sanitizedQuery,\n resourceUID: targetUID,\n };\n\n // If this a polymorphic association, it sanitizes & returns the raw data\n // Note: The value needs to be wrapped in a fake object that represents its parent\n // so that the sanitize util can work properly.\n if (isMorphAttribute) {\n // Helpers used for the data cleanup\n const wrapData = (dataToWrap: any) => ({ [attributeName]: dataToWrap });\n const sanitizeData = (dataToSanitize: any) => {\n return strapi.contentAPI.sanitize.output(dataToSanitize, contentType, { auth });\n };\n const unwrapData = get(attributeName);\n\n // Sanitizer definition\n const sanitizeMorphAttribute = async.pipe(wrapData, sanitizeData, unwrapData);\n\n return sanitizeMorphAttribute(data);\n }\n\n // If this is a to-many relation, it returns an object that\n // matches what the entity-response-collection's resolvers expect\n if (isToMany) {\n return toEntityResponseCollection(data, sanitizeInfo);\n }\n\n // Else, it returns an object that matches\n // what the entity-response's resolvers expect\n return toEntityResponse(data, sanitizeInfo);\n };\n },\n };\n};\n"],"names":["ApplicationError","errors","strapi","service","getGraphQLService","plugin","isMorphRelation","isMedia","attributes","transformArgs","utils","toEntityResponse","toEntityResponseCollection","returnTypes","buildAssociationResolver","contentTypeUID","attributeName","contentType","getModel","attribute","isMediaAttribute","isMorphAttribute","targetUID","target","isToMany","multiple","relation","endsWith","targetContentType","parent","args","context","auth","state","transformedArgs","usePagination","contentAPI","validate","query","sanitizedQuery","sanitize","transformedQuery","get","transform","isTargetDraftAndPublishContentType","contentTypes","hasDraftAndPublish","isBuiltInQueryField","fieldName","graphqlService","inheritedStatus","rootQueryArgs","status","_originField","statusToApply","defaultFilters","where","publishedAt","$notNull","$null","inheritedHasPublishedVersion","hasPublishedVersion","undefined","hasPublishedVersionFilters","meta","db","metadata","tableName","documentIdAttr","documentId","publishedAtAttr","documentIdColumn","columnName","publishedAtColumn","knex","connection","subquery","distinct","whereNotNull","$in","$notIn","dbQuery","merge","data","rawData","load","signFileUrls","Array","isArray","async","map","item","sanitizeInfo","resourceUID","wrapData","dataToWrap","sanitizeData","dataToSanitize","output","unwrapData","sanitizeMorphAttribute","pipe"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { merge, get } from 'lodash/fp';
2
- import { contentTypes, async, errors } from '@strapi/utils';
2
+ import { errors, contentTypes, async } from '@strapi/utils';
3
3
 
4
4
  const { ApplicationError } = errors;
5
5
  var associationResolvers = (({ strapi })=>{
@@ -1 +1 @@
1
- {"version":3,"file":"association.mjs","sources":["../../../../../server/src/services/builders/resolvers/association.ts"],"sourcesContent":["import { get, merge } from 'lodash/fp';\nimport { async, contentTypes, errors } from '@strapi/utils';\nimport type { Internal } from '@strapi/types';\n\nimport type { Context } from '../../types';\n\nconst { ApplicationError } = errors;\n\nexport default ({ strapi }: Context) => {\n const { service: getGraphQLService } = strapi.plugin('graphql');\n\n const { isMorphRelation, isMedia } = getGraphQLService('utils').attributes;\n const { transformArgs } = getGraphQLService('builders').utils;\n const { toEntityResponse, toEntityResponseCollection } = getGraphQLService('format').returnTypes;\n\n return {\n buildAssociationResolver({\n contentTypeUID,\n attributeName,\n }: {\n contentTypeUID: Internal.UID.ContentType;\n attributeName: string;\n }) {\n const contentType = strapi.getModel(contentTypeUID);\n const attribute: any = contentType.attributes[attributeName];\n\n if (!attribute) {\n throw new ApplicationError(\n `Failed to build an association resolver for ${contentTypeUID}::${attributeName}`\n );\n }\n\n const isMediaAttribute = isMedia(attribute);\n const isMorphAttribute = isMorphRelation(attribute);\n\n const targetUID = isMediaAttribute ? 'plugin::upload.file' : attribute.target;\n const isToMany = isMediaAttribute ? attribute.multiple : attribute.relation.endsWith('Many');\n\n const targetContentType = strapi.getModel(targetUID);\n\n return async (parent: any, args: any = {}, context: any = {}) => {\n const { auth } = context.state;\n\n const transformedArgs = transformArgs(args, {\n contentType: targetContentType,\n usePagination: true,\n });\n\n await strapi.contentAPI.validate.query(transformedArgs, targetContentType, {\n auth,\n });\n\n const sanitizedQuery = await strapi.contentAPI.sanitize.query(\n transformedArgs,\n targetContentType,\n {\n auth,\n }\n );\n const transformedQuery = strapi.get('query-params').transform(targetUID, sanitizedQuery);\n\n const isTargetDraftAndPublishContentType =\n contentTypes.hasDraftAndPublish(targetContentType);\n\n // Helper to check if a field is from built-in queries (not custom resolvers)\n // Use the precomputed lookup populated by the content-api service at schema build time.\n const isBuiltInQueryField = (fieldName: string) => {\n const graphqlService = strapi.plugin('graphql').service('content-api');\n return graphqlService.isBuiltInQueryField(fieldName);\n };\n\n // Only inherit status from built-in queries to avoid conflicts with custom resolvers\n const inheritedStatus =\n context.rootQueryArgs?.status &&\n context.rootQueryArgs?._originField &&\n isBuiltInQueryField(context.rootQueryArgs._originField)\n ? context.rootQueryArgs.status\n : null;\n\n const statusToApply = args.status || inheritedStatus;\n\n const defaultFilters =\n isTargetDraftAndPublishContentType && statusToApply\n ? {\n where: {\n publishedAt: statusToApply === 'published' ? { $notNull: true } : { $null: true },\n },\n }\n : {};\n\n // Inherit hasPublishedVersion from root query (same pattern as status)\n const inheritedHasPublishedVersion =\n context.rootQueryArgs?.hasPublishedVersion !== undefined &&\n context.rootQueryArgs?._originField &&\n isBuiltInQueryField(context.rootQueryArgs._originField)\n ? context.rootQueryArgs.hasPublishedVersion\n : undefined;\n\n // Build hasPublishedVersion condition for this relation's model\n let hasPublishedVersionFilters: Record<string, any> = {};\n if (isTargetDraftAndPublishContentType && inheritedHasPublishedVersion !== undefined) {\n const meta = strapi.db.metadata.get(targetUID);\n const tableName = meta.tableName;\n const documentIdAttr = meta.attributes.documentId;\n const publishedAtAttr = meta.attributes.publishedAt;\n const documentIdColumn =\n ('columnName' in documentIdAttr && documentIdAttr.columnName) || 'document_id';\n const publishedAtColumn =\n ('columnName' in publishedAtAttr && publishedAtAttr.columnName) || 'published_at';\n\n const knex = strapi.db.connection;\n const subquery = knex(tableName)\n .distinct(documentIdColumn)\n .whereNotNull(publishedAtColumn);\n\n hasPublishedVersionFilters = {\n where: {\n documentId: inheritedHasPublishedVersion ? { $in: subquery } : { $notIn: subquery },\n },\n };\n }\n\n const dbQuery = merge(merge(defaultFilters, hasPublishedVersionFilters), transformedQuery);\n\n // Sign media URLs if upload plugin is available and using private provider\n const data = await (async () => {\n const rawData = await strapi.db\n .query(contentTypeUID)\n .load(parent, attributeName, dbQuery);\n if (isMediaAttribute && strapi.plugin('upload')) {\n const { signFileUrls } = strapi.plugin('upload').service('file');\n\n if (Array.isArray(rawData)) {\n return async.map(rawData, (item: any) => signFileUrls(item));\n }\n\n if (rawData) {\n return signFileUrls(rawData);\n }\n }\n\n return rawData;\n })();\n\n const sanitizeInfo = {\n args: sanitizedQuery,\n resourceUID: targetUID,\n };\n\n // If this a polymorphic association, it sanitizes & returns the raw data\n // Note: The value needs to be wrapped in a fake object that represents its parent\n // so that the sanitize util can work properly.\n if (isMorphAttribute) {\n // Helpers used for the data cleanup\n const wrapData = (dataToWrap: any) => ({ [attributeName]: dataToWrap });\n const sanitizeData = (dataToSanitize: any) => {\n return strapi.contentAPI.sanitize.output(dataToSanitize, contentType, { auth });\n };\n const unwrapData = get(attributeName);\n\n // Sanitizer definition\n const sanitizeMorphAttribute = async.pipe(wrapData, sanitizeData, unwrapData);\n\n return sanitizeMorphAttribute(data);\n }\n\n // If this is a to-many relation, it returns an object that\n // matches what the entity-response-collection's resolvers expect\n if (isToMany) {\n return toEntityResponseCollection(data, sanitizeInfo);\n }\n\n // Else, it returns an object that matches\n // what the entity-response's resolvers expect\n return toEntityResponse(data, sanitizeInfo);\n };\n },\n };\n};\n"],"names":["ApplicationError","errors","strapi","service","getGraphQLService","plugin","isMorphRelation","isMedia","attributes","transformArgs","utils","toEntityResponse","toEntityResponseCollection","returnTypes","buildAssociationResolver","contentTypeUID","attributeName","contentType","getModel","attribute","isMediaAttribute","isMorphAttribute","targetUID","target","isToMany","multiple","relation","endsWith","targetContentType","parent","args","context","auth","state","transformedArgs","usePagination","contentAPI","validate","query","sanitizedQuery","sanitize","transformedQuery","get","transform","isTargetDraftAndPublishContentType","contentTypes","hasDraftAndPublish","isBuiltInQueryField","fieldName","graphqlService","inheritedStatus","rootQueryArgs","status","_originField","statusToApply","defaultFilters","where","publishedAt","$notNull","$null","inheritedHasPublishedVersion","hasPublishedVersion","undefined","hasPublishedVersionFilters","meta","db","metadata","tableName","documentIdAttr","documentId","publishedAtAttr","documentIdColumn","columnName","publishedAtColumn","knex","connection","subquery","distinct","whereNotNull","$in","$notIn","dbQuery","merge","data","rawData","load","signFileUrls","Array","isArray","async","map","item","sanitizeInfo","resourceUID","wrapData","dataToWrap","sanitizeData","dataToSanitize","output","unwrapData","sanitizeMorphAttribute","pipe"],"mappings":";;;AAMA,MAAM,EAAEA,gBAAgB,EAAE,GAAGC,MAAAA;AAE7B,2BAAe,CAAA,CAAC,EAAEC,MAAM,EAAW,GAAA;AACjC,IAAA,MAAM,EAAEC,OAASC,EAAAA,iBAAiB,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA;IAErD,MAAM,EAAEC,eAAe,EAAEC,OAAO,EAAE,GAAGH,iBAAAA,CAAkB,SAASI,UAAU;AAC1E,IAAA,MAAM,EAAEC,aAAa,EAAE,GAAGL,iBAAAA,CAAkB,YAAYM,KAAK;IAC7D,MAAM,EAAEC,gBAAgB,EAAEC,0BAA0B,EAAE,GAAGR,iBAAAA,CAAkB,UAAUS,WAAW;IAEhG,OAAO;AACLC,QAAAA,wBAAAA,CAAAA,CAAyB,EACvBC,cAAc,EACdC,aAAa,EAId,EAAA;YACC,MAAMC,WAAAA,GAAcf,MAAOgB,CAAAA,QAAQ,CAACH,cAAAA,CAAAA;AACpC,YAAA,MAAMI,SAAiBF,GAAAA,WAAAA,CAAYT,UAAU,CAACQ,aAAc,CAAA;AAE5D,YAAA,IAAI,CAACG,SAAW,EAAA;gBACd,MAAM,IAAInB,iBACR,CAAC,4CAA4C,EAAEe,cAAe,CAAA,EAAE,EAAEC,aAAe,CAAA,CAAA,CAAA;AAErF;AAEA,YAAA,MAAMI,mBAAmBb,OAAQY,CAAAA,SAAAA,CAAAA;AACjC,YAAA,MAAME,mBAAmBf,eAAgBa,CAAAA,SAAAA,CAAAA;AAEzC,YAAA,MAAMG,SAAYF,GAAAA,gBAAAA,GAAmB,qBAAwBD,GAAAA,SAAAA,CAAUI,MAAM;YAC7E,MAAMC,QAAAA,GAAWJ,mBAAmBD,SAAUM,CAAAA,QAAQ,GAAGN,SAAUO,CAAAA,QAAQ,CAACC,QAAQ,CAAC,MAAA,CAAA;YAErF,MAAMC,iBAAAA,GAAoB1B,MAAOgB,CAAAA,QAAQ,CAACI,SAAAA,CAAAA;YAE1C,OAAO,OAAOO,QAAaC,IAAY,GAAA,EAAE,EAAEC,OAAAA,GAAe,EAAE,GAAA;AAC1D,gBAAA,MAAM,EAAEC,IAAI,EAAE,GAAGD,QAAQE,KAAK;gBAE9B,MAAMC,eAAAA,GAAkBzB,cAAcqB,IAAM,EAAA;oBAC1Cb,WAAaW,EAAAA,iBAAAA;oBACbO,aAAe,EAAA;AACjB,iBAAA,CAAA;gBAEA,MAAMjC,MAAAA,CAAOkC,UAAU,CAACC,QAAQ,CAACC,KAAK,CAACJ,iBAAiBN,iBAAmB,EAAA;AACzEI,oBAAAA;AACF,iBAAA,CAAA;gBAEA,MAAMO,cAAAA,GAAiB,MAAMrC,MAAAA,CAAOkC,UAAU,CAACI,QAAQ,CAACF,KAAK,CAC3DJ,eAAAA,EACAN,iBACA,EAAA;AACEI,oBAAAA;AACF,iBAAA,CAAA;AAEF,gBAAA,MAAMS,mBAAmBvC,MAAOwC,CAAAA,GAAG,CAAC,cAAgBC,CAAAA,CAAAA,SAAS,CAACrB,SAAWiB,EAAAA,cAAAA,CAAAA;gBAEzE,MAAMK,kCAAAA,GACJC,YAAaC,CAAAA,kBAAkB,CAAClB,iBAAAA,CAAAA;;;AAIlC,gBAAA,MAAMmB,sBAAsB,CAACC,SAAAA,GAAAA;AAC3B,oBAAA,MAAMC,iBAAiB/C,MAAOG,CAAAA,MAAM,CAAC,SAAA,CAAA,CAAWF,OAAO,CAAC,aAAA,CAAA;oBACxD,OAAO8C,cAAAA,CAAeF,mBAAmB,CAACC,SAAAA,CAAAA;AAC5C,iBAAA;;AAGA,gBAAA,MAAME,kBACJnB,OAAQoB,CAAAA,aAAa,EAAEC,MACvBrB,IAAAA,OAAAA,CAAQoB,aAAa,EAAEE,YAAAA,IACvBN,oBAAoBhB,OAAQoB,CAAAA,aAAa,CAACE,YAAY,CAAA,GAClDtB,QAAQoB,aAAa,CAACC,MAAM,GAC5B,IAAA;gBAEN,MAAME,aAAAA,GAAgBxB,IAAKsB,CAAAA,MAAM,IAAIF,eAAAA;gBAErC,MAAMK,cAAAA,GACJX,sCAAsCU,aAClC,GAAA;oBACEE,KAAO,EAAA;AACLC,wBAAAA,WAAAA,EAAaH,kBAAkB,WAAc,GAAA;4BAAEI,QAAU,EAAA;yBAAS,GAAA;4BAAEC,KAAO,EAAA;AAAK;AAClF;AACF,iBAAA,GACA,EAAC;;gBAGP,MAAMC,4BAAAA,GACJ7B,QAAQoB,aAAa,EAAEU,wBAAwBC,SAC/C/B,IAAAA,OAAAA,CAAQoB,aAAa,EAAEE,YAAAA,IACvBN,oBAAoBhB,OAAQoB,CAAAA,aAAa,CAACE,YAAY,CAAA,GAClDtB,QAAQoB,aAAa,CAACU,mBAAmB,GACzCC,SAAAA;;AAGN,gBAAA,IAAIC,6BAAkD,EAAC;gBACvD,IAAInB,kCAAAA,IAAsCgB,iCAAiCE,SAAW,EAAA;AACpF,oBAAA,MAAME,OAAO9D,MAAO+D,CAAAA,EAAE,CAACC,QAAQ,CAACxB,GAAG,CAACpB,SAAAA,CAAAA;oBACpC,MAAM6C,SAAAA,GAAYH,KAAKG,SAAS;AAChC,oBAAA,MAAMC,cAAiBJ,GAAAA,IAAAA,CAAKxD,UAAU,CAAC6D,UAAU;AACjD,oBAAA,MAAMC,eAAkBN,GAAAA,IAAAA,CAAKxD,UAAU,CAACiD,WAAW;AACnD,oBAAA,MAAMc,mBACJ,YAAC,IAAgBH,cAAkBA,IAAAA,cAAAA,CAAeI,UAAU,IAAK,aAAA;AACnE,oBAAA,MAAMC,oBACJ,YAAC,IAAgBH,eAAmBA,IAAAA,eAAAA,CAAgBE,UAAU,IAAK,cAAA;AAErE,oBAAA,MAAME,IAAOxE,GAAAA,MAAAA,CAAO+D,EAAE,CAACU,UAAU;AACjC,oBAAA,MAAMC,WAAWF,IAAKP,CAAAA,SAAAA,CAAAA,CACnBU,QAAQ,CAACN,gBAAAA,CAAAA,CACTO,YAAY,CAACL,iBAAAA,CAAAA;oBAEhBV,0BAA6B,GAAA;wBAC3BP,KAAO,EAAA;AACLa,4BAAAA,UAAAA,EAAYT,4BAA+B,GAAA;gCAAEmB,GAAKH,EAAAA;6BAAa,GAAA;gCAAEI,MAAQJ,EAAAA;AAAS;AACpF;AACF,qBAAA;AACF;AAEA,gBAAA,MAAMK,OAAUC,GAAAA,KAAAA,CAAMA,KAAM3B,CAAAA,cAAAA,EAAgBQ,0BAA6BtB,CAAAA,EAAAA,gBAAAA,CAAAA;;gBAGzE,MAAM0C,IAAAA,GAAO,MAAO,CAAA,UAAA;oBAClB,MAAMC,OAAAA,GAAU,MAAMlF,MAAAA,CAAO+D,EAAE,CAC5B3B,KAAK,CAACvB,cACNsE,CAAAA,CAAAA,IAAI,CAACxD,MAAAA,EAAQb,aAAeiE,EAAAA,OAAAA,CAAAA;AAC/B,oBAAA,IAAI7D,gBAAoBlB,IAAAA,MAAAA,CAAOG,MAAM,CAAC,QAAW,CAAA,EAAA;wBAC/C,MAAM,EAAEiF,YAAY,EAAE,GAAGpF,OAAOG,MAAM,CAAC,QAAUF,CAAAA,CAAAA,OAAO,CAAC,MAAA,CAAA;wBAEzD,IAAIoF,KAAAA,CAAMC,OAAO,CAACJ,OAAU,CAAA,EAAA;AAC1B,4BAAA,OAAOK,MAAMC,GAAG,CAACN,OAAS,EAAA,CAACO,OAAcL,YAAaK,CAAAA,IAAAA,CAAAA,CAAAA;AACxD;AAEA,wBAAA,IAAIP,OAAS,EAAA;AACX,4BAAA,OAAOE,YAAaF,CAAAA,OAAAA,CAAAA;AACtB;AACF;oBAEA,OAAOA,OAAAA;iBACT,GAAA;AAEA,gBAAA,MAAMQ,YAAe,GAAA;oBACnB9D,IAAMS,EAAAA,cAAAA;oBACNsD,WAAavE,EAAAA;AACf,iBAAA;;;;AAKA,gBAAA,IAAID,gBAAkB,EAAA;;oBAEpB,MAAMyE,QAAAA,GAAW,CAACC,UAAAA,IAAqB;AAAE,4BAAA,CAAC/E,gBAAgB+E;yBAAW,CAAA;AACrE,oBAAA,MAAMC,eAAe,CAACC,cAAAA,GAAAA;wBACpB,OAAO/F,MAAAA,CAAOkC,UAAU,CAACI,QAAQ,CAAC0D,MAAM,CAACD,gBAAgBhF,WAAa,EAAA;AAAEe,4BAAAA;AAAK,yBAAA,CAAA;AAC/E,qBAAA;AACA,oBAAA,MAAMmE,aAAazD,GAAI1B,CAAAA,aAAAA,CAAAA;;AAGvB,oBAAA,MAAMoF,sBAAyBX,GAAAA,KAAAA,CAAMY,IAAI,CAACP,UAAUE,YAAcG,EAAAA,UAAAA,CAAAA;AAElE,oBAAA,OAAOC,sBAAuBjB,CAAAA,IAAAA,CAAAA;AAChC;;;AAIA,gBAAA,IAAI3D,QAAU,EAAA;AACZ,oBAAA,OAAOZ,2BAA2BuE,IAAMS,EAAAA,YAAAA,CAAAA;AAC1C;;;AAIA,gBAAA,OAAOjF,iBAAiBwE,IAAMS,EAAAA,YAAAA,CAAAA;AAChC,aAAA;AACF;AACF,KAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"association.mjs","sources":["../../../../../server/src/services/builders/resolvers/association.ts"],"sourcesContent":["import { get, merge } from 'lodash/fp';\nimport { async, contentTypes, errors } from '@strapi/utils';\nimport type { Internal } from '@strapi/types';\n\nimport type { Context } from '../../types';\n\nconst { ApplicationError } = errors;\n\nexport default ({ strapi }: Context) => {\n const { service: getGraphQLService } = strapi.plugin('graphql');\n\n const { isMorphRelation, isMedia } = getGraphQLService('utils').attributes;\n const { transformArgs } = getGraphQLService('builders').utils;\n const { toEntityResponse, toEntityResponseCollection } = getGraphQLService('format').returnTypes;\n\n return {\n buildAssociationResolver({\n contentTypeUID,\n attributeName,\n }: {\n contentTypeUID: Internal.UID.ContentType;\n attributeName: string;\n }) {\n const contentType = strapi.getModel(contentTypeUID);\n const attribute: any = contentType.attributes[attributeName];\n\n if (!attribute) {\n throw new ApplicationError(\n `Failed to build an association resolver for ${contentTypeUID}::${attributeName}`\n );\n }\n\n const isMediaAttribute = isMedia(attribute);\n const isMorphAttribute = isMorphRelation(attribute);\n\n const targetUID = isMediaAttribute ? 'plugin::upload.file' : attribute.target;\n const isToMany = isMediaAttribute ? attribute.multiple : attribute.relation.endsWith('Many');\n\n const targetContentType = strapi.getModel(targetUID);\n\n return async (parent: any, args: any = {}, context: any = {}) => {\n const { auth } = context.state;\n\n const transformedArgs = transformArgs(args, {\n contentType: targetContentType,\n usePagination: true,\n });\n\n await strapi.contentAPI.validate.query(transformedArgs, targetContentType, {\n auth,\n });\n\n const sanitizedQuery = await strapi.contentAPI.sanitize.query(\n transformedArgs,\n targetContentType,\n {\n auth,\n }\n );\n const transformedQuery = strapi.get('query-params').transform(targetUID, sanitizedQuery);\n\n const isTargetDraftAndPublishContentType =\n contentTypes.hasDraftAndPublish(targetContentType);\n\n // Helper to check if a field is from built-in queries (not custom resolvers)\n // Use the precomputed lookup populated by the content-api service at schema build time.\n const isBuiltInQueryField = (fieldName: string) => {\n const graphqlService = strapi.plugin('graphql').service('content-api');\n return graphqlService.isBuiltInQueryField(fieldName);\n };\n\n // Only inherit status from built-in queries to avoid conflicts with custom resolvers\n const inheritedStatus =\n context.rootQueryArgs?.status &&\n context.rootQueryArgs?._originField &&\n isBuiltInQueryField(context.rootQueryArgs._originField)\n ? context.rootQueryArgs.status\n : null;\n\n const statusToApply = args.status || inheritedStatus;\n\n const defaultFilters =\n isTargetDraftAndPublishContentType && statusToApply\n ? {\n where: {\n publishedAt: statusToApply === 'published' ? { $notNull: true } : { $null: true },\n },\n }\n : {};\n\n // Inherit hasPublishedVersion from root query (same pattern as status)\n const inheritedHasPublishedVersion =\n context.rootQueryArgs?.hasPublishedVersion !== undefined &&\n context.rootQueryArgs?._originField &&\n isBuiltInQueryField(context.rootQueryArgs._originField)\n ? context.rootQueryArgs.hasPublishedVersion\n : undefined;\n\n // Build hasPublishedVersion condition for this relation's model\n let hasPublishedVersionFilters: Record<string, any> = {};\n if (isTargetDraftAndPublishContentType && inheritedHasPublishedVersion !== undefined) {\n const meta = strapi.db.metadata.get(targetUID);\n const tableName = meta.tableName;\n const documentIdAttr = meta.attributes.documentId;\n const publishedAtAttr = meta.attributes.publishedAt;\n const documentIdColumn =\n ('columnName' in documentIdAttr && documentIdAttr.columnName) || 'document_id';\n const publishedAtColumn =\n ('columnName' in publishedAtAttr && publishedAtAttr.columnName) || 'published_at';\n\n const knex = strapi.db.connection;\n const subquery = knex(tableName)\n .distinct(documentIdColumn)\n .whereNotNull(publishedAtColumn);\n\n hasPublishedVersionFilters = {\n where: {\n documentId: inheritedHasPublishedVersion ? { $in: subquery } : { $notIn: subquery },\n },\n };\n }\n\n const dbQuery = merge(merge(defaultFilters, hasPublishedVersionFilters), transformedQuery);\n\n // Sign media URLs if upload plugin is available and using private provider\n const data = await (async () => {\n const rawData = await strapi.db\n .query(contentTypeUID)\n .load(parent, attributeName, dbQuery);\n if (isMediaAttribute && strapi.plugin('upload')) {\n const { signFileUrls } = strapi.plugin('upload').service('file');\n\n if (Array.isArray(rawData)) {\n return async.map(rawData, (item: any) => signFileUrls(item));\n }\n\n if (rawData) {\n return signFileUrls(rawData);\n }\n }\n\n return rawData;\n })();\n\n const sanitizeInfo = {\n args: sanitizedQuery,\n resourceUID: targetUID,\n };\n\n // If this a polymorphic association, it sanitizes & returns the raw data\n // Note: The value needs to be wrapped in a fake object that represents its parent\n // so that the sanitize util can work properly.\n if (isMorphAttribute) {\n // Helpers used for the data cleanup\n const wrapData = (dataToWrap: any) => ({ [attributeName]: dataToWrap });\n const sanitizeData = (dataToSanitize: any) => {\n return strapi.contentAPI.sanitize.output(dataToSanitize, contentType, { auth });\n };\n const unwrapData = get(attributeName);\n\n // Sanitizer definition\n const sanitizeMorphAttribute = async.pipe(wrapData, sanitizeData, unwrapData);\n\n return sanitizeMorphAttribute(data);\n }\n\n // If this is a to-many relation, it returns an object that\n // matches what the entity-response-collection's resolvers expect\n if (isToMany) {\n return toEntityResponseCollection(data, sanitizeInfo);\n }\n\n // Else, it returns an object that matches\n // what the entity-response's resolvers expect\n return toEntityResponse(data, sanitizeInfo);\n };\n },\n };\n};\n"],"names":["ApplicationError","errors","strapi","service","getGraphQLService","plugin","isMorphRelation","isMedia","attributes","transformArgs","utils","toEntityResponse","toEntityResponseCollection","returnTypes","buildAssociationResolver","contentTypeUID","attributeName","contentType","getModel","attribute","isMediaAttribute","isMorphAttribute","targetUID","target","isToMany","multiple","relation","endsWith","targetContentType","parent","args","context","auth","state","transformedArgs","usePagination","contentAPI","validate","query","sanitizedQuery","sanitize","transformedQuery","get","transform","isTargetDraftAndPublishContentType","contentTypes","hasDraftAndPublish","isBuiltInQueryField","fieldName","graphqlService","inheritedStatus","rootQueryArgs","status","_originField","statusToApply","defaultFilters","where","publishedAt","$notNull","$null","inheritedHasPublishedVersion","hasPublishedVersion","undefined","hasPublishedVersionFilters","meta","db","metadata","tableName","documentIdAttr","documentId","publishedAtAttr","documentIdColumn","columnName","publishedAtColumn","knex","connection","subquery","distinct","whereNotNull","$in","$notIn","dbQuery","merge","data","rawData","load","signFileUrls","Array","isArray","async","map","item","sanitizeInfo","resourceUID","wrapData","dataToWrap","sanitizeData","dataToSanitize","output","unwrapData","sanitizeMorphAttribute","pipe"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sources":["../../../../../server/src/services/builders/resolvers/component.ts"],"sourcesContent":["import type { Internal, Schema } from '@strapi/types';\n\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => ({\n buildComponentResolver({\n contentTypeUID,\n attributeName,\n }: {\n contentTypeUID: Internal.UID.ContentType;\n attributeName: string;\n }) {\n const { transformArgs } = strapi.plugin('graphql').service('builders').utils;\n\n return async (parent: any, args: any, ctx: any) => {\n const contentType = strapi.getModel(contentTypeUID);\n\n const { component: componentName } = contentType.attributes[\n attributeName\n ] as Schema.Attribute.Component;\n\n const component = strapi.getModel(componentName);\n\n const transformedArgs = transformArgs(args, { contentType: component, usePagination: true });\n await strapi.contentAPI.validate.query(transformedArgs, component, {\n auth: ctx?.state?.auth,\n });\n\n const sanitizedQuery = await strapi.contentAPI.sanitize.query(transformedArgs, component, {\n auth: ctx?.state?.auth,\n });\n\n const dbQuery = strapi.get('query-params').transform(component.uid, sanitizedQuery);\n\n return strapi.db?.query(contentTypeUID).load(parent, attributeName, dbQuery);\n };\n },\n});\n"],"names":["strapi","buildComponentResolver","contentTypeUID","attributeName","transformArgs","plugin","service","utils","parent","args","ctx","contentType","getModel","component","componentName","attributes","transformedArgs","usePagination","contentAPI","validate","query","auth","state","sanitizedQuery","sanitize","dbQuery","get","transform","uid","db","load"],"mappings":";;AAIA,yBAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,IAAM;AACvCC,QAAAA,sBAAAA,CAAAA,CAAuB,EACrBC,cAAc,EACdC,aAAa,EAId,EAAA;YACC,MAAM,EAAEC,aAAa,EAAE,GAAGJ,MAAAA,CAAOK,MAAM,CAAC,SAAWC,CAAAA,CAAAA,OAAO,CAAC,UAAA,CAAA,CAAYC,KAAK;YAE5E,OAAO,OAAOC,QAAaC,IAAWC,EAAAA,GAAAA,GAAAA;gBACpC,MAAMC,WAAAA,GAAcX,MAAOY,CAAAA,QAAQ,CAACV,cAAAA,CAAAA;gBAEpC,MAAM,EAAEW,WAAWC,aAAa,EAAE,GAAGH,WAAYI,CAAAA,UAAU,CACzDZ,aACD,CAAA;gBAED,MAAMU,SAAAA,GAAYb,MAAOY,CAAAA,QAAQ,CAACE,aAAAA,CAAAA;gBAElC,MAAME,eAAAA,GAAkBZ,cAAcK,IAAM,EAAA;oBAAEE,WAAaE,EAAAA,SAAAA;oBAAWI,aAAe,EAAA;AAAK,iBAAA,CAAA;gBAC1F,MAAMjB,MAAAA,CAAOkB,UAAU,CAACC,QAAQ,CAACC,KAAK,CAACJ,iBAAiBH,SAAW,EAAA;AACjEQ,oBAAAA,IAAAA,EAAMX,KAAKY,KAAOD,EAAAA;AACpB,iBAAA,CAAA;gBAEA,MAAME,cAAAA,GAAiB,MAAMvB,MAAAA,CAAOkB,UAAU,CAACM,QAAQ,CAACJ,KAAK,CAACJ,eAAAA,EAAiBH,SAAW,EAAA;AACxFQ,oBAAAA,IAAAA,EAAMX,KAAKY,KAAOD,EAAAA;AACpB,iBAAA,CAAA;gBAEA,MAAMI,OAAAA,GAAUzB,OAAO0B,GAAG,CAAC,gBAAgBC,SAAS,CAACd,SAAUe,CAAAA,GAAG,EAAEL,cAAAA,CAAAA;AAEpE,gBAAA,OAAOvB,OAAO6B,EAAE,EAAET,MAAMlB,cAAgB4B,CAAAA,CAAAA,IAAAA,CAAKtB,QAAQL,aAAesB,EAAAA,OAAAA,CAAAA;AACtE,aAAA;AACF;AACF,KAAA,CAAC;;;;"}
1
+ {"version":3,"file":"component.js","sources":["../../../../../server/src/services/builders/resolvers/component.ts"],"sourcesContent":["import type { Internal, Schema } from '@strapi/types';\n\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => ({\n buildComponentResolver({\n contentTypeUID,\n attributeName,\n }: {\n contentTypeUID: Internal.UID.ContentType;\n attributeName: string;\n }) {\n const { transformArgs } = strapi.plugin('graphql').service('builders').utils;\n\n return async (parent: any, args: any, ctx: any) => {\n const contentType = strapi.getModel(contentTypeUID);\n\n const { component: componentName } = contentType.attributes[\n attributeName\n ] as Schema.Attribute.Component;\n\n const component = strapi.getModel(componentName);\n\n const transformedArgs = transformArgs(args, { contentType: component, usePagination: true });\n await strapi.contentAPI.validate.query(transformedArgs, component, {\n auth: ctx?.state?.auth,\n });\n\n const sanitizedQuery = await strapi.contentAPI.sanitize.query(transformedArgs, component, {\n auth: ctx?.state?.auth,\n });\n\n const dbQuery = strapi.get('query-params').transform(component.uid, sanitizedQuery);\n\n return strapi.db?.query(contentTypeUID).load(parent, attributeName, dbQuery);\n };\n },\n});\n"],"names":["strapi","buildComponentResolver","contentTypeUID","attributeName","transformArgs","plugin","service","utils","parent","args","ctx","contentType","getModel","component","componentName","attributes","transformedArgs","usePagination","contentAPI","validate","query","auth","state","sanitizedQuery","sanitize","dbQuery","get","transform","uid","db","load"],"mappings":";;AAIA,yBAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,IAAM;AACvCC,QAAAA,sBAAAA,CAAAA,CAAuB,EACrBC,cAAc,EACdC,aAAa,EAId,EAAA;YACC,MAAM,EAAEC,aAAa,EAAE,GAAGJ,MAAAA,CAAOK,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,UAAA,CAAA,CAAYC,KAAK;YAE5E,OAAO,OAAOC,QAAaC,IAAAA,EAAWC,GAAAA,GAAAA;gBACpC,MAAMC,WAAAA,GAAcX,MAAAA,CAAOY,QAAQ,CAACV,cAAAA,CAAAA;gBAEpC,MAAM,EAAEW,WAAWC,aAAa,EAAE,GAAGH,WAAAA,CAAYI,UAAU,CACzDZ,aAAAA,CACD;gBAED,MAAMU,SAAAA,GAAYb,MAAAA,CAAOY,QAAQ,CAACE,aAAAA,CAAAA;gBAElC,MAAME,eAAAA,GAAkBZ,cAAcK,IAAAA,EAAM;oBAAEE,WAAAA,EAAaE,SAAAA;oBAAWI,aAAAA,EAAe;AAAK,iBAAA,CAAA;gBAC1F,MAAMjB,MAAAA,CAAOkB,UAAU,CAACC,QAAQ,CAACC,KAAK,CAACJ,iBAAiBH,SAAAA,EAAW;AACjEQ,oBAAAA,IAAAA,EAAMX,KAAKY,KAAAA,EAAOD;AACpB,iBAAA,CAAA;gBAEA,MAAME,cAAAA,GAAiB,MAAMvB,MAAAA,CAAOkB,UAAU,CAACM,QAAQ,CAACJ,KAAK,CAACJ,eAAAA,EAAiBH,SAAAA,EAAW;AACxFQ,oBAAAA,IAAAA,EAAMX,KAAKY,KAAAA,EAAOD;AACpB,iBAAA,CAAA;gBAEA,MAAMI,OAAAA,GAAUzB,OAAO0B,GAAG,CAAC,gBAAgBC,SAAS,CAACd,SAAAA,CAAUe,GAAG,EAAEL,cAAAA,CAAAA;AAEpE,gBAAA,OAAOvB,OAAO6B,EAAE,EAAET,MAAMlB,cAAAA,CAAAA,CAAgB4B,IAAAA,CAAKtB,QAAQL,aAAAA,EAAesB,OAAAA,CAAAA;AACtE,YAAA,CAAA;AACF,QAAA;AACF,KAAA,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"component.mjs","sources":["../../../../../server/src/services/builders/resolvers/component.ts"],"sourcesContent":["import type { Internal, Schema } from '@strapi/types';\n\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => ({\n buildComponentResolver({\n contentTypeUID,\n attributeName,\n }: {\n contentTypeUID: Internal.UID.ContentType;\n attributeName: string;\n }) {\n const { transformArgs } = strapi.plugin('graphql').service('builders').utils;\n\n return async (parent: any, args: any, ctx: any) => {\n const contentType = strapi.getModel(contentTypeUID);\n\n const { component: componentName } = contentType.attributes[\n attributeName\n ] as Schema.Attribute.Component;\n\n const component = strapi.getModel(componentName);\n\n const transformedArgs = transformArgs(args, { contentType: component, usePagination: true });\n await strapi.contentAPI.validate.query(transformedArgs, component, {\n auth: ctx?.state?.auth,\n });\n\n const sanitizedQuery = await strapi.contentAPI.sanitize.query(transformedArgs, component, {\n auth: ctx?.state?.auth,\n });\n\n const dbQuery = strapi.get('query-params').transform(component.uid, sanitizedQuery);\n\n return strapi.db?.query(contentTypeUID).load(parent, attributeName, dbQuery);\n };\n },\n});\n"],"names":["strapi","buildComponentResolver","contentTypeUID","attributeName","transformArgs","plugin","service","utils","parent","args","ctx","contentType","getModel","component","componentName","attributes","transformedArgs","usePagination","contentAPI","validate","query","auth","state","sanitizedQuery","sanitize","dbQuery","get","transform","uid","db","load"],"mappings":"AAIA,yBAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,IAAM;AACvCC,QAAAA,sBAAAA,CAAAA,CAAuB,EACrBC,cAAc,EACdC,aAAa,EAId,EAAA;YACC,MAAM,EAAEC,aAAa,EAAE,GAAGJ,MAAAA,CAAOK,MAAM,CAAC,SAAWC,CAAAA,CAAAA,OAAO,CAAC,UAAA,CAAA,CAAYC,KAAK;YAE5E,OAAO,OAAOC,QAAaC,IAAWC,EAAAA,GAAAA,GAAAA;gBACpC,MAAMC,WAAAA,GAAcX,MAAOY,CAAAA,QAAQ,CAACV,cAAAA,CAAAA;gBAEpC,MAAM,EAAEW,WAAWC,aAAa,EAAE,GAAGH,WAAYI,CAAAA,UAAU,CACzDZ,aACD,CAAA;gBAED,MAAMU,SAAAA,GAAYb,MAAOY,CAAAA,QAAQ,CAACE,aAAAA,CAAAA;gBAElC,MAAME,eAAAA,GAAkBZ,cAAcK,IAAM,EAAA;oBAAEE,WAAaE,EAAAA,SAAAA;oBAAWI,aAAe,EAAA;AAAK,iBAAA,CAAA;gBAC1F,MAAMjB,MAAAA,CAAOkB,UAAU,CAACC,QAAQ,CAACC,KAAK,CAACJ,iBAAiBH,SAAW,EAAA;AACjEQ,oBAAAA,IAAAA,EAAMX,KAAKY,KAAOD,EAAAA;AACpB,iBAAA,CAAA;gBAEA,MAAME,cAAAA,GAAiB,MAAMvB,MAAAA,CAAOkB,UAAU,CAACM,QAAQ,CAACJ,KAAK,CAACJ,eAAAA,EAAiBH,SAAW,EAAA;AACxFQ,oBAAAA,IAAAA,EAAMX,KAAKY,KAAOD,EAAAA;AACpB,iBAAA,CAAA;gBAEA,MAAMI,OAAAA,GAAUzB,OAAO0B,GAAG,CAAC,gBAAgBC,SAAS,CAACd,SAAUe,CAAAA,GAAG,EAAEL,cAAAA,CAAAA;AAEpE,gBAAA,OAAOvB,OAAO6B,EAAE,EAAET,MAAMlB,cAAgB4B,CAAAA,CAAAA,IAAAA,CAAKtB,QAAQL,aAAesB,EAAAA,OAAAA,CAAAA;AACtE,aAAA;AACF;AACF,KAAA,CAAC;;;;"}
1
+ {"version":3,"file":"component.mjs","sources":["../../../../../server/src/services/builders/resolvers/component.ts"],"sourcesContent":["import type { Internal, Schema } from '@strapi/types';\n\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => ({\n buildComponentResolver({\n contentTypeUID,\n attributeName,\n }: {\n contentTypeUID: Internal.UID.ContentType;\n attributeName: string;\n }) {\n const { transformArgs } = strapi.plugin('graphql').service('builders').utils;\n\n return async (parent: any, args: any, ctx: any) => {\n const contentType = strapi.getModel(contentTypeUID);\n\n const { component: componentName } = contentType.attributes[\n attributeName\n ] as Schema.Attribute.Component;\n\n const component = strapi.getModel(componentName);\n\n const transformedArgs = transformArgs(args, { contentType: component, usePagination: true });\n await strapi.contentAPI.validate.query(transformedArgs, component, {\n auth: ctx?.state?.auth,\n });\n\n const sanitizedQuery = await strapi.contentAPI.sanitize.query(transformedArgs, component, {\n auth: ctx?.state?.auth,\n });\n\n const dbQuery = strapi.get('query-params').transform(component.uid, sanitizedQuery);\n\n return strapi.db?.query(contentTypeUID).load(parent, attributeName, dbQuery);\n };\n },\n});\n"],"names":["strapi","buildComponentResolver","contentTypeUID","attributeName","transformArgs","plugin","service","utils","parent","args","ctx","contentType","getModel","component","componentName","attributes","transformedArgs","usePagination","contentAPI","validate","query","auth","state","sanitizedQuery","sanitize","dbQuery","get","transform","uid","db","load"],"mappings":"AAIA,yBAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,IAAM;AACvCC,QAAAA,sBAAAA,CAAAA,CAAuB,EACrBC,cAAc,EACdC,aAAa,EAId,EAAA;YACC,MAAM,EAAEC,aAAa,EAAE,GAAGJ,MAAAA,CAAOK,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,UAAA,CAAA,CAAYC,KAAK;YAE5E,OAAO,OAAOC,QAAaC,IAAAA,EAAWC,GAAAA,GAAAA;gBACpC,MAAMC,WAAAA,GAAcX,MAAAA,CAAOY,QAAQ,CAACV,cAAAA,CAAAA;gBAEpC,MAAM,EAAEW,WAAWC,aAAa,EAAE,GAAGH,WAAAA,CAAYI,UAAU,CACzDZ,aAAAA,CACD;gBAED,MAAMU,SAAAA,GAAYb,MAAAA,CAAOY,QAAQ,CAACE,aAAAA,CAAAA;gBAElC,MAAME,eAAAA,GAAkBZ,cAAcK,IAAAA,EAAM;oBAAEE,WAAAA,EAAaE,SAAAA;oBAAWI,aAAAA,EAAe;AAAK,iBAAA,CAAA;gBAC1F,MAAMjB,MAAAA,CAAOkB,UAAU,CAACC,QAAQ,CAACC,KAAK,CAACJ,iBAAiBH,SAAAA,EAAW;AACjEQ,oBAAAA,IAAAA,EAAMX,KAAKY,KAAAA,EAAOD;AACpB,iBAAA,CAAA;gBAEA,MAAME,cAAAA,GAAiB,MAAMvB,MAAAA,CAAOkB,UAAU,CAACM,QAAQ,CAACJ,KAAK,CAACJ,eAAAA,EAAiBH,SAAAA,EAAW;AACxFQ,oBAAAA,IAAAA,EAAMX,KAAKY,KAAAA,EAAOD;AACpB,iBAAA,CAAA;gBAEA,MAAMI,OAAAA,GAAUzB,OAAO0B,GAAG,CAAC,gBAAgBC,SAAS,CAACd,SAAAA,CAAUe,GAAG,EAAEL,cAAAA,CAAAA;AAEpE,gBAAA,OAAOvB,OAAO6B,EAAE,EAAET,MAAMlB,cAAAA,CAAAA,CAAgB4B,IAAAA,CAAKtB,QAAQL,aAAAA,EAAesB,OAAAA,CAAAA;AACtE,YAAA,CAAA;AACF,QAAA;AACF,KAAA,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-zone.js","sources":["../../../../../server/src/services/builders/resolvers/dynamic-zone.ts"],"sourcesContent":["import type { Internal } from '@strapi/types';\n\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => ({\n buildDynamicZoneResolver({\n contentTypeUID,\n attributeName,\n }: {\n contentTypeUID: Internal.UID.ContentType;\n attributeName: string;\n }) {\n return async (parent: any) => {\n return strapi.db?.query(contentTypeUID).load(parent, attributeName);\n };\n },\n});\n"],"names":["strapi","buildDynamicZoneResolver","contentTypeUID","attributeName","parent","db","query","load"],"mappings":";;AAIA,2BAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,IAAM;AACvCC,QAAAA,wBAAAA,CAAAA,CAAyB,EACvBC,cAAc,EACdC,aAAa,EAId,EAAA;AACC,YAAA,OAAO,OAAOC,MAAAA,GAAAA;AACZ,gBAAA,OAAOJ,OAAOK,EAAE,EAAEC,KAAMJ,CAAAA,cAAAA,CAAAA,CAAgBK,KAAKH,MAAQD,EAAAA,aAAAA,CAAAA;AACvD,aAAA;AACF;AACF,KAAA,CAAC;;;;"}
1
+ {"version":3,"file":"dynamic-zone.js","sources":["../../../../../server/src/services/builders/resolvers/dynamic-zone.ts"],"sourcesContent":["import type { Internal } from '@strapi/types';\n\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => ({\n buildDynamicZoneResolver({\n contentTypeUID,\n attributeName,\n }: {\n contentTypeUID: Internal.UID.ContentType;\n attributeName: string;\n }) {\n return async (parent: any) => {\n return strapi.db?.query(contentTypeUID).load(parent, attributeName);\n };\n },\n});\n"],"names":["strapi","buildDynamicZoneResolver","contentTypeUID","attributeName","parent","db","query","load"],"mappings":";;AAIA,2BAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,IAAM;AACvCC,QAAAA,wBAAAA,CAAAA,CAAyB,EACvBC,cAAc,EACdC,aAAa,EAId,EAAA;AACC,YAAA,OAAO,OAAOC,MAAAA,GAAAA;AACZ,gBAAA,OAAOJ,OAAOK,EAAE,EAAEC,KAAAA,CAAMJ,cAAAA,CAAAA,CAAgBK,KAAKH,MAAAA,EAAQD,aAAAA,CAAAA;AACvD,YAAA,CAAA;AACF,QAAA;AACF,KAAA,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-zone.mjs","sources":["../../../../../server/src/services/builders/resolvers/dynamic-zone.ts"],"sourcesContent":["import type { Internal } from '@strapi/types';\n\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => ({\n buildDynamicZoneResolver({\n contentTypeUID,\n attributeName,\n }: {\n contentTypeUID: Internal.UID.ContentType;\n attributeName: string;\n }) {\n return async (parent: any) => {\n return strapi.db?.query(contentTypeUID).load(parent, attributeName);\n };\n },\n});\n"],"names":["strapi","buildDynamicZoneResolver","contentTypeUID","attributeName","parent","db","query","load"],"mappings":"AAIA,2BAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,IAAM;AACvCC,QAAAA,wBAAAA,CAAAA,CAAyB,EACvBC,cAAc,EACdC,aAAa,EAId,EAAA;AACC,YAAA,OAAO,OAAOC,MAAAA,GAAAA;AACZ,gBAAA,OAAOJ,OAAOK,EAAE,EAAEC,KAAMJ,CAAAA,cAAAA,CAAAA,CAAgBK,KAAKH,MAAQD,EAAAA,aAAAA,CAAAA;AACvD,aAAA;AACF;AACF,KAAA,CAAC;;;;"}
1
+ {"version":3,"file":"dynamic-zone.mjs","sources":["../../../../../server/src/services/builders/resolvers/dynamic-zone.ts"],"sourcesContent":["import type { Internal } from '@strapi/types';\n\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => ({\n buildDynamicZoneResolver({\n contentTypeUID,\n attributeName,\n }: {\n contentTypeUID: Internal.UID.ContentType;\n attributeName: string;\n }) {\n return async (parent: any) => {\n return strapi.db?.query(contentTypeUID).load(parent, attributeName);\n };\n },\n});\n"],"names":["strapi","buildDynamicZoneResolver","contentTypeUID","attributeName","parent","db","query","load"],"mappings":"AAIA,2BAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,IAAM;AACvCC,QAAAA,wBAAAA,CAAAA,CAAyB,EACvBC,cAAc,EACdC,aAAa,EAId,EAAA;AACC,YAAA,OAAO,OAAOC,MAAAA,GAAAA;AACZ,gBAAA,OAAOJ,OAAOK,EAAE,EAAEC,KAAAA,CAAMJ,cAAAA,CAAAA,CAAgBK,KAAKH,MAAAA,EAAQD,aAAAA,CAAAA;AACvD,YAAA,CAAA;AACF,QAAA;AACF,KAAA,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../server/src/services/builders/resolvers/index.ts"],"sourcesContent":["import associationResolvers from './association';\nimport queriesResolvers from './query';\nimport componentResolvers from './component';\nimport dynamicZoneResolvers from './dynamic-zone';\nimport paginationResolvers from './pagination';\n\nimport type { Context } from '../../types';\n\nexport default (context: Context) => ({\n // Generics\n ...associationResolvers(context),\n\n // Builders\n ...queriesResolvers(context),\n ...componentResolvers(context),\n ...dynamicZoneResolvers(context),\n ...paginationResolvers(context),\n});\n"],"names":["context","associationResolvers","queriesResolvers","componentResolvers","dynamicZoneResolvers","paginationResolvers"],"mappings":";;;;;;;;AAQA,gBAAe,CAAA,CAACA,OAAAA,IAAsB;;AAEpC,QAAA,GAAGC,YAAqBD,OAAQ,CAAA;;AAGhC,QAAA,GAAGE,MAAiBF,OAAQ,CAAA;AAC5B,QAAA,GAAGG,UAAmBH,OAAQ,CAAA;AAC9B,QAAA,GAAGI,YAAqBJ,OAAQ,CAAA;AAChC,QAAA,GAAGK,WAAoBL,OAAQ;AACjC,KAAA,CAAC;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../server/src/services/builders/resolvers/index.ts"],"sourcesContent":["import associationResolvers from './association';\nimport queriesResolvers from './query';\nimport componentResolvers from './component';\nimport dynamicZoneResolvers from './dynamic-zone';\nimport paginationResolvers from './pagination';\n\nimport type { Context } from '../../types';\n\nexport default (context: Context) => ({\n // Generics\n ...associationResolvers(context),\n\n // Builders\n ...queriesResolvers(context),\n ...componentResolvers(context),\n ...dynamicZoneResolvers(context),\n ...paginationResolvers(context),\n});\n"],"names":["context","associationResolvers","queriesResolvers","componentResolvers","dynamicZoneResolvers","paginationResolvers"],"mappings":";;;;;;;;AAQA,gBAAe,CAAA,CAACA,OAAAA,IAAsB;;AAEpC,QAAA,GAAGC,YAAqBD,OAAAA,CAAQ;;AAGhC,QAAA,GAAGE,MAAiBF,OAAAA,CAAQ;AAC5B,QAAA,GAAGG,UAAmBH,OAAAA,CAAQ;AAC9B,QAAA,GAAGI,YAAqBJ,OAAAA,CAAQ;AAChC,QAAA,GAAGK,WAAoBL,OAAAA;AACzB,KAAA,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../server/src/services/builders/resolvers/index.ts"],"sourcesContent":["import associationResolvers from './association';\nimport queriesResolvers from './query';\nimport componentResolvers from './component';\nimport dynamicZoneResolvers from './dynamic-zone';\nimport paginationResolvers from './pagination';\n\nimport type { Context } from '../../types';\n\nexport default (context: Context) => ({\n // Generics\n ...associationResolvers(context),\n\n // Builders\n ...queriesResolvers(context),\n ...componentResolvers(context),\n ...dynamicZoneResolvers(context),\n ...paginationResolvers(context),\n});\n"],"names":["context","associationResolvers","queriesResolvers","componentResolvers","dynamicZoneResolvers","paginationResolvers"],"mappings":";;;;;;AAQA,gBAAe,CAAA,CAACA,OAAAA,IAAsB;;AAEpC,QAAA,GAAGC,qBAAqBD,OAAQ,CAAA;;AAGhC,QAAA,GAAGE,iBAAiBF,OAAQ,CAAA;AAC5B,QAAA,GAAGG,mBAAmBH,OAAQ,CAAA;AAC9B,QAAA,GAAGI,qBAAqBJ,OAAQ,CAAA;AAChC,QAAA,GAAGK,oBAAoBL,OAAQ;AACjC,KAAA,CAAC;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../server/src/services/builders/resolvers/index.ts"],"sourcesContent":["import associationResolvers from './association';\nimport queriesResolvers from './query';\nimport componentResolvers from './component';\nimport dynamicZoneResolvers from './dynamic-zone';\nimport paginationResolvers from './pagination';\n\nimport type { Context } from '../../types';\n\nexport default (context: Context) => ({\n // Generics\n ...associationResolvers(context),\n\n // Builders\n ...queriesResolvers(context),\n ...componentResolvers(context),\n ...dynamicZoneResolvers(context),\n ...paginationResolvers(context),\n});\n"],"names":["context","associationResolvers","queriesResolvers","componentResolvers","dynamicZoneResolvers","paginationResolvers"],"mappings":";;;;;;AAQA,gBAAe,CAAA,CAACA,OAAAA,IAAsB;;AAEpC,QAAA,GAAGC,qBAAqBD,OAAAA,CAAQ;;AAGhC,QAAA,GAAGE,iBAAiBF,OAAAA,CAAQ;AAC5B,QAAA,GAAGG,mBAAmBH,OAAAA,CAAQ;AAC9B,QAAA,GAAGI,qBAAqBJ,OAAAA,CAAQ;AAChC,QAAA,GAAGK,oBAAoBL,OAAAA;AACzB,KAAA,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.js","sources":["../../../../../server/src/services/builders/resolvers/pagination.ts"],"sourcesContent":["import type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => ({\n async resolvePagination(parent: any, _: any, ctx: any) {\n const { args, resourceUID } = parent.info;\n const { start, limit } = args;\n const safeLimit = Math.max(limit, 1);\n const contentType = strapi.getModel(resourceUID);\n\n await strapi.contentAPI.validate.query(args, contentType, {\n auth: ctx?.state?.auth,\n });\n\n const sanitizedQuery = await strapi.contentAPI.sanitize.query(args, contentType, {\n auth: ctx?.state?.auth,\n });\n\n const total = await strapi.documents!(resourceUID).count(sanitizedQuery);\n\n const pageSize = limit === -1 ? total - start : safeLimit;\n const pageCount = limit === -1 ? safeLimit : Math.ceil(total / safeLimit);\n const page = limit === -1 ? safeLimit : Math.floor(start / safeLimit) + 1;\n\n return { total, page, pageSize, pageCount };\n },\n});\n"],"names":["strapi","resolvePagination","parent","_","ctx","args","resourceUID","info","start","limit","safeLimit","Math","max","contentType","getModel","contentAPI","validate","query","auth","state","sanitizedQuery","sanitize","total","documents","count","pageSize","pageCount","ceil","page","floor"],"mappings":";;AAEA,0BAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,IAAM;AACvC,QAAA,MAAMC,iBAAkBC,CAAAA,CAAAA,MAAW,EAAEC,CAAM,EAAEC,GAAQ,EAAA;AACnD,YAAA,MAAM,EAAEC,IAAI,EAAEC,WAAW,EAAE,GAAGJ,OAAOK,IAAI;AACzC,YAAA,MAAM,EAAEC,KAAK,EAAEC,KAAK,EAAE,GAAGJ,IAAAA;AACzB,YAAA,MAAMK,SAAYC,GAAAA,IAAAA,CAAKC,GAAG,CAACH,KAAO,EAAA,CAAA,CAAA;YAClC,MAAMI,WAAAA,GAAcb,MAAOc,CAAAA,QAAQ,CAACR,WAAAA,CAAAA;YAEpC,MAAMN,MAAAA,CAAOe,UAAU,CAACC,QAAQ,CAACC,KAAK,CAACZ,MAAMQ,WAAa,EAAA;AACxDK,gBAAAA,IAAAA,EAAMd,KAAKe,KAAOD,EAAAA;AACpB,aAAA,CAAA;YAEA,MAAME,cAAAA,GAAiB,MAAMpB,MAAAA,CAAOe,UAAU,CAACM,QAAQ,CAACJ,KAAK,CAACZ,IAAAA,EAAMQ,WAAa,EAAA;AAC/EK,gBAAAA,IAAAA,EAAMd,KAAKe,KAAOD,EAAAA;AACpB,aAAA,CAAA;AAEA,YAAA,MAAMI,QAAQ,MAAMtB,MAAAA,CAAOuB,SAAS,CAAEjB,WAAAA,CAAAA,CAAakB,KAAK,CAACJ,cAAAA,CAAAA;AAEzD,YAAA,MAAMK,QAAWhB,GAAAA,KAAAA,KAAU,CAAC,CAAA,GAAIa,QAAQd,KAAQE,GAAAA,SAAAA;YAChD,MAAMgB,SAAAA,GAAYjB,UAAU,CAAC,CAAA,GAAIC,YAAYC,IAAKgB,CAAAA,IAAI,CAACL,KAAQZ,GAAAA,SAAAA,CAAAA;YAC/D,MAAMkB,IAAAA,GAAOnB,UAAU,CAAC,CAAA,GAAIC,YAAYC,IAAKkB,CAAAA,KAAK,CAACrB,KAAAA,GAAQE,SAAa,CAAA,GAAA,CAAA;YAExE,OAAO;AAAEY,gBAAAA,KAAAA;AAAOM,gBAAAA,IAAAA;AAAMH,gBAAAA,QAAAA;AAAUC,gBAAAA;AAAU,aAAA;AAC5C;AACF,KAAA,CAAC;;;;"}
1
+ {"version":3,"file":"pagination.js","sources":["../../../../../server/src/services/builders/resolvers/pagination.ts"],"sourcesContent":["import type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => ({\n async resolvePagination(parent: any, _: any, ctx: any) {\n const { args, resourceUID } = parent.info;\n const { start, limit } = args;\n const safeLimit = Math.max(limit, 1);\n const contentType = strapi.getModel(resourceUID);\n\n await strapi.contentAPI.validate.query(args, contentType, {\n auth: ctx?.state?.auth,\n });\n\n const sanitizedQuery = await strapi.contentAPI.sanitize.query(args, contentType, {\n auth: ctx?.state?.auth,\n });\n\n const total = await strapi.documents!(resourceUID).count(sanitizedQuery);\n\n const pageSize = limit === -1 ? total - start : safeLimit;\n const pageCount = limit === -1 ? safeLimit : Math.ceil(total / safeLimit);\n const page = limit === -1 ? safeLimit : Math.floor(start / safeLimit) + 1;\n\n return { total, page, pageSize, pageCount };\n },\n});\n"],"names":["strapi","resolvePagination","parent","_","ctx","args","resourceUID","info","start","limit","safeLimit","Math","max","contentType","getModel","contentAPI","validate","query","auth","state","sanitizedQuery","sanitize","total","documents","count","pageSize","pageCount","ceil","page","floor"],"mappings":";;AAEA,0BAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,IAAM;AACvC,QAAA,MAAMC,iBAAAA,CAAAA,CAAkBC,MAAW,EAAEC,CAAM,EAAEC,GAAQ,EAAA;AACnD,YAAA,MAAM,EAAEC,IAAI,EAAEC,WAAW,EAAE,GAAGJ,OAAOK,IAAI;AACzC,YAAA,MAAM,EAAEC,KAAK,EAAEC,KAAK,EAAE,GAAGJ,IAAAA;AACzB,YAAA,MAAMK,SAAAA,GAAYC,IAAAA,CAAKC,GAAG,CAACH,KAAAA,EAAO,CAAA,CAAA;YAClC,MAAMI,WAAAA,GAAcb,MAAAA,CAAOc,QAAQ,CAACR,WAAAA,CAAAA;YAEpC,MAAMN,MAAAA,CAAOe,UAAU,CAACC,QAAQ,CAACC,KAAK,CAACZ,MAAMQ,WAAAA,EAAa;AACxDK,gBAAAA,IAAAA,EAAMd,KAAKe,KAAAA,EAAOD;AACpB,aAAA,CAAA;YAEA,MAAME,cAAAA,GAAiB,MAAMpB,MAAAA,CAAOe,UAAU,CAACM,QAAQ,CAACJ,KAAK,CAACZ,IAAAA,EAAMQ,WAAAA,EAAa;AAC/EK,gBAAAA,IAAAA,EAAMd,KAAKe,KAAAA,EAAOD;AACpB,aAAA,CAAA;AAEA,YAAA,MAAMI,QAAQ,MAAMtB,MAAAA,CAAOuB,SAAS,CAAEjB,WAAAA,CAAAA,CAAakB,KAAK,CAACJ,cAAAA,CAAAA;AAEzD,YAAA,MAAMK,QAAAA,GAAWhB,KAAAA,KAAU,EAAC,GAAIa,QAAQd,KAAAA,GAAQE,SAAAA;YAChD,MAAMgB,SAAAA,GAAYjB,UAAU,EAAC,GAAIC,YAAYC,IAAAA,CAAKgB,IAAI,CAACL,KAAAA,GAAQZ,SAAAA,CAAAA;YAC/D,MAAMkB,IAAAA,GAAOnB,UAAU,EAAC,GAAIC,YAAYC,IAAAA,CAAKkB,KAAK,CAACrB,KAAAA,GAAQE,SAAAA,CAAAA,GAAa,CAAA;YAExE,OAAO;AAAEY,gBAAAA,KAAAA;AAAOM,gBAAAA,IAAAA;AAAMH,gBAAAA,QAAAA;AAAUC,gBAAAA;AAAU,aAAA;AAC5C,QAAA;AACF,KAAA,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.mjs","sources":["../../../../../server/src/services/builders/resolvers/pagination.ts"],"sourcesContent":["import type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => ({\n async resolvePagination(parent: any, _: any, ctx: any) {\n const { args, resourceUID } = parent.info;\n const { start, limit } = args;\n const safeLimit = Math.max(limit, 1);\n const contentType = strapi.getModel(resourceUID);\n\n await strapi.contentAPI.validate.query(args, contentType, {\n auth: ctx?.state?.auth,\n });\n\n const sanitizedQuery = await strapi.contentAPI.sanitize.query(args, contentType, {\n auth: ctx?.state?.auth,\n });\n\n const total = await strapi.documents!(resourceUID).count(sanitizedQuery);\n\n const pageSize = limit === -1 ? total - start : safeLimit;\n const pageCount = limit === -1 ? safeLimit : Math.ceil(total / safeLimit);\n const page = limit === -1 ? safeLimit : Math.floor(start / safeLimit) + 1;\n\n return { total, page, pageSize, pageCount };\n },\n});\n"],"names":["strapi","resolvePagination","parent","_","ctx","args","resourceUID","info","start","limit","safeLimit","Math","max","contentType","getModel","contentAPI","validate","query","auth","state","sanitizedQuery","sanitize","total","documents","count","pageSize","pageCount","ceil","page","floor"],"mappings":"AAEA,0BAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,IAAM;AACvC,QAAA,MAAMC,iBAAkBC,CAAAA,CAAAA,MAAW,EAAEC,CAAM,EAAEC,GAAQ,EAAA;AACnD,YAAA,MAAM,EAAEC,IAAI,EAAEC,WAAW,EAAE,GAAGJ,OAAOK,IAAI;AACzC,YAAA,MAAM,EAAEC,KAAK,EAAEC,KAAK,EAAE,GAAGJ,IAAAA;AACzB,YAAA,MAAMK,SAAYC,GAAAA,IAAAA,CAAKC,GAAG,CAACH,KAAO,EAAA,CAAA,CAAA;YAClC,MAAMI,WAAAA,GAAcb,MAAOc,CAAAA,QAAQ,CAACR,WAAAA,CAAAA;YAEpC,MAAMN,MAAAA,CAAOe,UAAU,CAACC,QAAQ,CAACC,KAAK,CAACZ,MAAMQ,WAAa,EAAA;AACxDK,gBAAAA,IAAAA,EAAMd,KAAKe,KAAOD,EAAAA;AACpB,aAAA,CAAA;YAEA,MAAME,cAAAA,GAAiB,MAAMpB,MAAAA,CAAOe,UAAU,CAACM,QAAQ,CAACJ,KAAK,CAACZ,IAAAA,EAAMQ,WAAa,EAAA;AAC/EK,gBAAAA,IAAAA,EAAMd,KAAKe,KAAOD,EAAAA;AACpB,aAAA,CAAA;AAEA,YAAA,MAAMI,QAAQ,MAAMtB,MAAAA,CAAOuB,SAAS,CAAEjB,WAAAA,CAAAA,CAAakB,KAAK,CAACJ,cAAAA,CAAAA;AAEzD,YAAA,MAAMK,QAAWhB,GAAAA,KAAAA,KAAU,CAAC,CAAA,GAAIa,QAAQd,KAAQE,GAAAA,SAAAA;YAChD,MAAMgB,SAAAA,GAAYjB,UAAU,CAAC,CAAA,GAAIC,YAAYC,IAAKgB,CAAAA,IAAI,CAACL,KAAQZ,GAAAA,SAAAA,CAAAA;YAC/D,MAAMkB,IAAAA,GAAOnB,UAAU,CAAC,CAAA,GAAIC,YAAYC,IAAKkB,CAAAA,KAAK,CAACrB,KAAAA,GAAQE,SAAa,CAAA,GAAA,CAAA;YAExE,OAAO;AAAEY,gBAAAA,KAAAA;AAAOM,gBAAAA,IAAAA;AAAMH,gBAAAA,QAAAA;AAAUC,gBAAAA;AAAU,aAAA;AAC5C;AACF,KAAA,CAAC;;;;"}
1
+ {"version":3,"file":"pagination.mjs","sources":["../../../../../server/src/services/builders/resolvers/pagination.ts"],"sourcesContent":["import type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => ({\n async resolvePagination(parent: any, _: any, ctx: any) {\n const { args, resourceUID } = parent.info;\n const { start, limit } = args;\n const safeLimit = Math.max(limit, 1);\n const contentType = strapi.getModel(resourceUID);\n\n await strapi.contentAPI.validate.query(args, contentType, {\n auth: ctx?.state?.auth,\n });\n\n const sanitizedQuery = await strapi.contentAPI.sanitize.query(args, contentType, {\n auth: ctx?.state?.auth,\n });\n\n const total = await strapi.documents!(resourceUID).count(sanitizedQuery);\n\n const pageSize = limit === -1 ? total - start : safeLimit;\n const pageCount = limit === -1 ? safeLimit : Math.ceil(total / safeLimit);\n const page = limit === -1 ? safeLimit : Math.floor(start / safeLimit) + 1;\n\n return { total, page, pageSize, pageCount };\n },\n});\n"],"names":["strapi","resolvePagination","parent","_","ctx","args","resourceUID","info","start","limit","safeLimit","Math","max","contentType","getModel","contentAPI","validate","query","auth","state","sanitizedQuery","sanitize","total","documents","count","pageSize","pageCount","ceil","page","floor"],"mappings":"AAEA,0BAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,IAAM;AACvC,QAAA,MAAMC,iBAAAA,CAAAA,CAAkBC,MAAW,EAAEC,CAAM,EAAEC,GAAQ,EAAA;AACnD,YAAA,MAAM,EAAEC,IAAI,EAAEC,WAAW,EAAE,GAAGJ,OAAOK,IAAI;AACzC,YAAA,MAAM,EAAEC,KAAK,EAAEC,KAAK,EAAE,GAAGJ,IAAAA;AACzB,YAAA,MAAMK,SAAAA,GAAYC,IAAAA,CAAKC,GAAG,CAACH,KAAAA,EAAO,CAAA,CAAA;YAClC,MAAMI,WAAAA,GAAcb,MAAAA,CAAOc,QAAQ,CAACR,WAAAA,CAAAA;YAEpC,MAAMN,MAAAA,CAAOe,UAAU,CAACC,QAAQ,CAACC,KAAK,CAACZ,MAAMQ,WAAAA,EAAa;AACxDK,gBAAAA,IAAAA,EAAMd,KAAKe,KAAAA,EAAOD;AACpB,aAAA,CAAA;YAEA,MAAME,cAAAA,GAAiB,MAAMpB,MAAAA,CAAOe,UAAU,CAACM,QAAQ,CAACJ,KAAK,CAACZ,IAAAA,EAAMQ,WAAAA,EAAa;AAC/EK,gBAAAA,IAAAA,EAAMd,KAAKe,KAAAA,EAAOD;AACpB,aAAA,CAAA;AAEA,YAAA,MAAMI,QAAQ,MAAMtB,MAAAA,CAAOuB,SAAS,CAAEjB,WAAAA,CAAAA,CAAakB,KAAK,CAACJ,cAAAA,CAAAA;AAEzD,YAAA,MAAMK,QAAAA,GAAWhB,KAAAA,KAAU,EAAC,GAAIa,QAAQd,KAAAA,GAAQE,SAAAA;YAChD,MAAMgB,SAAAA,GAAYjB,UAAU,EAAC,GAAIC,YAAYC,IAAAA,CAAKgB,IAAI,CAACL,KAAAA,GAAQZ,SAAAA,CAAAA;YAC/D,MAAMkB,IAAAA,GAAOnB,UAAU,EAAC,GAAIC,YAAYC,IAAAA,CAAKkB,KAAK,CAACrB,KAAAA,GAAQE,SAAAA,CAAAA,GAAa,CAAA;YAExE,OAAO;AAAEY,gBAAAA,KAAAA;AAAOM,gBAAAA,IAAAA;AAAMH,gBAAAA,QAAAA;AAAUC,gBAAAA;AAAU,aAAA;AAC5C,QAAA;AACF,KAAA,CAAC;;;;"}