@strapi/plugin-graphql 0.0.0-experimental.62ce06180fe9a772eaeb3d43d238b26644f39f7c → 0.0.0-experimental.6340da17068c3bed7fb006e7bcc554c71129e282
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/LICENSE +18 -3
- package/dist/admin/index.js +58 -167
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +54 -168
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/package.json.js +13 -0
- package/dist/admin/package.json.js.map +1 -0
- package/dist/admin/package.json.mjs +8 -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/translations/cs.json.js +10 -0
- package/dist/admin/translations/cs.json.js.map +1 -0
- package/dist/admin/translations/cs.json.mjs +8 -0
- package/dist/admin/translations/cs.json.mjs.map +1 -0
- package/dist/admin/translations/da.json.js +10 -0
- package/dist/admin/translations/da.json.js.map +1 -0
- package/dist/admin/translations/da.json.mjs +8 -0
- package/dist/admin/translations/da.json.mjs.map +1 -0
- package/dist/admin/translations/en.json.js +10 -0
- package/dist/admin/translations/en.json.js.map +1 -0
- package/dist/admin/translations/en.json.mjs +8 -0
- package/dist/admin/translations/en.json.mjs.map +1 -0
- package/dist/admin/translations/es.json.js +10 -0
- package/dist/admin/translations/es.json.js.map +1 -0
- package/dist/admin/translations/es.json.mjs +8 -0
- package/dist/admin/translations/es.json.mjs.map +1 -0
- package/dist/admin/translations/fr.json.js +10 -0
- package/dist/admin/translations/fr.json.js.map +1 -0
- package/dist/admin/translations/fr.json.mjs +8 -0
- package/dist/admin/translations/fr.json.mjs.map +1 -0
- package/dist/admin/translations/pl.json.js +10 -0
- package/dist/admin/translations/pl.json.js.map +1 -0
- package/dist/admin/translations/pl.json.mjs +8 -0
- package/dist/admin/translations/pl.json.mjs.map +1 -0
- package/dist/admin/translations/ru.json.js +10 -0
- package/dist/admin/translations/ru.json.js.map +1 -0
- package/dist/admin/translations/ru.json.mjs +8 -0
- package/dist/admin/translations/ru.json.mjs.map +1 -0
- package/dist/admin/translations/sk.json.js +10 -0
- package/dist/admin/translations/sk.json.js.map +1 -0
- package/dist/admin/translations/sk.json.mjs +8 -0
- package/dist/admin/translations/sk.json.mjs.map +1 -0
- package/dist/admin/translations/sv.json.js +10 -0
- package/dist/admin/translations/sv.json.js.map +1 -0
- package/dist/admin/translations/sv.json.mjs +8 -0
- package/dist/admin/translations/sv.json.mjs.map +1 -0
- package/dist/admin/translations/tr.json.js +10 -0
- package/dist/admin/translations/tr.json.js.map +1 -0
- package/dist/admin/translations/tr.json.mjs +8 -0
- package/dist/admin/translations/tr.json.mjs.map +1 -0
- package/dist/admin/translations/uk.json.js +10 -0
- package/dist/admin/translations/uk.json.js.map +1 -0
- package/dist/admin/translations/uk.json.mjs +8 -0
- package/dist/admin/translations/uk.json.mjs.map +1 -0
- package/dist/admin/translations/zh-Hans.json.js +10 -0
- package/dist/admin/translations/zh-Hans.json.js.map +1 -0
- package/dist/admin/translations/zh-Hans.json.mjs +8 -0
- package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
- package/dist/admin/translations/zh.json.js +10 -0
- package/dist/admin/translations/zh.json.js.map +1 -0
- package/dist/admin/translations/zh.json.mjs +8 -0
- 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 +221 -0
- package/dist/server/bootstrap.js.map +1 -0
- package/dist/server/bootstrap.mjs +212 -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 +12 -3112
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +11 -3092
- 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 +141 -0
- package/dist/server/services/builders/resolvers/association.js.map +1 -0
- package/dist/server/services/builders/resolvers/association.mjs +139 -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/merge-publication-args.js +23 -0
- package/dist/server/services/builders/resolvers/merge-publication-args.js.map +1 -0
- package/dist/server/services/builders/resolvers/merge-publication-args.mjs +21 -0
- package/dist/server/services/builders/resolvers/merge-publication-args.mjs.map +1 -0
- package/dist/server/services/builders/resolvers/pagination.js +40 -0
- package/dist/server/services/builders/resolvers/pagination.js.map +1 -0
- package/dist/server/services/builders/resolvers/pagination.mjs +38 -0
- package/dist/server/services/builders/resolvers/pagination.mjs.map +1 -0
- package/dist/server/services/builders/resolvers/query.js +62 -0
- package/dist/server/services/builders/resolvers/query.js.map +1 -0
- package/dist/server/services/builders/resolvers/query.mjs +60 -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 +345 -0
- package/dist/server/services/builders/type.js.map +1 -0
- package/dist/server/services/builders/type.mjs +343 -0
- package/dist/server/services/builders/type.mjs.map +1 -0
- package/dist/server/services/builders/utils.js +132 -0
- package/dist/server/services/builders/utils.js.map +1 -0
- package/dist/server/services/builders/utils.mjs +130 -0
- package/dist/server/services/builders/utils.mjs.map +1 -0
- package/dist/server/services/constants.js +141 -0
- package/dist/server/services/constants.js.map +1 -0
- package/dist/server/services/constants.mjs +139 -0
- package/dist/server/services/constants.mjs.map +1 -0
- package/dist/server/services/content-api/index.js +198 -0
- package/dist/server/services/content-api/index.js.map +1 -0
- package/dist/server/services/content-api/index.mjs +196 -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 +85 -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/has-published-version.js +11 -0
- package/dist/server/services/internals/args/has-published-version.js.map +1 -0
- package/dist/server/services/internals/args/has-published-version.mjs +9 -0
- package/dist/server/services/internals/args/has-published-version.mjs.map +1 -0
- package/dist/server/services/internals/args/index.js +18 -0
- package/dist/server/services/internals/args/index.js.map +1 -0
- package/dist/server/services/internals/args/index.mjs +16 -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-filter.js +13 -0
- package/dist/server/services/internals/args/publication-filter.js.map +1 -0
- package/dist/server/services/internals/args/publication-filter.mjs +11 -0
- package/dist/server/services/internals/args/publication-filter.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 +32 -0
- package/dist/server/services/internals/types/index.js.map +1 -0
- package/dist/server/services/internals/types/index.mjs +30 -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-filter.js +25 -0
- package/dist/server/services/internals/types/publication-filter.js.map +1 -0
- package/dist/server/services/internals/types/publication-filter.mjs +23 -0
- package/dist/server/services/internals/types/publication-filter.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/dist/server/src/bootstrap.d.ts +7 -0
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +35 -33
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/services/builders/dynamic-zones.d.ts.map +1 -1
- package/dist/server/src/services/builders/entity.d.ts.map +1 -1
- package/dist/server/src/services/builders/enums.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/content-type.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/index.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/and.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/between.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/contains.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/containsi.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/ends-with.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/eq.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/eqi.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/gt.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/gte.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/in.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/index.d.ts +0 -1
- package/dist/server/src/services/builders/filters/operators/index.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/lt.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/lte.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/ne.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/nei.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/not-contains.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/not-containsi.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/not-in.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/not-null.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/not.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/null.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/or.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/starts-with.d.ts.map +1 -1
- package/dist/server/src/services/builders/generic-morph.d.ts.map +1 -1
- package/dist/server/src/services/builders/index.d.ts +7 -14
- package/dist/server/src/services/builders/index.d.ts.map +1 -1
- package/dist/server/src/services/builders/input.d.ts.map +1 -1
- package/dist/server/src/services/builders/mutations/collection-type.d.ts.map +1 -1
- package/dist/server/src/services/builders/mutations/index.d.ts.map +1 -1
- package/dist/server/src/services/builders/mutations/single-type.d.ts.map +1 -1
- package/dist/server/src/services/builders/queries/collection-type.d.ts.map +1 -1
- package/dist/server/src/services/builders/queries/index.d.ts.map +1 -1
- package/dist/server/src/services/builders/queries/single-type.d.ts.map +1 -1
- package/dist/server/src/services/builders/relation-response-collection.d.ts.map +1 -1
- package/dist/server/src/services/builders/resolvers/association.d.ts +1 -1
- package/dist/server/src/services/builders/resolvers/association.d.ts.map +1 -1
- package/dist/server/src/services/builders/resolvers/component.d.ts.map +1 -1
- package/dist/server/src/services/builders/resolvers/dynamic-zone.d.ts.map +1 -1
- package/dist/server/src/services/builders/resolvers/index.d.ts +5 -5
- package/dist/server/src/services/builders/resolvers/index.d.ts.map +1 -1
- package/dist/server/src/services/builders/resolvers/merge-publication-args.d.ts +9 -0
- package/dist/server/src/services/builders/resolvers/merge-publication-args.d.ts.map +1 -0
- package/dist/server/src/services/builders/resolvers/pagination.d.ts.map +1 -1
- package/dist/server/src/services/builders/resolvers/query.d.ts.map +1 -1
- package/dist/server/src/services/builders/response-collection.d.ts.map +1 -1
- package/dist/server/src/services/builders/response.d.ts.map +1 -1
- package/dist/server/src/services/builders/type.d.ts.map +1 -1
- package/dist/server/src/services/builders/utils.d.ts +4 -11
- package/dist/server/src/services/builders/utils.d.ts.map +1 -1
- package/dist/server/src/services/constants.d.ts +1 -0
- package/dist/server/src/services/constants.d.ts.map +1 -1
- package/dist/server/src/services/content-api/index.d.ts +2 -0
- package/dist/server/src/services/content-api/index.d.ts.map +1 -1
- package/dist/server/src/services/content-api/policy.d.ts.map +1 -1
- package/dist/server/src/services/content-api/register-functions/collection-type.d.ts.map +1 -1
- package/dist/server/src/services/content-api/register-functions/component.d.ts.map +1 -1
- package/dist/server/src/services/content-api/register-functions/dynamic-zones.d.ts.map +1 -1
- package/dist/server/src/services/content-api/register-functions/enums.d.ts.map +1 -1
- package/dist/server/src/services/content-api/register-functions/filters.d.ts.map +1 -1
- package/dist/server/src/services/content-api/register-functions/inputs.d.ts.map +1 -1
- package/dist/server/src/services/content-api/register-functions/internals.d.ts.map +1 -1
- package/dist/server/src/services/content-api/register-functions/polymorphic.d.ts.map +1 -1
- package/dist/server/src/services/content-api/register-functions/scalars.d.ts.map +1 -1
- package/dist/server/src/services/content-api/register-functions/single-type.d.ts.map +1 -1
- package/dist/server/src/services/content-api/wrap-resolvers.d.ts.map +1 -1
- package/dist/server/src/services/extension/extension.d.ts +10 -10
- package/dist/server/src/services/extension/extension.d.ts.map +1 -1
- package/dist/server/src/services/extension/shadow-crud-manager.d.ts +9 -9
- package/dist/server/src/services/extension/shadow-crud-manager.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +35 -33
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/internals/args/has-published-version.d.ts +7 -0
- package/dist/server/src/services/internals/args/has-published-version.d.ts.map +1 -0
- package/dist/server/src/services/internals/args/index.d.ts +3 -0
- package/dist/server/src/services/internals/args/index.d.ts.map +1 -1
- package/dist/server/src/services/internals/args/publication-filter.d.ts +4 -0
- package/dist/server/src/services/internals/args/publication-filter.d.ts.map +1 -0
- package/dist/server/src/services/internals/args/publication-status.d.ts.map +1 -1
- package/dist/server/src/services/internals/helpers/get-enabled-scalars.d.ts.map +1 -1
- package/dist/server/src/services/internals/helpers/index.d.ts.map +1 -1
- package/dist/server/src/services/internals/index.d.ts +7 -0
- package/dist/server/src/services/internals/index.d.ts.map +1 -1
- package/dist/server/src/services/internals/types/delete-mutation-response.d.ts.map +1 -1
- package/dist/server/src/services/internals/types/error.d.ts.map +1 -1
- package/dist/server/src/services/internals/types/filters.d.ts.map +1 -1
- package/dist/server/src/services/internals/types/index.d.ts +5 -0
- package/dist/server/src/services/internals/types/index.d.ts.map +1 -1
- package/dist/server/src/services/internals/types/pagination.d.ts.map +1 -1
- package/dist/server/src/services/internals/types/publication-filter.d.ts +6 -0
- package/dist/server/src/services/internals/types/publication-filter.d.ts.map +1 -0
- package/dist/server/src/services/internals/types/publication-status.d.ts.map +1 -1
- package/dist/server/src/services/internals/types/response-collection-meta.d.ts.map +1 -1
- package/dist/server/src/services/type-registry.d.ts.map +1 -1
- package/dist/server/src/services/utils/attributes.d.ts.map +1 -1
- package/dist/server/src/services/utils/index.d.ts +8 -9
- package/dist/server/src/services/utils/index.d.ts.map +1 -1
- package/dist/server/src/services/utils/mappers/entity-to-response-entity.d.ts +1 -3
- package/dist/server/src/services/utils/mappers/entity-to-response-entity.d.ts.map +1 -1
- package/dist/server/src/services/utils/mappers/graphql-filters-to-strapi-query.d.ts.map +1 -1
- package/dist/server/src/services/utils/mappers/graphql-scalar-to-operators.d.ts.map +1 -1
- package/dist/server/src/services/utils/mappers/index.d.ts +1 -3
- package/dist/server/src/services/utils/mappers/index.d.ts.map +1 -1
- package/dist/server/src/services/utils/mappers/strapi-scalar-to-graphql-scalar.d.ts.map +1 -1
- package/dist/server/src/services/utils/naming.d.ts +3 -3
- package/dist/server/src/services/utils/naming.d.ts.map +1 -1
- package/dist/server/src/services/utils/playground.d.ts +1 -0
- package/dist/server/src/services/utils/playground.d.ts.map +1 -1
- package/package.json +30 -22
- package/dist/_chunks/dk-BbJCmDw6.mjs +0 -9
- package/dist/_chunks/dk-BbJCmDw6.mjs.map +0 -1
- package/dist/_chunks/dk-C9NcSzyg.js +0 -9
- package/dist/_chunks/dk-C9NcSzyg.js.map +0 -1
- package/dist/_chunks/en-BiKpmhCU.js +0 -9
- package/dist/_chunks/en-BiKpmhCU.js.map +0 -1
- package/dist/_chunks/en-YIQYYlvv.mjs +0 -9
- package/dist/_chunks/en-YIQYYlvv.mjs.map +0 -1
- package/dist/_chunks/es-BbsZ5Fh0.mjs +0 -9
- package/dist/_chunks/es-BbsZ5Fh0.mjs.map +0 -1
- package/dist/_chunks/es-DE22V9D4.js +0 -9
- package/dist/_chunks/es-DE22V9D4.js.map +0 -1
- package/dist/_chunks/fr-BgqFw7G8.mjs +0 -9
- package/dist/_chunks/fr-BgqFw7G8.mjs.map +0 -1
- package/dist/_chunks/fr-Ca-HowfR.js +0 -9
- package/dist/_chunks/fr-Ca-HowfR.js.map +0 -1
- package/dist/_chunks/pl-CbET57Jb.mjs +0 -9
- package/dist/_chunks/pl-CbET57Jb.mjs.map +0 -1
- package/dist/_chunks/pl-DVnJGR87.js +0 -9
- package/dist/_chunks/pl-DVnJGR87.js.map +0 -1
- package/dist/_chunks/ru-BFz40YSA.mjs +0 -9
- package/dist/_chunks/ru-BFz40YSA.mjs.map +0 -1
- package/dist/_chunks/ru-o4zaP02C.js +0 -9
- package/dist/_chunks/ru-o4zaP02C.js.map +0 -1
- package/dist/_chunks/sv-9qK4y9fb.js +0 -9
- package/dist/_chunks/sv-9qK4y9fb.js.map +0 -1
- package/dist/_chunks/sv-CNYcKBn2.mjs +0 -9
- package/dist/_chunks/sv-CNYcKBn2.mjs.map +0 -1
- package/dist/_chunks/tr-H1PrR6RM.mjs +0 -9
- package/dist/_chunks/tr-H1PrR6RM.mjs.map +0 -1
- package/dist/_chunks/tr-fBBDNMBY.js +0 -9
- package/dist/_chunks/tr-fBBDNMBY.js.map +0 -1
- package/dist/_chunks/zh-BEh3jejH.mjs +0 -9
- package/dist/_chunks/zh-BEh3jejH.mjs.map +0 -1
- package/dist/_chunks/zh-CyCKPuL0.js +0 -9
- package/dist/_chunks/zh-CyCKPuL0.js.map +0 -1
- package/dist/_chunks/zh-Hans-Btuz6Y7W.js +0 -9
- package/dist/_chunks/zh-Hans-Btuz6Y7W.js.map +0 -1
- package/dist/_chunks/zh-Hans-CRQss50D.mjs +0 -9
- package/dist/_chunks/zh-Hans-CRQss50D.mjs.map +0 -1
- package/strapi-server.js +0 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-collection-meta.mjs","sources":["../../../../../server/src/services/internals/types/response-collection-meta.ts"],"sourcesContent":["import { objectType } from 'nexus';\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { RESPONSE_COLLECTION_META_TYPE_NAME, PAGINATION_TYPE_NAME } = getService('constants');\n\n return {\n /**\n * A shared type definition used in EntitiesResponseCollection\n * to have information about the collection as a whole\n * @type {NexusObjectTypeDef}\n */\n ResponseCollectionMeta: objectType({\n name: RESPONSE_COLLECTION_META_TYPE_NAME,\n\n definition(t) {\n const { resolvePagination } = getService('builders').get('content-api');\n\n t.nonNull.field('pagination', {\n type: PAGINATION_TYPE_NAME,\n resolve: resolvePagination,\n });\n },\n }),\n };\n};\n"],"names":["strapi","service","getService","plugin","RESPONSE_COLLECTION_META_TYPE_NAME","PAGINATION_TYPE_NAME","ResponseCollectionMeta","objectType","name","definition","t","resolvePagination","get","nonNull","field","type","resolve"],"mappings":";;AAGA,kCAAe,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,kCAAkC,EAAEC,oBAAoB,EAAE,GAAGH,UAAAA,CAAW,WAAA,CAAA;IAEhF,OAAO;AACL;;;;AAIC,QACDI,wBAAwBC,UAAAA,CAAW;YACjCC,IAAAA,EAAMJ,kCAAAA;AAENK,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACV,gBAAA,MAAM,EAAEC,iBAAiB,EAAE,GAAGT,UAAAA,CAAW,UAAA,CAAA,CAAYU,GAAG,CAAC,aAAA,CAAA;AAEzDF,gBAAAA,CAAAA,CAAEG,OAAO,CAACC,KAAK,CAAC,YAAA,EAAc;oBAC5BC,IAAAA,EAAMV,oBAAAA;oBACNW,OAAAA,EAASL;AACX,iBAAA,CAAA;AACF,YAAA;AACF,SAAA;AACF,KAAA;AACF,CAAA;;;;"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var fp = require('lodash/fp');
|
|
4
|
+
var utils = require('@strapi/utils');
|
|
5
|
+
|
|
6
|
+
const { ApplicationError } = utils.errors;
|
|
7
|
+
/**
|
|
8
|
+
* Create a new type registry
|
|
9
|
+
*/ const createTypeRegistry = ()=>{
|
|
10
|
+
const registry = new Map();
|
|
11
|
+
const typeRegistry = {
|
|
12
|
+
/**
|
|
13
|
+
* Register a new type definition
|
|
14
|
+
*/ register (name, definition, config = {}) {
|
|
15
|
+
if (registry.has(name)) {
|
|
16
|
+
throw new ApplicationError(`"${name}" has already been registered`);
|
|
17
|
+
}
|
|
18
|
+
registry.set(name, {
|
|
19
|
+
name,
|
|
20
|
+
definition,
|
|
21
|
+
config
|
|
22
|
+
});
|
|
23
|
+
return this;
|
|
24
|
+
},
|
|
25
|
+
/**
|
|
26
|
+
* Register many types definitions at once
|
|
27
|
+
* @param {[string, NexusAcceptedTypeDef][]} definitionsEntries
|
|
28
|
+
* @param {object | function} [config]
|
|
29
|
+
*/ registerMany (definitionsEntries, config = {}) {
|
|
30
|
+
for (const [name, definition] of definitionsEntries){
|
|
31
|
+
this.register(name, definition, fp.isFunction(config) ? config(name, definition) : config);
|
|
32
|
+
}
|
|
33
|
+
return this;
|
|
34
|
+
},
|
|
35
|
+
/**
|
|
36
|
+
* Check if the given type name has already been added to the registry
|
|
37
|
+
* @param {string} name
|
|
38
|
+
* @return {boolean}
|
|
39
|
+
*/ has (name) {
|
|
40
|
+
return registry.has(name);
|
|
41
|
+
},
|
|
42
|
+
/**
|
|
43
|
+
* Get the type definition for `name`
|
|
44
|
+
* @param {string} name - The name of the type
|
|
45
|
+
*/ get (name) {
|
|
46
|
+
return registry.get(name);
|
|
47
|
+
},
|
|
48
|
+
/**
|
|
49
|
+
* Transform and return the registry as an object
|
|
50
|
+
* @return {Object<string, RegisteredTypeDef>}
|
|
51
|
+
*/ toObject () {
|
|
52
|
+
return Object.fromEntries(registry.entries());
|
|
53
|
+
},
|
|
54
|
+
/**
|
|
55
|
+
* Return the name of every registered type
|
|
56
|
+
* @return {string[]}
|
|
57
|
+
*/ get types () {
|
|
58
|
+
return Array.from(registry.keys());
|
|
59
|
+
},
|
|
60
|
+
/**
|
|
61
|
+
* Return all the registered definitions as an array
|
|
62
|
+
* @return {RegisteredTypeDef[]}
|
|
63
|
+
*/ get definitions () {
|
|
64
|
+
return Array.from(registry.values());
|
|
65
|
+
},
|
|
66
|
+
/**
|
|
67
|
+
* Filter and return the types definitions that matches the given predicate
|
|
68
|
+
* @param {function(RegisteredTypeDef): boolean} predicate
|
|
69
|
+
* @return {RegisteredTypeDef[]}
|
|
70
|
+
*/ where (predicate) {
|
|
71
|
+
return this.definitions.filter(predicate);
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
return typeRegistry;
|
|
75
|
+
};
|
|
76
|
+
var typeRegistry = (()=>({
|
|
77
|
+
new: createTypeRegistry
|
|
78
|
+
}));
|
|
79
|
+
|
|
80
|
+
module.exports = typeRegistry;
|
|
81
|
+
//# sourceMappingURL=type-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-registry.js","sources":["../../../server/src/services/type-registry.ts"],"sourcesContent":["import { isFunction } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\n\nconst { ApplicationError } = errors;\n\nexport type TypeRegistry = {\n register(name: string, definition: any, config?: object): TypeRegistry;\n registerMany(\n definitionsEntries: [string, any][],\n config?: object | ((...args: any[]) => any)\n ): TypeRegistry;\n has(name: string): boolean;\n get(name: string): any;\n toObject(): Record<string, any>;\n types: string[];\n definitions: any[];\n where(predicate: (item: any) => boolean): any[];\n};\n\n/**\n * Create a new type registry\n */\nconst createTypeRegistry = (): TypeRegistry => {\n const registry = new Map();\n\n const typeRegistry: TypeRegistry = {\n /**\n * Register a new type definition\n */\n register(name, definition, config = {}) {\n if (registry.has(name)) {\n throw new ApplicationError(`\"${name}\" has already been registered`);\n }\n\n registry.set(name, { name, definition, config });\n\n return this;\n },\n\n /**\n * Register many types definitions at once\n * @param {[string, NexusAcceptedTypeDef][]} definitionsEntries\n * @param {object | function} [config]\n */\n registerMany(definitionsEntries, config = {}) {\n for (const [name, definition] of definitionsEntries) {\n this.register(name, definition, isFunction(config) ? config(name, definition) : config);\n }\n\n return this;\n },\n\n /**\n * Check if the given type name has already been added to the registry\n * @param {string} name\n * @return {boolean}\n */\n has(name) {\n return registry.has(name);\n },\n\n /**\n * Get the type definition for `name`\n * @param {string} name - The name of the type\n */\n get(name) {\n return registry.get(name);\n },\n\n /**\n * Transform and return the registry as an object\n * @return {Object<string, RegisteredTypeDef>}\n */\n toObject() {\n return Object.fromEntries(registry.entries());\n },\n\n /**\n * Return the name of every registered type\n * @return {string[]}\n */\n get types() {\n return Array.from(registry.keys());\n },\n\n /**\n * Return all the registered definitions as an array\n * @return {RegisteredTypeDef[]}\n */\n get definitions() {\n return Array.from(registry.values());\n },\n\n /**\n * Filter and return the types definitions that matches the given predicate\n * @param {function(RegisteredTypeDef): boolean} predicate\n * @return {RegisteredTypeDef[]}\n */\n where(predicate) {\n return this.definitions.filter(predicate);\n },\n };\n\n return typeRegistry;\n};\n\nexport default () => ({\n new: createTypeRegistry,\n});\n"],"names":["ApplicationError","errors","createTypeRegistry","registry","Map","typeRegistry","register","name","definition","config","has","set","registerMany","definitionsEntries","isFunction","get","toObject","Object","fromEntries","entries","types","Array","from","keys","definitions","values","where","predicate","filter","new"],"mappings":";;;;;AAGA,MAAM,EAAEA,gBAAgB,EAAE,GAAGC,YAAAA;AAgB7B;;AAEC,IACD,MAAMC,kBAAAA,GAAqB,IAAA;AACzB,IAAA,MAAMC,WAAW,IAAIC,GAAAA,EAAAA;AAErB,IAAA,MAAMC,YAAAA,GAA6B;AACjC;;AAEC,QACDC,UAASC,IAAI,EAAEC,UAAU,EAAEC,MAAAA,GAAS,EAAE,EAAA;YACpC,IAAIN,QAAAA,CAASO,GAAG,CAACH,IAAAA,CAAAA,EAAO;AACtB,gBAAA,MAAM,IAAIP,gBAAAA,CAAiB,CAAC,CAAC,EAAEO,IAAAA,CAAK,6BAA6B,CAAC,CAAA;AACpE,YAAA;YAEAJ,QAAAA,CAASQ,GAAG,CAACJ,IAAAA,EAAM;AAAEA,gBAAAA,IAAAA;AAAMC,gBAAAA,UAAAA;AAAYC,gBAAAA;AAAO,aAAA,CAAA;AAE9C,YAAA,OAAO,IAAI;AACb,QAAA,CAAA;AAEA;;;;AAIC,QACDG,YAAAA,CAAAA,CAAaC,kBAAkB,EAAEJ,MAAAA,GAAS,EAAE,EAAA;AAC1C,YAAA,KAAK,MAAM,CAACF,IAAAA,EAAMC,UAAAA,CAAW,IAAIK,kBAAAA,CAAoB;gBACnD,IAAI,CAACP,QAAQ,CAACC,IAAAA,EAAMC,YAAYM,aAAAA,CAAWL,MAAAA,CAAAA,GAAUA,MAAAA,CAAOF,IAAAA,EAAMC,UAAAA,CAAAA,GAAcC,MAAAA,CAAAA;AAClF,YAAA;AAEA,YAAA,OAAO,IAAI;AACb,QAAA,CAAA;AAEA;;;;AAIC,QACDC,KAAIH,IAAI,EAAA;YACN,OAAOJ,QAAAA,CAASO,GAAG,CAACH,IAAAA,CAAAA;AACtB,QAAA,CAAA;AAEA;;;AAGC,QACDQ,KAAIR,IAAI,EAAA;YACN,OAAOJ,QAAAA,CAASY,GAAG,CAACR,IAAAA,CAAAA;AACtB,QAAA,CAAA;AAEA;;;QAIAS,QAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOC,MAAAA,CAAOC,WAAW,CAACf,QAAAA,CAASgB,OAAO,EAAA,CAAA;AAC5C,QAAA,CAAA;AAEA;;;AAGC,QACD,IAAIC,KAAAA,CAAAA,GAAQ;AACV,YAAA,OAAOC,KAAAA,CAAMC,IAAI,CAACnB,QAAAA,CAASoB,IAAI,EAAA,CAAA;AACjC,QAAA,CAAA;AAEA;;;AAGC,QACD,IAAIC,WAAAA,CAAAA,GAAc;AAChB,YAAA,OAAOH,KAAAA,CAAMC,IAAI,CAACnB,QAAAA,CAASsB,MAAM,EAAA,CAAA;AACnC,QAAA,CAAA;AAEA;;;;AAIC,QACDC,OAAMC,SAAS,EAAA;AACb,YAAA,OAAO,IAAI,CAACH,WAAW,CAACI,MAAM,CAACD,SAAAA,CAAAA;AACjC,QAAA;AACF,KAAA;IAEA,OAAOtB,YAAAA;AACT,CAAA;AAEA,mBAAe,CAAA,KAAO;QACpBwB,GAAAA,EAAK3B;AACP,KAAA,CAAC;;;;"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { isFunction } from 'lodash/fp';
|
|
2
|
+
import { errors } from '@strapi/utils';
|
|
3
|
+
|
|
4
|
+
const { ApplicationError } = errors;
|
|
5
|
+
/**
|
|
6
|
+
* Create a new type registry
|
|
7
|
+
*/ const createTypeRegistry = ()=>{
|
|
8
|
+
const registry = new Map();
|
|
9
|
+
const typeRegistry = {
|
|
10
|
+
/**
|
|
11
|
+
* Register a new type definition
|
|
12
|
+
*/ register (name, definition, config = {}) {
|
|
13
|
+
if (registry.has(name)) {
|
|
14
|
+
throw new ApplicationError(`"${name}" has already been registered`);
|
|
15
|
+
}
|
|
16
|
+
registry.set(name, {
|
|
17
|
+
name,
|
|
18
|
+
definition,
|
|
19
|
+
config
|
|
20
|
+
});
|
|
21
|
+
return this;
|
|
22
|
+
},
|
|
23
|
+
/**
|
|
24
|
+
* Register many types definitions at once
|
|
25
|
+
* @param {[string, NexusAcceptedTypeDef][]} definitionsEntries
|
|
26
|
+
* @param {object | function} [config]
|
|
27
|
+
*/ registerMany (definitionsEntries, config = {}) {
|
|
28
|
+
for (const [name, definition] of definitionsEntries){
|
|
29
|
+
this.register(name, definition, isFunction(config) ? config(name, definition) : config);
|
|
30
|
+
}
|
|
31
|
+
return this;
|
|
32
|
+
},
|
|
33
|
+
/**
|
|
34
|
+
* Check if the given type name has already been added to the registry
|
|
35
|
+
* @param {string} name
|
|
36
|
+
* @return {boolean}
|
|
37
|
+
*/ has (name) {
|
|
38
|
+
return registry.has(name);
|
|
39
|
+
},
|
|
40
|
+
/**
|
|
41
|
+
* Get the type definition for `name`
|
|
42
|
+
* @param {string} name - The name of the type
|
|
43
|
+
*/ get (name) {
|
|
44
|
+
return registry.get(name);
|
|
45
|
+
},
|
|
46
|
+
/**
|
|
47
|
+
* Transform and return the registry as an object
|
|
48
|
+
* @return {Object<string, RegisteredTypeDef>}
|
|
49
|
+
*/ toObject () {
|
|
50
|
+
return Object.fromEntries(registry.entries());
|
|
51
|
+
},
|
|
52
|
+
/**
|
|
53
|
+
* Return the name of every registered type
|
|
54
|
+
* @return {string[]}
|
|
55
|
+
*/ get types () {
|
|
56
|
+
return Array.from(registry.keys());
|
|
57
|
+
},
|
|
58
|
+
/**
|
|
59
|
+
* Return all the registered definitions as an array
|
|
60
|
+
* @return {RegisteredTypeDef[]}
|
|
61
|
+
*/ get definitions () {
|
|
62
|
+
return Array.from(registry.values());
|
|
63
|
+
},
|
|
64
|
+
/**
|
|
65
|
+
* Filter and return the types definitions that matches the given predicate
|
|
66
|
+
* @param {function(RegisteredTypeDef): boolean} predicate
|
|
67
|
+
* @return {RegisteredTypeDef[]}
|
|
68
|
+
*/ where (predicate) {
|
|
69
|
+
return this.definitions.filter(predicate);
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
return typeRegistry;
|
|
73
|
+
};
|
|
74
|
+
var typeRegistry = (()=>({
|
|
75
|
+
new: createTypeRegistry
|
|
76
|
+
}));
|
|
77
|
+
|
|
78
|
+
export { typeRegistry as default };
|
|
79
|
+
//# sourceMappingURL=type-registry.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-registry.mjs","sources":["../../../server/src/services/type-registry.ts"],"sourcesContent":["import { isFunction } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\n\nconst { ApplicationError } = errors;\n\nexport type TypeRegistry = {\n register(name: string, definition: any, config?: object): TypeRegistry;\n registerMany(\n definitionsEntries: [string, any][],\n config?: object | ((...args: any[]) => any)\n ): TypeRegistry;\n has(name: string): boolean;\n get(name: string): any;\n toObject(): Record<string, any>;\n types: string[];\n definitions: any[];\n where(predicate: (item: any) => boolean): any[];\n};\n\n/**\n * Create a new type registry\n */\nconst createTypeRegistry = (): TypeRegistry => {\n const registry = new Map();\n\n const typeRegistry: TypeRegistry = {\n /**\n * Register a new type definition\n */\n register(name, definition, config = {}) {\n if (registry.has(name)) {\n throw new ApplicationError(`\"${name}\" has already been registered`);\n }\n\n registry.set(name, { name, definition, config });\n\n return this;\n },\n\n /**\n * Register many types definitions at once\n * @param {[string, NexusAcceptedTypeDef][]} definitionsEntries\n * @param {object | function} [config]\n */\n registerMany(definitionsEntries, config = {}) {\n for (const [name, definition] of definitionsEntries) {\n this.register(name, definition, isFunction(config) ? config(name, definition) : config);\n }\n\n return this;\n },\n\n /**\n * Check if the given type name has already been added to the registry\n * @param {string} name\n * @return {boolean}\n */\n has(name) {\n return registry.has(name);\n },\n\n /**\n * Get the type definition for `name`\n * @param {string} name - The name of the type\n */\n get(name) {\n return registry.get(name);\n },\n\n /**\n * Transform and return the registry as an object\n * @return {Object<string, RegisteredTypeDef>}\n */\n toObject() {\n return Object.fromEntries(registry.entries());\n },\n\n /**\n * Return the name of every registered type\n * @return {string[]}\n */\n get types() {\n return Array.from(registry.keys());\n },\n\n /**\n * Return all the registered definitions as an array\n * @return {RegisteredTypeDef[]}\n */\n get definitions() {\n return Array.from(registry.values());\n },\n\n /**\n * Filter and return the types definitions that matches the given predicate\n * @param {function(RegisteredTypeDef): boolean} predicate\n * @return {RegisteredTypeDef[]}\n */\n where(predicate) {\n return this.definitions.filter(predicate);\n },\n };\n\n return typeRegistry;\n};\n\nexport default () => ({\n new: createTypeRegistry,\n});\n"],"names":["ApplicationError","errors","createTypeRegistry","registry","Map","typeRegistry","register","name","definition","config","has","set","registerMany","definitionsEntries","isFunction","get","toObject","Object","fromEntries","entries","types","Array","from","keys","definitions","values","where","predicate","filter","new"],"mappings":";;;AAGA,MAAM,EAAEA,gBAAgB,EAAE,GAAGC,MAAAA;AAgB7B;;AAEC,IACD,MAAMC,kBAAAA,GAAqB,IAAA;AACzB,IAAA,MAAMC,WAAW,IAAIC,GAAAA,EAAAA;AAErB,IAAA,MAAMC,YAAAA,GAA6B;AACjC;;AAEC,QACDC,UAASC,IAAI,EAAEC,UAAU,EAAEC,MAAAA,GAAS,EAAE,EAAA;YACpC,IAAIN,QAAAA,CAASO,GAAG,CAACH,IAAAA,CAAAA,EAAO;AACtB,gBAAA,MAAM,IAAIP,gBAAAA,CAAiB,CAAC,CAAC,EAAEO,IAAAA,CAAK,6BAA6B,CAAC,CAAA;AACpE,YAAA;YAEAJ,QAAAA,CAASQ,GAAG,CAACJ,IAAAA,EAAM;AAAEA,gBAAAA,IAAAA;AAAMC,gBAAAA,UAAAA;AAAYC,gBAAAA;AAAO,aAAA,CAAA;AAE9C,YAAA,OAAO,IAAI;AACb,QAAA,CAAA;AAEA;;;;AAIC,QACDG,YAAAA,CAAAA,CAAaC,kBAAkB,EAAEJ,MAAAA,GAAS,EAAE,EAAA;AAC1C,YAAA,KAAK,MAAM,CAACF,IAAAA,EAAMC,UAAAA,CAAW,IAAIK,kBAAAA,CAAoB;gBACnD,IAAI,CAACP,QAAQ,CAACC,IAAAA,EAAMC,YAAYM,UAAAA,CAAWL,MAAAA,CAAAA,GAAUA,MAAAA,CAAOF,IAAAA,EAAMC,UAAAA,CAAAA,GAAcC,MAAAA,CAAAA;AAClF,YAAA;AAEA,YAAA,OAAO,IAAI;AACb,QAAA,CAAA;AAEA;;;;AAIC,QACDC,KAAIH,IAAI,EAAA;YACN,OAAOJ,QAAAA,CAASO,GAAG,CAACH,IAAAA,CAAAA;AACtB,QAAA,CAAA;AAEA;;;AAGC,QACDQ,KAAIR,IAAI,EAAA;YACN,OAAOJ,QAAAA,CAASY,GAAG,CAACR,IAAAA,CAAAA;AACtB,QAAA,CAAA;AAEA;;;QAIAS,QAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOC,MAAAA,CAAOC,WAAW,CAACf,QAAAA,CAASgB,OAAO,EAAA,CAAA;AAC5C,QAAA,CAAA;AAEA;;;AAGC,QACD,IAAIC,KAAAA,CAAAA,GAAQ;AACV,YAAA,OAAOC,KAAAA,CAAMC,IAAI,CAACnB,QAAAA,CAASoB,IAAI,EAAA,CAAA;AACjC,QAAA,CAAA;AAEA;;;AAGC,QACD,IAAIC,WAAAA,CAAAA,GAAc;AAChB,YAAA,OAAOH,KAAAA,CAAMC,IAAI,CAACnB,QAAAA,CAASsB,MAAM,EAAA,CAAA;AACnC,QAAA,CAAA;AAEA;;;;AAIC,QACDC,OAAMC,SAAS,EAAA;AACb,YAAA,OAAO,IAAI,CAACH,WAAW,CAACI,MAAM,CAACD,SAAAA,CAAAA;AACjC,QAAA;AACF,KAAA;IAEA,OAAOtB,YAAAA;AACT,CAAA;AAEA,mBAAe,CAAA,KAAO;QACpBwB,GAAAA,EAAK3B;AACP,KAAA,CAAC;;;;"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var fp = require('lodash/fp');
|
|
4
|
+
|
|
5
|
+
var attributes = (({ strapi })=>{
|
|
6
|
+
/**
|
|
7
|
+
* Check if the given attribute is a Strapi scalar
|
|
8
|
+
* @param {object} attribute
|
|
9
|
+
* @return {boolean}
|
|
10
|
+
*/ const isStrapiScalar = (attribute)=>{
|
|
11
|
+
return strapi.plugin('graphql').service('constants').STRAPI_SCALARS.includes(attribute.type);
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Check if the given attribute is a GraphQL scalar
|
|
15
|
+
* @param {object} attribute
|
|
16
|
+
* @return {boolean}
|
|
17
|
+
*/ const isGraphQLScalar = (attribute)=>{
|
|
18
|
+
return strapi.plugin('graphql').service('constants').GRAPHQL_SCALARS.includes(attribute.type);
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Check if the given attribute is a polymorphic relation
|
|
22
|
+
* @param {object} attribute
|
|
23
|
+
* @return {boolean}
|
|
24
|
+
*/ const isMorphRelation = (attribute)=>{
|
|
25
|
+
return attribute.type === 'relation' && attribute.relation.includes('morph');
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Check if the given attribute is a media
|
|
29
|
+
* @param {object} attribute
|
|
30
|
+
* @return {boolean}
|
|
31
|
+
*/ const isMedia = fp.propEq('type', 'media');
|
|
32
|
+
/**
|
|
33
|
+
* Check if the given attribute is a relation
|
|
34
|
+
* @param {object} attribute
|
|
35
|
+
* @return {boolean}
|
|
36
|
+
*/ const isRelation = fp.propEq('type', 'relation');
|
|
37
|
+
/**
|
|
38
|
+
* Check if the given attribute is an enum
|
|
39
|
+
* @param {object} attribute
|
|
40
|
+
* @return {boolean}
|
|
41
|
+
*/ const isEnumeration = fp.propEq('type', 'enumeration');
|
|
42
|
+
/**
|
|
43
|
+
* Check if the given attribute is a component
|
|
44
|
+
* @param {object} attribute
|
|
45
|
+
* @return {boolean}
|
|
46
|
+
*/ const isComponent = fp.propEq('type', 'component');
|
|
47
|
+
/**
|
|
48
|
+
* Check if the given attribute is a dynamic zone
|
|
49
|
+
* @param {object} attribute
|
|
50
|
+
* @return {boolean}
|
|
51
|
+
*/ const isDynamicZone = fp.propEq('type', 'dynamiczone');
|
|
52
|
+
return {
|
|
53
|
+
isStrapiScalar,
|
|
54
|
+
isGraphQLScalar,
|
|
55
|
+
isMorphRelation,
|
|
56
|
+
isMedia,
|
|
57
|
+
isRelation,
|
|
58
|
+
isEnumeration,
|
|
59
|
+
isComponent,
|
|
60
|
+
isDynamicZone
|
|
61
|
+
};
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
module.exports = attributes;
|
|
65
|
+
//# sourceMappingURL=attributes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attributes.js","sources":["../../../../server/src/services/utils/attributes.ts"],"sourcesContent":["import { propEq } from 'lodash/fp';\nimport type { Schema } from '@strapi/types';\nimport type { Context } from '../types';\n\nexport default ({ strapi }: Context) => {\n /**\n * Check if the given attribute is a Strapi scalar\n * @param {object} attribute\n * @return {boolean}\n */\n const isStrapiScalar = (attribute: Schema.Attribute.AnyAttribute) => {\n return strapi.plugin('graphql').service('constants').STRAPI_SCALARS.includes(attribute.type);\n };\n\n /**\n * Check if the given attribute is a GraphQL scalar\n * @param {object} attribute\n * @return {boolean}\n */\n const isGraphQLScalar = (attribute: Schema.Attribute.AnyAttribute) => {\n return strapi.plugin('graphql').service('constants').GRAPHQL_SCALARS.includes(attribute.type);\n };\n\n /**\n * Check if the given attribute is a polymorphic relation\n * @param {object} attribute\n * @return {boolean}\n */\n const isMorphRelation = (attribute: Schema.Attribute.AnyAttribute) => {\n return attribute.type === 'relation' && attribute.relation.includes('morph');\n };\n\n /**\n * Check if the given attribute is a media\n * @param {object} attribute\n * @return {boolean}\n */\n const isMedia = propEq('type', 'media');\n\n /**\n * Check if the given attribute is a relation\n * @param {object} attribute\n * @return {boolean}\n */\n const isRelation = propEq('type', 'relation');\n\n /**\n * Check if the given attribute is an enum\n * @param {object} attribute\n * @return {boolean}\n */\n const isEnumeration = propEq('type', 'enumeration');\n\n /**\n * Check if the given attribute is a component\n * @param {object} attribute\n * @return {boolean}\n */\n const isComponent = propEq('type', 'component');\n\n /**\n * Check if the given attribute is a dynamic zone\n * @param {object} attribute\n * @return {boolean}\n */\n const isDynamicZone = propEq('type', 'dynamiczone');\n\n return {\n isStrapiScalar,\n isGraphQLScalar,\n isMorphRelation,\n isMedia,\n isRelation,\n isEnumeration,\n isComponent,\n isDynamicZone,\n };\n};\n"],"names":["strapi","isStrapiScalar","attribute","plugin","service","STRAPI_SCALARS","includes","type","isGraphQLScalar","GRAPHQL_SCALARS","isMorphRelation","relation","isMedia","propEq","isRelation","isEnumeration","isComponent","isDynamicZone"],"mappings":";;;;AAIA,iBAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,GAAA;AACjC;;;;MAKA,MAAMC,iBAAiB,CAACC,SAAAA,GAAAA;AACtB,QAAA,OAAOF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,WAAA,CAAA,CAAaC,cAAc,CAACC,QAAQ,CAACJ,SAAAA,CAAUK,IAAI,CAAA;AAC7F,IAAA,CAAA;AAEA;;;;MAKA,MAAMC,kBAAkB,CAACN,SAAAA,GAAAA;AACvB,QAAA,OAAOF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,WAAA,CAAA,CAAaK,eAAe,CAACH,QAAQ,CAACJ,SAAAA,CAAUK,IAAI,CAAA;AAC9F,IAAA,CAAA;AAEA;;;;MAKA,MAAMG,kBAAkB,CAACR,SAAAA,GAAAA;QACvB,OAAOA,SAAAA,CAAUK,IAAI,KAAK,UAAA,IAAcL,UAAUS,QAAQ,CAACL,QAAQ,CAAC,OAAA,CAAA;AACtE,IAAA,CAAA;AAEA;;;;MAKA,MAAMM,OAAAA,GAAUC,SAAAA,CAAO,MAAA,EAAQ,OAAA,CAAA;AAE/B;;;;MAKA,MAAMC,UAAAA,GAAaD,SAAAA,CAAO,MAAA,EAAQ,UAAA,CAAA;AAElC;;;;MAKA,MAAME,aAAAA,GAAgBF,SAAAA,CAAO,MAAA,EAAQ,aAAA,CAAA;AAErC;;;;MAKA,MAAMG,WAAAA,GAAcH,SAAAA,CAAO,MAAA,EAAQ,WAAA,CAAA;AAEnC;;;;MAKA,MAAMI,aAAAA,GAAgBJ,SAAAA,CAAO,MAAA,EAAQ,aAAA,CAAA;IAErC,OAAO;AACLZ,QAAAA,cAAAA;AACAO,QAAAA,eAAAA;AACAE,QAAAA,eAAAA;AACAE,QAAAA,OAAAA;AACAE,QAAAA,UAAAA;AACAC,QAAAA,aAAAA;AACAC,QAAAA,WAAAA;AACAC,QAAAA;AACF,KAAA;AACF,CAAA;;;;"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { propEq } from 'lodash/fp';
|
|
2
|
+
|
|
3
|
+
var attributes = (({ strapi })=>{
|
|
4
|
+
/**
|
|
5
|
+
* Check if the given attribute is a Strapi scalar
|
|
6
|
+
* @param {object} attribute
|
|
7
|
+
* @return {boolean}
|
|
8
|
+
*/ const isStrapiScalar = (attribute)=>{
|
|
9
|
+
return strapi.plugin('graphql').service('constants').STRAPI_SCALARS.includes(attribute.type);
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Check if the given attribute is a GraphQL scalar
|
|
13
|
+
* @param {object} attribute
|
|
14
|
+
* @return {boolean}
|
|
15
|
+
*/ const isGraphQLScalar = (attribute)=>{
|
|
16
|
+
return strapi.plugin('graphql').service('constants').GRAPHQL_SCALARS.includes(attribute.type);
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Check if the given attribute is a polymorphic relation
|
|
20
|
+
* @param {object} attribute
|
|
21
|
+
* @return {boolean}
|
|
22
|
+
*/ const isMorphRelation = (attribute)=>{
|
|
23
|
+
return attribute.type === 'relation' && attribute.relation.includes('morph');
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Check if the given attribute is a media
|
|
27
|
+
* @param {object} attribute
|
|
28
|
+
* @return {boolean}
|
|
29
|
+
*/ const isMedia = propEq('type', 'media');
|
|
30
|
+
/**
|
|
31
|
+
* Check if the given attribute is a relation
|
|
32
|
+
* @param {object} attribute
|
|
33
|
+
* @return {boolean}
|
|
34
|
+
*/ const isRelation = propEq('type', 'relation');
|
|
35
|
+
/**
|
|
36
|
+
* Check if the given attribute is an enum
|
|
37
|
+
* @param {object} attribute
|
|
38
|
+
* @return {boolean}
|
|
39
|
+
*/ const isEnumeration = propEq('type', 'enumeration');
|
|
40
|
+
/**
|
|
41
|
+
* Check if the given attribute is a component
|
|
42
|
+
* @param {object} attribute
|
|
43
|
+
* @return {boolean}
|
|
44
|
+
*/ const isComponent = propEq('type', 'component');
|
|
45
|
+
/**
|
|
46
|
+
* Check if the given attribute is a dynamic zone
|
|
47
|
+
* @param {object} attribute
|
|
48
|
+
* @return {boolean}
|
|
49
|
+
*/ const isDynamicZone = propEq('type', 'dynamiczone');
|
|
50
|
+
return {
|
|
51
|
+
isStrapiScalar,
|
|
52
|
+
isGraphQLScalar,
|
|
53
|
+
isMorphRelation,
|
|
54
|
+
isMedia,
|
|
55
|
+
isRelation,
|
|
56
|
+
isEnumeration,
|
|
57
|
+
isComponent,
|
|
58
|
+
isDynamicZone
|
|
59
|
+
};
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
export { attributes as default };
|
|
63
|
+
//# sourceMappingURL=attributes.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attributes.mjs","sources":["../../../../server/src/services/utils/attributes.ts"],"sourcesContent":["import { propEq } from 'lodash/fp';\nimport type { Schema } from '@strapi/types';\nimport type { Context } from '../types';\n\nexport default ({ strapi }: Context) => {\n /**\n * Check if the given attribute is a Strapi scalar\n * @param {object} attribute\n * @return {boolean}\n */\n const isStrapiScalar = (attribute: Schema.Attribute.AnyAttribute) => {\n return strapi.plugin('graphql').service('constants').STRAPI_SCALARS.includes(attribute.type);\n };\n\n /**\n * Check if the given attribute is a GraphQL scalar\n * @param {object} attribute\n * @return {boolean}\n */\n const isGraphQLScalar = (attribute: Schema.Attribute.AnyAttribute) => {\n return strapi.plugin('graphql').service('constants').GRAPHQL_SCALARS.includes(attribute.type);\n };\n\n /**\n * Check if the given attribute is a polymorphic relation\n * @param {object} attribute\n * @return {boolean}\n */\n const isMorphRelation = (attribute: Schema.Attribute.AnyAttribute) => {\n return attribute.type === 'relation' && attribute.relation.includes('morph');\n };\n\n /**\n * Check if the given attribute is a media\n * @param {object} attribute\n * @return {boolean}\n */\n const isMedia = propEq('type', 'media');\n\n /**\n * Check if the given attribute is a relation\n * @param {object} attribute\n * @return {boolean}\n */\n const isRelation = propEq('type', 'relation');\n\n /**\n * Check if the given attribute is an enum\n * @param {object} attribute\n * @return {boolean}\n */\n const isEnumeration = propEq('type', 'enumeration');\n\n /**\n * Check if the given attribute is a component\n * @param {object} attribute\n * @return {boolean}\n */\n const isComponent = propEq('type', 'component');\n\n /**\n * Check if the given attribute is a dynamic zone\n * @param {object} attribute\n * @return {boolean}\n */\n const isDynamicZone = propEq('type', 'dynamiczone');\n\n return {\n isStrapiScalar,\n isGraphQLScalar,\n isMorphRelation,\n isMedia,\n isRelation,\n isEnumeration,\n isComponent,\n isDynamicZone,\n };\n};\n"],"names":["strapi","isStrapiScalar","attribute","plugin","service","STRAPI_SCALARS","includes","type","isGraphQLScalar","GRAPHQL_SCALARS","isMorphRelation","relation","isMedia","propEq","isRelation","isEnumeration","isComponent","isDynamicZone"],"mappings":";;AAIA,iBAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,GAAA;AACjC;;;;MAKA,MAAMC,iBAAiB,CAACC,SAAAA,GAAAA;AACtB,QAAA,OAAOF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,WAAA,CAAA,CAAaC,cAAc,CAACC,QAAQ,CAACJ,SAAAA,CAAUK,IAAI,CAAA;AAC7F,IAAA,CAAA;AAEA;;;;MAKA,MAAMC,kBAAkB,CAACN,SAAAA,GAAAA;AACvB,QAAA,OAAOF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,WAAA,CAAA,CAAaK,eAAe,CAACH,QAAQ,CAACJ,SAAAA,CAAUK,IAAI,CAAA;AAC9F,IAAA,CAAA;AAEA;;;;MAKA,MAAMG,kBAAkB,CAACR,SAAAA,GAAAA;QACvB,OAAOA,SAAAA,CAAUK,IAAI,KAAK,UAAA,IAAcL,UAAUS,QAAQ,CAACL,QAAQ,CAAC,OAAA,CAAA;AACtE,IAAA,CAAA;AAEA;;;;MAKA,MAAMM,OAAAA,GAAUC,MAAAA,CAAO,MAAA,EAAQ,OAAA,CAAA;AAE/B;;;;MAKA,MAAMC,UAAAA,GAAaD,MAAAA,CAAO,MAAA,EAAQ,UAAA,CAAA;AAElC;;;;MAKA,MAAME,aAAAA,GAAgBF,MAAAA,CAAO,MAAA,EAAQ,aAAA,CAAA;AAErC;;;;MAKA,MAAMG,WAAAA,GAAcH,MAAAA,CAAO,MAAA,EAAQ,WAAA,CAAA;AAEnC;;;;MAKA,MAAMI,aAAAA,GAAgBJ,MAAAA,CAAO,MAAA,EAAQ,aAAA,CAAA;IAErC,OAAO;AACLZ,QAAAA,cAAAA;AACAO,QAAAA,eAAAA;AACAE,QAAAA,eAAAA;AACAE,QAAAA,OAAAA;AACAE,QAAAA,UAAAA;AACAC,QAAAA,aAAAA;AACAC,QAAAA,WAAAA;AACAC,QAAAA;AACF,KAAA;AACF,CAAA;;;;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./mappers/index.js');
|
|
4
|
+
var attributes = require('./attributes.js');
|
|
5
|
+
var naming = require('./naming.js');
|
|
6
|
+
var playground = require('./playground.js');
|
|
7
|
+
|
|
8
|
+
var utils = ((context)=>({
|
|
9
|
+
playground: playground(),
|
|
10
|
+
naming: naming(context),
|
|
11
|
+
attributes: attributes(context),
|
|
12
|
+
mappers: index(context)
|
|
13
|
+
}));
|
|
14
|
+
|
|
15
|
+
module.exports = utils;
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../server/src/services/utils/index.ts"],"sourcesContent":["import mappers from './mappers';\nimport attributes from './attributes';\nimport naming from './naming';\nimport playground from './playground';\n\nimport type { Context } from '../types';\n\nexport default (context: Context) => ({\n playground: playground(context),\n naming: naming(context),\n attributes: attributes(context),\n mappers: mappers(context),\n});\n"],"names":["context","playground","naming","attributes","mappers"],"mappings":";;;;;;;AAOA,YAAe,CAAA,CAACA,OAAAA,IAAsB;AACpCC,QAAAA,UAAAA,EAAYA,UAAAA,CAAWD,CAAAA;AACvBE,QAAAA,MAAAA,EAAQA,MAAAA,CAAOF,OAAAA,CAAAA;AACfG,QAAAA,UAAAA,EAAYA,UAAAA,CAAWH,OAAAA,CAAAA;AACvBI,QAAAA,OAAAA,EAASA,KAAAA,CAAQJ,OAAAA;AACnB,KAAA,CAAC;;;;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import mappers from './mappers/index.mjs';
|
|
2
|
+
import attributes from './attributes.mjs';
|
|
3
|
+
import naming from './naming.mjs';
|
|
4
|
+
import playground from './playground.mjs';
|
|
5
|
+
|
|
6
|
+
var utils = ((context)=>({
|
|
7
|
+
playground: playground(),
|
|
8
|
+
naming: naming(context),
|
|
9
|
+
attributes: attributes(context),
|
|
10
|
+
mappers: mappers(context)
|
|
11
|
+
}));
|
|
12
|
+
|
|
13
|
+
export { utils as default };
|
|
14
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../server/src/services/utils/index.ts"],"sourcesContent":["import mappers from './mappers';\nimport attributes from './attributes';\nimport naming from './naming';\nimport playground from './playground';\n\nimport type { Context } from '../types';\n\nexport default (context: Context) => ({\n playground: playground(context),\n naming: naming(context),\n attributes: attributes(context),\n mappers: mappers(context),\n});\n"],"names":["context","playground","naming","attributes","mappers"],"mappings":";;;;;AAOA,YAAe,CAAA,CAACA,OAAAA,IAAsB;AACpCC,QAAAA,UAAAA,EAAYA,UAAAA,CAAWD,CAAAA;AACvBE,QAAAA,MAAAA,EAAQA,MAAAA,CAAOF,OAAAA,CAAAA;AACfG,QAAAA,UAAAA,EAAYA,UAAAA,CAAWH,OAAAA,CAAAA;AACvBI,QAAAA,OAAAA,EAASA,OAAAA,CAAQJ,OAAAA;AACnB,KAAA,CAAC;;;;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var fp = require('lodash/fp');
|
|
4
|
+
|
|
5
|
+
const entityToResponseEntity = (entity)=>({
|
|
6
|
+
id: entity.id,
|
|
7
|
+
attributes: entity
|
|
8
|
+
});
|
|
9
|
+
const entitiesToResponseEntities = fp.map(entityToResponseEntity);
|
|
10
|
+
var entityToResponseEntity$1 = (()=>({
|
|
11
|
+
entityToResponseEntity,
|
|
12
|
+
entitiesToResponseEntities
|
|
13
|
+
}));
|
|
14
|
+
|
|
15
|
+
module.exports = entityToResponseEntity$1;
|
|
16
|
+
//# sourceMappingURL=entity-to-response-entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-to-response-entity.js","sources":["../../../../../server/src/services/utils/mappers/entity-to-response-entity.ts"],"sourcesContent":["import { map } from 'lodash/fp';\nimport type { Data } from '@strapi/types';\n\nconst entityToResponseEntity = (entity: { id: Data.ID; [key: keyof any]: unknown }) => ({\n id: entity.id,\n attributes: entity,\n});\n\nconst entitiesToResponseEntities = map(entityToResponseEntity);\n\nexport default () => ({\n entityToResponseEntity,\n entitiesToResponseEntities,\n});\n"],"names":["entityToResponseEntity","entity","id","attributes","entitiesToResponseEntities","map"],"mappings":";;;;AAGA,MAAMA,sBAAAA,GAAyB,CAACC,MAAAA,IAAwD;AACtFC,QAAAA,EAAAA,EAAID,OAAOC,EAAE;QACbC,UAAAA,EAAYF;KACd,CAAA;AAEA,MAAMG,6BAA6BC,MAAAA,CAAIL,sBAAAA,CAAAA;AAEvC,+BAAe,CAAA,KAAO;AACpBA,QAAAA,sBAAAA;AACAI,QAAAA;AACF,KAAA,CAAC;;;;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { map } from 'lodash/fp';
|
|
2
|
+
|
|
3
|
+
const entityToResponseEntity$1 = (entity)=>({
|
|
4
|
+
id: entity.id,
|
|
5
|
+
attributes: entity
|
|
6
|
+
});
|
|
7
|
+
const entitiesToResponseEntities = map(entityToResponseEntity$1);
|
|
8
|
+
var entityToResponseEntity = (()=>({
|
|
9
|
+
entityToResponseEntity: entityToResponseEntity$1,
|
|
10
|
+
entitiesToResponseEntities
|
|
11
|
+
}));
|
|
12
|
+
|
|
13
|
+
export { entityToResponseEntity as default };
|
|
14
|
+
//# sourceMappingURL=entity-to-response-entity.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-to-response-entity.mjs","sources":["../../../../../server/src/services/utils/mappers/entity-to-response-entity.ts"],"sourcesContent":["import { map } from 'lodash/fp';\nimport type { Data } from '@strapi/types';\n\nconst entityToResponseEntity = (entity: { id: Data.ID; [key: keyof any]: unknown }) => ({\n id: entity.id,\n attributes: entity,\n});\n\nconst entitiesToResponseEntities = map(entityToResponseEntity);\n\nexport default () => ({\n entityToResponseEntity,\n entitiesToResponseEntities,\n});\n"],"names":["entityToResponseEntity","entity","id","attributes","entitiesToResponseEntities","map"],"mappings":";;AAGA,MAAMA,wBAAAA,GAAyB,CAACC,MAAAA,IAAwD;AACtFC,QAAAA,EAAAA,EAAID,OAAOC,EAAE;QACbC,UAAAA,EAAYF;KACd,CAAA;AAEA,MAAMG,6BAA6BC,GAAAA,CAAIL,wBAAAA,CAAAA;AAEvC,6BAAe,CAAA,KAAO;AACpBA,gCAAAA,wBAAAA;AACAI,QAAAA;AACF,KAAA,CAAC;;;;"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var fp = require('lodash/fp');
|
|
4
|
+
|
|
5
|
+
// todo[v4]: Find a way to get that dynamically
|
|
6
|
+
const virtualScalarAttributes = [
|
|
7
|
+
'id',
|
|
8
|
+
'documentId'
|
|
9
|
+
];
|
|
10
|
+
var graphQLFiltersToStrapiQuery = (({ strapi })=>{
|
|
11
|
+
const { service: getService } = strapi.plugin('graphql');
|
|
12
|
+
const recursivelyReplaceScalarOperators = (data)=>{
|
|
13
|
+
const { operators } = getService('builders').filters;
|
|
14
|
+
if (Array.isArray(data)) {
|
|
15
|
+
return data.map(recursivelyReplaceScalarOperators);
|
|
16
|
+
}
|
|
17
|
+
// Note: We need to make an exception for date since GraphQL
|
|
18
|
+
// automatically cast date strings to date instances in args
|
|
19
|
+
if (fp.isDate(data) || !fp.isObject(data)) {
|
|
20
|
+
return data;
|
|
21
|
+
}
|
|
22
|
+
const result = {};
|
|
23
|
+
for (const [key, value] of Object.entries(data)){
|
|
24
|
+
const isOperator = !!operators[key];
|
|
25
|
+
const newKey = isOperator ? operators[key].strapiOperator : key;
|
|
26
|
+
result[newKey] = recursivelyReplaceScalarOperators(value);
|
|
27
|
+
}
|
|
28
|
+
return result;
|
|
29
|
+
};
|
|
30
|
+
return {
|
|
31
|
+
/**
|
|
32
|
+
* Transform one or many GraphQL filters object into a valid Strapi query
|
|
33
|
+
* @param {object | object[]} filters
|
|
34
|
+
* @param {object} contentType
|
|
35
|
+
* @return {object | object[]}
|
|
36
|
+
*/ graphQLFiltersToStrapiQuery (filters, contentType) {
|
|
37
|
+
const { isStrapiScalar, isMedia, isRelation, isComponent } = getService('utils').attributes;
|
|
38
|
+
const { operators } = getService('builders').filters;
|
|
39
|
+
const ROOT_LEVEL_OPERATORS = [
|
|
40
|
+
operators.and,
|
|
41
|
+
operators.or,
|
|
42
|
+
operators.not
|
|
43
|
+
];
|
|
44
|
+
// Handle unwanted scenario where there is no filters defined
|
|
45
|
+
if (fp.isNil(filters)) {
|
|
46
|
+
return {};
|
|
47
|
+
}
|
|
48
|
+
// If filters is a collection, then apply the transformation to every item of the list
|
|
49
|
+
if (Array.isArray(filters)) {
|
|
50
|
+
return filters.map((filtersItem)=>this.graphQLFiltersToStrapiQuery(filtersItem, contentType));
|
|
51
|
+
}
|
|
52
|
+
const resultMap = {};
|
|
53
|
+
const { attributes } = contentType;
|
|
54
|
+
const isAttribute = (attributeName)=>{
|
|
55
|
+
return virtualScalarAttributes.includes(attributeName) || fp.has(attributeName, attributes);
|
|
56
|
+
};
|
|
57
|
+
for (const [key, value] of Object.entries(filters)){
|
|
58
|
+
// If the key is an attribute, update the value
|
|
59
|
+
if (isAttribute(key)) {
|
|
60
|
+
const attribute = attributes[key];
|
|
61
|
+
// If it's a scalar attribute
|
|
62
|
+
if (virtualScalarAttributes.includes(key) || isStrapiScalar(attribute)) {
|
|
63
|
+
// Replace (recursively) every GraphQL scalar operator with the associated Strapi operator
|
|
64
|
+
resultMap[key] = recursivelyReplaceScalarOperators(value);
|
|
65
|
+
} else if (isRelation(attribute) || isMedia(attribute)) {
|
|
66
|
+
// Fetch the model from the relation
|
|
67
|
+
const relModel = strapi.getModel(attribute.target);
|
|
68
|
+
// Recursively apply the mapping to the value using the fetched model,
|
|
69
|
+
// and update the value within `resultMap`
|
|
70
|
+
resultMap[key] = this.graphQLFiltersToStrapiQuery(value, relModel);
|
|
71
|
+
} else if (isComponent(attribute)) {
|
|
72
|
+
// Fetch the model from the component attribute
|
|
73
|
+
const componentModel = strapi.getModel(attribute.component);
|
|
74
|
+
// Recursively apply the mapping to the value using the fetched model,
|
|
75
|
+
// and update the value within `resultMap`
|
|
76
|
+
resultMap[key] = this.graphQLFiltersToStrapiQuery(value, componentModel);
|
|
77
|
+
}
|
|
78
|
+
} else {
|
|
79
|
+
const rootLevelOperator = ROOT_LEVEL_OPERATORS.find(fp.propEq('fieldName', key));
|
|
80
|
+
// If it's a root level operator (AND, NOT, OR, ...)
|
|
81
|
+
if (rootLevelOperator) {
|
|
82
|
+
const { strapiOperator } = rootLevelOperator;
|
|
83
|
+
// Transform the current value recursively and add it to the resultMap
|
|
84
|
+
// object using the strapiOperator equivalent of the GraphQL key
|
|
85
|
+
resultMap[strapiOperator] = this.graphQLFiltersToStrapiQuery(value, contentType);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return resultMap;
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
module.exports = graphQLFiltersToStrapiQuery;
|
|
95
|
+
//# sourceMappingURL=graphql-filters-to-strapi-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphql-filters-to-strapi-query.js","sources":["../../../../../server/src/services/utils/mappers/graphql-filters-to-strapi-query.ts"],"sourcesContent":["import { has, propEq, isNil, isDate, isObject } from 'lodash/fp';\nimport type { Struct } from '@strapi/types';\nimport type { Context } from '../../types';\n\n// todo[v4]: Find a way to get that dynamically\nconst virtualScalarAttributes = ['id', 'documentId'];\n\nexport default ({ strapi }: Context) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const recursivelyReplaceScalarOperators = (data: any): any => {\n const { operators } = getService('builders').filters;\n\n if (Array.isArray(data)) {\n return data.map(recursivelyReplaceScalarOperators);\n }\n\n // Note: We need to make an exception for date since GraphQL\n // automatically cast date strings to date instances in args\n if (isDate(data) || !isObject(data)) {\n return data;\n }\n\n const result: any = {};\n\n for (const [key, value] of Object.entries(data)) {\n const isOperator = !!operators[key];\n\n const newKey = isOperator ? operators[key].strapiOperator : key;\n\n result[newKey] = recursivelyReplaceScalarOperators(value);\n }\n\n return result;\n };\n\n return {\n /**\n * Transform one or many GraphQL filters object into a valid Strapi query\n * @param {object | object[]} filters\n * @param {object} contentType\n * @return {object | object[]}\n */\n graphQLFiltersToStrapiQuery(filters: any, contentType: Struct.Schema): any {\n const { isStrapiScalar, isMedia, isRelation, isComponent } = getService('utils').attributes;\n const { operators } = getService('builders').filters;\n\n const ROOT_LEVEL_OPERATORS = [operators.and, operators.or, operators.not];\n\n // Handle unwanted scenario where there is no filters defined\n if (isNil(filters)) {\n return {};\n }\n\n // If filters is a collection, then apply the transformation to every item of the list\n if (Array.isArray(filters)) {\n return filters.map((filtersItem) =>\n this.graphQLFiltersToStrapiQuery(filtersItem, contentType)\n );\n }\n\n const resultMap: any = {};\n const { attributes } = contentType;\n\n const isAttribute = (attributeName: string) => {\n return virtualScalarAttributes.includes(attributeName) || has(attributeName, attributes);\n };\n\n for (const [key, value] of Object.entries(filters)) {\n // If the key is an attribute, update the value\n if (isAttribute(key)) {\n const attribute: any = attributes[key];\n\n // If it's a scalar attribute\n if (virtualScalarAttributes.includes(key) || isStrapiScalar(attribute)) {\n // Replace (recursively) every GraphQL scalar operator with the associated Strapi operator\n resultMap[key] = recursivelyReplaceScalarOperators(value);\n }\n\n // If it's a deep filter on a relation\n else if (isRelation(attribute) || isMedia(attribute)) {\n // Fetch the model from the relation\n const relModel = strapi.getModel(attribute.target);\n\n // Recursively apply the mapping to the value using the fetched model,\n // and update the value within `resultMap`\n resultMap[key] = this.graphQLFiltersToStrapiQuery(value, relModel);\n }\n\n // If it's a deep filter on a component\n else if (isComponent(attribute)) {\n // Fetch the model from the component attribute\n const componentModel = strapi.getModel(attribute.component);\n\n // Recursively apply the mapping to the value using the fetched model,\n // and update the value within `resultMap`\n resultMap[key] = this.graphQLFiltersToStrapiQuery(value, componentModel);\n }\n }\n\n // Handle the case where the key is not an attribute (operator, ...)\n else {\n const rootLevelOperator = ROOT_LEVEL_OPERATORS.find(propEq('fieldName', key));\n\n // If it's a root level operator (AND, NOT, OR, ...)\n if (rootLevelOperator) {\n const { strapiOperator } = rootLevelOperator;\n\n // Transform the current value recursively and add it to the resultMap\n // object using the strapiOperator equivalent of the GraphQL key\n resultMap[strapiOperator] = this.graphQLFiltersToStrapiQuery(value, contentType);\n }\n }\n }\n\n return resultMap;\n },\n };\n};\n"],"names":["virtualScalarAttributes","strapi","service","getService","plugin","recursivelyReplaceScalarOperators","data","operators","filters","Array","isArray","map","isDate","isObject","result","key","value","Object","entries","isOperator","newKey","strapiOperator","graphQLFiltersToStrapiQuery","contentType","isStrapiScalar","isMedia","isRelation","isComponent","attributes","ROOT_LEVEL_OPERATORS","and","or","not","isNil","filtersItem","resultMap","isAttribute","attributeName","includes","has","attribute","relModel","getModel","target","componentModel","component","rootLevelOperator","find","propEq"],"mappings":";;;;AAIA;AACA,MAAMA,uBAAAA,GAA0B;AAAC,IAAA,IAAA;AAAM,IAAA;AAAa,CAAA;AAEpD,kCAAe,CAAA,CAAC,EAAEC,MAAM,EAAW,GAAA;AACjC,IAAA,MAAM,EAAEC,OAAAA,EAASC,UAAU,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA;AAE9C,IAAA,MAAMC,oCAAoC,CAACC,IAAAA,GAAAA;AACzC,QAAA,MAAM,EAAEC,SAAS,EAAE,GAAGJ,UAAAA,CAAW,YAAYK,OAAO;QAEpD,IAAIC,KAAAA,CAAMC,OAAO,CAACJ,IAAAA,CAAAA,EAAO;YACvB,OAAOA,IAAAA,CAAKK,GAAG,CAACN,iCAAAA,CAAAA;AAClB,QAAA;;;AAIA,QAAA,IAAIO,SAAAA,CAAON,IAAAA,CAAAA,IAAS,CAACO,WAAAA,CAASP,IAAAA,CAAAA,EAAO;YACnC,OAAOA,IAAAA;AACT,QAAA;AAEA,QAAA,MAAMQ,SAAc,EAAC;QAErB,KAAK,MAAM,CAACC,GAAAA,EAAKC,KAAAA,CAAM,IAAIC,MAAAA,CAAOC,OAAO,CAACZ,IAAAA,CAAAA,CAAO;AAC/C,YAAA,MAAMa,UAAAA,GAAa,CAAC,CAACZ,SAAS,CAACQ,GAAAA,CAAI;AAEnC,YAAA,MAAMK,SAASD,UAAAA,GAAaZ,SAAS,CAACQ,GAAAA,CAAI,CAACM,cAAc,GAAGN,GAAAA;YAE5DD,MAAM,CAACM,MAAAA,CAAO,GAAGf,iCAAAA,CAAkCW,KAAAA,CAAAA;AACrD,QAAA;QAEA,OAAOF,MAAAA;AACT,IAAA,CAAA;IAEA,OAAO;AACL;;;;;QAMAQ,2BAAAA,CAAAA,CAA4Bd,OAAY,EAAEe,WAA0B,EAAA;AAClE,YAAA,MAAM,EAAEC,cAAc,EAAEC,OAAO,EAAEC,UAAU,EAAEC,WAAW,EAAE,GAAGxB,UAAAA,CAAW,OAAA,CAAA,CAASyB,UAAU;AAC3F,YAAA,MAAM,EAAErB,SAAS,EAAE,GAAGJ,UAAAA,CAAW,YAAYK,OAAO;AAEpD,YAAA,MAAMqB,oBAAAA,GAAuB;AAACtB,gBAAAA,SAAAA,CAAUuB,GAAG;AAAEvB,gBAAAA,SAAAA,CAAUwB,EAAE;AAAExB,gBAAAA,SAAAA,CAAUyB;AAAI,aAAA;;AAGzE,YAAA,IAAIC,SAAMzB,OAAAA,CAAAA,EAAU;AAClB,gBAAA,OAAO,EAAC;AACV,YAAA;;YAGA,IAAIC,KAAAA,CAAMC,OAAO,CAACF,OAAAA,CAAAA,EAAU;gBAC1B,OAAOA,OAAAA,CAAQG,GAAG,CAAC,CAACuB,cAClB,IAAI,CAACZ,2BAA2B,CAACY,WAAAA,EAAaX,WAAAA,CAAAA,CAAAA;AAElD,YAAA;AAEA,YAAA,MAAMY,YAAiB,EAAC;YACxB,MAAM,EAAEP,UAAU,EAAE,GAAGL,WAAAA;AAEvB,YAAA,MAAMa,cAAc,CAACC,aAAAA,GAAAA;AACnB,gBAAA,OAAOrC,uBAAAA,CAAwBsC,QAAQ,CAACD,aAAAA,CAAAA,IAAkBE,OAAIF,aAAAA,EAAeT,UAAAA,CAAAA;AAC/E,YAAA,CAAA;YAEA,KAAK,MAAM,CAACb,GAAAA,EAAKC,KAAAA,CAAM,IAAIC,MAAAA,CAAOC,OAAO,CAACV,OAAAA,CAAAA,CAAU;;AAElD,gBAAA,IAAI4B,YAAYrB,GAAAA,CAAAA,EAAM;oBACpB,MAAMyB,SAAAA,GAAiBZ,UAAU,CAACb,GAAAA,CAAI;;AAGtC,oBAAA,IAAIf,uBAAAA,CAAwBsC,QAAQ,CAACvB,GAAAA,CAAAA,IAAQS,eAAegB,SAAAA,CAAAA,EAAY;;wBAEtEL,SAAS,CAACpB,GAAAA,CAAI,GAAGV,iCAAAA,CAAkCW,KAAAA,CAAAA;AACrD,oBAAA,CAAA,MAGK,IAAIU,UAAAA,CAAWc,SAAAA,CAAAA,IAAcf,OAAAA,CAAQe,SAAAA,CAAAA,EAAY;;AAEpD,wBAAA,MAAMC,QAAAA,GAAWxC,MAAAA,CAAOyC,QAAQ,CAACF,UAAUG,MAAM,CAAA;;;AAIjDR,wBAAAA,SAAS,CAACpB,GAAAA,CAAI,GAAG,IAAI,CAACO,2BAA2B,CAACN,KAAAA,EAAOyB,QAAAA,CAAAA;oBAC3D,CAAA,MAGK,IAAId,YAAYa,SAAAA,CAAAA,EAAY;;AAE/B,wBAAA,MAAMI,cAAAA,GAAiB3C,MAAAA,CAAOyC,QAAQ,CAACF,UAAUK,SAAS,CAAA;;;AAI1DV,wBAAAA,SAAS,CAACpB,GAAAA,CAAI,GAAG,IAAI,CAACO,2BAA2B,CAACN,KAAAA,EAAO4B,cAAAA,CAAAA;AAC3D,oBAAA;gBACF,CAAA,MAGK;AACH,oBAAA,MAAME,iBAAAA,GAAoBjB,oBAAAA,CAAqBkB,IAAI,CAACC,UAAO,WAAA,EAAajC,GAAAA,CAAAA,CAAAA;;AAGxE,oBAAA,IAAI+B,iBAAAA,EAAmB;wBACrB,MAAM,EAAEzB,cAAc,EAAE,GAAGyB,iBAAAA;;;AAI3BX,wBAAAA,SAAS,CAACd,cAAAA,CAAe,GAAG,IAAI,CAACC,2BAA2B,CAACN,KAAAA,EAAOO,WAAAA,CAAAA;AACtE,oBAAA;AACF,gBAAA;AACF,YAAA;YAEA,OAAOY,SAAAA;AACT,QAAA;AACF,KAAA;AACF,CAAA;;;;"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { isNil, propEq, isDate, isObject, has } from 'lodash/fp';
|
|
2
|
+
|
|
3
|
+
// todo[v4]: Find a way to get that dynamically
|
|
4
|
+
const virtualScalarAttributes = [
|
|
5
|
+
'id',
|
|
6
|
+
'documentId'
|
|
7
|
+
];
|
|
8
|
+
var graphQLFiltersToStrapiQuery = (({ strapi })=>{
|
|
9
|
+
const { service: getService } = strapi.plugin('graphql');
|
|
10
|
+
const recursivelyReplaceScalarOperators = (data)=>{
|
|
11
|
+
const { operators } = getService('builders').filters;
|
|
12
|
+
if (Array.isArray(data)) {
|
|
13
|
+
return data.map(recursivelyReplaceScalarOperators);
|
|
14
|
+
}
|
|
15
|
+
// Note: We need to make an exception for date since GraphQL
|
|
16
|
+
// automatically cast date strings to date instances in args
|
|
17
|
+
if (isDate(data) || !isObject(data)) {
|
|
18
|
+
return data;
|
|
19
|
+
}
|
|
20
|
+
const result = {};
|
|
21
|
+
for (const [key, value] of Object.entries(data)){
|
|
22
|
+
const isOperator = !!operators[key];
|
|
23
|
+
const newKey = isOperator ? operators[key].strapiOperator : key;
|
|
24
|
+
result[newKey] = recursivelyReplaceScalarOperators(value);
|
|
25
|
+
}
|
|
26
|
+
return result;
|
|
27
|
+
};
|
|
28
|
+
return {
|
|
29
|
+
/**
|
|
30
|
+
* Transform one or many GraphQL filters object into a valid Strapi query
|
|
31
|
+
* @param {object | object[]} filters
|
|
32
|
+
* @param {object} contentType
|
|
33
|
+
* @return {object | object[]}
|
|
34
|
+
*/ graphQLFiltersToStrapiQuery (filters, contentType) {
|
|
35
|
+
const { isStrapiScalar, isMedia, isRelation, isComponent } = getService('utils').attributes;
|
|
36
|
+
const { operators } = getService('builders').filters;
|
|
37
|
+
const ROOT_LEVEL_OPERATORS = [
|
|
38
|
+
operators.and,
|
|
39
|
+
operators.or,
|
|
40
|
+
operators.not
|
|
41
|
+
];
|
|
42
|
+
// Handle unwanted scenario where there is no filters defined
|
|
43
|
+
if (isNil(filters)) {
|
|
44
|
+
return {};
|
|
45
|
+
}
|
|
46
|
+
// If filters is a collection, then apply the transformation to every item of the list
|
|
47
|
+
if (Array.isArray(filters)) {
|
|
48
|
+
return filters.map((filtersItem)=>this.graphQLFiltersToStrapiQuery(filtersItem, contentType));
|
|
49
|
+
}
|
|
50
|
+
const resultMap = {};
|
|
51
|
+
const { attributes } = contentType;
|
|
52
|
+
const isAttribute = (attributeName)=>{
|
|
53
|
+
return virtualScalarAttributes.includes(attributeName) || has(attributeName, attributes);
|
|
54
|
+
};
|
|
55
|
+
for (const [key, value] of Object.entries(filters)){
|
|
56
|
+
// If the key is an attribute, update the value
|
|
57
|
+
if (isAttribute(key)) {
|
|
58
|
+
const attribute = attributes[key];
|
|
59
|
+
// If it's a scalar attribute
|
|
60
|
+
if (virtualScalarAttributes.includes(key) || isStrapiScalar(attribute)) {
|
|
61
|
+
// Replace (recursively) every GraphQL scalar operator with the associated Strapi operator
|
|
62
|
+
resultMap[key] = recursivelyReplaceScalarOperators(value);
|
|
63
|
+
} else if (isRelation(attribute) || isMedia(attribute)) {
|
|
64
|
+
// Fetch the model from the relation
|
|
65
|
+
const relModel = strapi.getModel(attribute.target);
|
|
66
|
+
// Recursively apply the mapping to the value using the fetched model,
|
|
67
|
+
// and update the value within `resultMap`
|
|
68
|
+
resultMap[key] = this.graphQLFiltersToStrapiQuery(value, relModel);
|
|
69
|
+
} else if (isComponent(attribute)) {
|
|
70
|
+
// Fetch the model from the component attribute
|
|
71
|
+
const componentModel = strapi.getModel(attribute.component);
|
|
72
|
+
// Recursively apply the mapping to the value using the fetched model,
|
|
73
|
+
// and update the value within `resultMap`
|
|
74
|
+
resultMap[key] = this.graphQLFiltersToStrapiQuery(value, componentModel);
|
|
75
|
+
}
|
|
76
|
+
} else {
|
|
77
|
+
const rootLevelOperator = ROOT_LEVEL_OPERATORS.find(propEq('fieldName', key));
|
|
78
|
+
// If it's a root level operator (AND, NOT, OR, ...)
|
|
79
|
+
if (rootLevelOperator) {
|
|
80
|
+
const { strapiOperator } = rootLevelOperator;
|
|
81
|
+
// Transform the current value recursively and add it to the resultMap
|
|
82
|
+
// object using the strapiOperator equivalent of the GraphQL key
|
|
83
|
+
resultMap[strapiOperator] = this.graphQLFiltersToStrapiQuery(value, contentType);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return resultMap;
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
export { graphQLFiltersToStrapiQuery as default };
|
|
93
|
+
//# sourceMappingURL=graphql-filters-to-strapi-query.mjs.map
|