@strapi/plugin-graphql 5.12.0 → 5.12.2
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 +18 -143
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +14 -141
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/package.json.js +143 -0
- package/dist/admin/package.json.js.map +1 -0
- package/dist/admin/package.json.mjs +124 -0
- package/dist/admin/package.json.mjs.map +1 -0
- package/dist/admin/pluginId.js +6 -0
- package/dist/admin/pluginId.js.map +1 -0
- package/dist/admin/pluginId.mjs +4 -0
- package/dist/admin/pluginId.mjs.map +1 -0
- package/dist/admin/{chunks/dk-D3k_Atlh.js → translations/dk.json.js} +2 -2
- package/dist/admin/translations/dk.json.js.map +1 -0
- package/dist/admin/{chunks/dk-Bji21OvY.mjs → translations/dk.json.mjs} +1 -1
- package/dist/admin/translations/dk.json.mjs.map +1 -0
- package/dist/admin/{chunks/en-DzY_FEd6.js → translations/en.json.js} +2 -2
- package/dist/admin/translations/en.json.js.map +1 -0
- package/dist/admin/{chunks/en-COko3s6d.mjs → translations/en.json.mjs} +1 -1
- package/dist/admin/translations/en.json.mjs.map +1 -0
- package/dist/admin/{chunks/es-D02rvX4A.js → translations/es.json.js} +2 -2
- package/dist/admin/translations/es.json.js.map +1 -0
- package/dist/admin/{chunks/es-BoUVfXlb.mjs → translations/es.json.mjs} +1 -1
- package/dist/admin/translations/es.json.mjs.map +1 -0
- package/dist/admin/{chunks/fr-D9dcL-gU.js → translations/fr.json.js} +2 -2
- package/dist/admin/translations/fr.json.js.map +1 -0
- package/dist/admin/{chunks/fr-DFbQQgkK.mjs → translations/fr.json.mjs} +1 -1
- package/dist/admin/translations/fr.json.mjs.map +1 -0
- package/dist/admin/{chunks/pl-DRSWvr2y.js → translations/pl.json.js} +2 -2
- package/dist/admin/translations/pl.json.js.map +1 -0
- package/dist/admin/{chunks/pl-Bih5cA3Y.mjs → translations/pl.json.mjs} +1 -1
- package/dist/admin/translations/pl.json.mjs.map +1 -0
- package/dist/admin/{chunks/ru-zDn7cu6t.js → translations/ru.json.js} +2 -2
- package/dist/admin/translations/ru.json.js.map +1 -0
- package/dist/admin/{chunks/ru-Bxi2fB6E.mjs → translations/ru.json.mjs} +1 -1
- package/dist/admin/translations/ru.json.mjs.map +1 -0
- package/dist/admin/{chunks/sv-Dq2aVH0_.js → translations/sv.json.js} +2 -2
- package/dist/admin/translations/sv.json.js.map +1 -0
- package/dist/admin/{chunks/sv-B2uIJv_a.mjs → translations/sv.json.mjs} +1 -1
- package/dist/admin/translations/sv.json.mjs.map +1 -0
- package/dist/admin/{chunks/tr-B0yEuVnS.js → translations/tr.json.js} +2 -2
- package/dist/admin/translations/tr.json.js.map +1 -0
- package/dist/admin/{chunks/tr-DwO6hyQD.mjs → translations/tr.json.mjs} +1 -1
- package/dist/admin/translations/tr.json.mjs.map +1 -0
- package/dist/admin/{chunks/uk-DJGNjXWk.js → translations/uk.json.js} +2 -2
- package/dist/admin/translations/uk.json.js.map +1 -0
- package/dist/admin/{chunks/uk-_25RY9BK.mjs → translations/uk.json.mjs} +1 -1
- package/dist/admin/translations/uk.json.mjs.map +1 -0
- package/dist/admin/{chunks/zh-Hans-DxlDvlSo.js → translations/zh-Hans.json.js} +2 -2
- package/dist/admin/translations/zh-Hans.json.js.map +1 -0
- package/dist/admin/{chunks/zh-Hans-DUab611K.mjs → translations/zh-Hans.json.mjs} +1 -1
- package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
- package/dist/admin/{chunks/zh-BkiTjJnf.js → translations/zh.json.js} +2 -2
- package/dist/admin/translations/zh.json.js.map +1 -0
- package/dist/admin/{chunks/zh-DVvz1qsT.mjs → translations/zh.json.mjs} +1 -1
- package/dist/admin/translations/zh.json.mjs.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.js +11 -0
- package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
- package/dist/server/bootstrap.js +180 -0
- package/dist/server/bootstrap.js.map +1 -0
- package/dist/server/bootstrap.mjs +177 -0
- package/dist/server/bootstrap.mjs.map +1 -0
- package/dist/server/config/default-config.js +13 -0
- package/dist/server/config/default-config.js.map +1 -0
- package/dist/server/config/default-config.mjs +11 -0
- package/dist/server/config/default-config.mjs.map +1 -0
- package/dist/server/config/index.js +10 -0
- package/dist/server/config/index.js.map +1 -0
- package/dist/server/config/index.mjs +8 -0
- package/dist/server/config/index.mjs.map +1 -0
- package/dist/server/format-graphql-error.js +60 -0
- package/dist/server/format-graphql-error.js.map +1 -0
- package/dist/server/format-graphql-error.mjs +58 -0
- package/dist/server/format-graphql-error.mjs.map +1 -0
- package/dist/server/index.js +6 -3719
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +3 -3698
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/services/builders/dynamic-zones.js +75 -0
- package/dist/server/services/builders/dynamic-zones.js.map +1 -0
- package/dist/server/services/builders/dynamic-zones.mjs +73 -0
- package/dist/server/services/builders/dynamic-zones.mjs.map +1 -0
- package/dist/server/services/builders/entity.js +38 -0
- package/dist/server/services/builders/entity.js.map +1 -0
- package/dist/server/services/builders/entity.mjs +36 -0
- package/dist/server/services/builders/entity.mjs.map +1 -0
- package/dist/server/services/builders/enums.js +24 -0
- package/dist/server/services/builders/enums.js.map +1 -0
- package/dist/server/services/builders/enums.mjs +22 -0
- package/dist/server/services/builders/enums.mjs.map +1 -0
- package/dist/server/services/builders/filters/content-type.js +94 -0
- package/dist/server/services/builders/filters/content-type.js.map +1 -0
- package/dist/server/services/builders/filters/content-type.mjs +92 -0
- package/dist/server/services/builders/filters/content-type.mjs.map +1 -0
- package/dist/server/services/builders/filters/index.js +10 -0
- package/dist/server/services/builders/filters/index.js.map +1 -0
- package/dist/server/services/builders/filters/index.mjs +8 -0
- package/dist/server/services/builders/filters/index.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/and.js +17 -0
- package/dist/server/services/builders/filters/operators/and.js.map +1 -0
- package/dist/server/services/builders/filters/operators/and.mjs +15 -0
- package/dist/server/services/builders/filters/operators/and.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/between.js +17 -0
- package/dist/server/services/builders/filters/operators/between.js.map +1 -0
- package/dist/server/services/builders/filters/operators/between.mjs +15 -0
- package/dist/server/services/builders/filters/operators/between.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/contains.js +15 -0
- package/dist/server/services/builders/filters/operators/contains.js.map +1 -0
- package/dist/server/services/builders/filters/operators/contains.mjs +13 -0
- package/dist/server/services/builders/filters/operators/contains.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/containsi.js +15 -0
- package/dist/server/services/builders/filters/operators/containsi.js.map +1 -0
- package/dist/server/services/builders/filters/operators/containsi.mjs +13 -0
- package/dist/server/services/builders/filters/operators/containsi.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/ends-with.js +15 -0
- package/dist/server/services/builders/filters/operators/ends-with.js.map +1 -0
- package/dist/server/services/builders/filters/operators/ends-with.mjs +13 -0
- package/dist/server/services/builders/filters/operators/ends-with.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/eq.js +22 -0
- package/dist/server/services/builders/filters/operators/eq.js.map +1 -0
- package/dist/server/services/builders/filters/operators/eq.mjs +20 -0
- package/dist/server/services/builders/filters/operators/eq.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/eqi.js +15 -0
- package/dist/server/services/builders/filters/operators/eqi.js.map +1 -0
- package/dist/server/services/builders/filters/operators/eqi.mjs +13 -0
- package/dist/server/services/builders/filters/operators/eqi.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/gt.js +15 -0
- package/dist/server/services/builders/filters/operators/gt.js.map +1 -0
- package/dist/server/services/builders/filters/operators/gt.mjs +13 -0
- package/dist/server/services/builders/filters/operators/gt.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/gte.js +15 -0
- package/dist/server/services/builders/filters/operators/gte.js.map +1 -0
- package/dist/server/services/builders/filters/operators/gte.mjs +13 -0
- package/dist/server/services/builders/filters/operators/gte.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/in.js +17 -0
- package/dist/server/services/builders/filters/operators/in.js.map +1 -0
- package/dist/server/services/builders/filters/operators/in.mjs +15 -0
- package/dist/server/services/builders/filters/operators/in.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/index.js +57 -0
- package/dist/server/services/builders/filters/operators/index.js.map +1 -0
- package/dist/server/services/builders/filters/operators/index.mjs +55 -0
- package/dist/server/services/builders/filters/operators/index.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/lt.js +15 -0
- package/dist/server/services/builders/filters/operators/lt.js.map +1 -0
- package/dist/server/services/builders/filters/operators/lt.mjs +13 -0
- package/dist/server/services/builders/filters/operators/lt.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/lte.js +15 -0
- package/dist/server/services/builders/filters/operators/lte.js.map +1 -0
- package/dist/server/services/builders/filters/operators/lte.mjs +13 -0
- package/dist/server/services/builders/filters/operators/lte.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/ne.js +15 -0
- package/dist/server/services/builders/filters/operators/ne.js.map +1 -0
- package/dist/server/services/builders/filters/operators/ne.mjs +13 -0
- package/dist/server/services/builders/filters/operators/ne.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/nei.js +15 -0
- package/dist/server/services/builders/filters/operators/nei.js.map +1 -0
- package/dist/server/services/builders/filters/operators/nei.mjs +13 -0
- package/dist/server/services/builders/filters/operators/nei.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/not-contains.js +15 -0
- package/dist/server/services/builders/filters/operators/not-contains.js.map +1 -0
- package/dist/server/services/builders/filters/operators/not-contains.mjs +13 -0
- package/dist/server/services/builders/filters/operators/not-contains.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/not-containsi.js +15 -0
- package/dist/server/services/builders/filters/operators/not-containsi.js.map +1 -0
- package/dist/server/services/builders/filters/operators/not-containsi.mjs +13 -0
- package/dist/server/services/builders/filters/operators/not-containsi.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/not-in.js +17 -0
- package/dist/server/services/builders/filters/operators/not-in.js.map +1 -0
- package/dist/server/services/builders/filters/operators/not-in.mjs +15 -0
- package/dist/server/services/builders/filters/operators/not-in.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/not-null.js +13 -0
- package/dist/server/services/builders/filters/operators/not-null.js.map +1 -0
- package/dist/server/services/builders/filters/operators/not-null.mjs +11 -0
- package/dist/server/services/builders/filters/operators/not-null.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/not.js +24 -0
- package/dist/server/services/builders/filters/operators/not.js.map +1 -0
- package/dist/server/services/builders/filters/operators/not.mjs +22 -0
- package/dist/server/services/builders/filters/operators/not.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/null.js +13 -0
- package/dist/server/services/builders/filters/operators/null.js.map +1 -0
- package/dist/server/services/builders/filters/operators/null.mjs +11 -0
- package/dist/server/services/builders/filters/operators/null.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/or.js +17 -0
- package/dist/server/services/builders/filters/operators/or.js.map +1 -0
- package/dist/server/services/builders/filters/operators/or.mjs +15 -0
- package/dist/server/services/builders/filters/operators/or.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/starts-with.js +15 -0
- package/dist/server/services/builders/filters/operators/starts-with.js.map +1 -0
- package/dist/server/services/builders/filters/operators/starts-with.mjs +13 -0
- package/dist/server/services/builders/filters/operators/starts-with.mjs.map +1 -0
- package/dist/server/services/builders/generic-morph.js +38 -0
- package/dist/server/services/builders/generic-morph.js.map +1 -0
- package/dist/server/services/builders/generic-morph.mjs +36 -0
- package/dist/server/services/builders/generic-morph.mjs.map +1 -0
- package/dist/server/services/builders/index.js +75 -0
- package/dist/server/services/builders/index.js.map +1 -0
- package/dist/server/services/builders/index.mjs +73 -0
- package/dist/server/services/builders/index.mjs.map +1 -0
- package/dist/server/services/builders/input.js +89 -0
- package/dist/server/services/builders/input.js.map +1 -0
- package/dist/server/services/builders/input.mjs +87 -0
- package/dist/server/services/builders/input.mjs.map +1 -0
- package/dist/server/services/builders/mutations/collection-type.js +155 -0
- package/dist/server/services/builders/mutations/collection-type.js.map +1 -0
- package/dist/server/services/builders/mutations/collection-type.mjs +153 -0
- package/dist/server/services/builders/mutations/collection-type.mjs.map +1 -0
- package/dist/server/services/builders/mutations/index.js +12 -0
- package/dist/server/services/builders/mutations/index.js.map +1 -0
- package/dist/server/services/builders/mutations/index.mjs +10 -0
- package/dist/server/services/builders/mutations/index.mjs.map +1 -0
- package/dist/server/services/builders/mutations/single-type.js +123 -0
- package/dist/server/services/builders/mutations/single-type.js.map +1 -0
- package/dist/server/services/builders/mutations/single-type.mjs +121 -0
- package/dist/server/services/builders/mutations/single-type.mjs.map +1 -0
- package/dist/server/services/builders/queries/collection-type.js +152 -0
- package/dist/server/services/builders/queries/collection-type.js.map +1 -0
- package/dist/server/services/builders/queries/collection-type.mjs +150 -0
- package/dist/server/services/builders/queries/collection-type.mjs.map +1 -0
- package/dist/server/services/builders/queries/index.js +12 -0
- package/dist/server/services/builders/queries/index.js.map +1 -0
- package/dist/server/services/builders/queries/index.mjs +10 -0
- package/dist/server/services/builders/queries/index.mjs.map +1 -0
- package/dist/server/services/builders/queries/single-type.js +70 -0
- package/dist/server/services/builders/queries/single-type.js.map +1 -0
- package/dist/server/services/builders/queries/single-type.mjs +68 -0
- package/dist/server/services/builders/queries/single-type.mjs.map +1 -0
- package/dist/server/services/builders/relation-response-collection.js +35 -0
- package/dist/server/services/builders/relation-response-collection.js.map +1 -0
- package/dist/server/services/builders/relation-response-collection.mjs +33 -0
- package/dist/server/services/builders/relation-response-collection.mjs.map +1 -0
- package/dist/server/services/builders/resolvers/association.js +74 -0
- package/dist/server/services/builders/resolvers/association.js.map +1 -0
- package/dist/server/services/builders/resolvers/association.mjs +72 -0
- package/dist/server/services/builders/resolvers/association.mjs.map +1 -0
- package/dist/server/services/builders/resolvers/component.js +27 -0
- package/dist/server/services/builders/resolvers/component.js.map +1 -0
- package/dist/server/services/builders/resolvers/component.mjs +25 -0
- package/dist/server/services/builders/resolvers/component.mjs.map +1 -0
- package/dist/server/services/builders/resolvers/dynamic-zone.js +12 -0
- package/dist/server/services/builders/resolvers/dynamic-zone.js.map +1 -0
- package/dist/server/services/builders/resolvers/dynamic-zone.mjs +10 -0
- package/dist/server/services/builders/resolvers/dynamic-zone.mjs.map +1 -0
- package/dist/server/services/builders/resolvers/index.js +20 -0
- package/dist/server/services/builders/resolvers/index.js.map +1 -0
- package/dist/server/services/builders/resolvers/index.mjs +18 -0
- package/dist/server/services/builders/resolvers/index.mjs.map +1 -0
- package/dist/server/services/builders/resolvers/pagination.js +29 -0
- package/dist/server/services/builders/resolvers/pagination.js.map +1 -0
- package/dist/server/services/builders/resolvers/pagination.mjs +27 -0
- package/dist/server/services/builders/resolvers/pagination.mjs.map +1 -0
- package/dist/server/services/builders/resolvers/query.js +55 -0
- package/dist/server/services/builders/resolvers/query.js.map +1 -0
- package/dist/server/services/builders/resolvers/query.mjs +53 -0
- package/dist/server/services/builders/resolvers/query.mjs.map +1 -0
- package/dist/server/services/builders/response-collection.js +50 -0
- package/dist/server/services/builders/response-collection.js.map +1 -0
- package/dist/server/services/builders/response-collection.mjs +48 -0
- package/dist/server/services/builders/response-collection.mjs.map +1 -0
- package/dist/server/services/builders/response.js +28 -0
- package/dist/server/services/builders/response.js.map +1 -0
- package/dist/server/services/builders/response.mjs +26 -0
- package/dist/server/services/builders/response.mjs.map +1 -0
- package/dist/server/services/builders/type.js +347 -0
- package/dist/server/services/builders/type.js.map +1 -0
- package/dist/server/services/builders/type.mjs +345 -0
- package/dist/server/services/builders/type.mjs.map +1 -0
- package/dist/server/services/builders/utils.js +113 -0
- package/dist/server/services/builders/utils.js.map +1 -0
- package/dist/server/services/builders/utils.mjs +111 -0
- package/dist/server/services/builders/utils.mjs.map +1 -0
- package/dist/server/services/constants.js +139 -0
- package/dist/server/services/constants.js.map +1 -0
- package/dist/server/services/constants.mjs +137 -0
- package/dist/server/services/constants.mjs.map +1 -0
- package/dist/server/services/content-api/index.js +184 -0
- package/dist/server/services/content-api/index.js.map +1 -0
- package/dist/server/services/content-api/index.mjs +182 -0
- package/dist/server/services/content-api/index.mjs.map +1 -0
- package/dist/server/services/content-api/policy.js +54 -0
- package/dist/server/services/content-api/policy.js.map +1 -0
- package/dist/server/services/content-api/policy.mjs +52 -0
- package/dist/server/services/content-api/policy.mjs.map +1 -0
- package/dist/server/services/content-api/register-functions/collection-type.js +41 -0
- package/dist/server/services/content-api/register-functions/collection-type.js.map +1 -0
- package/dist/server/services/content-api/register-functions/collection-type.mjs +39 -0
- package/dist/server/services/content-api/register-functions/collection-type.mjs.map +1 -0
- package/dist/server/services/content-api/register-functions/component.js +16 -0
- package/dist/server/services/content-api/register-functions/component.js.map +1 -0
- package/dist/server/services/content-api/register-functions/component.mjs +14 -0
- package/dist/server/services/content-api/register-functions/component.mjs.map +1 -0
- package/dist/server/services/content-api/register-functions/dynamic-zones.js +31 -0
- package/dist/server/services/content-api/register-functions/dynamic-zones.js.map +1 -0
- package/dist/server/services/content-api/register-functions/dynamic-zones.mjs +29 -0
- package/dist/server/services/content-api/register-functions/dynamic-zones.mjs.map +1 -0
- package/dist/server/services/content-api/register-functions/enums.js +23 -0
- package/dist/server/services/content-api/register-functions/enums.js.map +1 -0
- package/dist/server/services/content-api/register-functions/enums.mjs +21 -0
- package/dist/server/services/content-api/register-functions/enums.mjs.map +1 -0
- package/dist/server/services/content-api/register-functions/filters.js +16 -0
- package/dist/server/services/content-api/register-functions/filters.js.map +1 -0
- package/dist/server/services/content-api/register-functions/filters.mjs +14 -0
- package/dist/server/services/content-api/register-functions/filters.mjs.map +1 -0
- package/dist/server/services/content-api/register-functions/inputs.js +17 -0
- package/dist/server/services/content-api/register-functions/inputs.js.map +1 -0
- package/dist/server/services/content-api/register-functions/inputs.mjs +15 -0
- package/dist/server/services/content-api/register-functions/inputs.mjs.map +1 -0
- package/dist/server/services/content-api/register-functions/internals.js +16 -0
- package/dist/server/services/content-api/register-functions/internals.js.map +1 -0
- package/dist/server/services/content-api/register-functions/internals.mjs +14 -0
- package/dist/server/services/content-api/register-functions/internals.mjs.map +1 -0
- package/dist/server/services/content-api/register-functions/polymorphic.js +49 -0
- package/dist/server/services/content-api/register-functions/polymorphic.js.map +1 -0
- package/dist/server/services/content-api/register-functions/polymorphic.mjs +47 -0
- package/dist/server/services/content-api/register-functions/polymorphic.mjs.map +1 -0
- package/dist/server/services/content-api/register-functions/scalars.js +15 -0
- package/dist/server/services/content-api/register-functions/scalars.js.map +1 -0
- package/dist/server/services/content-api/register-functions/scalars.mjs +13 -0
- package/dist/server/services/content-api/register-functions/scalars.mjs.map +1 -0
- package/dist/server/services/content-api/register-functions/single-type.js +41 -0
- package/dist/server/services/content-api/register-functions/single-type.js.map +1 -0
- package/dist/server/services/content-api/register-functions/single-type.mjs +39 -0
- package/dist/server/services/content-api/register-functions/single-type.mjs.map +1 -0
- package/dist/server/services/content-api/wrap-resolvers.js +119 -0
- package/dist/server/services/content-api/wrap-resolvers.js.map +1 -0
- package/dist/server/services/content-api/wrap-resolvers.mjs +117 -0
- package/dist/server/services/content-api/wrap-resolvers.mjs.map +1 -0
- package/dist/server/services/extension/extension.js +84 -0
- package/dist/server/services/extension/extension.js.map +1 -0
- package/dist/server/services/extension/extension.mjs +63 -0
- package/dist/server/services/extension/extension.mjs.map +1 -0
- package/dist/server/services/extension/index.js +8 -0
- package/dist/server/services/extension/index.js.map +1 -0
- package/dist/server/services/extension/index.mjs +6 -0
- package/dist/server/services/extension/index.mjs.map +1 -0
- package/dist/server/services/extension/shadow-crud-manager.js +121 -0
- package/dist/server/services/extension/shadow-crud-manager.js.map +1 -0
- package/dist/server/services/extension/shadow-crud-manager.mjs +119 -0
- package/dist/server/services/extension/shadow-crud-manager.mjs.map +1 -0
- package/dist/server/services/format/index.js +10 -0
- package/dist/server/services/format/index.js.map +1 -0
- package/dist/server/services/format/index.mjs +8 -0
- package/dist/server/services/format/index.mjs.map +1 -0
- package/dist/server/services/format/return-types.js +27 -0
- package/dist/server/services/format/return-types.js.map +1 -0
- package/dist/server/services/format/return-types.mjs +25 -0
- package/dist/server/services/format/return-types.mjs.map +1 -0
- package/dist/server/services/index.js +24 -0
- package/dist/server/services/index.js.map +1 -0
- package/dist/server/services/index.mjs +22 -0
- package/dist/server/services/index.mjs.map +1 -0
- package/dist/server/services/internals/args/index.js +14 -0
- package/dist/server/services/internals/args/index.js.map +1 -0
- package/dist/server/services/internals/args/index.mjs +12 -0
- package/dist/server/services/internals/args/index.mjs.map +1 -0
- package/dist/server/services/internals/args/pagination.js +20 -0
- package/dist/server/services/internals/args/pagination.js.map +1 -0
- package/dist/server/services/internals/args/pagination.mjs +18 -0
- package/dist/server/services/internals/args/pagination.mjs.map +1 -0
- package/dist/server/services/internals/args/publication-status.js +14 -0
- package/dist/server/services/internals/args/publication-status.js.map +1 -0
- package/dist/server/services/internals/args/publication-status.mjs +12 -0
- package/dist/server/services/internals/args/publication-status.mjs.map +1 -0
- package/dist/server/services/internals/args/sort.js +11 -0
- package/dist/server/services/internals/args/sort.js.map +1 -0
- package/dist/server/services/internals/args/sort.mjs +9 -0
- package/dist/server/services/internals/args/sort.mjs.map +1 -0
- package/dist/server/services/internals/helpers/get-enabled-scalars.js +13 -0
- package/dist/server/services/internals/helpers/get-enabled-scalars.js.map +1 -0
- package/dist/server/services/internals/helpers/get-enabled-scalars.mjs +11 -0
- package/dist/server/services/internals/helpers/get-enabled-scalars.mjs.map +1 -0
- package/dist/server/services/internals/helpers/index.js +10 -0
- package/dist/server/services/internals/helpers/index.js.map +1 -0
- package/dist/server/services/internals/helpers/index.mjs +8 -0
- package/dist/server/services/internals/helpers/index.mjs.map +1 -0
- package/dist/server/services/internals/index.js +16 -0
- package/dist/server/services/internals/index.js.map +1 -0
- package/dist/server/services/internals/index.mjs +14 -0
- package/dist/server/services/internals/index.mjs.map +1 -0
- package/dist/server/services/internals/scalars/date.js +18 -0
- package/dist/server/services/internals/scalars/date.js.map +1 -0
- package/dist/server/services/internals/scalars/date.mjs +15 -0
- package/dist/server/services/internals/scalars/date.mjs.map +1 -0
- package/dist/server/services/internals/scalars/index.js +17 -0
- package/dist/server/services/internals/scalars/index.js.map +1 -0
- package/dist/server/services/internals/scalars/index.mjs +15 -0
- package/dist/server/services/internals/scalars/index.mjs.map +1 -0
- package/dist/server/services/internals/scalars/time.js +38 -0
- package/dist/server/services/internals/scalars/time.js.map +1 -0
- package/dist/server/services/internals/scalars/time.mjs +36 -0
- package/dist/server/services/internals/scalars/time.mjs.map +1 -0
- package/dist/server/services/internals/types/delete-mutation-response.js +18 -0
- package/dist/server/services/internals/types/delete-mutation-response.js.map +1 -0
- package/dist/server/services/internals/types/delete-mutation-response.mjs +16 -0
- package/dist/server/services/internals/types/delete-mutation-response.mjs.map +1 -0
- package/dist/server/services/internals/types/error.js +32 -0
- package/dist/server/services/internals/types/error.js.map +1 -0
- package/dist/server/services/internals/types/error.mjs +30 -0
- package/dist/server/services/internals/types/error.mjs.map +1 -0
- package/dist/server/services/internals/types/filters.js +35 -0
- package/dist/server/services/internals/types/filters.js.map +1 -0
- package/dist/server/services/internals/types/filters.mjs +33 -0
- package/dist/server/services/internals/types/filters.mjs.map +1 -0
- package/dist/server/services/internals/types/index.js +30 -0
- package/dist/server/services/internals/types/index.js.map +1 -0
- package/dist/server/services/internals/types/index.mjs +28 -0
- package/dist/server/services/internals/types/index.mjs.map +1 -0
- package/dist/server/services/internals/types/pagination.js +24 -0
- package/dist/server/services/internals/types/pagination.js.map +1 -0
- package/dist/server/services/internals/types/pagination.mjs +22 -0
- package/dist/server/services/internals/types/pagination.mjs.map +1 -0
- package/dist/server/services/internals/types/publication-status.js +22 -0
- package/dist/server/services/internals/types/publication-status.js.map +1 -0
- package/dist/server/services/internals/types/publication-status.mjs +20 -0
- package/dist/server/services/internals/types/publication-status.mjs.map +1 -0
- package/dist/server/services/internals/types/response-collection-meta.js +27 -0
- package/dist/server/services/internals/types/response-collection-meta.js.map +1 -0
- package/dist/server/services/internals/types/response-collection-meta.mjs +25 -0
- package/dist/server/services/internals/types/response-collection-meta.mjs.map +1 -0
- package/dist/server/services/type-registry.js +81 -0
- package/dist/server/services/type-registry.js.map +1 -0
- package/dist/server/services/type-registry.mjs +79 -0
- package/dist/server/services/type-registry.mjs.map +1 -0
- package/dist/server/services/utils/attributes.js +65 -0
- package/dist/server/services/utils/attributes.js.map +1 -0
- package/dist/server/services/utils/attributes.mjs +63 -0
- package/dist/server/services/utils/attributes.mjs.map +1 -0
- package/dist/server/services/utils/index.js +16 -0
- package/dist/server/services/utils/index.js.map +1 -0
- package/dist/server/services/utils/index.mjs +14 -0
- package/dist/server/services/utils/index.mjs.map +1 -0
- package/dist/server/services/utils/mappers/entity-to-response-entity.js +16 -0
- package/dist/server/services/utils/mappers/entity-to-response-entity.js.map +1 -0
- package/dist/server/services/utils/mappers/entity-to-response-entity.mjs +14 -0
- package/dist/server/services/utils/mappers/entity-to-response-entity.mjs.map +1 -0
- package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.js +95 -0
- package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.js.map +1 -0
- package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.mjs +93 -0
- package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.mjs.map +1 -0
- package/dist/server/services/utils/mappers/graphql-scalar-to-operators.js +15 -0
- package/dist/server/services/utils/mappers/graphql-scalar-to-operators.js.map +1 -0
- package/dist/server/services/utils/mappers/graphql-scalar-to-operators.mjs +13 -0
- package/dist/server/services/utils/mappers/graphql-scalar-to-operators.mjs.map +1 -0
- package/dist/server/services/utils/mappers/index.js +16 -0
- package/dist/server/services/utils/mappers/index.js.map +1 -0
- package/dist/server/services/utils/mappers/index.mjs +14 -0
- package/dist/server/services/utils/mappers/index.mjs.map +1 -0
- package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.js +23 -0
- package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.js.map +1 -0
- package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.mjs +21 -0
- package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.mjs.map +1 -0
- package/dist/server/services/utils/naming.js +187 -0
- package/dist/server/services/utils/naming.js.map +1 -0
- package/dist/server/services/utils/naming.mjs +185 -0
- package/dist/server/services/utils/naming.mjs.map +1 -0
- package/dist/server/services/utils/playground.js +19 -0
- package/dist/server/services/utils/playground.js.map +1 -0
- package/dist/server/services/utils/playground.mjs +17 -0
- package/dist/server/services/utils/playground.mjs.map +1 -0
- package/package.json +6 -6
- package/dist/admin/chunks/dk-Bji21OvY.mjs.map +0 -1
- package/dist/admin/chunks/dk-D3k_Atlh.js.map +0 -1
- package/dist/admin/chunks/en-COko3s6d.mjs.map +0 -1
- package/dist/admin/chunks/en-DzY_FEd6.js.map +0 -1
- package/dist/admin/chunks/es-BoUVfXlb.mjs.map +0 -1
- package/dist/admin/chunks/es-D02rvX4A.js.map +0 -1
- package/dist/admin/chunks/fr-D9dcL-gU.js.map +0 -1
- package/dist/admin/chunks/fr-DFbQQgkK.mjs.map +0 -1
- package/dist/admin/chunks/pl-Bih5cA3Y.mjs.map +0 -1
- package/dist/admin/chunks/pl-DRSWvr2y.js.map +0 -1
- package/dist/admin/chunks/ru-Bxi2fB6E.mjs.map +0 -1
- package/dist/admin/chunks/ru-zDn7cu6t.js.map +0 -1
- package/dist/admin/chunks/sv-B2uIJv_a.mjs.map +0 -1
- package/dist/admin/chunks/sv-Dq2aVH0_.js.map +0 -1
- package/dist/admin/chunks/tr-B0yEuVnS.js.map +0 -1
- package/dist/admin/chunks/tr-DwO6hyQD.mjs.map +0 -1
- package/dist/admin/chunks/uk-DJGNjXWk.js.map +0 -1
- package/dist/admin/chunks/uk-_25RY9BK.mjs.map +0 -1
- package/dist/admin/chunks/zh-BkiTjJnf.js.map +0 -1
- package/dist/admin/chunks/zh-DVvz1qsT.mjs.map +0 -1
- package/dist/admin/chunks/zh-Hans-DUab611K.mjs.map +0 -1
- package/dist/admin/chunks/zh-Hans-DxlDvlSo.js.map +0 -1
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var graphql = require('graphql');
|
|
4
|
+
var fp = require('lodash/fp');
|
|
5
|
+
var nexus = require('nexus');
|
|
6
|
+
var utils = require('@strapi/utils');
|
|
7
|
+
|
|
8
|
+
const { ApplicationError } = utils.errors;
|
|
9
|
+
var dynamicZone = (({ strapi })=>{
|
|
10
|
+
const buildTypeDefinition = (name, components)=>{
|
|
11
|
+
const { ERROR_TYPE_NAME } = strapi.plugin('graphql').service('constants');
|
|
12
|
+
const isEmpty = components.length === 0;
|
|
13
|
+
const componentsTypeNames = components.map((componentUID)=>{
|
|
14
|
+
const component = strapi.components[componentUID];
|
|
15
|
+
if (!component) {
|
|
16
|
+
throw new ApplicationError(`Trying to create a dynamic zone type with an unknown component: "${componentUID}"`);
|
|
17
|
+
}
|
|
18
|
+
return component.globalId;
|
|
19
|
+
});
|
|
20
|
+
return nexus.unionType({
|
|
21
|
+
name,
|
|
22
|
+
resolveType (obj) {
|
|
23
|
+
if (isEmpty) {
|
|
24
|
+
return ERROR_TYPE_NAME;
|
|
25
|
+
}
|
|
26
|
+
return strapi.components[obj.__component].globalId;
|
|
27
|
+
},
|
|
28
|
+
definition (t) {
|
|
29
|
+
t.members(...componentsTypeNames, ERROR_TYPE_NAME);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
const buildInputDefinition = (name, components)=>{
|
|
34
|
+
const parseData = (value)=>{
|
|
35
|
+
const component = Object.values(strapi.components).find((component)=>component.globalId === value.__typename);
|
|
36
|
+
if (!component) {
|
|
37
|
+
throw new ApplicationError(`Component not found. expected one of: ${components.map((uid)=>strapi.components[uid].globalId).join(', ')}`);
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
__component: component.uid,
|
|
41
|
+
...fp.omit([
|
|
42
|
+
'__typename'
|
|
43
|
+
], value)
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
return nexus.scalarType({
|
|
47
|
+
name,
|
|
48
|
+
serialize: (value)=>value,
|
|
49
|
+
parseValue: (value)=>parseData(value),
|
|
50
|
+
parseLiteral (ast, variables) {
|
|
51
|
+
if (ast.kind !== graphql.Kind.OBJECT) {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
const value = graphql.valueFromASTUntyped(ast, variables);
|
|
55
|
+
return parseData(value);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
return {
|
|
60
|
+
/**
|
|
61
|
+
* Build a Nexus dynamic zone type from a Strapi dz attribute
|
|
62
|
+
*/ buildDynamicZoneDefinition (definition, name, inputName) {
|
|
63
|
+
const { components } = definition;
|
|
64
|
+
const typeDefinition = buildTypeDefinition(name, components);
|
|
65
|
+
const inputDefinition = buildInputDefinition(inputName, components);
|
|
66
|
+
return [
|
|
67
|
+
typeDefinition,
|
|
68
|
+
inputDefinition
|
|
69
|
+
];
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
module.exports = dynamicZone;
|
|
75
|
+
//# sourceMappingURL=dynamic-zones.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamic-zones.js","sources":["../../../../server/src/services/builders/dynamic-zones.ts"],"sourcesContent":["import { Kind, valueFromASTUntyped } from 'graphql';\nimport { omit } from 'lodash/fp';\nimport { unionType, scalarType } from 'nexus';\nimport { errors } from '@strapi/utils';\nimport type { Internal, Schema } from '@strapi/types';\n\nimport type { Context } from '../types';\n\nconst { ApplicationError } = errors;\n\nexport default ({ strapi }: Context) => {\n const buildTypeDefinition = (name: string, components: Internal.UID.Component[]) => {\n const { ERROR_TYPE_NAME } = strapi.plugin('graphql').service('constants');\n const isEmpty = components.length === 0;\n\n const componentsTypeNames = components.map((componentUID) => {\n const component = strapi.components[componentUID];\n\n if (!component) {\n throw new ApplicationError(\n `Trying to create a dynamic zone type with an unknown component: \"${componentUID}\"`\n );\n }\n\n return component.globalId;\n });\n\n return unionType({\n name,\n\n resolveType(obj) {\n if (isEmpty) {\n return ERROR_TYPE_NAME;\n }\n\n return strapi.components[obj.__component].globalId;\n },\n\n definition(t) {\n t.members(...componentsTypeNames, ERROR_TYPE_NAME);\n },\n });\n };\n\n const buildInputDefinition = (name: string, components: Internal.UID.Component[]) => {\n const parseData = (value: any) => {\n const component = Object.values(strapi.components).find(\n (component) => component.globalId === value.__typename\n );\n\n if (!component) {\n throw new ApplicationError(\n `Component not found. expected one of: ${components\n .map((uid) => strapi.components[uid].globalId)\n .join(', ')}`\n );\n }\n\n return {\n __component: component.uid,\n ...omit(['__typename'], value),\n };\n };\n\n return scalarType({\n name,\n\n serialize: (value) => value,\n\n parseValue: (value) => parseData(value),\n\n parseLiteral(ast, variables) {\n if (ast.kind !== Kind.OBJECT) {\n return undefined;\n }\n\n const value = valueFromASTUntyped(ast, variables);\n return parseData(value);\n },\n });\n };\n\n return {\n /**\n * Build a Nexus dynamic zone type from a Strapi dz attribute\n */\n buildDynamicZoneDefinition(\n definition: Schema.Attribute.DynamicZone,\n name: string,\n inputName: string\n ) {\n const { components } = definition;\n\n const typeDefinition = buildTypeDefinition(name, components);\n const inputDefinition = buildInputDefinition(inputName, components);\n\n return [typeDefinition, inputDefinition];\n },\n };\n};\n"],"names":["ApplicationError","errors","strapi","buildTypeDefinition","name","components","ERROR_TYPE_NAME","plugin","service","isEmpty","length","componentsTypeNames","map","componentUID","component","globalId","unionType","resolveType","obj","__component","definition","t","members","buildInputDefinition","parseData","value","Object","values","find","__typename","uid","join","omit","scalarType","serialize","parseValue","parseLiteral","ast","variables","kind","Kind","OBJECT","undefined","valueFromASTUntyped","buildDynamicZoneDefinition","inputName","typeDefinition","inputDefinition"],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Kind, valueFromASTUntyped } from 'graphql';
|
|
2
|
+
import { omit } from 'lodash/fp';
|
|
3
|
+
import { unionType, scalarType } from 'nexus';
|
|
4
|
+
import { errors } from '@strapi/utils';
|
|
5
|
+
|
|
6
|
+
const { ApplicationError } = errors;
|
|
7
|
+
var dynamicZone = (({ strapi })=>{
|
|
8
|
+
const buildTypeDefinition = (name, components)=>{
|
|
9
|
+
const { ERROR_TYPE_NAME } = strapi.plugin('graphql').service('constants');
|
|
10
|
+
const isEmpty = components.length === 0;
|
|
11
|
+
const componentsTypeNames = components.map((componentUID)=>{
|
|
12
|
+
const component = strapi.components[componentUID];
|
|
13
|
+
if (!component) {
|
|
14
|
+
throw new ApplicationError(`Trying to create a dynamic zone type with an unknown component: "${componentUID}"`);
|
|
15
|
+
}
|
|
16
|
+
return component.globalId;
|
|
17
|
+
});
|
|
18
|
+
return unionType({
|
|
19
|
+
name,
|
|
20
|
+
resolveType (obj) {
|
|
21
|
+
if (isEmpty) {
|
|
22
|
+
return ERROR_TYPE_NAME;
|
|
23
|
+
}
|
|
24
|
+
return strapi.components[obj.__component].globalId;
|
|
25
|
+
},
|
|
26
|
+
definition (t) {
|
|
27
|
+
t.members(...componentsTypeNames, ERROR_TYPE_NAME);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
const buildInputDefinition = (name, components)=>{
|
|
32
|
+
const parseData = (value)=>{
|
|
33
|
+
const component = Object.values(strapi.components).find((component)=>component.globalId === value.__typename);
|
|
34
|
+
if (!component) {
|
|
35
|
+
throw new ApplicationError(`Component not found. expected one of: ${components.map((uid)=>strapi.components[uid].globalId).join(', ')}`);
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
__component: component.uid,
|
|
39
|
+
...omit([
|
|
40
|
+
'__typename'
|
|
41
|
+
], value)
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
return scalarType({
|
|
45
|
+
name,
|
|
46
|
+
serialize: (value)=>value,
|
|
47
|
+
parseValue: (value)=>parseData(value),
|
|
48
|
+
parseLiteral (ast, variables) {
|
|
49
|
+
if (ast.kind !== Kind.OBJECT) {
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
const value = valueFromASTUntyped(ast, variables);
|
|
53
|
+
return parseData(value);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
return {
|
|
58
|
+
/**
|
|
59
|
+
* Build a Nexus dynamic zone type from a Strapi dz attribute
|
|
60
|
+
*/ buildDynamicZoneDefinition (definition, name, inputName) {
|
|
61
|
+
const { components } = definition;
|
|
62
|
+
const typeDefinition = buildTypeDefinition(name, components);
|
|
63
|
+
const inputDefinition = buildInputDefinition(inputName, components);
|
|
64
|
+
return [
|
|
65
|
+
typeDefinition,
|
|
66
|
+
inputDefinition
|
|
67
|
+
];
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
export { dynamicZone as default };
|
|
73
|
+
//# sourceMappingURL=dynamic-zones.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamic-zones.mjs","sources":["../../../../server/src/services/builders/dynamic-zones.ts"],"sourcesContent":["import { Kind, valueFromASTUntyped } from 'graphql';\nimport { omit } from 'lodash/fp';\nimport { unionType, scalarType } from 'nexus';\nimport { errors } from '@strapi/utils';\nimport type { Internal, Schema } from '@strapi/types';\n\nimport type { Context } from '../types';\n\nconst { ApplicationError } = errors;\n\nexport default ({ strapi }: Context) => {\n const buildTypeDefinition = (name: string, components: Internal.UID.Component[]) => {\n const { ERROR_TYPE_NAME } = strapi.plugin('graphql').service('constants');\n const isEmpty = components.length === 0;\n\n const componentsTypeNames = components.map((componentUID) => {\n const component = strapi.components[componentUID];\n\n if (!component) {\n throw new ApplicationError(\n `Trying to create a dynamic zone type with an unknown component: \"${componentUID}\"`\n );\n }\n\n return component.globalId;\n });\n\n return unionType({\n name,\n\n resolveType(obj) {\n if (isEmpty) {\n return ERROR_TYPE_NAME;\n }\n\n return strapi.components[obj.__component].globalId;\n },\n\n definition(t) {\n t.members(...componentsTypeNames, ERROR_TYPE_NAME);\n },\n });\n };\n\n const buildInputDefinition = (name: string, components: Internal.UID.Component[]) => {\n const parseData = (value: any) => {\n const component = Object.values(strapi.components).find(\n (component) => component.globalId === value.__typename\n );\n\n if (!component) {\n throw new ApplicationError(\n `Component not found. expected one of: ${components\n .map((uid) => strapi.components[uid].globalId)\n .join(', ')}`\n );\n }\n\n return {\n __component: component.uid,\n ...omit(['__typename'], value),\n };\n };\n\n return scalarType({\n name,\n\n serialize: (value) => value,\n\n parseValue: (value) => parseData(value),\n\n parseLiteral(ast, variables) {\n if (ast.kind !== Kind.OBJECT) {\n return undefined;\n }\n\n const value = valueFromASTUntyped(ast, variables);\n return parseData(value);\n },\n });\n };\n\n return {\n /**\n * Build a Nexus dynamic zone type from a Strapi dz attribute\n */\n buildDynamicZoneDefinition(\n definition: Schema.Attribute.DynamicZone,\n name: string,\n inputName: string\n ) {\n const { components } = definition;\n\n const typeDefinition = buildTypeDefinition(name, components);\n const inputDefinition = buildInputDefinition(inputName, components);\n\n return [typeDefinition, inputDefinition];\n },\n };\n};\n"],"names":["ApplicationError","errors","strapi","buildTypeDefinition","name","components","ERROR_TYPE_NAME","plugin","service","isEmpty","length","componentsTypeNames","map","componentUID","component","globalId","unionType","resolveType","obj","__component","definition","t","members","buildInputDefinition","parseData","value","Object","values","find","__typename","uid","join","omit","scalarType","serialize","parseValue","parseLiteral","ast","variables","kind","Kind","OBJECT","undefined","valueFromASTUntyped","buildDynamicZoneDefinition","inputName","typeDefinition","inputDefinition"],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var nexus = require('nexus');
|
|
4
|
+
var fp = require('lodash/fp');
|
|
5
|
+
|
|
6
|
+
var entity = (({ strapi })=>{
|
|
7
|
+
const { naming } = strapi.plugin('graphql').service('utils');
|
|
8
|
+
return {
|
|
9
|
+
/**
|
|
10
|
+
* Build a higher level type for a content type which contains the attributes, the ID and the metadata
|
|
11
|
+
* @param {object} contentType The content type which will be used to build its entity type
|
|
12
|
+
* @return {NexusObjectTypeDef}
|
|
13
|
+
*/ buildEntityDefinition (contentType) {
|
|
14
|
+
const { attributes } = contentType;
|
|
15
|
+
const name = naming.getEntityName(contentType);
|
|
16
|
+
const typeName = naming.getTypeName(contentType);
|
|
17
|
+
return nexus.objectType({
|
|
18
|
+
name,
|
|
19
|
+
definition (t) {
|
|
20
|
+
// Keep the ID attribute at the top level
|
|
21
|
+
t.id('id', {
|
|
22
|
+
resolve: fp.prop('id')
|
|
23
|
+
});
|
|
24
|
+
if (!fp.isEmpty(attributes)) {
|
|
25
|
+
// Keep the fetched object into a dedicated `attributes` field
|
|
26
|
+
t.field('attributes', {
|
|
27
|
+
type: typeName,
|
|
28
|
+
resolve: fp.identity
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
module.exports = entity;
|
|
38
|
+
//# sourceMappingURL=entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity.js","sources":["../../../../server/src/services/builders/entity.ts"],"sourcesContent":["import { objectType } from 'nexus';\nimport { prop, identity, isEmpty } from 'lodash/fp';\nimport type { Schema } from '@strapi/types';\n\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 higher level type for a content type which contains the attributes, the ID and the metadata\n * @param {object} contentType The content type which will be used to build its entity type\n * @return {NexusObjectTypeDef}\n */\n buildEntityDefinition(contentType: Schema.ContentType) {\n const { attributes } = contentType;\n\n const name = naming.getEntityName(contentType);\n const typeName = naming.getTypeName(contentType);\n\n return objectType({\n name,\n\n definition(t) {\n // Keep the ID attribute at the top level\n t.id('id', { resolve: prop('id') });\n\n if (!isEmpty(attributes)) {\n // Keep the fetched object into a dedicated `attributes` field\n t.field('attributes', {\n type: typeName,\n resolve: identity,\n });\n }\n },\n });\n },\n };\n};\n"],"names":["strapi","naming","plugin","service","buildEntityDefinition","contentType","attributes","name","getEntityName","typeName","getTypeName","objectType","definition","t","id","resolve","prop","isEmpty","field","type","identity"],"mappings":";;;;;AAMA,aAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,GAAA;IACjC,MAAM,EAAEC,MAAM,EAAE,GAAGD,OAAOE,MAAM,CAAC,SAAWC,CAAAA,CAAAA,OAAO,CAAC,OAAA,CAAA;IAEpD,OAAO;AACL;;;;AAIC,QACDC,uBAAsBC,WAA+B,EAAA;YACnD,MAAM,EAAEC,UAAU,EAAE,GAAGD,WAAAA;YAEvB,MAAME,IAAAA,GAAON,MAAOO,CAAAA,aAAa,CAACH,WAAAA,CAAAA;YAClC,MAAMI,QAAAA,GAAWR,MAAOS,CAAAA,WAAW,CAACL,WAAAA,CAAAA;AAEpC,YAAA,OAAOM,gBAAW,CAAA;AAChBJ,gBAAAA,IAAAA;AAEAK,gBAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;;oBAEVA,CAAEC,CAAAA,EAAE,CAAC,IAAM,EAAA;AAAEC,wBAAAA,OAAAA,EAASC,OAAK,CAAA,IAAA;AAAM,qBAAA,CAAA;oBAEjC,IAAI,CAACC,WAAQX,UAAa,CAAA,EAAA;;wBAExBO,CAAEK,CAAAA,KAAK,CAAC,YAAc,EAAA;4BACpBC,IAAMV,EAAAA,QAAAA;4BACNM,OAASK,EAAAA;AACX,yBAAA,CAAA;AACF;AACF;AACF,aAAA,CAAA;AACF;AACF,KAAA;AACF,CAAA;;;;"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { objectType } from 'nexus';
|
|
2
|
+
import { prop, isEmpty, identity } from 'lodash/fp';
|
|
3
|
+
|
|
4
|
+
var entity = (({ strapi })=>{
|
|
5
|
+
const { naming } = strapi.plugin('graphql').service('utils');
|
|
6
|
+
return {
|
|
7
|
+
/**
|
|
8
|
+
* Build a higher level type for a content type which contains the attributes, the ID and the metadata
|
|
9
|
+
* @param {object} contentType The content type which will be used to build its entity type
|
|
10
|
+
* @return {NexusObjectTypeDef}
|
|
11
|
+
*/ buildEntityDefinition (contentType) {
|
|
12
|
+
const { attributes } = contentType;
|
|
13
|
+
const name = naming.getEntityName(contentType);
|
|
14
|
+
const typeName = naming.getTypeName(contentType);
|
|
15
|
+
return objectType({
|
|
16
|
+
name,
|
|
17
|
+
definition (t) {
|
|
18
|
+
// Keep the ID attribute at the top level
|
|
19
|
+
t.id('id', {
|
|
20
|
+
resolve: prop('id')
|
|
21
|
+
});
|
|
22
|
+
if (!isEmpty(attributes)) {
|
|
23
|
+
// Keep the fetched object into a dedicated `attributes` field
|
|
24
|
+
t.field('attributes', {
|
|
25
|
+
type: typeName,
|
|
26
|
+
resolve: identity
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
export { entity as default };
|
|
36
|
+
//# sourceMappingURL=entity.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity.mjs","sources":["../../../../server/src/services/builders/entity.ts"],"sourcesContent":["import { objectType } from 'nexus';\nimport { prop, identity, isEmpty } from 'lodash/fp';\nimport type { Schema } from '@strapi/types';\n\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 higher level type for a content type which contains the attributes, the ID and the metadata\n * @param {object} contentType The content type which will be used to build its entity type\n * @return {NexusObjectTypeDef}\n */\n buildEntityDefinition(contentType: Schema.ContentType) {\n const { attributes } = contentType;\n\n const name = naming.getEntityName(contentType);\n const typeName = naming.getTypeName(contentType);\n\n return objectType({\n name,\n\n definition(t) {\n // Keep the ID attribute at the top level\n t.id('id', { resolve: prop('id') });\n\n if (!isEmpty(attributes)) {\n // Keep the fetched object into a dedicated `attributes` field\n t.field('attributes', {\n type: typeName,\n resolve: identity,\n });\n }\n },\n });\n },\n };\n};\n"],"names":["strapi","naming","plugin","service","buildEntityDefinition","contentType","attributes","name","getEntityName","typeName","getTypeName","objectType","definition","t","id","resolve","prop","isEmpty","field","type","identity"],"mappings":";;;AAMA,aAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,GAAA;IACjC,MAAM,EAAEC,MAAM,EAAE,GAAGD,OAAOE,MAAM,CAAC,SAAWC,CAAAA,CAAAA,OAAO,CAAC,OAAA,CAAA;IAEpD,OAAO;AACL;;;;AAIC,QACDC,uBAAsBC,WAA+B,EAAA;YACnD,MAAM,EAAEC,UAAU,EAAE,GAAGD,WAAAA;YAEvB,MAAME,IAAAA,GAAON,MAAOO,CAAAA,aAAa,CAACH,WAAAA,CAAAA;YAClC,MAAMI,QAAAA,GAAWR,MAAOS,CAAAA,WAAW,CAACL,WAAAA,CAAAA;AAEpC,YAAA,OAAOM,UAAW,CAAA;AAChBJ,gBAAAA,IAAAA;AAEAK,gBAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;;oBAEVA,CAAEC,CAAAA,EAAE,CAAC,IAAM,EAAA;AAAEC,wBAAAA,OAAAA,EAASC,IAAK,CAAA,IAAA;AAAM,qBAAA,CAAA;oBAEjC,IAAI,CAACC,QAAQX,UAAa,CAAA,EAAA;;wBAExBO,CAAEK,CAAAA,KAAK,CAAC,YAAc,EAAA;4BACpBC,IAAMV,EAAAA,QAAAA;4BACNM,OAASK,EAAAA;AACX,yBAAA,CAAA;AACF;AACF;AACF,aAAA,CAAA;AACF;AACF,KAAA;AACF,CAAA;;;;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var nexus = require('nexus');
|
|
4
|
+
var fp = require('lodash/fp');
|
|
5
|
+
var utils = require('@strapi/utils');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Build a Nexus enum type from a Strapi enum attribute
|
|
9
|
+
* @param {object} definition - The definition of the enum
|
|
10
|
+
* @param {string[]} definition.enum - The params of the enum
|
|
11
|
+
* @param {string} name - The name of the enum
|
|
12
|
+
* @return {NexusEnumTypeDef}
|
|
13
|
+
*/ const buildEnumTypeDefinition = (definition, name)=>{
|
|
14
|
+
return nexus.enumType({
|
|
15
|
+
name,
|
|
16
|
+
members: definition.enum.reduce((acc, value)=>fp.set(utils.strings.toRegressedEnumValue(value), value, acc), {})
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
var enums = (()=>({
|
|
20
|
+
buildEnumTypeDefinition
|
|
21
|
+
}));
|
|
22
|
+
|
|
23
|
+
module.exports = enums;
|
|
24
|
+
//# sourceMappingURL=enums.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enums.js","sources":["../../../../server/src/services/builders/enums.ts"],"sourcesContent":["import { enumType } from 'nexus';\nimport { set } from 'lodash/fp';\nimport { strings } from '@strapi/utils';\n\ninterface Definition {\n enum: string[];\n}\n\n/**\n * Build a Nexus enum type from a Strapi enum attribute\n * @param {object} definition - The definition of the enum\n * @param {string[]} definition.enum - The params of the enum\n * @param {string} name - The name of the enum\n * @return {NexusEnumTypeDef}\n */\nconst buildEnumTypeDefinition = (definition: Definition, name: string) => {\n return enumType({\n name,\n members: definition.enum.reduce(\n (acc, value) => set(strings.toRegressedEnumValue(value), value, acc),\n {}\n ),\n });\n};\n\nexport default () => ({\n buildEnumTypeDefinition,\n});\n"],"names":["buildEnumTypeDefinition","definition","name","enumType","members","enum","reduce","acc","value","set","strings","toRegressedEnumValue"],"mappings":";;;;;;AAQA;;;;;;IAOA,MAAMA,uBAA0B,GAAA,CAACC,UAAwBC,EAAAA,IAAAA,GAAAA;AACvD,IAAA,OAAOC,cAAS,CAAA;AACdD,QAAAA,IAAAA;AACAE,QAAAA,OAAAA,EAASH,UAAWI,CAAAA,IAAI,CAACC,MAAM,CAC7B,CAACC,GAAAA,EAAKC,KAAUC,GAAAA,MAAAA,CAAIC,cAAQC,oBAAoB,CAACH,KAAQA,CAAAA,EAAAA,KAAAA,EAAOD,MAChE,EAAC;AAEL,KAAA,CAAA;AACF,CAAA;AAEA,YAAe,CAAA,KAAO;AACpBP,QAAAA;AACF,KAAA,CAAC;;;;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { enumType } from 'nexus';
|
|
2
|
+
import { set } from 'lodash/fp';
|
|
3
|
+
import { strings } from '@strapi/utils';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Build a Nexus enum type from a Strapi enum attribute
|
|
7
|
+
* @param {object} definition - The definition of the enum
|
|
8
|
+
* @param {string[]} definition.enum - The params of the enum
|
|
9
|
+
* @param {string} name - The name of the enum
|
|
10
|
+
* @return {NexusEnumTypeDef}
|
|
11
|
+
*/ const buildEnumTypeDefinition = (definition, name)=>{
|
|
12
|
+
return enumType({
|
|
13
|
+
name,
|
|
14
|
+
members: definition.enum.reduce((acc, value)=>set(strings.toRegressedEnumValue(value), value, acc), {})
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
var enums = (()=>({
|
|
18
|
+
buildEnumTypeDefinition
|
|
19
|
+
}));
|
|
20
|
+
|
|
21
|
+
export { enums as default };
|
|
22
|
+
//# sourceMappingURL=enums.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enums.mjs","sources":["../../../../server/src/services/builders/enums.ts"],"sourcesContent":["import { enumType } from 'nexus';\nimport { set } from 'lodash/fp';\nimport { strings } from '@strapi/utils';\n\ninterface Definition {\n enum: string[];\n}\n\n/**\n * Build a Nexus enum type from a Strapi enum attribute\n * @param {object} definition - The definition of the enum\n * @param {string[]} definition.enum - The params of the enum\n * @param {string} name - The name of the enum\n * @return {NexusEnumTypeDef}\n */\nconst buildEnumTypeDefinition = (definition: Definition, name: string) => {\n return enumType({\n name,\n members: definition.enum.reduce(\n (acc, value) => set(strings.toRegressedEnumValue(value), value, acc),\n {}\n ),\n });\n};\n\nexport default () => ({\n buildEnumTypeDefinition,\n});\n"],"names":["buildEnumTypeDefinition","definition","name","enumType","members","enum","reduce","acc","value","set","strings","toRegressedEnumValue"],"mappings":";;;;AAQA;;;;;;IAOA,MAAMA,uBAA0B,GAAA,CAACC,UAAwBC,EAAAA,IAAAA,GAAAA;AACvD,IAAA,OAAOC,QAAS,CAAA;AACdD,QAAAA,IAAAA;AACAE,QAAAA,OAAAA,EAASH,UAAWI,CAAAA,IAAI,CAACC,MAAM,CAC7B,CAACC,GAAAA,EAAKC,KAAUC,GAAAA,GAAAA,CAAIC,QAAQC,oBAAoB,CAACH,KAAQA,CAAAA,EAAAA,KAAAA,EAAOD,MAChE,EAAC;AAEL,KAAA,CAAA;AACF,CAAA;AAEA,YAAe,CAAA,KAAO;AACpBP,QAAAA;AACF,KAAA,CAAC;;;;"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var nexus = require('nexus');
|
|
4
|
+
var utils = require('@strapi/utils');
|
|
5
|
+
|
|
6
|
+
var contentType = (({ strapi })=>{
|
|
7
|
+
const rootLevelOperators = ()=>{
|
|
8
|
+
const { operators } = strapi.plugin('graphql').service('builders').filters;
|
|
9
|
+
return [
|
|
10
|
+
operators.and,
|
|
11
|
+
operators.or,
|
|
12
|
+
operators.not
|
|
13
|
+
];
|
|
14
|
+
};
|
|
15
|
+
const addScalarAttribute = (builder, attributeName, attribute)=>{
|
|
16
|
+
const { naming, mappers } = strapi.plugin('graphql').service('utils');
|
|
17
|
+
const gqlType = mappers.strapiScalarToGraphQLScalar(attribute.type);
|
|
18
|
+
builder.field(attributeName, {
|
|
19
|
+
type: naming.getScalarFilterInputTypeName(gqlType)
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
const addRelationalAttribute = (builder, attributeName, attribute)=>{
|
|
23
|
+
const utils = strapi.plugin('graphql').service('utils');
|
|
24
|
+
const extension = strapi.plugin('graphql').service('extension');
|
|
25
|
+
const { getFiltersInputTypeName } = utils.naming;
|
|
26
|
+
const { isMorphRelation } = utils.attributes;
|
|
27
|
+
const model = 'target' in attribute && strapi.getModel(attribute.target);
|
|
28
|
+
// If there is no model corresponding to the attribute configuration
|
|
29
|
+
// or if the attribute is a polymorphic relation, then ignore it
|
|
30
|
+
if (!model || isMorphRelation(attribute)) return;
|
|
31
|
+
// If the target model is disabled, then ignore it too
|
|
32
|
+
if (extension.shadowCRUD(model.uid).isDisabled()) return;
|
|
33
|
+
builder.field(attributeName, {
|
|
34
|
+
type: getFiltersInputTypeName(model)
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
const addComponentAttribute = (builder, attributeName, attribute)=>{
|
|
38
|
+
const utils = strapi.plugin('graphql').service('utils');
|
|
39
|
+
const extension = strapi.plugin('graphql').service('extension');
|
|
40
|
+
const { getFiltersInputTypeName } = utils.naming;
|
|
41
|
+
const component = strapi.getModel(attribute.component);
|
|
42
|
+
// If there is no component corresponding to the attribute configuration, then ignore it
|
|
43
|
+
if (!component) return;
|
|
44
|
+
// If the component is disabled, then ignore it too
|
|
45
|
+
if (extension.shadowCRUD(component.uid).isDisabled()) return;
|
|
46
|
+
builder.field(attributeName, {
|
|
47
|
+
type: getFiltersInputTypeName(component)
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
const buildContentTypeFilters = (contentType)=>{
|
|
51
|
+
const utils$1 = strapi.plugin('graphql').service('utils');
|
|
52
|
+
const extension = strapi.plugin('graphql').service('extension');
|
|
53
|
+
const { getFiltersInputTypeName, getScalarFilterInputTypeName } = utils$1.naming;
|
|
54
|
+
const { isStrapiScalar, isRelation, isComponent } = utils$1.attributes;
|
|
55
|
+
const { attributes } = contentType;
|
|
56
|
+
const filtersTypeName = getFiltersInputTypeName(contentType);
|
|
57
|
+
return nexus.inputObjectType({
|
|
58
|
+
name: filtersTypeName,
|
|
59
|
+
definition (t) {
|
|
60
|
+
const validAttributes = Object.entries(attributes)// Remove private attributes
|
|
61
|
+
.filter(([attributeName])=>!utils.contentTypes.isPrivateAttribute(contentType, attributeName))// Remove attributes that have been disabled using the shadow CRUD extension API
|
|
62
|
+
.filter(([attributeName])=>extension.shadowCRUD(contentType.uid).field(attributeName).hasFiltersEnabeld());
|
|
63
|
+
const isIDFilterEnabled = extension.shadowCRUD(contentType.uid).field('documentId').hasFiltersEnabeld();
|
|
64
|
+
// Add an ID filter to the collection types
|
|
65
|
+
if (contentType.kind === 'collectionType' && isIDFilterEnabled) {
|
|
66
|
+
t.field('documentId', {
|
|
67
|
+
type: getScalarFilterInputTypeName('ID')
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
// Add every defined attribute
|
|
71
|
+
for (const [attributeName, attribute] of validAttributes){
|
|
72
|
+
// Handle scalars
|
|
73
|
+
if (isStrapiScalar(attribute)) {
|
|
74
|
+
addScalarAttribute(t, attributeName, attribute);
|
|
75
|
+
} else if (isRelation(attribute)) {
|
|
76
|
+
addRelationalAttribute(t, attributeName, attribute);
|
|
77
|
+
} else if (isComponent(attribute)) {
|
|
78
|
+
addComponentAttribute(t, attributeName, attribute);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// Conditional clauses
|
|
82
|
+
for (const operator of rootLevelOperators()){
|
|
83
|
+
operator.add(t, filtersTypeName);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
};
|
|
88
|
+
return {
|
|
89
|
+
buildContentTypeFilters
|
|
90
|
+
};
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
module.exports = contentType;
|
|
94
|
+
//# sourceMappingURL=content-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-type.js","sources":["../../../../../server/src/services/builders/filters/content-type.ts"],"sourcesContent":["import { inputObjectType } from 'nexus';\nimport { contentTypes } from '@strapi/utils';\nimport type * as Nexus from 'nexus';\nimport type { Struct, Schema } from '@strapi/types';\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => {\n const rootLevelOperators = () => {\n const { operators } = strapi.plugin('graphql').service('builders').filters;\n\n return [operators.and, operators.or, operators.not];\n };\n\n const addScalarAttribute = (\n builder: Nexus.blocks.InputDefinitionBlock<any>,\n attributeName: string,\n attribute: Schema.Attribute.AnyAttribute\n ) => {\n const { naming, mappers } = strapi.plugin('graphql').service('utils');\n\n const gqlType = mappers.strapiScalarToGraphQLScalar(attribute.type);\n\n builder.field(attributeName, { type: naming.getScalarFilterInputTypeName(gqlType) });\n };\n\n const addRelationalAttribute = (\n builder: Nexus.blocks.InputDefinitionBlock<any>,\n attributeName: string,\n attribute: Schema.Attribute.Relation\n ) => {\n const utils = strapi.plugin('graphql').service('utils');\n const extension = strapi.plugin('graphql').service('extension');\n const { getFiltersInputTypeName } = utils.naming;\n const { isMorphRelation } = utils.attributes;\n\n const model = 'target' in attribute && strapi.getModel(attribute.target);\n\n // If there is no model corresponding to the attribute configuration\n // or if the attribute is a polymorphic relation, then ignore it\n if (!model || isMorphRelation(attribute)) return;\n\n // If the target model is disabled, then ignore it too\n if (extension.shadowCRUD(model.uid).isDisabled()) return;\n\n builder.field(attributeName, { type: getFiltersInputTypeName(model) });\n };\n\n const addComponentAttribute = (\n builder: Nexus.blocks.InputDefinitionBlock<any>,\n attributeName: string,\n attribute: Schema.Attribute.Component\n ) => {\n const utils = strapi.plugin('graphql').service('utils');\n const extension = strapi.plugin('graphql').service('extension');\n const { getFiltersInputTypeName } = utils.naming;\n\n const component = strapi.getModel(attribute.component);\n\n // If there is no component corresponding to the attribute configuration, then ignore it\n if (!component) return;\n\n // If the component is disabled, then ignore it too\n if (extension.shadowCRUD(component.uid).isDisabled()) return;\n\n builder.field(attributeName, { type: getFiltersInputTypeName(component) });\n };\n\n const buildContentTypeFilters = (contentType: Struct.ContentTypeSchema) => {\n const utils = strapi.plugin('graphql').service('utils');\n const extension = strapi.plugin('graphql').service('extension');\n\n const { getFiltersInputTypeName, getScalarFilterInputTypeName } = utils.naming;\n const { isStrapiScalar, isRelation, isComponent } = utils.attributes;\n\n const { attributes } = contentType;\n\n const filtersTypeName = getFiltersInputTypeName(contentType);\n\n return inputObjectType({\n name: filtersTypeName,\n\n definition(t) {\n const validAttributes = Object.entries(attributes)\n // Remove private attributes\n .filter(([attributeName]) => !contentTypes.isPrivateAttribute(contentType, attributeName))\n // Remove attributes that have been disabled using the shadow CRUD extension API\n .filter(([attributeName]) =>\n extension.shadowCRUD(contentType.uid).field(attributeName).hasFiltersEnabeld()\n );\n\n const isIDFilterEnabled = extension\n .shadowCRUD(contentType.uid)\n .field('documentId')\n .hasFiltersEnabeld();\n\n // Add an ID filter to the collection types\n if (contentType.kind === 'collectionType' && isIDFilterEnabled) {\n t.field('documentId', { type: getScalarFilterInputTypeName('ID') });\n }\n\n // Add every defined attribute\n for (const [attributeName, attribute] of validAttributes) {\n // Handle scalars\n if (isStrapiScalar(attribute)) {\n addScalarAttribute(t, attributeName, attribute);\n }\n\n // Handle relations\n else if (isRelation(attribute)) {\n addRelationalAttribute(t, attributeName, attribute as Schema.Attribute.Relation);\n }\n\n // Handle components\n else if (isComponent(attribute)) {\n addComponentAttribute(t, attributeName, attribute as Schema.Attribute.Component);\n }\n }\n\n // Conditional clauses\n for (const operator of rootLevelOperators()) {\n operator.add(t, filtersTypeName);\n }\n },\n });\n };\n\n return {\n buildContentTypeFilters,\n };\n};\n"],"names":["strapi","rootLevelOperators","operators","plugin","service","filters","and","or","not","addScalarAttribute","builder","attributeName","attribute","naming","mappers","gqlType","strapiScalarToGraphQLScalar","type","field","getScalarFilterInputTypeName","addRelationalAttribute","utils","extension","getFiltersInputTypeName","isMorphRelation","attributes","model","getModel","target","shadowCRUD","uid","isDisabled","addComponentAttribute","component","buildContentTypeFilters","contentType","isStrapiScalar","isRelation","isComponent","filtersTypeName","inputObjectType","name","definition","t","validAttributes","Object","entries","filter","contentTypes","isPrivateAttribute","hasFiltersEnabeld","isIDFilterEnabled","kind","operator","add"],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { inputObjectType } from 'nexus';
|
|
2
|
+
import { contentTypes } from '@strapi/utils';
|
|
3
|
+
|
|
4
|
+
var contentType = (({ strapi })=>{
|
|
5
|
+
const rootLevelOperators = ()=>{
|
|
6
|
+
const { operators } = strapi.plugin('graphql').service('builders').filters;
|
|
7
|
+
return [
|
|
8
|
+
operators.and,
|
|
9
|
+
operators.or,
|
|
10
|
+
operators.not
|
|
11
|
+
];
|
|
12
|
+
};
|
|
13
|
+
const addScalarAttribute = (builder, attributeName, attribute)=>{
|
|
14
|
+
const { naming, mappers } = strapi.plugin('graphql').service('utils');
|
|
15
|
+
const gqlType = mappers.strapiScalarToGraphQLScalar(attribute.type);
|
|
16
|
+
builder.field(attributeName, {
|
|
17
|
+
type: naming.getScalarFilterInputTypeName(gqlType)
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
const addRelationalAttribute = (builder, attributeName, attribute)=>{
|
|
21
|
+
const utils = strapi.plugin('graphql').service('utils');
|
|
22
|
+
const extension = strapi.plugin('graphql').service('extension');
|
|
23
|
+
const { getFiltersInputTypeName } = utils.naming;
|
|
24
|
+
const { isMorphRelation } = utils.attributes;
|
|
25
|
+
const model = 'target' in attribute && strapi.getModel(attribute.target);
|
|
26
|
+
// If there is no model corresponding to the attribute configuration
|
|
27
|
+
// or if the attribute is a polymorphic relation, then ignore it
|
|
28
|
+
if (!model || isMorphRelation(attribute)) return;
|
|
29
|
+
// If the target model is disabled, then ignore it too
|
|
30
|
+
if (extension.shadowCRUD(model.uid).isDisabled()) return;
|
|
31
|
+
builder.field(attributeName, {
|
|
32
|
+
type: getFiltersInputTypeName(model)
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
const addComponentAttribute = (builder, attributeName, attribute)=>{
|
|
36
|
+
const utils = strapi.plugin('graphql').service('utils');
|
|
37
|
+
const extension = strapi.plugin('graphql').service('extension');
|
|
38
|
+
const { getFiltersInputTypeName } = utils.naming;
|
|
39
|
+
const component = strapi.getModel(attribute.component);
|
|
40
|
+
// If there is no component corresponding to the attribute configuration, then ignore it
|
|
41
|
+
if (!component) return;
|
|
42
|
+
// If the component is disabled, then ignore it too
|
|
43
|
+
if (extension.shadowCRUD(component.uid).isDisabled()) return;
|
|
44
|
+
builder.field(attributeName, {
|
|
45
|
+
type: getFiltersInputTypeName(component)
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
const buildContentTypeFilters = (contentType)=>{
|
|
49
|
+
const utils = strapi.plugin('graphql').service('utils');
|
|
50
|
+
const extension = strapi.plugin('graphql').service('extension');
|
|
51
|
+
const { getFiltersInputTypeName, getScalarFilterInputTypeName } = utils.naming;
|
|
52
|
+
const { isStrapiScalar, isRelation, isComponent } = utils.attributes;
|
|
53
|
+
const { attributes } = contentType;
|
|
54
|
+
const filtersTypeName = getFiltersInputTypeName(contentType);
|
|
55
|
+
return inputObjectType({
|
|
56
|
+
name: filtersTypeName,
|
|
57
|
+
definition (t) {
|
|
58
|
+
const validAttributes = Object.entries(attributes)// Remove private attributes
|
|
59
|
+
.filter(([attributeName])=>!contentTypes.isPrivateAttribute(contentType, attributeName))// Remove attributes that have been disabled using the shadow CRUD extension API
|
|
60
|
+
.filter(([attributeName])=>extension.shadowCRUD(contentType.uid).field(attributeName).hasFiltersEnabeld());
|
|
61
|
+
const isIDFilterEnabled = extension.shadowCRUD(contentType.uid).field('documentId').hasFiltersEnabeld();
|
|
62
|
+
// Add an ID filter to the collection types
|
|
63
|
+
if (contentType.kind === 'collectionType' && isIDFilterEnabled) {
|
|
64
|
+
t.field('documentId', {
|
|
65
|
+
type: getScalarFilterInputTypeName('ID')
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
// Add every defined attribute
|
|
69
|
+
for (const [attributeName, attribute] of validAttributes){
|
|
70
|
+
// Handle scalars
|
|
71
|
+
if (isStrapiScalar(attribute)) {
|
|
72
|
+
addScalarAttribute(t, attributeName, attribute);
|
|
73
|
+
} else if (isRelation(attribute)) {
|
|
74
|
+
addRelationalAttribute(t, attributeName, attribute);
|
|
75
|
+
} else if (isComponent(attribute)) {
|
|
76
|
+
addComponentAttribute(t, attributeName, attribute);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// Conditional clauses
|
|
80
|
+
for (const operator of rootLevelOperators()){
|
|
81
|
+
operator.add(t, filtersTypeName);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
return {
|
|
87
|
+
buildContentTypeFilters
|
|
88
|
+
};
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
export { contentType as default };
|
|
92
|
+
//# sourceMappingURL=content-type.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-type.mjs","sources":["../../../../../server/src/services/builders/filters/content-type.ts"],"sourcesContent":["import { inputObjectType } from 'nexus';\nimport { contentTypes } from '@strapi/utils';\nimport type * as Nexus from 'nexus';\nimport type { Struct, Schema } from '@strapi/types';\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => {\n const rootLevelOperators = () => {\n const { operators } = strapi.plugin('graphql').service('builders').filters;\n\n return [operators.and, operators.or, operators.not];\n };\n\n const addScalarAttribute = (\n builder: Nexus.blocks.InputDefinitionBlock<any>,\n attributeName: string,\n attribute: Schema.Attribute.AnyAttribute\n ) => {\n const { naming, mappers } = strapi.plugin('graphql').service('utils');\n\n const gqlType = mappers.strapiScalarToGraphQLScalar(attribute.type);\n\n builder.field(attributeName, { type: naming.getScalarFilterInputTypeName(gqlType) });\n };\n\n const addRelationalAttribute = (\n builder: Nexus.blocks.InputDefinitionBlock<any>,\n attributeName: string,\n attribute: Schema.Attribute.Relation\n ) => {\n const utils = strapi.plugin('graphql').service('utils');\n const extension = strapi.plugin('graphql').service('extension');\n const { getFiltersInputTypeName } = utils.naming;\n const { isMorphRelation } = utils.attributes;\n\n const model = 'target' in attribute && strapi.getModel(attribute.target);\n\n // If there is no model corresponding to the attribute configuration\n // or if the attribute is a polymorphic relation, then ignore it\n if (!model || isMorphRelation(attribute)) return;\n\n // If the target model is disabled, then ignore it too\n if (extension.shadowCRUD(model.uid).isDisabled()) return;\n\n builder.field(attributeName, { type: getFiltersInputTypeName(model) });\n };\n\n const addComponentAttribute = (\n builder: Nexus.blocks.InputDefinitionBlock<any>,\n attributeName: string,\n attribute: Schema.Attribute.Component\n ) => {\n const utils = strapi.plugin('graphql').service('utils');\n const extension = strapi.plugin('graphql').service('extension');\n const { getFiltersInputTypeName } = utils.naming;\n\n const component = strapi.getModel(attribute.component);\n\n // If there is no component corresponding to the attribute configuration, then ignore it\n if (!component) return;\n\n // If the component is disabled, then ignore it too\n if (extension.shadowCRUD(component.uid).isDisabled()) return;\n\n builder.field(attributeName, { type: getFiltersInputTypeName(component) });\n };\n\n const buildContentTypeFilters = (contentType: Struct.ContentTypeSchema) => {\n const utils = strapi.plugin('graphql').service('utils');\n const extension = strapi.plugin('graphql').service('extension');\n\n const { getFiltersInputTypeName, getScalarFilterInputTypeName } = utils.naming;\n const { isStrapiScalar, isRelation, isComponent } = utils.attributes;\n\n const { attributes } = contentType;\n\n const filtersTypeName = getFiltersInputTypeName(contentType);\n\n return inputObjectType({\n name: filtersTypeName,\n\n definition(t) {\n const validAttributes = Object.entries(attributes)\n // Remove private attributes\n .filter(([attributeName]) => !contentTypes.isPrivateAttribute(contentType, attributeName))\n // Remove attributes that have been disabled using the shadow CRUD extension API\n .filter(([attributeName]) =>\n extension.shadowCRUD(contentType.uid).field(attributeName).hasFiltersEnabeld()\n );\n\n const isIDFilterEnabled = extension\n .shadowCRUD(contentType.uid)\n .field('documentId')\n .hasFiltersEnabeld();\n\n // Add an ID filter to the collection types\n if (contentType.kind === 'collectionType' && isIDFilterEnabled) {\n t.field('documentId', { type: getScalarFilterInputTypeName('ID') });\n }\n\n // Add every defined attribute\n for (const [attributeName, attribute] of validAttributes) {\n // Handle scalars\n if (isStrapiScalar(attribute)) {\n addScalarAttribute(t, attributeName, attribute);\n }\n\n // Handle relations\n else if (isRelation(attribute)) {\n addRelationalAttribute(t, attributeName, attribute as Schema.Attribute.Relation);\n }\n\n // Handle components\n else if (isComponent(attribute)) {\n addComponentAttribute(t, attributeName, attribute as Schema.Attribute.Component);\n }\n }\n\n // Conditional clauses\n for (const operator of rootLevelOperators()) {\n operator.add(t, filtersTypeName);\n }\n },\n });\n };\n\n return {\n buildContentTypeFilters,\n };\n};\n"],"names":["strapi","rootLevelOperators","operators","plugin","service","filters","and","or","not","addScalarAttribute","builder","attributeName","attribute","naming","mappers","gqlType","strapiScalarToGraphQLScalar","type","field","getScalarFilterInputTypeName","addRelationalAttribute","utils","extension","getFiltersInputTypeName","isMorphRelation","attributes","model","getModel","target","shadowCRUD","uid","isDisabled","addComponentAttribute","component","buildContentTypeFilters","contentType","isStrapiScalar","isRelation","isComponent","filtersTypeName","inputObjectType","name","definition","t","validAttributes","Object","entries","filter","contentTypes","isPrivateAttribute","hasFiltersEnabeld","isIDFilterEnabled","kind","operator","add"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../server/src/services/builders/filters/index.ts"],"sourcesContent":["import contentType from './content-type';\nimport type { Context } from '../../types';\n\nexport default (context: Context) => ({\n ...contentType(context),\n});\n"],"names":["context","contentType"],"mappings":";;;;AAGA,cAAe,CAAA,CAACA,OAAAA,IAAsB;AACpC,QAAA,GAAGC,YAAYD,OAAQ;AACzB,KAAA,CAAC;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../server/src/services/builders/filters/index.ts"],"sourcesContent":["import contentType from './content-type';\nimport type { Context } from '../../types';\n\nexport default (context: Context) => ({\n ...contentType(context),\n});\n"],"names":["context","contentType"],"mappings":";;AAGA,cAAe,CAAA,CAACA,OAAAA,IAAsB;AACpC,QAAA,GAAGC,YAAYD,OAAQ;AACzB,KAAA,CAAC;;;;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var nexus = require('nexus');
|
|
4
|
+
|
|
5
|
+
const AND_FIELD_NAME = 'and';
|
|
6
|
+
var andOperator = (()=>({
|
|
7
|
+
fieldName: AND_FIELD_NAME,
|
|
8
|
+
strapiOperator: '$and',
|
|
9
|
+
add (t, type) {
|
|
10
|
+
t.field(AND_FIELD_NAME, {
|
|
11
|
+
type: nexus.list(type)
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
}));
|
|
15
|
+
|
|
16
|
+
module.exports = andOperator;
|
|
17
|
+
//# sourceMappingURL=and.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"and.js","sources":["../../../../../../server/src/services/builders/filters/operators/and.ts"],"sourcesContent":["import { list } from 'nexus';\nimport type * as Nexus from 'nexus';\n\nconst AND_FIELD_NAME = 'and';\n\nexport default () => ({\n fieldName: AND_FIELD_NAME,\n\n strapiOperator: '$and',\n\n add(t: Nexus.blocks.ObjectDefinitionBlock<string>, type: string) {\n t.field(AND_FIELD_NAME, { type: list(type) });\n },\n});\n"],"names":["AND_FIELD_NAME","fieldName","strapiOperator","add","t","type","field","list"],"mappings":";;;;AAGA,MAAMA,cAAiB,GAAA,KAAA;AAEvB,kBAAe,CAAA,KAAO;QACpBC,SAAWD,EAAAA,cAAAA;QAEXE,cAAgB,EAAA,MAAA;QAEhBC,GAAIC,CAAAA,CAAAA,CAA6C,EAAEC,IAAY,EAAA;YAC7DD,CAAEE,CAAAA,KAAK,CAACN,cAAgB,EAAA;AAAEK,gBAAAA,IAAAA,EAAME,UAAKF,CAAAA,IAAAA;AAAM,aAAA,CAAA;AAC7C;AACF,KAAA,CAAC;;;;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { list } from 'nexus';
|
|
2
|
+
|
|
3
|
+
const AND_FIELD_NAME = 'and';
|
|
4
|
+
var andOperator = (()=>({
|
|
5
|
+
fieldName: AND_FIELD_NAME,
|
|
6
|
+
strapiOperator: '$and',
|
|
7
|
+
add (t, type) {
|
|
8
|
+
t.field(AND_FIELD_NAME, {
|
|
9
|
+
type: list(type)
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
}));
|
|
13
|
+
|
|
14
|
+
export { andOperator as default };
|
|
15
|
+
//# sourceMappingURL=and.mjs.map
|