@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.
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/package.json.js +1 -133
- package/dist/admin/package.json.js.map +1 -1
- package/dist/admin/package.json.mjs +2 -120
- package/dist/admin/package.json.mjs.map +1 -1
- package/dist/admin/utils/prefixPluginTranslations.js.map +1 -1
- package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -1
- package/dist/server/bootstrap.js.map +1 -1
- package/dist/server/bootstrap.mjs.map +1 -1
- package/dist/server/config/default-config.js.map +1 -1
- package/dist/server/config/default-config.mjs.map +1 -1
- package/dist/server/config/index.js.map +1 -1
- package/dist/server/config/index.mjs.map +1 -1
- package/dist/server/format-graphql-error.js.map +1 -1
- package/dist/server/format-graphql-error.mjs.map +1 -1
- package/dist/server/index.js +4 -4
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/services/builders/dynamic-zones.js.map +1 -1
- package/dist/server/services/builders/dynamic-zones.mjs.map +1 -1
- package/dist/server/services/builders/entity.js.map +1 -1
- package/dist/server/services/builders/entity.mjs.map +1 -1
- package/dist/server/services/builders/enums.js.map +1 -1
- package/dist/server/services/builders/enums.mjs.map +1 -1
- package/dist/server/services/builders/filters/content-type.js.map +1 -1
- package/dist/server/services/builders/filters/content-type.mjs.map +1 -1
- package/dist/server/services/builders/filters/index.js.map +1 -1
- package/dist/server/services/builders/filters/index.mjs.map +1 -1
- package/dist/server/services/builders/filters/operators/and.js.map +1 -1
- package/dist/server/services/builders/filters/operators/and.mjs.map +1 -1
- package/dist/server/services/builders/filters/operators/between.js.map +1 -1
- package/dist/server/services/builders/filters/operators/between.mjs.map +1 -1
- package/dist/server/services/builders/filters/operators/contains.js.map +1 -1
- package/dist/server/services/builders/filters/operators/contains.mjs.map +1 -1
- package/dist/server/services/builders/filters/operators/containsi.js.map +1 -1
- package/dist/server/services/builders/filters/operators/containsi.mjs.map +1 -1
- package/dist/server/services/builders/filters/operators/ends-with.js.map +1 -1
- package/dist/server/services/builders/filters/operators/ends-with.mjs.map +1 -1
- package/dist/server/services/builders/filters/operators/eq.js.map +1 -1
- package/dist/server/services/builders/filters/operators/eq.mjs.map +1 -1
- package/dist/server/services/builders/filters/operators/eqi.js.map +1 -1
- package/dist/server/services/builders/filters/operators/eqi.mjs.map +1 -1
- package/dist/server/services/builders/filters/operators/gt.js.map +1 -1
- package/dist/server/services/builders/filters/operators/gt.mjs.map +1 -1
- package/dist/server/services/builders/filters/operators/gte.js.map +1 -1
- package/dist/server/services/builders/filters/operators/gte.mjs.map +1 -1
- package/dist/server/services/builders/filters/operators/in.js.map +1 -1
- package/dist/server/services/builders/filters/operators/in.mjs.map +1 -1
- package/dist/server/services/builders/filters/operators/index.js.map +1 -1
- package/dist/server/services/builders/filters/operators/index.mjs +4 -4
- package/dist/server/services/builders/filters/operators/index.mjs.map +1 -1
- package/dist/server/services/builders/filters/operators/lt.js.map +1 -1
- package/dist/server/services/builders/filters/operators/lt.mjs.map +1 -1
- package/dist/server/services/builders/filters/operators/lte.js.map +1 -1
- package/dist/server/services/builders/filters/operators/lte.mjs.map +1 -1
- package/dist/server/services/builders/filters/operators/ne.js.map +1 -1
- package/dist/server/services/builders/filters/operators/ne.mjs.map +1 -1
- package/dist/server/services/builders/filters/operators/nei.js.map +1 -1
- package/dist/server/services/builders/filters/operators/nei.mjs.map +1 -1
- package/dist/server/services/builders/filters/operators/not-contains.js.map +1 -1
- package/dist/server/services/builders/filters/operators/not-contains.mjs.map +1 -1
- package/dist/server/services/builders/filters/operators/not-containsi.js.map +1 -1
- package/dist/server/services/builders/filters/operators/not-containsi.mjs.map +1 -1
- package/dist/server/services/builders/filters/operators/not-in.js.map +1 -1
- package/dist/server/services/builders/filters/operators/not-in.mjs.map +1 -1
- package/dist/server/services/builders/filters/operators/not-null.js.map +1 -1
- package/dist/server/services/builders/filters/operators/not-null.mjs.map +1 -1
- package/dist/server/services/builders/filters/operators/not.js.map +1 -1
- package/dist/server/services/builders/filters/operators/not.mjs.map +1 -1
- package/dist/server/services/builders/filters/operators/null.js.map +1 -1
- package/dist/server/services/builders/filters/operators/null.mjs.map +1 -1
- package/dist/server/services/builders/filters/operators/or.js.map +1 -1
- package/dist/server/services/builders/filters/operators/or.mjs.map +1 -1
- package/dist/server/services/builders/filters/operators/starts-with.js.map +1 -1
- package/dist/server/services/builders/filters/operators/starts-with.mjs.map +1 -1
- package/dist/server/services/builders/generic-morph.js.map +1 -1
- package/dist/server/services/builders/generic-morph.mjs.map +1 -1
- package/dist/server/services/builders/index.js.map +1 -1
- package/dist/server/services/builders/index.mjs.map +1 -1
- package/dist/server/services/builders/input.js.map +1 -1
- package/dist/server/services/builders/input.mjs.map +1 -1
- package/dist/server/services/builders/mutations/collection-type.js.map +1 -1
- package/dist/server/services/builders/mutations/collection-type.mjs.map +1 -1
- package/dist/server/services/builders/mutations/index.js.map +1 -1
- package/dist/server/services/builders/mutations/index.mjs.map +1 -1
- package/dist/server/services/builders/mutations/single-type.js.map +1 -1
- package/dist/server/services/builders/mutations/single-type.mjs.map +1 -1
- package/dist/server/services/builders/queries/collection-type.js.map +1 -1
- package/dist/server/services/builders/queries/collection-type.mjs.map +1 -1
- package/dist/server/services/builders/queries/index.js.map +1 -1
- package/dist/server/services/builders/queries/index.mjs.map +1 -1
- package/dist/server/services/builders/queries/single-type.js.map +1 -1
- package/dist/server/services/builders/queries/single-type.mjs.map +1 -1
- package/dist/server/services/builders/relation-response-collection.js.map +1 -1
- package/dist/server/services/builders/relation-response-collection.mjs.map +1 -1
- package/dist/server/services/builders/resolvers/association.js.map +1 -1
- package/dist/server/services/builders/resolvers/association.mjs +1 -1
- package/dist/server/services/builders/resolvers/association.mjs.map +1 -1
- package/dist/server/services/builders/resolvers/component.js.map +1 -1
- package/dist/server/services/builders/resolvers/component.mjs.map +1 -1
- package/dist/server/services/builders/resolvers/dynamic-zone.js.map +1 -1
- package/dist/server/services/builders/resolvers/dynamic-zone.mjs.map +1 -1
- package/dist/server/services/builders/resolvers/index.js.map +1 -1
- package/dist/server/services/builders/resolvers/index.mjs.map +1 -1
- package/dist/server/services/builders/resolvers/pagination.js.map +1 -1
- package/dist/server/services/builders/resolvers/pagination.mjs.map +1 -1
- package/dist/server/services/builders/resolvers/query.js.map +1 -1
- package/dist/server/services/builders/resolvers/query.mjs.map +1 -1
- package/dist/server/services/builders/response-collection.js.map +1 -1
- package/dist/server/services/builders/response-collection.mjs.map +1 -1
- package/dist/server/services/builders/response.js.map +1 -1
- package/dist/server/services/builders/response.mjs.map +1 -1
- package/dist/server/services/builders/type.js +1 -3
- package/dist/server/services/builders/type.js.map +1 -1
- package/dist/server/services/builders/type.mjs +1 -3
- package/dist/server/services/builders/type.mjs.map +1 -1
- package/dist/server/services/builders/utils.js.map +1 -1
- package/dist/server/services/builders/utils.mjs +2 -2
- package/dist/server/services/builders/utils.mjs.map +1 -1
- package/dist/server/services/constants.js.map +1 -1
- package/dist/server/services/constants.mjs.map +1 -1
- package/dist/server/services/content-api/index.js.map +1 -1
- package/dist/server/services/content-api/index.mjs.map +1 -1
- package/dist/server/services/content-api/policy.js.map +1 -1
- package/dist/server/services/content-api/policy.mjs +1 -1
- package/dist/server/services/content-api/policy.mjs.map +1 -1
- package/dist/server/services/content-api/register-functions/collection-type.js.map +1 -1
- package/dist/server/services/content-api/register-functions/collection-type.mjs.map +1 -1
- package/dist/server/services/content-api/register-functions/component.js.map +1 -1
- package/dist/server/services/content-api/register-functions/component.mjs.map +1 -1
- package/dist/server/services/content-api/register-functions/dynamic-zones.js.map +1 -1
- package/dist/server/services/content-api/register-functions/dynamic-zones.mjs.map +1 -1
- package/dist/server/services/content-api/register-functions/enums.js.map +1 -1
- package/dist/server/services/content-api/register-functions/enums.mjs.map +1 -1
- package/dist/server/services/content-api/register-functions/filters.js.map +1 -1
- package/dist/server/services/content-api/register-functions/filters.mjs.map +1 -1
- package/dist/server/services/content-api/register-functions/inputs.js.map +1 -1
- package/dist/server/services/content-api/register-functions/inputs.mjs.map +1 -1
- package/dist/server/services/content-api/register-functions/internals.js.map +1 -1
- package/dist/server/services/content-api/register-functions/internals.mjs.map +1 -1
- package/dist/server/services/content-api/register-functions/polymorphic.js.map +1 -1
- package/dist/server/services/content-api/register-functions/polymorphic.mjs.map +1 -1
- package/dist/server/services/content-api/register-functions/scalars.js.map +1 -1
- package/dist/server/services/content-api/register-functions/scalars.mjs.map +1 -1
- package/dist/server/services/content-api/register-functions/single-type.js.map +1 -1
- package/dist/server/services/content-api/register-functions/single-type.mjs.map +1 -1
- package/dist/server/services/content-api/wrap-resolvers.js.map +1 -1
- package/dist/server/services/content-api/wrap-resolvers.mjs.map +1 -1
- package/dist/server/services/extension/extension.js.map +1 -1
- package/dist/server/services/extension/extension.mjs.map +1 -1
- package/dist/server/services/extension/shadow-crud-manager.js.map +1 -1
- package/dist/server/services/extension/shadow-crud-manager.mjs.map +1 -1
- package/dist/server/services/format/index.js.map +1 -1
- package/dist/server/services/format/index.mjs.map +1 -1
- package/dist/server/services/format/return-types.js.map +1 -1
- package/dist/server/services/format/return-types.mjs.map +1 -1
- package/dist/server/services/index.js +8 -8
- package/dist/server/services/index.js.map +1 -1
- package/dist/server/services/index.mjs.map +1 -1
- package/dist/server/services/internals/args/index.js.map +1 -1
- package/dist/server/services/internals/args/index.mjs.map +1 -1
- package/dist/server/services/internals/args/pagination.js.map +1 -1
- package/dist/server/services/internals/args/pagination.mjs.map +1 -1
- package/dist/server/services/internals/args/publication-status.js.map +1 -1
- package/dist/server/services/internals/args/publication-status.mjs.map +1 -1
- package/dist/server/services/internals/args/sort.js.map +1 -1
- package/dist/server/services/internals/args/sort.mjs.map +1 -1
- package/dist/server/services/internals/helpers/get-enabled-scalars.js.map +1 -1
- package/dist/server/services/internals/helpers/get-enabled-scalars.mjs.map +1 -1
- package/dist/server/services/internals/helpers/index.js.map +1 -1
- package/dist/server/services/internals/helpers/index.mjs.map +1 -1
- package/dist/server/services/internals/index.js +8 -8
- package/dist/server/services/internals/index.js.map +1 -1
- package/dist/server/services/internals/index.mjs.map +1 -1
- package/dist/server/services/internals/scalars/date.js.map +1 -1
- package/dist/server/services/internals/scalars/date.mjs.map +1 -1
- package/dist/server/services/internals/scalars/index.js.map +1 -1
- package/dist/server/services/internals/scalars/index.mjs +1 -1
- package/dist/server/services/internals/scalars/index.mjs.map +1 -1
- package/dist/server/services/internals/scalars/time.js.map +1 -1
- package/dist/server/services/internals/scalars/time.mjs +1 -1
- package/dist/server/services/internals/scalars/time.mjs.map +1 -1
- package/dist/server/services/internals/types/delete-mutation-response.js.map +1 -1
- package/dist/server/services/internals/types/delete-mutation-response.mjs.map +1 -1
- package/dist/server/services/internals/types/error.js.map +1 -1
- package/dist/server/services/internals/types/error.mjs.map +1 -1
- package/dist/server/services/internals/types/filters.js.map +1 -1
- package/dist/server/services/internals/types/filters.mjs.map +1 -1
- package/dist/server/services/internals/types/index.js.map +1 -1
- package/dist/server/services/internals/types/index.mjs.map +1 -1
- package/dist/server/services/internals/types/pagination.js.map +1 -1
- package/dist/server/services/internals/types/pagination.mjs.map +1 -1
- package/dist/server/services/internals/types/publication-status.js.map +1 -1
- package/dist/server/services/internals/types/publication-status.mjs.map +1 -1
- package/dist/server/services/internals/types/response-collection-meta.js.map +1 -1
- package/dist/server/services/internals/types/response-collection-meta.mjs.map +1 -1
- package/dist/server/services/type-registry.js.map +1 -1
- package/dist/server/services/type-registry.mjs.map +1 -1
- package/dist/server/services/utils/attributes.js.map +1 -1
- package/dist/server/services/utils/attributes.mjs.map +1 -1
- package/dist/server/services/utils/index.js.map +1 -1
- package/dist/server/services/utils/index.mjs.map +1 -1
- package/dist/server/services/utils/mappers/entity-to-response-entity.js.map +1 -1
- package/dist/server/services/utils/mappers/entity-to-response-entity.mjs +5 -5
- package/dist/server/services/utils/mappers/entity-to-response-entity.mjs.map +1 -1
- package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.js.map +1 -1
- package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.mjs.map +1 -1
- package/dist/server/services/utils/mappers/graphql-scalar-to-operators.js.map +1 -1
- package/dist/server/services/utils/mappers/graphql-scalar-to-operators.mjs.map +1 -1
- package/dist/server/services/utils/mappers/index.js.map +1 -1
- package/dist/server/services/utils/mappers/index.mjs.map +1 -1
- package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.js.map +1 -1
- package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.mjs.map +1 -1
- package/dist/server/services/utils/naming.js.map +1 -1
- package/dist/server/services/utils/naming.mjs.map +1 -1
- package/dist/server/services/utils/playground.js.map +1 -1
- package/dist/server/services/utils/playground.mjs.map +1 -1
- 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":";;;AAMA,MAAM,EAAEA,aAAa,EAAE,GAAGC,MAAAA;AAE1B,uCAAe,CAAA,CAAC,EAAEC,MAAM,EAAW,GAAA;AACjC,IAAA,MAAM,EAAEC,
|
|
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":";;;;AAKA,yCAAe,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;AAC1E,IAAA,MAAM,EAAEC,0BAA0B,EAAE,GAAGN,UAAAA,CAAW,UAAUO,WAAW;IAEvE,MAAM,EACJC,mBAAmB,EACnBC,WAAW,EACXC,gBAAgB,EAChBC,0BAA0B,EAC1BC,+BAA+B,EAChC,GAAGV,MAAAA;AAEJ,IAAA,MAAMW,6BAA6B,CAACC,WAAAA,GAAAA;AAClC,QAAA,MAAMC,gBAAmB,GAAA,CAAC,MAAM,EAAEP,oBAAoBM,WAAc,CAAA,CAAA,CAAA;AACpE,QAAA,MAAME,aAAgB,GAAA,CAAC,MAAM,EAAEN,iBAAiBI,WAAc,CAAA,CAAA,CAAA;AAC9D,QAAA,MAAMG,uBAA0B,GAAA,CAAC,MAAM,EAAEN,2BAA2BG,WAAc,CAAA,CAAA,CAAA;AAElF,QAAA,MAAMI,YAAYlB,UAAW,CAAA,WAAA,CAAA;QAE7B,MAAMmB,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,CAACX,YAAYY,GAAG,CAAA,CAAEF,eAAe,CAACJ,MAAAA,CAAAA;AAC/D,SAAA;AAEA,QAAA,MAAMO,mBAAmBH,eAAgB,CAAA,SAAA,CAAA;AACzC,QAAA,MAAMI,gBAAgBJ,eAAgB,CAAA,MAAA,CAAA;AAEtC,QAAA,IAAIG,gBAAkB,EAAA;AACpBR,YAAAA,kBAAAA,CAAmBJ,gBAAkB,EAAA;gBAAEc,KAAO,EAAA;AAAC,oBAAA,CAAA,EAAGf,WAAYY,CAAAA,GAAG,CAAC,QAAQ;AAAE;AAAC,aAAA,CAAA;AAC/E;AAEA,QAAA,IAAIE,aAAe,EAAA;AACjBT,YAAAA,kBAAAA,CAAmBH,aAAe,EAAA;gBAAEa,KAAO,EAAA;AAAC,oBAAA,CAAA,EAAGf,WAAYY,CAAAA,GAAG,CAAC,KAAK;AAAE;AAAC,aAAA,CAAA;AACvEP,YAAAA,kBAAAA,CAAmBF,uBAAyB,EAAA;gBAAEY,KAAO,EAAA;AAAC,oBAAA,CAAA,EAAGf,WAAYY,CAAAA,GAAG,CAAC,KAAK;AAAE;AAAC,aAAA,CAAA;AACnF;AAEA,QAAA,OAAOI,gBAAW,CAAA;YAChBC,IAAM,EAAA,OAAA;AAENC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACV,gBAAA,IAAIN,gBAAkB,EAAA;AACpBO,oBAAAA,eAAAA,CAAgBD,CAAGnB,EAAAA,WAAAA,CAAAA;AACrB;AAEA,gBAAA,IAAIc,aAAe,EAAA;AACjBO,oBAAAA,sBAAAA,CAAuBF,CAAGnB,EAAAA,WAAAA,CAAAA;AAC1BsB,oBAAAA,YAAAA,CAAaH,CAAGnB,EAAAA,WAAAA,CAAAA;AAClB;AACF;AACF,SAAA,CAAA;AACF,KAAA;AAEA;;MAGA,MAAMoB,eAAkB,GAAA,CACtBD,CACAnB,EAAAA,WAAAA,GAAAA;AAEA,QAAA,MAAMC,mBAAmBP,mBAAoBM,CAAAA,WAAAA,CAAAA;AAC7C,QAAA,MAAMuB,WAAW5B,WAAYK,CAAAA,WAAAA,CAAAA;QAE7BmB,CAAEK,CAAAA,KAAK,CAACvB,gBAAkB,EAAA;YACxBgB,IAAMM,EAAAA,QAAAA;YAENE,UAAY,EAAA;gBACVzC,MAAQ,EAAA;AACNgB,oBAAAA;AACF;AACF,aAAA;AAEA0B,YAAAA,IAAAA,EAAMpC,mBAAmBU,WAAa,EAAA;gBAAE2B,QAAU,EAAA;AAAM,aAAA,CAAA;AAExD,YAAA,MAAMC,OAAQC,CAAAA,CAAAA,MAAM,EAAEH,IAAI,EAAEI,GAAG,EAAA;gBAC7B,MAAMC,eAAAA,GAAkB1C,cAAcqC,IAAM,EAAA;AAAE1B,oBAAAA;AAAY,iBAAA,CAAA;gBAE1D,MAAM,EAAEgC,OAAO,EAAE,GAAG9C,UAAAA,CAAW,YAC5B+C,GAAG,CAAC,aACJC,CAAAA,CAAAA,qBAAqB,CAAC;AAAElC,oBAAAA;AAAY,iBAAA,CAAA;;gBAGvC,OAAOgC,OAAAA,CAAQH,QAAQE,eAAiBD,EAAAA,GAAAA,CAAAA;AAC1C;AACF,SAAA,CAAA;AACF,KAAA;AAEA;;MAGA,MAAMR,YAAe,GAAA,CACnBH,CACAnB,EAAAA,WAAAA,GAAAA;AAEA,QAAA,MAAME,gBAAgBN,gBAAiBI,CAAAA,WAAAA,CAAAA;AACvC,QAAA,MAAMuB,WAAW5B,WAAYK,CAAAA,WAAAA,CAAAA;QAE7BmB,CAAEK,CAAAA,KAAK,CAACtB,aAAe,EAAA;AACrBe,YAAAA,IAAAA,EAAMkB,cAAQC,UAAKb,CAAAA,QAAAA,CAAAA,CAAAA;YAEnBE,UAAY,EAAA;gBACVzC,MAAQ,EAAA;AACNgB,oBAAAA;AACF;AACF,aAAA;AAEA0B,YAAAA,IAAAA,EAAMpC,kBAAmBU,CAAAA,WAAAA,CAAAA;AAEzB,YAAA,MAAM4B,OAAQC,CAAAA,CAAAA,MAAM,EAAEH,IAAI,EAAEI,GAAG,EAAA;gBAC7B,MAAMC,eAAAA,GAAkB1C,cAAcqC,IAAM,EAAA;AAAE1B,oBAAAA,WAAAA;oBAAaqC,aAAe,EAAA;AAAK,iBAAA,CAAA;gBAE/E,MAAM,EAAEC,QAAQ,EAAE,GAAGpD,UAAAA,CAAW,YAC7B+C,GAAG,CAAC,aACJC,CAAAA,CAAAA,qBAAqB,CAAC;AAAElC,oBAAAA;AAAY,iBAAA,CAAA;;gBAGvC,OAAOsC,QAAAA,CAAST,QAAQE,eAAiBD,EAAAA,GAAAA,CAAAA;AAC3C;AACF,SAAA,CAAA;AACF,KAAA;AAEA;;MAGA,MAAMT,sBAAyB,GAAA,CAC7BF,CACAnB,EAAAA,WAAAA,GAAAA;QAEA,MAAM,EAAEY,GAAG,EAAE,GAAGZ,WAAAA;AAEhB,QAAA,MAAMuC,YAAY1C,0BAA2BG,CAAAA,WAAAA,CAAAA;AAC7C,QAAA,MAAMwC,6BAA6B1C,+BAAgCE,CAAAA,WAAAA,CAAAA;QAEnEmB,CAAEK,CAAAA,KAAK,CAACe,SAAW,EAAA;YACjBtB,IAAMuB,EAAAA,0BAAAA;YAENf,UAAY,EAAA;gBACVzC,MAAQ,EAAA;AACNgB,oBAAAA;AACF;AACF,aAAA;AAEA0B,YAAAA,IAAAA,EAAMpC,kBAAmBU,CAAAA,WAAAA,CAAAA;AAEzB,YAAA,MAAM4B,OAAQC,CAAAA,CAAAA,MAAM,EAAEH,IAAI,EAAEI,GAAG,EAAA;gBAC7B,MAAMC,eAAAA,GAAkB1C,cAAcqC,IAAM,EAAA;AAAE1B,oBAAAA,WAAAA;oBAAaqC,aAAe,EAAA;AAAK,iBAAA,CAAA;gBAE/E,MAAM,EAAEC,QAAQ,EAAE,GAAGpD,UAAAA,CAAW,YAC7B+C,GAAG,CAAC,aACJC,CAAAA,CAAAA,qBAAqB,CAAC;AAAElC,oBAAAA;AAAY,iBAAA,CAAA;;AAGvC,gBAAA,MAAMyC,KAAQ,GAAA,MAAMH,QAAST,CAAAA,MAAAA,EAAQE,eAAiBD,EAAAA,GAAAA,CAAAA;AAEtD,gBAAA,OAAOtC,2BAA2BiD,KAAO,EAAA;oBAAEf,IAAMK,EAAAA,eAAAA;oBAAiBW,WAAa9B,EAAAA;AAAI,iBAAA,CAAA;AACrF;AACF,SAAA,CAAA;AACF,KAAA;IAEA,OAAO;AAAEb,QAAAA;AAA2B,KAAA;AACtC,CAAA;;;;"}
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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 +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":"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"}
|
|
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,OAAAA,EAASC,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,MAAAA,CAAOgB,QAAQ,CAACH,cAAAA,CAAAA;AACpC,YAAA,MAAMI,SAAAA,GAAiBF,WAAAA,CAAYT,UAAU,CAACQ,aAAAA,CAAc;AAE5D,YAAA,IAAI,CAACG,SAAAA,EAAW;gBACd,MAAM,IAAInB,iBACR,CAAC,4CAA4C,EAAEe,cAAAA,CAAe,EAAE,EAAEC,aAAAA,CAAAA,CAAe,CAAA;AAErF,YAAA;AAEA,YAAA,MAAMI,mBAAmBb,OAAAA,CAAQY,SAAAA,CAAAA;AACjC,YAAA,MAAME,mBAAmBf,eAAAA,CAAgBa,SAAAA,CAAAA;AAEzC,YAAA,MAAMG,SAAAA,GAAYF,gBAAAA,GAAmB,qBAAA,GAAwBD,SAAAA,CAAUI,MAAM;YAC7E,MAAMC,QAAAA,GAAWJ,mBAAmBD,SAAAA,CAAUM,QAAQ,GAAGN,SAAAA,CAAUO,QAAQ,CAACC,QAAQ,CAAC,MAAA,CAAA;YAErF,MAAMC,iBAAAA,GAAoB1B,MAAAA,CAAOgB,QAAQ,CAACI,SAAAA,CAAAA;YAE1C,OAAO,OAAOO,QAAaC,IAAAA,GAAY,EAAE,EAAEC,OAAAA,GAAe,EAAE,GAAA;AAC1D,gBAAA,MAAM,EAAEC,IAAI,EAAE,GAAGD,QAAQE,KAAK;gBAE9B,MAAMC,eAAAA,GAAkBzB,cAAcqB,IAAAA,EAAM;oBAC1Cb,WAAAA,EAAaW,iBAAAA;oBACbO,aAAAA,EAAe;AACjB,iBAAA,CAAA;gBAEA,MAAMjC,MAAAA,CAAOkC,UAAU,CAACC,QAAQ,CAACC,KAAK,CAACJ,iBAAiBN,iBAAAA,EAAmB;AACzEI,oBAAAA;AACF,iBAAA,CAAA;gBAEA,MAAMO,cAAAA,GAAiB,MAAMrC,MAAAA,CAAOkC,UAAU,CAACI,QAAQ,CAACF,KAAK,CAC3DJ,eAAAA,EACAN,iBAAAA,EACA;AACEI,oBAAAA;AACF,iBAAA,CAAA;AAEF,gBAAA,MAAMS,mBAAmBvC,MAAAA,CAAOwC,GAAG,CAAC,cAAA,CAAA,CAAgBC,SAAS,CAACrB,SAAAA,EAAWiB,cAAAA,CAAAA;gBAEzE,MAAMK,kCAAAA,GACJC,YAAAA,CAAaC,kBAAkB,CAAClB,iBAAAA,CAAAA;;;AAIlC,gBAAA,MAAMmB,sBAAsB,CAACC,SAAAA,GAAAA;AAC3B,oBAAA,MAAMC,iBAAiB/C,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA,CAAWF,OAAO,CAAC,aAAA,CAAA;oBACxD,OAAO8C,cAAAA,CAAeF,mBAAmB,CAACC,SAAAA,CAAAA;AAC5C,gBAAA,CAAA;;AAGA,gBAAA,MAAME,kBACJnB,OAAAA,CAAQoB,aAAa,EAAEC,MAAAA,IACvBrB,OAAAA,CAAQoB,aAAa,EAAEE,YAAAA,IACvBN,oBAAoBhB,OAAAA,CAAQoB,aAAa,CAACE,YAAY,CAAA,GAClDtB,QAAQoB,aAAa,CAACC,MAAM,GAC5B,IAAA;gBAEN,MAAME,aAAAA,GAAgBxB,IAAAA,CAAKsB,MAAM,IAAIF,eAAAA;gBAErC,MAAMK,cAAAA,GACJX,sCAAsCU,aAAAA,GAClC;oBACEE,KAAAA,EAAO;AACLC,wBAAAA,WAAAA,EAAaH,kBAAkB,WAAA,GAAc;4BAAEI,QAAAA,EAAU;yBAAK,GAAI;4BAAEC,KAAAA,EAAO;AAAK;AAClF;AACF,iBAAA,GACA,EAAC;;gBAGP,MAAMC,4BAAAA,GACJ7B,QAAQoB,aAAa,EAAEU,wBAAwBC,SAAAA,IAC/C/B,OAAAA,CAAQoB,aAAa,EAAEE,YAAAA,IACvBN,oBAAoBhB,OAAAA,CAAQoB,aAAa,CAACE,YAAY,CAAA,GAClDtB,QAAQoB,aAAa,CAACU,mBAAmB,GACzCC,SAAAA;;AAGN,gBAAA,IAAIC,6BAAkD,EAAC;gBACvD,IAAInB,kCAAAA,IAAsCgB,iCAAiCE,SAAAA,EAAW;AACpF,oBAAA,MAAME,OAAO9D,MAAAA,CAAO+D,EAAE,CAACC,QAAQ,CAACxB,GAAG,CAACpB,SAAAA,CAAAA;oBACpC,MAAM6C,SAAAA,GAAYH,KAAKG,SAAS;AAChC,oBAAA,MAAMC,cAAAA,GAAiBJ,IAAAA,CAAKxD,UAAU,CAAC6D,UAAU;AACjD,oBAAA,MAAMC,eAAAA,GAAkBN,IAAAA,CAAKxD,UAAU,CAACiD,WAAW;AACnD,oBAAA,MAAMc,mBACJ,YAAC,IAAgBH,cAAAA,IAAkBA,cAAAA,CAAeI,UAAU,IAAK,aAAA;AACnE,oBAAA,MAAMC,oBACJ,YAAC,IAAgBH,eAAAA,IAAmBA,eAAAA,CAAgBE,UAAU,IAAK,cAAA;AAErE,oBAAA,MAAME,IAAAA,GAAOxE,MAAAA,CAAO+D,EAAE,CAACU,UAAU;AACjC,oBAAA,MAAMC,WAAWF,IAAAA,CAAKP,SAAAA,CAAAA,CACnBU,QAAQ,CAACN,gBAAAA,CAAAA,CACTO,YAAY,CAACL,iBAAAA,CAAAA;oBAEhBV,0BAAAA,GAA6B;wBAC3BP,KAAAA,EAAO;AACLa,4BAAAA,UAAAA,EAAYT,4BAAAA,GAA+B;gCAAEmB,GAAAA,EAAKH;6BAAS,GAAI;gCAAEI,MAAAA,EAAQJ;AAAS;AACpF;AACF,qBAAA;AACF,gBAAA;AAEA,gBAAA,MAAMK,OAAAA,GAAUC,KAAAA,CAAMA,KAAAA,CAAM3B,cAAAA,EAAgBQ,0BAAAA,CAAAA,EAA6BtB,gBAAAA,CAAAA;;gBAGzE,MAAM0C,IAAAA,GAAO,MAAO,CAAA,UAAA;oBAClB,MAAMC,OAAAA,GAAU,MAAMlF,MAAAA,CAAO+D,EAAE,CAC5B3B,KAAK,CAACvB,cAAAA,CAAAA,CACNsE,IAAI,CAACxD,MAAAA,EAAQb,aAAAA,EAAeiE,OAAAA,CAAAA;AAC/B,oBAAA,IAAI7D,gBAAAA,IAAoBlB,MAAAA,CAAOG,MAAM,CAAC,QAAA,CAAA,EAAW;wBAC/C,MAAM,EAAEiF,YAAY,EAAE,GAAGpF,OAAOG,MAAM,CAAC,QAAA,CAAA,CAAUF,OAAO,CAAC,MAAA,CAAA;wBAEzD,IAAIoF,KAAAA,CAAMC,OAAO,CAACJ,OAAAA,CAAAA,EAAU;AAC1B,4BAAA,OAAOK,MAAMC,GAAG,CAACN,OAAAA,EAAS,CAACO,OAAcL,YAAAA,CAAaK,IAAAA,CAAAA,CAAAA;AACxD,wBAAA;AAEA,wBAAA,IAAIP,OAAAA,EAAS;AACX,4BAAA,OAAOE,YAAAA,CAAaF,OAAAA,CAAAA;AACtB,wBAAA;AACF,oBAAA;oBAEA,OAAOA,OAAAA;gBACT,CAAA,GAAA;AAEA,gBAAA,MAAMQ,YAAAA,GAAe;oBACnB9D,IAAAA,EAAMS,cAAAA;oBACNsD,WAAAA,EAAavE;AACf,iBAAA;;;;AAKA,gBAAA,IAAID,gBAAAA,EAAkB;;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,WAAAA,EAAa;AAAEe,4BAAAA;AAAK,yBAAA,CAAA;AAC/E,oBAAA,CAAA;AACA,oBAAA,MAAMmE,aAAazD,GAAAA,CAAI1B,aAAAA,CAAAA;;AAGvB,oBAAA,MAAMoF,sBAAAA,GAAyBX,KAAAA,CAAMY,IAAI,CAACP,UAAUE,YAAAA,EAAcG,UAAAA,CAAAA;AAElE,oBAAA,OAAOC,sBAAAA,CAAuBjB,IAAAA,CAAAA;AAChC,gBAAA;;;AAIA,gBAAA,IAAI3D,QAAAA,EAAU;AACZ,oBAAA,OAAOZ,2BAA2BuE,IAAAA,EAAMS,YAAAA,CAAAA;AAC1C,gBAAA;;;AAIA,gBAAA,OAAOjF,iBAAiBwE,IAAAA,EAAMS,YAAAA,CAAAA;AAChC,YAAA,CAAA;AACF,QAAA;AACF,KAAA;AACF,CAAA;;;;"}
|
|
@@ -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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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;;;;"}
|