@strapi/plugin-graphql 5.12.1 → 5.12.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/index.js +18 -143
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +14 -141
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/package.json.js +143 -0
- package/dist/admin/package.json.js.map +1 -0
- package/dist/admin/package.json.mjs +124 -0
- package/dist/admin/package.json.mjs.map +1 -0
- package/dist/admin/pluginId.js +6 -0
- package/dist/admin/pluginId.js.map +1 -0
- package/dist/admin/pluginId.mjs +4 -0
- package/dist/admin/pluginId.mjs.map +1 -0
- package/dist/admin/{chunks/dk-D3k_Atlh.js → translations/dk.json.js} +2 -2
- package/dist/admin/translations/dk.json.js.map +1 -0
- package/dist/admin/{chunks/dk-Bji21OvY.mjs → translations/dk.json.mjs} +1 -1
- package/dist/admin/translations/dk.json.mjs.map +1 -0
- package/dist/admin/{chunks/en-DzY_FEd6.js → translations/en.json.js} +2 -2
- package/dist/admin/translations/en.json.js.map +1 -0
- package/dist/admin/{chunks/en-COko3s6d.mjs → translations/en.json.mjs} +1 -1
- package/dist/admin/translations/en.json.mjs.map +1 -0
- package/dist/admin/{chunks/es-D02rvX4A.js → translations/es.json.js} +2 -2
- package/dist/admin/translations/es.json.js.map +1 -0
- package/dist/admin/{chunks/es-BoUVfXlb.mjs → translations/es.json.mjs} +1 -1
- package/dist/admin/translations/es.json.mjs.map +1 -0
- package/dist/admin/{chunks/fr-D9dcL-gU.js → translations/fr.json.js} +2 -2
- package/dist/admin/translations/fr.json.js.map +1 -0
- package/dist/admin/{chunks/fr-DFbQQgkK.mjs → translations/fr.json.mjs} +1 -1
- package/dist/admin/translations/fr.json.mjs.map +1 -0
- package/dist/admin/{chunks/pl-DRSWvr2y.js → translations/pl.json.js} +2 -2
- package/dist/admin/translations/pl.json.js.map +1 -0
- package/dist/admin/{chunks/pl-Bih5cA3Y.mjs → translations/pl.json.mjs} +1 -1
- package/dist/admin/translations/pl.json.mjs.map +1 -0
- package/dist/admin/{chunks/ru-zDn7cu6t.js → translations/ru.json.js} +2 -2
- package/dist/admin/translations/ru.json.js.map +1 -0
- package/dist/admin/{chunks/ru-Bxi2fB6E.mjs → translations/ru.json.mjs} +1 -1
- package/dist/admin/translations/ru.json.mjs.map +1 -0
- package/dist/admin/{chunks/sv-Dq2aVH0_.js → translations/sv.json.js} +2 -2
- package/dist/admin/translations/sv.json.js.map +1 -0
- package/dist/admin/{chunks/sv-B2uIJv_a.mjs → translations/sv.json.mjs} +1 -1
- package/dist/admin/translations/sv.json.mjs.map +1 -0
- package/dist/admin/{chunks/tr-B0yEuVnS.js → translations/tr.json.js} +2 -2
- package/dist/admin/translations/tr.json.js.map +1 -0
- package/dist/admin/{chunks/tr-DwO6hyQD.mjs → translations/tr.json.mjs} +1 -1
- package/dist/admin/translations/tr.json.mjs.map +1 -0
- package/dist/admin/{chunks/uk-DJGNjXWk.js → translations/uk.json.js} +2 -2
- package/dist/admin/translations/uk.json.js.map +1 -0
- package/dist/admin/{chunks/uk-_25RY9BK.mjs → translations/uk.json.mjs} +1 -1
- package/dist/admin/translations/uk.json.mjs.map +1 -0
- package/dist/admin/{chunks/zh-Hans-DxlDvlSo.js → translations/zh-Hans.json.js} +2 -2
- package/dist/admin/translations/zh-Hans.json.js.map +1 -0
- package/dist/admin/{chunks/zh-Hans-DUab611K.mjs → translations/zh-Hans.json.mjs} +1 -1
- package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
- package/dist/admin/{chunks/zh-BkiTjJnf.js → translations/zh.json.js} +2 -2
- package/dist/admin/translations/zh.json.js.map +1 -0
- package/dist/admin/{chunks/zh-DVvz1qsT.mjs → translations/zh.json.mjs} +1 -1
- package/dist/admin/translations/zh.json.mjs.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.js +11 -0
- package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
- package/dist/server/bootstrap.js +180 -0
- package/dist/server/bootstrap.js.map +1 -0
- package/dist/server/bootstrap.mjs +177 -0
- package/dist/server/bootstrap.mjs.map +1 -0
- package/dist/server/config/default-config.js +13 -0
- package/dist/server/config/default-config.js.map +1 -0
- package/dist/server/config/default-config.mjs +11 -0
- package/dist/server/config/default-config.mjs.map +1 -0
- package/dist/server/config/index.js +10 -0
- package/dist/server/config/index.js.map +1 -0
- package/dist/server/config/index.mjs +8 -0
- package/dist/server/config/index.mjs.map +1 -0
- package/dist/server/format-graphql-error.js +60 -0
- package/dist/server/format-graphql-error.js.map +1 -0
- package/dist/server/format-graphql-error.mjs +58 -0
- package/dist/server/format-graphql-error.mjs.map +1 -0
- package/dist/server/index.js +6 -3719
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +3 -3698
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/services/builders/dynamic-zones.js +75 -0
- package/dist/server/services/builders/dynamic-zones.js.map +1 -0
- package/dist/server/services/builders/dynamic-zones.mjs +73 -0
- package/dist/server/services/builders/dynamic-zones.mjs.map +1 -0
- package/dist/server/services/builders/entity.js +38 -0
- package/dist/server/services/builders/entity.js.map +1 -0
- package/dist/server/services/builders/entity.mjs +36 -0
- package/dist/server/services/builders/entity.mjs.map +1 -0
- package/dist/server/services/builders/enums.js +24 -0
- package/dist/server/services/builders/enums.js.map +1 -0
- package/dist/server/services/builders/enums.mjs +22 -0
- package/dist/server/services/builders/enums.mjs.map +1 -0
- package/dist/server/services/builders/filters/content-type.js +94 -0
- package/dist/server/services/builders/filters/content-type.js.map +1 -0
- package/dist/server/services/builders/filters/content-type.mjs +92 -0
- package/dist/server/services/builders/filters/content-type.mjs.map +1 -0
- package/dist/server/services/builders/filters/index.js +10 -0
- package/dist/server/services/builders/filters/index.js.map +1 -0
- package/dist/server/services/builders/filters/index.mjs +8 -0
- package/dist/server/services/builders/filters/index.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/and.js +17 -0
- package/dist/server/services/builders/filters/operators/and.js.map +1 -0
- package/dist/server/services/builders/filters/operators/and.mjs +15 -0
- package/dist/server/services/builders/filters/operators/and.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/between.js +17 -0
- package/dist/server/services/builders/filters/operators/between.js.map +1 -0
- package/dist/server/services/builders/filters/operators/between.mjs +15 -0
- package/dist/server/services/builders/filters/operators/between.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/contains.js +15 -0
- package/dist/server/services/builders/filters/operators/contains.js.map +1 -0
- package/dist/server/services/builders/filters/operators/contains.mjs +13 -0
- package/dist/server/services/builders/filters/operators/contains.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/containsi.js +15 -0
- package/dist/server/services/builders/filters/operators/containsi.js.map +1 -0
- package/dist/server/services/builders/filters/operators/containsi.mjs +13 -0
- package/dist/server/services/builders/filters/operators/containsi.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/ends-with.js +15 -0
- package/dist/server/services/builders/filters/operators/ends-with.js.map +1 -0
- package/dist/server/services/builders/filters/operators/ends-with.mjs +13 -0
- package/dist/server/services/builders/filters/operators/ends-with.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/eq.js +22 -0
- package/dist/server/services/builders/filters/operators/eq.js.map +1 -0
- package/dist/server/services/builders/filters/operators/eq.mjs +20 -0
- package/dist/server/services/builders/filters/operators/eq.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/eqi.js +15 -0
- package/dist/server/services/builders/filters/operators/eqi.js.map +1 -0
- package/dist/server/services/builders/filters/operators/eqi.mjs +13 -0
- package/dist/server/services/builders/filters/operators/eqi.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/gt.js +15 -0
- package/dist/server/services/builders/filters/operators/gt.js.map +1 -0
- package/dist/server/services/builders/filters/operators/gt.mjs +13 -0
- package/dist/server/services/builders/filters/operators/gt.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/gte.js +15 -0
- package/dist/server/services/builders/filters/operators/gte.js.map +1 -0
- package/dist/server/services/builders/filters/operators/gte.mjs +13 -0
- package/dist/server/services/builders/filters/operators/gte.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/in.js +17 -0
- package/dist/server/services/builders/filters/operators/in.js.map +1 -0
- package/dist/server/services/builders/filters/operators/in.mjs +15 -0
- package/dist/server/services/builders/filters/operators/in.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/index.js +57 -0
- package/dist/server/services/builders/filters/operators/index.js.map +1 -0
- package/dist/server/services/builders/filters/operators/index.mjs +55 -0
- package/dist/server/services/builders/filters/operators/index.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/lt.js +15 -0
- package/dist/server/services/builders/filters/operators/lt.js.map +1 -0
- package/dist/server/services/builders/filters/operators/lt.mjs +13 -0
- package/dist/server/services/builders/filters/operators/lt.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/lte.js +15 -0
- package/dist/server/services/builders/filters/operators/lte.js.map +1 -0
- package/dist/server/services/builders/filters/operators/lte.mjs +13 -0
- package/dist/server/services/builders/filters/operators/lte.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/ne.js +15 -0
- package/dist/server/services/builders/filters/operators/ne.js.map +1 -0
- package/dist/server/services/builders/filters/operators/ne.mjs +13 -0
- package/dist/server/services/builders/filters/operators/ne.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/nei.js +15 -0
- package/dist/server/services/builders/filters/operators/nei.js.map +1 -0
- package/dist/server/services/builders/filters/operators/nei.mjs +13 -0
- package/dist/server/services/builders/filters/operators/nei.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/not-contains.js +15 -0
- package/dist/server/services/builders/filters/operators/not-contains.js.map +1 -0
- package/dist/server/services/builders/filters/operators/not-contains.mjs +13 -0
- package/dist/server/services/builders/filters/operators/not-contains.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/not-containsi.js +15 -0
- package/dist/server/services/builders/filters/operators/not-containsi.js.map +1 -0
- package/dist/server/services/builders/filters/operators/not-containsi.mjs +13 -0
- package/dist/server/services/builders/filters/operators/not-containsi.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/not-in.js +17 -0
- package/dist/server/services/builders/filters/operators/not-in.js.map +1 -0
- package/dist/server/services/builders/filters/operators/not-in.mjs +15 -0
- package/dist/server/services/builders/filters/operators/not-in.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/not-null.js +13 -0
- package/dist/server/services/builders/filters/operators/not-null.js.map +1 -0
- package/dist/server/services/builders/filters/operators/not-null.mjs +11 -0
- package/dist/server/services/builders/filters/operators/not-null.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/not.js +24 -0
- package/dist/server/services/builders/filters/operators/not.js.map +1 -0
- package/dist/server/services/builders/filters/operators/not.mjs +22 -0
- package/dist/server/services/builders/filters/operators/not.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/null.js +13 -0
- package/dist/server/services/builders/filters/operators/null.js.map +1 -0
- package/dist/server/services/builders/filters/operators/null.mjs +11 -0
- package/dist/server/services/builders/filters/operators/null.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/or.js +17 -0
- package/dist/server/services/builders/filters/operators/or.js.map +1 -0
- package/dist/server/services/builders/filters/operators/or.mjs +15 -0
- package/dist/server/services/builders/filters/operators/or.mjs.map +1 -0
- package/dist/server/services/builders/filters/operators/starts-with.js +15 -0
- package/dist/server/services/builders/filters/operators/starts-with.js.map +1 -0
- package/dist/server/services/builders/filters/operators/starts-with.mjs +13 -0
- package/dist/server/services/builders/filters/operators/starts-with.mjs.map +1 -0
- package/dist/server/services/builders/generic-morph.js +38 -0
- package/dist/server/services/builders/generic-morph.js.map +1 -0
- package/dist/server/services/builders/generic-morph.mjs +36 -0
- package/dist/server/services/builders/generic-morph.mjs.map +1 -0
- package/dist/server/services/builders/index.js +75 -0
- package/dist/server/services/builders/index.js.map +1 -0
- package/dist/server/services/builders/index.mjs +73 -0
- package/dist/server/services/builders/index.mjs.map +1 -0
- package/dist/server/services/builders/input.js +89 -0
- package/dist/server/services/builders/input.js.map +1 -0
- package/dist/server/services/builders/input.mjs +87 -0
- package/dist/server/services/builders/input.mjs.map +1 -0
- package/dist/server/services/builders/mutations/collection-type.js +155 -0
- package/dist/server/services/builders/mutations/collection-type.js.map +1 -0
- package/dist/server/services/builders/mutations/collection-type.mjs +153 -0
- package/dist/server/services/builders/mutations/collection-type.mjs.map +1 -0
- package/dist/server/services/builders/mutations/index.js +12 -0
- package/dist/server/services/builders/mutations/index.js.map +1 -0
- package/dist/server/services/builders/mutations/index.mjs +10 -0
- package/dist/server/services/builders/mutations/index.mjs.map +1 -0
- package/dist/server/services/builders/mutations/single-type.js +123 -0
- package/dist/server/services/builders/mutations/single-type.js.map +1 -0
- package/dist/server/services/builders/mutations/single-type.mjs +121 -0
- package/dist/server/services/builders/mutations/single-type.mjs.map +1 -0
- package/dist/server/services/builders/queries/collection-type.js +152 -0
- package/dist/server/services/builders/queries/collection-type.js.map +1 -0
- package/dist/server/services/builders/queries/collection-type.mjs +150 -0
- package/dist/server/services/builders/queries/collection-type.mjs.map +1 -0
- package/dist/server/services/builders/queries/index.js +12 -0
- package/dist/server/services/builders/queries/index.js.map +1 -0
- package/dist/server/services/builders/queries/index.mjs +10 -0
- package/dist/server/services/builders/queries/index.mjs.map +1 -0
- package/dist/server/services/builders/queries/single-type.js +70 -0
- package/dist/server/services/builders/queries/single-type.js.map +1 -0
- package/dist/server/services/builders/queries/single-type.mjs +68 -0
- package/dist/server/services/builders/queries/single-type.mjs.map +1 -0
- package/dist/server/services/builders/relation-response-collection.js +35 -0
- package/dist/server/services/builders/relation-response-collection.js.map +1 -0
- package/dist/server/services/builders/relation-response-collection.mjs +33 -0
- package/dist/server/services/builders/relation-response-collection.mjs.map +1 -0
- package/dist/server/services/builders/resolvers/association.js +74 -0
- package/dist/server/services/builders/resolvers/association.js.map +1 -0
- package/dist/server/services/builders/resolvers/association.mjs +72 -0
- package/dist/server/services/builders/resolvers/association.mjs.map +1 -0
- package/dist/server/services/builders/resolvers/component.js +27 -0
- package/dist/server/services/builders/resolvers/component.js.map +1 -0
- package/dist/server/services/builders/resolvers/component.mjs +25 -0
- package/dist/server/services/builders/resolvers/component.mjs.map +1 -0
- package/dist/server/services/builders/resolvers/dynamic-zone.js +12 -0
- package/dist/server/services/builders/resolvers/dynamic-zone.js.map +1 -0
- package/dist/server/services/builders/resolvers/dynamic-zone.mjs +10 -0
- package/dist/server/services/builders/resolvers/dynamic-zone.mjs.map +1 -0
- package/dist/server/services/builders/resolvers/index.js +20 -0
- package/dist/server/services/builders/resolvers/index.js.map +1 -0
- package/dist/server/services/builders/resolvers/index.mjs +18 -0
- package/dist/server/services/builders/resolvers/index.mjs.map +1 -0
- package/dist/server/services/builders/resolvers/pagination.js +29 -0
- package/dist/server/services/builders/resolvers/pagination.js.map +1 -0
- package/dist/server/services/builders/resolvers/pagination.mjs +27 -0
- package/dist/server/services/builders/resolvers/pagination.mjs.map +1 -0
- package/dist/server/services/builders/resolvers/query.js +55 -0
- package/dist/server/services/builders/resolvers/query.js.map +1 -0
- package/dist/server/services/builders/resolvers/query.mjs +53 -0
- package/dist/server/services/builders/resolvers/query.mjs.map +1 -0
- package/dist/server/services/builders/response-collection.js +50 -0
- package/dist/server/services/builders/response-collection.js.map +1 -0
- package/dist/server/services/builders/response-collection.mjs +48 -0
- package/dist/server/services/builders/response-collection.mjs.map +1 -0
- package/dist/server/services/builders/response.js +28 -0
- package/dist/server/services/builders/response.js.map +1 -0
- package/dist/server/services/builders/response.mjs +26 -0
- package/dist/server/services/builders/response.mjs.map +1 -0
- package/dist/server/services/builders/type.js +347 -0
- package/dist/server/services/builders/type.js.map +1 -0
- package/dist/server/services/builders/type.mjs +345 -0
- package/dist/server/services/builders/type.mjs.map +1 -0
- package/dist/server/services/builders/utils.js +113 -0
- package/dist/server/services/builders/utils.js.map +1 -0
- package/dist/server/services/builders/utils.mjs +111 -0
- package/dist/server/services/builders/utils.mjs.map +1 -0
- package/dist/server/services/constants.js +139 -0
- package/dist/server/services/constants.js.map +1 -0
- package/dist/server/services/constants.mjs +137 -0
- package/dist/server/services/constants.mjs.map +1 -0
- package/dist/server/services/content-api/index.js +184 -0
- package/dist/server/services/content-api/index.js.map +1 -0
- package/dist/server/services/content-api/index.mjs +182 -0
- package/dist/server/services/content-api/index.mjs.map +1 -0
- package/dist/server/services/content-api/policy.js +54 -0
- package/dist/server/services/content-api/policy.js.map +1 -0
- package/dist/server/services/content-api/policy.mjs +52 -0
- package/dist/server/services/content-api/policy.mjs.map +1 -0
- package/dist/server/services/content-api/register-functions/collection-type.js +41 -0
- package/dist/server/services/content-api/register-functions/collection-type.js.map +1 -0
- package/dist/server/services/content-api/register-functions/collection-type.mjs +39 -0
- package/dist/server/services/content-api/register-functions/collection-type.mjs.map +1 -0
- package/dist/server/services/content-api/register-functions/component.js +16 -0
- package/dist/server/services/content-api/register-functions/component.js.map +1 -0
- package/dist/server/services/content-api/register-functions/component.mjs +14 -0
- package/dist/server/services/content-api/register-functions/component.mjs.map +1 -0
- package/dist/server/services/content-api/register-functions/dynamic-zones.js +31 -0
- package/dist/server/services/content-api/register-functions/dynamic-zones.js.map +1 -0
- package/dist/server/services/content-api/register-functions/dynamic-zones.mjs +29 -0
- package/dist/server/services/content-api/register-functions/dynamic-zones.mjs.map +1 -0
- package/dist/server/services/content-api/register-functions/enums.js +23 -0
- package/dist/server/services/content-api/register-functions/enums.js.map +1 -0
- package/dist/server/services/content-api/register-functions/enums.mjs +21 -0
- package/dist/server/services/content-api/register-functions/enums.mjs.map +1 -0
- package/dist/server/services/content-api/register-functions/filters.js +16 -0
- package/dist/server/services/content-api/register-functions/filters.js.map +1 -0
- package/dist/server/services/content-api/register-functions/filters.mjs +14 -0
- package/dist/server/services/content-api/register-functions/filters.mjs.map +1 -0
- package/dist/server/services/content-api/register-functions/inputs.js +17 -0
- package/dist/server/services/content-api/register-functions/inputs.js.map +1 -0
- package/dist/server/services/content-api/register-functions/inputs.mjs +15 -0
- package/dist/server/services/content-api/register-functions/inputs.mjs.map +1 -0
- package/dist/server/services/content-api/register-functions/internals.js +16 -0
- package/dist/server/services/content-api/register-functions/internals.js.map +1 -0
- package/dist/server/services/content-api/register-functions/internals.mjs +14 -0
- package/dist/server/services/content-api/register-functions/internals.mjs.map +1 -0
- package/dist/server/services/content-api/register-functions/polymorphic.js +49 -0
- package/dist/server/services/content-api/register-functions/polymorphic.js.map +1 -0
- package/dist/server/services/content-api/register-functions/polymorphic.mjs +47 -0
- package/dist/server/services/content-api/register-functions/polymorphic.mjs.map +1 -0
- package/dist/server/services/content-api/register-functions/scalars.js +15 -0
- package/dist/server/services/content-api/register-functions/scalars.js.map +1 -0
- package/dist/server/services/content-api/register-functions/scalars.mjs +13 -0
- package/dist/server/services/content-api/register-functions/scalars.mjs.map +1 -0
- package/dist/server/services/content-api/register-functions/single-type.js +41 -0
- package/dist/server/services/content-api/register-functions/single-type.js.map +1 -0
- package/dist/server/services/content-api/register-functions/single-type.mjs +39 -0
- package/dist/server/services/content-api/register-functions/single-type.mjs.map +1 -0
- package/dist/server/services/content-api/wrap-resolvers.js +119 -0
- package/dist/server/services/content-api/wrap-resolvers.js.map +1 -0
- package/dist/server/services/content-api/wrap-resolvers.mjs +117 -0
- package/dist/server/services/content-api/wrap-resolvers.mjs.map +1 -0
- package/dist/server/services/extension/extension.js +84 -0
- package/dist/server/services/extension/extension.js.map +1 -0
- package/dist/server/services/extension/extension.mjs +63 -0
- package/dist/server/services/extension/extension.mjs.map +1 -0
- package/dist/server/services/extension/index.js +8 -0
- package/dist/server/services/extension/index.js.map +1 -0
- package/dist/server/services/extension/index.mjs +6 -0
- package/dist/server/services/extension/index.mjs.map +1 -0
- package/dist/server/services/extension/shadow-crud-manager.js +121 -0
- package/dist/server/services/extension/shadow-crud-manager.js.map +1 -0
- package/dist/server/services/extension/shadow-crud-manager.mjs +119 -0
- package/dist/server/services/extension/shadow-crud-manager.mjs.map +1 -0
- package/dist/server/services/format/index.js +10 -0
- package/dist/server/services/format/index.js.map +1 -0
- package/dist/server/services/format/index.mjs +8 -0
- package/dist/server/services/format/index.mjs.map +1 -0
- package/dist/server/services/format/return-types.js +27 -0
- package/dist/server/services/format/return-types.js.map +1 -0
- package/dist/server/services/format/return-types.mjs +25 -0
- package/dist/server/services/format/return-types.mjs.map +1 -0
- package/dist/server/services/index.js +24 -0
- package/dist/server/services/index.js.map +1 -0
- package/dist/server/services/index.mjs +22 -0
- package/dist/server/services/index.mjs.map +1 -0
- package/dist/server/services/internals/args/index.js +14 -0
- package/dist/server/services/internals/args/index.js.map +1 -0
- package/dist/server/services/internals/args/index.mjs +12 -0
- package/dist/server/services/internals/args/index.mjs.map +1 -0
- package/dist/server/services/internals/args/pagination.js +20 -0
- package/dist/server/services/internals/args/pagination.js.map +1 -0
- package/dist/server/services/internals/args/pagination.mjs +18 -0
- package/dist/server/services/internals/args/pagination.mjs.map +1 -0
- package/dist/server/services/internals/args/publication-status.js +14 -0
- package/dist/server/services/internals/args/publication-status.js.map +1 -0
- package/dist/server/services/internals/args/publication-status.mjs +12 -0
- package/dist/server/services/internals/args/publication-status.mjs.map +1 -0
- package/dist/server/services/internals/args/sort.js +11 -0
- package/dist/server/services/internals/args/sort.js.map +1 -0
- package/dist/server/services/internals/args/sort.mjs +9 -0
- package/dist/server/services/internals/args/sort.mjs.map +1 -0
- package/dist/server/services/internals/helpers/get-enabled-scalars.js +13 -0
- package/dist/server/services/internals/helpers/get-enabled-scalars.js.map +1 -0
- package/dist/server/services/internals/helpers/get-enabled-scalars.mjs +11 -0
- package/dist/server/services/internals/helpers/get-enabled-scalars.mjs.map +1 -0
- package/dist/server/services/internals/helpers/index.js +10 -0
- package/dist/server/services/internals/helpers/index.js.map +1 -0
- package/dist/server/services/internals/helpers/index.mjs +8 -0
- package/dist/server/services/internals/helpers/index.mjs.map +1 -0
- package/dist/server/services/internals/index.js +16 -0
- package/dist/server/services/internals/index.js.map +1 -0
- package/dist/server/services/internals/index.mjs +14 -0
- package/dist/server/services/internals/index.mjs.map +1 -0
- package/dist/server/services/internals/scalars/date.js +18 -0
- package/dist/server/services/internals/scalars/date.js.map +1 -0
- package/dist/server/services/internals/scalars/date.mjs +15 -0
- package/dist/server/services/internals/scalars/date.mjs.map +1 -0
- package/dist/server/services/internals/scalars/index.js +17 -0
- package/dist/server/services/internals/scalars/index.js.map +1 -0
- package/dist/server/services/internals/scalars/index.mjs +15 -0
- package/dist/server/services/internals/scalars/index.mjs.map +1 -0
- package/dist/server/services/internals/scalars/time.js +38 -0
- package/dist/server/services/internals/scalars/time.js.map +1 -0
- package/dist/server/services/internals/scalars/time.mjs +36 -0
- package/dist/server/services/internals/scalars/time.mjs.map +1 -0
- package/dist/server/services/internals/types/delete-mutation-response.js +18 -0
- package/dist/server/services/internals/types/delete-mutation-response.js.map +1 -0
- package/dist/server/services/internals/types/delete-mutation-response.mjs +16 -0
- package/dist/server/services/internals/types/delete-mutation-response.mjs.map +1 -0
- package/dist/server/services/internals/types/error.js +32 -0
- package/dist/server/services/internals/types/error.js.map +1 -0
- package/dist/server/services/internals/types/error.mjs +30 -0
- package/dist/server/services/internals/types/error.mjs.map +1 -0
- package/dist/server/services/internals/types/filters.js +35 -0
- package/dist/server/services/internals/types/filters.js.map +1 -0
- package/dist/server/services/internals/types/filters.mjs +33 -0
- package/dist/server/services/internals/types/filters.mjs.map +1 -0
- package/dist/server/services/internals/types/index.js +30 -0
- package/dist/server/services/internals/types/index.js.map +1 -0
- package/dist/server/services/internals/types/index.mjs +28 -0
- package/dist/server/services/internals/types/index.mjs.map +1 -0
- package/dist/server/services/internals/types/pagination.js +24 -0
- package/dist/server/services/internals/types/pagination.js.map +1 -0
- package/dist/server/services/internals/types/pagination.mjs +22 -0
- package/dist/server/services/internals/types/pagination.mjs.map +1 -0
- package/dist/server/services/internals/types/publication-status.js +22 -0
- package/dist/server/services/internals/types/publication-status.js.map +1 -0
- package/dist/server/services/internals/types/publication-status.mjs +20 -0
- package/dist/server/services/internals/types/publication-status.mjs.map +1 -0
- package/dist/server/services/internals/types/response-collection-meta.js +27 -0
- package/dist/server/services/internals/types/response-collection-meta.js.map +1 -0
- package/dist/server/services/internals/types/response-collection-meta.mjs +25 -0
- package/dist/server/services/internals/types/response-collection-meta.mjs.map +1 -0
- package/dist/server/services/type-registry.js +81 -0
- package/dist/server/services/type-registry.js.map +1 -0
- package/dist/server/services/type-registry.mjs +79 -0
- package/dist/server/services/type-registry.mjs.map +1 -0
- package/dist/server/services/utils/attributes.js +65 -0
- package/dist/server/services/utils/attributes.js.map +1 -0
- package/dist/server/services/utils/attributes.mjs +63 -0
- package/dist/server/services/utils/attributes.mjs.map +1 -0
- package/dist/server/services/utils/index.js +16 -0
- package/dist/server/services/utils/index.js.map +1 -0
- package/dist/server/services/utils/index.mjs +14 -0
- package/dist/server/services/utils/index.mjs.map +1 -0
- package/dist/server/services/utils/mappers/entity-to-response-entity.js +16 -0
- package/dist/server/services/utils/mappers/entity-to-response-entity.js.map +1 -0
- package/dist/server/services/utils/mappers/entity-to-response-entity.mjs +14 -0
- package/dist/server/services/utils/mappers/entity-to-response-entity.mjs.map +1 -0
- package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.js +95 -0
- package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.js.map +1 -0
- package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.mjs +93 -0
- package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.mjs.map +1 -0
- package/dist/server/services/utils/mappers/graphql-scalar-to-operators.js +15 -0
- package/dist/server/services/utils/mappers/graphql-scalar-to-operators.js.map +1 -0
- package/dist/server/services/utils/mappers/graphql-scalar-to-operators.mjs +13 -0
- package/dist/server/services/utils/mappers/graphql-scalar-to-operators.mjs.map +1 -0
- package/dist/server/services/utils/mappers/index.js +16 -0
- package/dist/server/services/utils/mappers/index.js.map +1 -0
- package/dist/server/services/utils/mappers/index.mjs +14 -0
- package/dist/server/services/utils/mappers/index.mjs.map +1 -0
- package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.js +23 -0
- package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.js.map +1 -0
- package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.mjs +21 -0
- package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.mjs.map +1 -0
- package/dist/server/services/utils/naming.js +187 -0
- package/dist/server/services/utils/naming.js.map +1 -0
- package/dist/server/services/utils/naming.mjs +185 -0
- package/dist/server/services/utils/naming.mjs.map +1 -0
- package/dist/server/services/utils/playground.js +19 -0
- package/dist/server/services/utils/playground.js.map +1 -0
- package/dist/server/services/utils/playground.mjs +17 -0
- package/dist/server/services/utils/playground.mjs.map +1 -0
- package/package.json +6 -6
- package/dist/admin/chunks/dk-Bji21OvY.mjs.map +0 -1
- package/dist/admin/chunks/dk-D3k_Atlh.js.map +0 -1
- package/dist/admin/chunks/en-COko3s6d.mjs.map +0 -1
- package/dist/admin/chunks/en-DzY_FEd6.js.map +0 -1
- package/dist/admin/chunks/es-BoUVfXlb.mjs.map +0 -1
- package/dist/admin/chunks/es-D02rvX4A.js.map +0 -1
- package/dist/admin/chunks/fr-D9dcL-gU.js.map +0 -1
- package/dist/admin/chunks/fr-DFbQQgkK.mjs.map +0 -1
- package/dist/admin/chunks/pl-Bih5cA3Y.mjs.map +0 -1
- package/dist/admin/chunks/pl-DRSWvr2y.js.map +0 -1
- package/dist/admin/chunks/ru-Bxi2fB6E.mjs.map +0 -1
- package/dist/admin/chunks/ru-zDn7cu6t.js.map +0 -1
- package/dist/admin/chunks/sv-B2uIJv_a.mjs.map +0 -1
- package/dist/admin/chunks/sv-Dq2aVH0_.js.map +0 -1
- package/dist/admin/chunks/tr-B0yEuVnS.js.map +0 -1
- package/dist/admin/chunks/tr-DwO6hyQD.mjs.map +0 -1
- package/dist/admin/chunks/uk-DJGNjXWk.js.map +0 -1
- package/dist/admin/chunks/uk-_25RY9BK.mjs.map +0 -1
- package/dist/admin/chunks/zh-BkiTjJnf.js.map +0 -1
- package/dist/admin/chunks/zh-DVvz1qsT.mjs.map +0 -1
- package/dist/admin/chunks/zh-Hans-DUab611K.mjs.map +0 -1
- package/dist/admin/chunks/zh-Hans-DxlDvlSo.js.map +0 -1
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { get, getOr, first, isFunction, isNil } from 'lodash/fp';
|
|
2
|
+
import { GraphQLObjectType } from 'graphql';
|
|
3
|
+
import { errors } from '@strapi/utils';
|
|
4
|
+
import { createPoliciesMiddleware } from './policy.mjs';
|
|
5
|
+
|
|
6
|
+
const { ForbiddenError } = errors;
|
|
7
|
+
const introspectionQueries = [
|
|
8
|
+
'__Schema',
|
|
9
|
+
'__Type',
|
|
10
|
+
'__Field',
|
|
11
|
+
'__InputValue',
|
|
12
|
+
'__EnumValue',
|
|
13
|
+
'__Directive'
|
|
14
|
+
];
|
|
15
|
+
/**
|
|
16
|
+
* Get & parse middlewares definitions from the resolver's config
|
|
17
|
+
* @param {object} resolverConfig
|
|
18
|
+
* @param {object} strapi
|
|
19
|
+
* @return {function[]}
|
|
20
|
+
*/ const parseMiddlewares = (resolverConfig, strapi)=>{
|
|
21
|
+
const resolverMiddlewares = getOr([], 'middlewares', resolverConfig);
|
|
22
|
+
// TODO: [v4] to factorize with compose endpoints (routes)
|
|
23
|
+
return resolverMiddlewares.map((middleware)=>{
|
|
24
|
+
if (isFunction(middleware)) {
|
|
25
|
+
return middleware;
|
|
26
|
+
}
|
|
27
|
+
if (typeof middleware === 'string') {
|
|
28
|
+
return strapi.middleware(middleware);
|
|
29
|
+
}
|
|
30
|
+
if (typeof middleware === 'object') {
|
|
31
|
+
const { name, options = {} } = middleware;
|
|
32
|
+
return strapi.middleware(name)(options, {
|
|
33
|
+
strapi
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
throw new Error(`Invalid middleware type, expected (function,string,object), received ${typeof middleware}`);
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Wrap the schema's resolvers if they've been
|
|
41
|
+
* customized using the GraphQL extension service
|
|
42
|
+
* @param {object} options
|
|
43
|
+
* @param {GraphQLSchema} options.schema
|
|
44
|
+
* @param {object} options.strapi
|
|
45
|
+
* @param {object} options.extension
|
|
46
|
+
* @return {GraphQLSchema}
|
|
47
|
+
*/ const wrapResolvers = ({ schema, strapi, extension = {} })=>{
|
|
48
|
+
// Get all the registered resolvers configuration
|
|
49
|
+
const { resolversConfig = {} } = extension;
|
|
50
|
+
// Fields filters
|
|
51
|
+
const isValidFieldName = (field)=>!field.startsWith('__');
|
|
52
|
+
const typeMap = schema.getTypeMap();
|
|
53
|
+
Object.entries(typeMap).forEach(([type, definition])=>{
|
|
54
|
+
const isGraphQLObjectType = definition instanceof GraphQLObjectType;
|
|
55
|
+
const isIgnoredType = introspectionQueries.includes(type);
|
|
56
|
+
if (!isGraphQLObjectType || isIgnoredType) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const fields = definition.getFields();
|
|
60
|
+
const fieldsToProcess = Object.entries(fields).filter(([field])=>isValidFieldName(field));
|
|
61
|
+
for (const [fieldName, fieldDefinition] of fieldsToProcess){
|
|
62
|
+
const defaultResolver = get(fieldName);
|
|
63
|
+
const path = `${type}.${fieldName}`;
|
|
64
|
+
const resolverConfig = getOr({}, path, resolversConfig);
|
|
65
|
+
const { resolve: baseResolver = defaultResolver } = fieldDefinition;
|
|
66
|
+
// Parse & initialize the middlewares
|
|
67
|
+
const middlewares = parseMiddlewares(resolverConfig, strapi);
|
|
68
|
+
// Generate the policy middleware
|
|
69
|
+
const policyMiddleware = createPoliciesMiddleware(resolverConfig, {
|
|
70
|
+
strapi
|
|
71
|
+
});
|
|
72
|
+
// Add the policyMiddleware at the end of the middlewares collection
|
|
73
|
+
middlewares.push(policyMiddleware);
|
|
74
|
+
// Bind every middleware to the next one
|
|
75
|
+
const boundMiddlewares = middlewares.map((middleware, index, collection)=>{
|
|
76
|
+
return (parents, args, context, info)=>middleware(// Make sure the last middleware in the list calls the baseResolver
|
|
77
|
+
index >= collection.length - 1 ? baseResolver : boundMiddlewares[index + 1], parents, args, context, info);
|
|
78
|
+
});
|
|
79
|
+
/**
|
|
80
|
+
* GraphQL authorization flow
|
|
81
|
+
* @param {object} context
|
|
82
|
+
* @return {Promise<void>}
|
|
83
|
+
*/ const authorize = async ({ context })=>{
|
|
84
|
+
const authConfig = get('auth', resolverConfig);
|
|
85
|
+
const authContext = get('state.auth', context);
|
|
86
|
+
const isValidType = [
|
|
87
|
+
'Mutation',
|
|
88
|
+
'Query',
|
|
89
|
+
'Subscription'
|
|
90
|
+
].includes(type);
|
|
91
|
+
const hasConfig = !isNil(authConfig);
|
|
92
|
+
const isAuthDisabled = authConfig === false;
|
|
93
|
+
if ((isValidType || hasConfig) && !isAuthDisabled) {
|
|
94
|
+
try {
|
|
95
|
+
await strapi.auth.verify(authContext, authConfig);
|
|
96
|
+
} catch (error) {
|
|
97
|
+
throw new ForbiddenError();
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* Base resolver wrapper that handles authorization, middlewares & policies
|
|
103
|
+
* @return {Promise<any>}
|
|
104
|
+
*/ fieldDefinition.resolve = async (parent, args, context, info)=>{
|
|
105
|
+
await authorize({
|
|
106
|
+
context
|
|
107
|
+
});
|
|
108
|
+
// Execute middlewares (including the policy middleware which will always be included)
|
|
109
|
+
return first(boundMiddlewares)(parent, args, context, info);
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
return schema;
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
export { wrapResolvers };
|
|
117
|
+
//# sourceMappingURL=wrap-resolvers.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wrap-resolvers.mjs","sources":["../../../../server/src/services/content-api/wrap-resolvers.ts"],"sourcesContent":["import { get, getOr, isFunction, first, isNil } from 'lodash/fp';\nimport {\n GraphQLObjectType,\n GraphQLResolveInfo,\n GraphQLSchema,\n GraphQLFieldResolver,\n} from 'graphql';\nimport { errors } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nimport { createPoliciesMiddleware } from './policy';\n\nconst { ForbiddenError } = errors;\n\nconst introspectionQueries = [\n '__Schema',\n '__Type',\n '__Field',\n '__InputValue',\n '__EnumValue',\n '__Directive',\n];\n\ntype GraphQLMiddleware = (\n resolve: GraphQLFieldResolver<any, any>,\n parents: unknown,\n args: unknown,\n context: unknown,\n info: GraphQLResolveInfo\n) => any;\n\n/**\n * Get & parse middlewares definitions from the resolver's config\n * @param {object} resolverConfig\n * @param {object} strapi\n * @return {function[]}\n */\nconst parseMiddlewares = (resolverConfig: any, strapi: Core.Strapi): GraphQLMiddleware[] => {\n const resolverMiddlewares = getOr([], 'middlewares', resolverConfig);\n\n // TODO: [v4] to factorize with compose endpoints (routes)\n return resolverMiddlewares.map(\n (middleware: string | Core.MiddlewareHandler | { name: string; options: any }) => {\n if (isFunction(middleware)) {\n return middleware;\n }\n\n if (typeof middleware === 'string') {\n return strapi.middleware(middleware);\n }\n\n if (typeof middleware === 'object') {\n const { name, options = {} } = middleware;\n\n return strapi.middleware(name)(options, { strapi });\n }\n\n throw new Error(\n `Invalid middleware type, expected (function,string,object), received ${typeof middleware}`\n );\n }\n );\n};\n\n/**\n * Wrap the schema's resolvers if they've been\n * customized using the GraphQL extension service\n * @param {object} options\n * @param {GraphQLSchema} options.schema\n * @param {object} options.strapi\n * @param {object} options.extension\n * @return {GraphQLSchema}\n */\nconst wrapResolvers = ({\n schema,\n strapi,\n extension = {},\n}: {\n schema: GraphQLSchema;\n strapi: Core.Strapi;\n extension: any;\n}) => {\n // Get all the registered resolvers configuration\n const { resolversConfig = {} } = extension;\n\n // Fields filters\n const isValidFieldName = (field: string) => !field.startsWith('__');\n\n const typeMap = schema.getTypeMap();\n\n Object.entries(typeMap).forEach(([type, definition]) => {\n const isGraphQLObjectType = definition instanceof GraphQLObjectType;\n const isIgnoredType = introspectionQueries.includes(type);\n\n if (!isGraphQLObjectType || isIgnoredType) {\n return;\n }\n\n const fields = definition.getFields();\n const fieldsToProcess = Object.entries(fields).filter(([field]) => isValidFieldName(field));\n\n for (const [fieldName, fieldDefinition] of fieldsToProcess) {\n const defaultResolver = get(fieldName);\n\n const path = `${type}.${fieldName}`;\n const resolverConfig = getOr({}, path, resolversConfig);\n\n const { resolve: baseResolver = defaultResolver } = fieldDefinition;\n\n // Parse & initialize the middlewares\n const middlewares = parseMiddlewares(resolverConfig, strapi);\n\n // Generate the policy middleware\n const policyMiddleware = createPoliciesMiddleware(resolverConfig, { strapi });\n\n // Add the policyMiddleware at the end of the middlewares collection\n middlewares.push(policyMiddleware);\n\n // Bind every middleware to the next one\n const boundMiddlewares = middlewares.map((middleware, index, collection) => {\n return (parents: unknown, args: unknown, context: unknown, info: GraphQLResolveInfo) =>\n middleware(\n // Make sure the last middleware in the list calls the baseResolver\n index >= collection.length - 1 ? baseResolver : boundMiddlewares[index + 1],\n parents,\n args,\n context,\n info\n );\n });\n\n /**\n * GraphQL authorization flow\n * @param {object} context\n * @return {Promise<void>}\n */\n const authorize = async ({ context }: any) => {\n const authConfig = get('auth', resolverConfig);\n const authContext = get('state.auth', context);\n\n const isValidType = ['Mutation', 'Query', 'Subscription'].includes(type);\n const hasConfig = !isNil(authConfig);\n\n const isAuthDisabled = authConfig === false;\n\n if ((isValidType || hasConfig) && !isAuthDisabled) {\n try {\n await strapi.auth.verify(authContext, authConfig);\n } catch (error) {\n throw new ForbiddenError();\n }\n }\n };\n\n /**\n * Base resolver wrapper that handles authorization, middlewares & policies\n * @return {Promise<any>}\n */\n fieldDefinition.resolve = async (parent, args, context, info) => {\n await authorize({ context });\n\n // Execute middlewares (including the policy middleware which will always be included)\n return first(boundMiddlewares)!(parent, args, context, info);\n };\n }\n });\n\n return schema;\n};\n\nexport { wrapResolvers };\n"],"names":["ForbiddenError","errors","introspectionQueries","parseMiddlewares","resolverConfig","strapi","resolverMiddlewares","getOr","map","middleware","isFunction","name","options","Error","wrapResolvers","schema","extension","resolversConfig","isValidFieldName","field","startsWith","typeMap","getTypeMap","Object","entries","forEach","type","definition","isGraphQLObjectType","GraphQLObjectType","isIgnoredType","includes","fields","getFields","fieldsToProcess","filter","fieldName","fieldDefinition","defaultResolver","get","path","resolve","baseResolver","middlewares","policyMiddleware","createPoliciesMiddleware","push","boundMiddlewares","index","collection","parents","args","context","info","length","authorize","authConfig","authContext","isValidType","hasConfig","isNil","isAuthDisabled","auth","verify","error","parent","first"],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var nexus = require('nexus');
|
|
4
|
+
var fp = require('lodash/fp');
|
|
5
|
+
var shadowCrudManager = require('./shadow-crud-manager.js');
|
|
6
|
+
|
|
7
|
+
function _interopNamespaceDefault(e) {
|
|
8
|
+
var n = Object.create(null);
|
|
9
|
+
if (e) {
|
|
10
|
+
Object.keys(e).forEach(function (k) {
|
|
11
|
+
if (k !== 'default') {
|
|
12
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
13
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function () { return e[k]; }
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
n.default = e;
|
|
21
|
+
return Object.freeze(n);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
var nexus__namespace = /*#__PURE__*/_interopNamespaceDefault(nexus);
|
|
25
|
+
|
|
26
|
+
const getDefaultState = ()=>({
|
|
27
|
+
types: [],
|
|
28
|
+
typeDefs: [],
|
|
29
|
+
resolvers: {},
|
|
30
|
+
resolversConfig: {},
|
|
31
|
+
plugins: []
|
|
32
|
+
});
|
|
33
|
+
const createExtension = ({ strapi })=>{
|
|
34
|
+
const configs = [];
|
|
35
|
+
return {
|
|
36
|
+
shadowCRUD: shadowCrudManager(),
|
|
37
|
+
/**
|
|
38
|
+
* Register a new extension configuration
|
|
39
|
+
*/ use (configuration) {
|
|
40
|
+
configs.push(configuration);
|
|
41
|
+
return this;
|
|
42
|
+
},
|
|
43
|
+
/**
|
|
44
|
+
* Convert the registered configuration into a single extension object & return it
|
|
45
|
+
*/ generate ({ typeRegistry }) {
|
|
46
|
+
const resolveConfig = (config)=>{
|
|
47
|
+
return typeof config === 'function' ? config({
|
|
48
|
+
strapi,
|
|
49
|
+
nexus: nexus__namespace,
|
|
50
|
+
typeRegistry
|
|
51
|
+
}) : config;
|
|
52
|
+
};
|
|
53
|
+
// Evaluate & merge every registered configuration object, then return the result
|
|
54
|
+
return configs.reduce((acc, configuration)=>{
|
|
55
|
+
const { types, typeDefs, resolvers, resolversConfig, plugins } = resolveConfig(configuration);
|
|
56
|
+
// Register type definitions
|
|
57
|
+
if (typeof typeDefs === 'string') {
|
|
58
|
+
acc.typeDefs.push(typeDefs);
|
|
59
|
+
}
|
|
60
|
+
// Register nexus types
|
|
61
|
+
if (Array.isArray(types)) {
|
|
62
|
+
acc.types.push(...types);
|
|
63
|
+
}
|
|
64
|
+
// Register nexus plugins
|
|
65
|
+
if (Array.isArray(plugins)) {
|
|
66
|
+
acc.plugins.push(...plugins);
|
|
67
|
+
}
|
|
68
|
+
// Register resolvers
|
|
69
|
+
if (typeof resolvers === 'object') {
|
|
70
|
+
acc.resolvers = fp.merge(acc.resolvers, resolvers);
|
|
71
|
+
}
|
|
72
|
+
// Register resolvers configuration
|
|
73
|
+
if (typeof resolversConfig === 'object') {
|
|
74
|
+
// TODO: smarter merge for auth, middlewares & policies
|
|
75
|
+
acc.resolversConfig = fp.merge(resolversConfig, acc.resolversConfig);
|
|
76
|
+
}
|
|
77
|
+
return acc;
|
|
78
|
+
}, getDefaultState());
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
module.exports = createExtension;
|
|
84
|
+
//# sourceMappingURL=extension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension.js","sources":["../../../../server/src/services/extension/extension.ts"],"sourcesContent":["import * as nexus from 'nexus';\nimport { merge } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\nimport type * as Nexus from 'nexus';\n\nimport createShadowCRUDManager from './shadow-crud-manager';\n\nexport type Configuration = {\n types?: NexusGen[];\n typeDefs?: string;\n resolvers?: object;\n resolversConfig?: object;\n plugins?: Nexus.PluginConfig[];\n};\n\nexport type ConfigurationFactory = (options: {\n strapi: Core.Strapi;\n nexus: typeof nexus;\n typeRegistry: object;\n}) => Configuration;\n\nexport type Extension = {\n types: NexusGen[];\n typeDefs: string[];\n resolvers: object;\n resolversConfig: object;\n plugins: Nexus.PluginConfig[];\n};\n\nconst getDefaultState = (): Extension => ({\n types: [],\n typeDefs: [],\n resolvers: {},\n resolversConfig: {},\n plugins: [],\n});\n\nconst createExtension = ({ strapi }: { strapi: Core.Strapi }) => {\n const configs: Array<Configuration | ConfigurationFactory> = [];\n\n return {\n shadowCRUD: createShadowCRUDManager(),\n\n /**\n * Register a new extension configuration\n */\n use(configuration: Configuration | ConfigurationFactory) {\n configs.push(configuration);\n\n return this;\n },\n\n /**\n * Convert the registered configuration into a single extension object & return it\n */\n generate({ typeRegistry }: { typeRegistry: object }) {\n const resolveConfig = (config: Configuration | ConfigurationFactory): Configuration => {\n return typeof config === 'function' ? config({ strapi, nexus, typeRegistry }) : config;\n };\n\n // Evaluate & merge every registered configuration object, then return the result\n return configs.reduce((acc, configuration) => {\n const { types, typeDefs, resolvers, resolversConfig, plugins } =\n resolveConfig(configuration);\n\n // Register type definitions\n if (typeof typeDefs === 'string') {\n acc.typeDefs.push(typeDefs);\n }\n\n // Register nexus types\n if (Array.isArray(types)) {\n acc.types.push(...types);\n }\n\n // Register nexus plugins\n if (Array.isArray(plugins)) {\n acc.plugins.push(...plugins);\n }\n\n // Register resolvers\n if (typeof resolvers === 'object') {\n acc.resolvers = merge(acc.resolvers, resolvers);\n }\n\n // Register resolvers configuration\n if (typeof resolversConfig === 'object') {\n // TODO: smarter merge for auth, middlewares & policies\n acc.resolversConfig = merge(resolversConfig, acc.resolversConfig);\n }\n\n return acc;\n }, getDefaultState());\n },\n };\n};\n\nexport default createExtension;\n"],"names":["getDefaultState","types","typeDefs","resolvers","resolversConfig","plugins","createExtension","strapi","configs","shadowCRUD","createShadowCRUDManager","use","configuration","push","generate","typeRegistry","resolveConfig","config","nexus","reduce","acc","Array","isArray","merge"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,MAAMA,eAAAA,GAAkB,KAAkB;AACxCC,QAAAA,KAAAA,EAAO,EAAE;AACTC,QAAAA,QAAAA,EAAU,EAAE;AACZC,QAAAA,SAAAA,EAAW,EAAC;AACZC,QAAAA,eAAAA,EAAiB,EAAC;AAClBC,QAAAA,OAAAA,EAAS;KACX,CAAA;AAEA,MAAMC,eAAkB,GAAA,CAAC,EAAEC,MAAM,EAA2B,GAAA;AAC1D,IAAA,MAAMC,UAAuD,EAAE;IAE/D,OAAO;QACLC,UAAYC,EAAAA,iBAAAA,EAAAA;AAEZ;;AAEC,QACDC,KAAIC,aAAmD,EAAA;AACrDJ,YAAAA,OAAAA,CAAQK,IAAI,CAACD,aAAAA,CAAAA;AAEb,YAAA,OAAO,IAAI;AACb,SAAA;AAEA;;QAGAE,QAAAA,CAAAA,CAAS,EAAEC,YAAY,EAA4B,EAAA;AACjD,YAAA,MAAMC,gBAAgB,CAACC,MAAAA,GAAAA;gBACrB,OAAO,OAAOA,MAAW,KAAA,UAAA,GAAaA,MAAO,CAAA;AAAEV,oBAAAA,MAAAA;AAAQW,2BAAAA,gBAAAA;AAAOH,oBAAAA;iBAAkBE,CAAAA,GAAAA,MAAAA;AAClF,aAAA;;AAGA,YAAA,OAAOT,OAAQW,CAAAA,MAAM,CAAC,CAACC,GAAKR,EAAAA,aAAAA,GAAAA;AAC1B,gBAAA,MAAM,EAAEX,KAAK,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,eAAe,EAAEC,OAAO,EAAE,GAC5DW,aAAcJ,CAAAA,aAAAA,CAAAA;;gBAGhB,IAAI,OAAOV,aAAa,QAAU,EAAA;oBAChCkB,GAAIlB,CAAAA,QAAQ,CAACW,IAAI,CAACX,QAAAA,CAAAA;AACpB;;gBAGA,IAAImB,KAAAA,CAAMC,OAAO,CAACrB,KAAQ,CAAA,EAAA;oBACxBmB,GAAInB,CAAAA,KAAK,CAACY,IAAI,CAAIZ,GAAAA,KAAAA,CAAAA;AACpB;;gBAGA,IAAIoB,KAAAA,CAAMC,OAAO,CAACjB,OAAU,CAAA,EAAA;oBAC1Be,GAAIf,CAAAA,OAAO,CAACQ,IAAI,CAAIR,GAAAA,OAAAA,CAAAA;AACtB;;gBAGA,IAAI,OAAOF,cAAc,QAAU,EAAA;AACjCiB,oBAAAA,GAAAA,CAAIjB,SAAS,GAAGoB,QAAMH,CAAAA,GAAAA,CAAIjB,SAAS,EAAEA,SAAAA,CAAAA;AACvC;;gBAGA,IAAI,OAAOC,oBAAoB,QAAU,EAAA;;AAEvCgB,oBAAAA,GAAAA,CAAIhB,eAAe,GAAGmB,QAAMnB,CAAAA,eAAAA,EAAiBgB,IAAIhB,eAAe,CAAA;AAClE;gBAEA,OAAOgB,GAAAA;aACNpB,EAAAA,eAAAA,EAAAA,CAAAA;AACL;AACF,KAAA;AACF;;;;"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import * as nexus from 'nexus';
|
|
2
|
+
import { merge } from 'lodash/fp';
|
|
3
|
+
import createShadowCRUDManager from './shadow-crud-manager.mjs';
|
|
4
|
+
|
|
5
|
+
const getDefaultState = ()=>({
|
|
6
|
+
types: [],
|
|
7
|
+
typeDefs: [],
|
|
8
|
+
resolvers: {},
|
|
9
|
+
resolversConfig: {},
|
|
10
|
+
plugins: []
|
|
11
|
+
});
|
|
12
|
+
const createExtension = ({ strapi })=>{
|
|
13
|
+
const configs = [];
|
|
14
|
+
return {
|
|
15
|
+
shadowCRUD: createShadowCRUDManager(),
|
|
16
|
+
/**
|
|
17
|
+
* Register a new extension configuration
|
|
18
|
+
*/ use (configuration) {
|
|
19
|
+
configs.push(configuration);
|
|
20
|
+
return this;
|
|
21
|
+
},
|
|
22
|
+
/**
|
|
23
|
+
* Convert the registered configuration into a single extension object & return it
|
|
24
|
+
*/ generate ({ typeRegistry }) {
|
|
25
|
+
const resolveConfig = (config)=>{
|
|
26
|
+
return typeof config === 'function' ? config({
|
|
27
|
+
strapi,
|
|
28
|
+
nexus,
|
|
29
|
+
typeRegistry
|
|
30
|
+
}) : config;
|
|
31
|
+
};
|
|
32
|
+
// Evaluate & merge every registered configuration object, then return the result
|
|
33
|
+
return configs.reduce((acc, configuration)=>{
|
|
34
|
+
const { types, typeDefs, resolvers, resolversConfig, plugins } = resolveConfig(configuration);
|
|
35
|
+
// Register type definitions
|
|
36
|
+
if (typeof typeDefs === 'string') {
|
|
37
|
+
acc.typeDefs.push(typeDefs);
|
|
38
|
+
}
|
|
39
|
+
// Register nexus types
|
|
40
|
+
if (Array.isArray(types)) {
|
|
41
|
+
acc.types.push(...types);
|
|
42
|
+
}
|
|
43
|
+
// Register nexus plugins
|
|
44
|
+
if (Array.isArray(plugins)) {
|
|
45
|
+
acc.plugins.push(...plugins);
|
|
46
|
+
}
|
|
47
|
+
// Register resolvers
|
|
48
|
+
if (typeof resolvers === 'object') {
|
|
49
|
+
acc.resolvers = merge(acc.resolvers, resolvers);
|
|
50
|
+
}
|
|
51
|
+
// Register resolvers configuration
|
|
52
|
+
if (typeof resolversConfig === 'object') {
|
|
53
|
+
// TODO: smarter merge for auth, middlewares & policies
|
|
54
|
+
acc.resolversConfig = merge(resolversConfig, acc.resolversConfig);
|
|
55
|
+
}
|
|
56
|
+
return acc;
|
|
57
|
+
}, getDefaultState());
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
export { createExtension as default };
|
|
63
|
+
//# sourceMappingURL=extension.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension.mjs","sources":["../../../../server/src/services/extension/extension.ts"],"sourcesContent":["import * as nexus from 'nexus';\nimport { merge } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\nimport type * as Nexus from 'nexus';\n\nimport createShadowCRUDManager from './shadow-crud-manager';\n\nexport type Configuration = {\n types?: NexusGen[];\n typeDefs?: string;\n resolvers?: object;\n resolversConfig?: object;\n plugins?: Nexus.PluginConfig[];\n};\n\nexport type ConfigurationFactory = (options: {\n strapi: Core.Strapi;\n nexus: typeof nexus;\n typeRegistry: object;\n}) => Configuration;\n\nexport type Extension = {\n types: NexusGen[];\n typeDefs: string[];\n resolvers: object;\n resolversConfig: object;\n plugins: Nexus.PluginConfig[];\n};\n\nconst getDefaultState = (): Extension => ({\n types: [],\n typeDefs: [],\n resolvers: {},\n resolversConfig: {},\n plugins: [],\n});\n\nconst createExtension = ({ strapi }: { strapi: Core.Strapi }) => {\n const configs: Array<Configuration | ConfigurationFactory> = [];\n\n return {\n shadowCRUD: createShadowCRUDManager(),\n\n /**\n * Register a new extension configuration\n */\n use(configuration: Configuration | ConfigurationFactory) {\n configs.push(configuration);\n\n return this;\n },\n\n /**\n * Convert the registered configuration into a single extension object & return it\n */\n generate({ typeRegistry }: { typeRegistry: object }) {\n const resolveConfig = (config: Configuration | ConfigurationFactory): Configuration => {\n return typeof config === 'function' ? config({ strapi, nexus, typeRegistry }) : config;\n };\n\n // Evaluate & merge every registered configuration object, then return the result\n return configs.reduce((acc, configuration) => {\n const { types, typeDefs, resolvers, resolversConfig, plugins } =\n resolveConfig(configuration);\n\n // Register type definitions\n if (typeof typeDefs === 'string') {\n acc.typeDefs.push(typeDefs);\n }\n\n // Register nexus types\n if (Array.isArray(types)) {\n acc.types.push(...types);\n }\n\n // Register nexus plugins\n if (Array.isArray(plugins)) {\n acc.plugins.push(...plugins);\n }\n\n // Register resolvers\n if (typeof resolvers === 'object') {\n acc.resolvers = merge(acc.resolvers, resolvers);\n }\n\n // Register resolvers configuration\n if (typeof resolversConfig === 'object') {\n // TODO: smarter merge for auth, middlewares & policies\n acc.resolversConfig = merge(resolversConfig, acc.resolversConfig);\n }\n\n return acc;\n }, getDefaultState());\n },\n };\n};\n\nexport default createExtension;\n"],"names":["getDefaultState","types","typeDefs","resolvers","resolversConfig","plugins","createExtension","strapi","configs","shadowCRUD","createShadowCRUDManager","use","configuration","push","generate","typeRegistry","resolveConfig","config","nexus","reduce","acc","Array","isArray","merge"],"mappings":";;;;AA6BA,MAAMA,eAAAA,GAAkB,KAAkB;AACxCC,QAAAA,KAAAA,EAAO,EAAE;AACTC,QAAAA,QAAAA,EAAU,EAAE;AACZC,QAAAA,SAAAA,EAAW,EAAC;AACZC,QAAAA,eAAAA,EAAiB,EAAC;AAClBC,QAAAA,OAAAA,EAAS;KACX,CAAA;AAEA,MAAMC,eAAkB,GAAA,CAAC,EAAEC,MAAM,EAA2B,GAAA;AAC1D,IAAA,MAAMC,UAAuD,EAAE;IAE/D,OAAO;QACLC,UAAYC,EAAAA,uBAAAA,EAAAA;AAEZ;;AAEC,QACDC,KAAIC,aAAmD,EAAA;AACrDJ,YAAAA,OAAAA,CAAQK,IAAI,CAACD,aAAAA,CAAAA;AAEb,YAAA,OAAO,IAAI;AACb,SAAA;AAEA;;QAGAE,QAAAA,CAAAA,CAAS,EAAEC,YAAY,EAA4B,EAAA;AACjD,YAAA,MAAMC,gBAAgB,CAACC,MAAAA,GAAAA;gBACrB,OAAO,OAAOA,MAAW,KAAA,UAAA,GAAaA,MAAO,CAAA;AAAEV,oBAAAA,MAAAA;AAAQW,oBAAAA,KAAAA;AAAOH,oBAAAA;iBAAkBE,CAAAA,GAAAA,MAAAA;AAClF,aAAA;;AAGA,YAAA,OAAOT,OAAQW,CAAAA,MAAM,CAAC,CAACC,GAAKR,EAAAA,aAAAA,GAAAA;AAC1B,gBAAA,MAAM,EAAEX,KAAK,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,eAAe,EAAEC,OAAO,EAAE,GAC5DW,aAAcJ,CAAAA,aAAAA,CAAAA;;gBAGhB,IAAI,OAAOV,aAAa,QAAU,EAAA;oBAChCkB,GAAIlB,CAAAA,QAAQ,CAACW,IAAI,CAACX,QAAAA,CAAAA;AACpB;;gBAGA,IAAImB,KAAAA,CAAMC,OAAO,CAACrB,KAAQ,CAAA,EAAA;oBACxBmB,GAAInB,CAAAA,KAAK,CAACY,IAAI,CAAIZ,GAAAA,KAAAA,CAAAA;AACpB;;gBAGA,IAAIoB,KAAAA,CAAMC,OAAO,CAACjB,OAAU,CAAA,EAAA;oBAC1Be,GAAIf,CAAAA,OAAO,CAACQ,IAAI,CAAIR,GAAAA,OAAAA,CAAAA;AACtB;;gBAGA,IAAI,OAAOF,cAAc,QAAU,EAAA;AACjCiB,oBAAAA,GAAAA,CAAIjB,SAAS,GAAGoB,KAAMH,CAAAA,GAAAA,CAAIjB,SAAS,EAAEA,SAAAA,CAAAA;AACvC;;gBAGA,IAAI,OAAOC,oBAAoB,QAAU,EAAA;;AAEvCgB,oBAAAA,GAAAA,CAAIhB,eAAe,GAAGmB,KAAMnB,CAAAA,eAAAA,EAAiBgB,IAAIhB,eAAe,CAAA;AAClE;gBAEA,OAAOgB,GAAAA;aACNpB,EAAAA,eAAAA,EAAAA,CAAAA;AACL;AACF,KAAA;AACF;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const getDefaultContentTypeConfig = ()=>({
|
|
4
|
+
enabled: true,
|
|
5
|
+
mutations: true,
|
|
6
|
+
queries: true,
|
|
7
|
+
disabledActions: [],
|
|
8
|
+
fields: new Map()
|
|
9
|
+
});
|
|
10
|
+
const getDefaultFieldConfig = ()=>({
|
|
11
|
+
enabled: true,
|
|
12
|
+
input: true,
|
|
13
|
+
output: true,
|
|
14
|
+
filters: true
|
|
15
|
+
});
|
|
16
|
+
const ALL_ACTIONS = '*';
|
|
17
|
+
var createShadowCRUDManager = (()=>{
|
|
18
|
+
const configs = new Map();
|
|
19
|
+
return (uid)=>{
|
|
20
|
+
if (!configs.has(uid)) {
|
|
21
|
+
configs.set(uid, getDefaultContentTypeConfig());
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
isEnabled () {
|
|
25
|
+
return configs.get(uid).enabled;
|
|
26
|
+
},
|
|
27
|
+
isDisabled () {
|
|
28
|
+
return !this.isEnabled();
|
|
29
|
+
},
|
|
30
|
+
areQueriesEnabled () {
|
|
31
|
+
return configs.get(uid).queries;
|
|
32
|
+
},
|
|
33
|
+
areQueriesDisabled () {
|
|
34
|
+
return !this.areQueriesEnabled();
|
|
35
|
+
},
|
|
36
|
+
areMutationsEnabled () {
|
|
37
|
+
return configs.get(uid).mutations;
|
|
38
|
+
},
|
|
39
|
+
areMutationsDisabled () {
|
|
40
|
+
return !this.areMutationsEnabled();
|
|
41
|
+
},
|
|
42
|
+
isActionEnabled (action) {
|
|
43
|
+
const matchingActions = [
|
|
44
|
+
action,
|
|
45
|
+
ALL_ACTIONS
|
|
46
|
+
];
|
|
47
|
+
return configs.get(uid).disabledActions.every((action)=>!matchingActions.includes(action));
|
|
48
|
+
},
|
|
49
|
+
isActionDisabled (action) {
|
|
50
|
+
return !this.isActionEnabled(action);
|
|
51
|
+
},
|
|
52
|
+
disable () {
|
|
53
|
+
configs.get(uid).enabled = false;
|
|
54
|
+
return this;
|
|
55
|
+
},
|
|
56
|
+
disableQueries () {
|
|
57
|
+
configs.get(uid).queries = false;
|
|
58
|
+
return this;
|
|
59
|
+
},
|
|
60
|
+
disableMutations () {
|
|
61
|
+
configs.get(uid).mutations = false;
|
|
62
|
+
return this;
|
|
63
|
+
},
|
|
64
|
+
disableAction (action) {
|
|
65
|
+
const config = configs.get(uid);
|
|
66
|
+
if (!config.disabledActions.includes(action)) {
|
|
67
|
+
config.disabledActions.push(action);
|
|
68
|
+
}
|
|
69
|
+
return this;
|
|
70
|
+
},
|
|
71
|
+
disableActions (actions = []) {
|
|
72
|
+
actions.forEach((action)=>this.disableAction(action));
|
|
73
|
+
return this;
|
|
74
|
+
},
|
|
75
|
+
field (fieldName) {
|
|
76
|
+
const { fields } = configs.get(uid);
|
|
77
|
+
if (!fields.has(fieldName)) {
|
|
78
|
+
fields.set(fieldName, getDefaultFieldConfig());
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
isEnabled () {
|
|
82
|
+
return fields.get(fieldName).enabled;
|
|
83
|
+
},
|
|
84
|
+
hasInputEnabled () {
|
|
85
|
+
return fields.get(fieldName).input;
|
|
86
|
+
},
|
|
87
|
+
hasOutputEnabled () {
|
|
88
|
+
return fields.get(fieldName).output;
|
|
89
|
+
},
|
|
90
|
+
hasFiltersEnabeld () {
|
|
91
|
+
return fields.get(fieldName).filters;
|
|
92
|
+
},
|
|
93
|
+
disable () {
|
|
94
|
+
fields.set(fieldName, {
|
|
95
|
+
enabled: false,
|
|
96
|
+
output: false,
|
|
97
|
+
input: false,
|
|
98
|
+
filters: false
|
|
99
|
+
});
|
|
100
|
+
return this;
|
|
101
|
+
},
|
|
102
|
+
disableOutput () {
|
|
103
|
+
fields.get(fieldName).output = false;
|
|
104
|
+
return this;
|
|
105
|
+
},
|
|
106
|
+
disableInput () {
|
|
107
|
+
fields.get(fieldName).input = false;
|
|
108
|
+
return this;
|
|
109
|
+
},
|
|
110
|
+
disableFilters () {
|
|
111
|
+
fields.get(fieldName).filters = false;
|
|
112
|
+
return this;
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
};
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
module.exports = createShadowCRUDManager;
|
|
121
|
+
//# sourceMappingURL=shadow-crud-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shadow-crud-manager.js","sources":["../../../../server/src/services/extension/shadow-crud-manager.ts"],"sourcesContent":["export type ContentTypeConfig = {\n enabled: boolean;\n\n mutations: boolean;\n queries: boolean;\n\n disabledActions: string[];\n fields: Map<string, FieldConfig>;\n};\n\nexport type FieldConfig = {\n enabled: boolean;\n\n input: boolean;\n output: boolean;\n\n filters: boolean;\n};\n\nconst getDefaultContentTypeConfig = (): ContentTypeConfig => ({\n enabled: true,\n\n mutations: true,\n queries: true,\n\n disabledActions: [],\n fields: new Map(),\n});\n\nconst getDefaultFieldConfig = (): FieldConfig => ({\n enabled: true,\n\n input: true,\n output: true,\n\n filters: true,\n});\n\nconst ALL_ACTIONS = '*';\n\nexport default () => {\n const configs = new Map<string, ContentTypeConfig>();\n\n return (uid: string) => {\n if (!configs.has(uid)) {\n configs.set(uid, getDefaultContentTypeConfig());\n }\n\n return {\n isEnabled() {\n return configs.get(uid)!.enabled;\n },\n\n isDisabled() {\n return !this.isEnabled();\n },\n\n areQueriesEnabled() {\n return configs.get(uid)!.queries;\n },\n\n areQueriesDisabled() {\n return !this.areQueriesEnabled();\n },\n\n areMutationsEnabled() {\n return configs.get(uid)!.mutations;\n },\n\n areMutationsDisabled() {\n return !this.areMutationsEnabled();\n },\n\n isActionEnabled(action: string) {\n const matchingActions = [action, ALL_ACTIONS];\n\n return configs\n .get(uid)!\n .disabledActions.every((action) => !matchingActions.includes(action));\n },\n\n isActionDisabled(action: string) {\n return !this.isActionEnabled(action);\n },\n\n disable() {\n configs.get(uid)!.enabled = false;\n\n return this;\n },\n\n disableQueries() {\n configs.get(uid)!.queries = false;\n\n return this;\n },\n\n disableMutations() {\n configs.get(uid)!.mutations = false;\n\n return this;\n },\n\n disableAction(action: string) {\n const config = configs.get(uid)!;\n\n if (!config.disabledActions.includes(action)) {\n config.disabledActions.push(action);\n }\n\n return this;\n },\n\n disableActions(actions = []) {\n actions.forEach((action) => this.disableAction(action));\n\n return this;\n },\n\n field(fieldName: string) {\n const { fields } = configs.get(uid)!;\n\n if (!fields.has(fieldName)) {\n fields.set(fieldName, getDefaultFieldConfig());\n }\n\n return {\n isEnabled() {\n return fields.get(fieldName)!.enabled;\n },\n\n hasInputEnabled() {\n return fields.get(fieldName)!.input;\n },\n\n hasOutputEnabled() {\n return fields.get(fieldName)!.output;\n },\n\n hasFiltersEnabeld() {\n return fields.get(fieldName)!.filters;\n },\n\n disable() {\n fields.set(fieldName, {\n enabled: false,\n\n output: false,\n input: false,\n\n filters: false,\n });\n\n return this;\n },\n\n disableOutput() {\n fields.get(fieldName)!.output = false;\n\n return this;\n },\n\n disableInput() {\n fields.get(fieldName)!.input = false;\n\n return this;\n },\n\n disableFilters() {\n fields.get(fieldName)!.filters = false;\n\n return this;\n },\n };\n },\n };\n };\n};\n"],"names":["getDefaultContentTypeConfig","enabled","mutations","queries","disabledActions","fields","Map","getDefaultFieldConfig","input","output","filters","ALL_ACTIONS","configs","uid","has","set","isEnabled","get","isDisabled","areQueriesEnabled","areQueriesDisabled","areMutationsEnabled","areMutationsDisabled","isActionEnabled","action","matchingActions","every","includes","isActionDisabled","disable","disableQueries","disableMutations","disableAction","config","push","disableActions","actions","forEach","field","fieldName","hasInputEnabled","hasOutputEnabled","hasFiltersEnabeld","disableOutput","disableInput","disableFilters"],"mappings":";;AAmBA,MAAMA,2BAAAA,GAA8B,KAA0B;QAC5DC,OAAS,EAAA,IAAA;QAETC,SAAW,EAAA,IAAA;QACXC,OAAS,EAAA,IAAA;AAETC,QAAAA,eAAAA,EAAiB,EAAE;AACnBC,QAAAA,MAAAA,EAAQ,IAAIC,GAAAA;KACd,CAAA;AAEA,MAAMC,qBAAAA,GAAwB,KAAoB;QAChDN,OAAS,EAAA,IAAA;QAETO,KAAO,EAAA,IAAA;QACPC,MAAQ,EAAA,IAAA;QAERC,OAAS,EAAA;KACX,CAAA;AAEA,MAAMC,WAAc,GAAA,GAAA;AAEpB,8BAAe,CAAA,IAAA;AACb,IAAA,MAAMC,UAAU,IAAIN,GAAAA,EAAAA;AAEpB,IAAA,OAAO,CAACO,GAAAA,GAAAA;AACN,QAAA,IAAI,CAACD,OAAAA,CAAQE,GAAG,CAACD,GAAM,CAAA,EAAA;YACrBD,OAAQG,CAAAA,GAAG,CAACF,GAAKb,EAAAA,2BAAAA,EAAAA,CAAAA;AACnB;QAEA,OAAO;AACLgB,YAAAA,SAAAA,CAAAA,GAAAA;AACE,gBAAA,OAAOJ,OAAQK,CAAAA,GAAG,CAACJ,GAAAA,CAAAA,CAAMZ,OAAO;AAClC,aAAA;AAEAiB,YAAAA,UAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACF,SAAS,EAAA;AACxB,aAAA;AAEAG,YAAAA,iBAAAA,CAAAA,GAAAA;AACE,gBAAA,OAAOP,OAAQK,CAAAA,GAAG,CAACJ,GAAAA,CAAAA,CAAMV,OAAO;AAClC,aAAA;AAEAiB,YAAAA,kBAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACD,iBAAiB,EAAA;AAChC,aAAA;AAEAE,YAAAA,mBAAAA,CAAAA,GAAAA;AACE,gBAAA,OAAOT,OAAQK,CAAAA,GAAG,CAACJ,GAAAA,CAAAA,CAAMX,SAAS;AACpC,aAAA;AAEAoB,YAAAA,oBAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACD,mBAAmB,EAAA;AAClC,aAAA;AAEAE,YAAAA,eAAAA,CAAAA,CAAgBC,MAAc,EAAA;AAC5B,gBAAA,MAAMC,eAAkB,GAAA;AAACD,oBAAAA,MAAAA;AAAQb,oBAAAA;AAAY,iBAAA;AAE7C,gBAAA,OAAOC,OACJK,CAAAA,GAAG,CAACJ,GAAAA,CAAAA,CACJT,eAAe,CAACsB,KAAK,CAAC,CAACF,MAAAA,GAAW,CAACC,eAAAA,CAAgBE,QAAQ,CAACH,MAAAA,CAAAA,CAAAA;AACjE,aAAA;AAEAI,YAAAA,gBAAAA,CAAAA,CAAiBJ,MAAc,EAAA;AAC7B,gBAAA,OAAO,CAAC,IAAI,CAACD,eAAe,CAACC,MAAAA,CAAAA;AAC/B,aAAA;AAEAK,YAAAA,OAAAA,CAAAA,GAAAA;AACEjB,gBAAAA,OAAAA,CAAQK,GAAG,CAACJ,GAAMZ,CAAAA,CAAAA,OAAO,GAAG,KAAA;AAE5B,gBAAA,OAAO,IAAI;AACb,aAAA;AAEA6B,YAAAA,cAAAA,CAAAA,GAAAA;AACElB,gBAAAA,OAAAA,CAAQK,GAAG,CAACJ,GAAMV,CAAAA,CAAAA,OAAO,GAAG,KAAA;AAE5B,gBAAA,OAAO,IAAI;AACb,aAAA;AAEA4B,YAAAA,gBAAAA,CAAAA,GAAAA;AACEnB,gBAAAA,OAAAA,CAAQK,GAAG,CAACJ,GAAMX,CAAAA,CAAAA,SAAS,GAAG,KAAA;AAE9B,gBAAA,OAAO,IAAI;AACb,aAAA;AAEA8B,YAAAA,aAAAA,CAAAA,CAAcR,MAAc,EAAA;gBAC1B,MAAMS,MAAAA,GAASrB,OAAQK,CAAAA,GAAG,CAACJ,GAAAA,CAAAA;AAE3B,gBAAA,IAAI,CAACoB,MAAO7B,CAAAA,eAAe,CAACuB,QAAQ,CAACH,MAAS,CAAA,EAAA;oBAC5CS,MAAO7B,CAAAA,eAAe,CAAC8B,IAAI,CAACV,MAAAA,CAAAA;AAC9B;AAEA,gBAAA,OAAO,IAAI;AACb,aAAA;AAEAW,YAAAA,cAAAA,CAAAA,CAAeC,UAAU,EAAE,EAAA;AACzBA,gBAAAA,OAAAA,CAAQC,OAAO,CAAC,CAACb,SAAW,IAAI,CAACQ,aAAa,CAACR,MAAAA,CAAAA,CAAAA;AAE/C,gBAAA,OAAO,IAAI;AACb,aAAA;AAEAc,YAAAA,KAAAA,CAAAA,CAAMC,SAAiB,EAAA;AACrB,gBAAA,MAAM,EAAElC,MAAM,EAAE,GAAGO,OAAAA,CAAQK,GAAG,CAACJ,GAAAA,CAAAA;AAE/B,gBAAA,IAAI,CAACR,MAAAA,CAAOS,GAAG,CAACyB,SAAY,CAAA,EAAA;oBAC1BlC,MAAOU,CAAAA,GAAG,CAACwB,SAAWhC,EAAAA,qBAAAA,EAAAA,CAAAA;AACxB;gBAEA,OAAO;AACLS,oBAAAA,SAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAOX,MAAOY,CAAAA,GAAG,CAACsB,SAAAA,CAAAA,CAAYtC,OAAO;AACvC,qBAAA;AAEAuC,oBAAAA,eAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAOnC,MAAOY,CAAAA,GAAG,CAACsB,SAAAA,CAAAA,CAAY/B,KAAK;AACrC,qBAAA;AAEAiC,oBAAAA,gBAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAOpC,MAAOY,CAAAA,GAAG,CAACsB,SAAAA,CAAAA,CAAY9B,MAAM;AACtC,qBAAA;AAEAiC,oBAAAA,iBAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAOrC,MAAOY,CAAAA,GAAG,CAACsB,SAAAA,CAAAA,CAAY7B,OAAO;AACvC,qBAAA;AAEAmB,oBAAAA,OAAAA,CAAAA,GAAAA;wBACExB,MAAOU,CAAAA,GAAG,CAACwB,SAAW,EAAA;4BACpBtC,OAAS,EAAA,KAAA;4BAETQ,MAAQ,EAAA,KAAA;4BACRD,KAAO,EAAA,KAAA;4BAEPE,OAAS,EAAA;AACX,yBAAA,CAAA;AAEA,wBAAA,OAAO,IAAI;AACb,qBAAA;AAEAiC,oBAAAA,aAAAA,CAAAA,GAAAA;AACEtC,wBAAAA,MAAAA,CAAOY,GAAG,CAACsB,SAAY9B,CAAAA,CAAAA,MAAM,GAAG,KAAA;AAEhC,wBAAA,OAAO,IAAI;AACb,qBAAA;AAEAmC,oBAAAA,YAAAA,CAAAA,GAAAA;AACEvC,wBAAAA,MAAAA,CAAOY,GAAG,CAACsB,SAAY/B,CAAAA,CAAAA,KAAK,GAAG,KAAA;AAE/B,wBAAA,OAAO,IAAI;AACb,qBAAA;AAEAqC,oBAAAA,cAAAA,CAAAA,GAAAA;AACExC,wBAAAA,MAAAA,CAAOY,GAAG,CAACsB,SAAY7B,CAAAA,CAAAA,OAAO,GAAG,KAAA;AAEjC,wBAAA,OAAO,IAAI;AACb;AACF,iBAAA;AACF;AACF,SAAA;AACF,KAAA;AACF,CAAA;;;;"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
const getDefaultContentTypeConfig = ()=>({
|
|
2
|
+
enabled: true,
|
|
3
|
+
mutations: true,
|
|
4
|
+
queries: true,
|
|
5
|
+
disabledActions: [],
|
|
6
|
+
fields: new Map()
|
|
7
|
+
});
|
|
8
|
+
const getDefaultFieldConfig = ()=>({
|
|
9
|
+
enabled: true,
|
|
10
|
+
input: true,
|
|
11
|
+
output: true,
|
|
12
|
+
filters: true
|
|
13
|
+
});
|
|
14
|
+
const ALL_ACTIONS = '*';
|
|
15
|
+
var createShadowCRUDManager = (()=>{
|
|
16
|
+
const configs = new Map();
|
|
17
|
+
return (uid)=>{
|
|
18
|
+
if (!configs.has(uid)) {
|
|
19
|
+
configs.set(uid, getDefaultContentTypeConfig());
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
isEnabled () {
|
|
23
|
+
return configs.get(uid).enabled;
|
|
24
|
+
},
|
|
25
|
+
isDisabled () {
|
|
26
|
+
return !this.isEnabled();
|
|
27
|
+
},
|
|
28
|
+
areQueriesEnabled () {
|
|
29
|
+
return configs.get(uid).queries;
|
|
30
|
+
},
|
|
31
|
+
areQueriesDisabled () {
|
|
32
|
+
return !this.areQueriesEnabled();
|
|
33
|
+
},
|
|
34
|
+
areMutationsEnabled () {
|
|
35
|
+
return configs.get(uid).mutations;
|
|
36
|
+
},
|
|
37
|
+
areMutationsDisabled () {
|
|
38
|
+
return !this.areMutationsEnabled();
|
|
39
|
+
},
|
|
40
|
+
isActionEnabled (action) {
|
|
41
|
+
const matchingActions = [
|
|
42
|
+
action,
|
|
43
|
+
ALL_ACTIONS
|
|
44
|
+
];
|
|
45
|
+
return configs.get(uid).disabledActions.every((action)=>!matchingActions.includes(action));
|
|
46
|
+
},
|
|
47
|
+
isActionDisabled (action) {
|
|
48
|
+
return !this.isActionEnabled(action);
|
|
49
|
+
},
|
|
50
|
+
disable () {
|
|
51
|
+
configs.get(uid).enabled = false;
|
|
52
|
+
return this;
|
|
53
|
+
},
|
|
54
|
+
disableQueries () {
|
|
55
|
+
configs.get(uid).queries = false;
|
|
56
|
+
return this;
|
|
57
|
+
},
|
|
58
|
+
disableMutations () {
|
|
59
|
+
configs.get(uid).mutations = false;
|
|
60
|
+
return this;
|
|
61
|
+
},
|
|
62
|
+
disableAction (action) {
|
|
63
|
+
const config = configs.get(uid);
|
|
64
|
+
if (!config.disabledActions.includes(action)) {
|
|
65
|
+
config.disabledActions.push(action);
|
|
66
|
+
}
|
|
67
|
+
return this;
|
|
68
|
+
},
|
|
69
|
+
disableActions (actions = []) {
|
|
70
|
+
actions.forEach((action)=>this.disableAction(action));
|
|
71
|
+
return this;
|
|
72
|
+
},
|
|
73
|
+
field (fieldName) {
|
|
74
|
+
const { fields } = configs.get(uid);
|
|
75
|
+
if (!fields.has(fieldName)) {
|
|
76
|
+
fields.set(fieldName, getDefaultFieldConfig());
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
isEnabled () {
|
|
80
|
+
return fields.get(fieldName).enabled;
|
|
81
|
+
},
|
|
82
|
+
hasInputEnabled () {
|
|
83
|
+
return fields.get(fieldName).input;
|
|
84
|
+
},
|
|
85
|
+
hasOutputEnabled () {
|
|
86
|
+
return fields.get(fieldName).output;
|
|
87
|
+
},
|
|
88
|
+
hasFiltersEnabeld () {
|
|
89
|
+
return fields.get(fieldName).filters;
|
|
90
|
+
},
|
|
91
|
+
disable () {
|
|
92
|
+
fields.set(fieldName, {
|
|
93
|
+
enabled: false,
|
|
94
|
+
output: false,
|
|
95
|
+
input: false,
|
|
96
|
+
filters: false
|
|
97
|
+
});
|
|
98
|
+
return this;
|
|
99
|
+
},
|
|
100
|
+
disableOutput () {
|
|
101
|
+
fields.get(fieldName).output = false;
|
|
102
|
+
return this;
|
|
103
|
+
},
|
|
104
|
+
disableInput () {
|
|
105
|
+
fields.get(fieldName).input = false;
|
|
106
|
+
return this;
|
|
107
|
+
},
|
|
108
|
+
disableFilters () {
|
|
109
|
+
fields.get(fieldName).filters = false;
|
|
110
|
+
return this;
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
export { createShadowCRUDManager as default };
|
|
119
|
+
//# sourceMappingURL=shadow-crud-manager.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shadow-crud-manager.mjs","sources":["../../../../server/src/services/extension/shadow-crud-manager.ts"],"sourcesContent":["export type ContentTypeConfig = {\n enabled: boolean;\n\n mutations: boolean;\n queries: boolean;\n\n disabledActions: string[];\n fields: Map<string, FieldConfig>;\n};\n\nexport type FieldConfig = {\n enabled: boolean;\n\n input: boolean;\n output: boolean;\n\n filters: boolean;\n};\n\nconst getDefaultContentTypeConfig = (): ContentTypeConfig => ({\n enabled: true,\n\n mutations: true,\n queries: true,\n\n disabledActions: [],\n fields: new Map(),\n});\n\nconst getDefaultFieldConfig = (): FieldConfig => ({\n enabled: true,\n\n input: true,\n output: true,\n\n filters: true,\n});\n\nconst ALL_ACTIONS = '*';\n\nexport default () => {\n const configs = new Map<string, ContentTypeConfig>();\n\n return (uid: string) => {\n if (!configs.has(uid)) {\n configs.set(uid, getDefaultContentTypeConfig());\n }\n\n return {\n isEnabled() {\n return configs.get(uid)!.enabled;\n },\n\n isDisabled() {\n return !this.isEnabled();\n },\n\n areQueriesEnabled() {\n return configs.get(uid)!.queries;\n },\n\n areQueriesDisabled() {\n return !this.areQueriesEnabled();\n },\n\n areMutationsEnabled() {\n return configs.get(uid)!.mutations;\n },\n\n areMutationsDisabled() {\n return !this.areMutationsEnabled();\n },\n\n isActionEnabled(action: string) {\n const matchingActions = [action, ALL_ACTIONS];\n\n return configs\n .get(uid)!\n .disabledActions.every((action) => !matchingActions.includes(action));\n },\n\n isActionDisabled(action: string) {\n return !this.isActionEnabled(action);\n },\n\n disable() {\n configs.get(uid)!.enabled = false;\n\n return this;\n },\n\n disableQueries() {\n configs.get(uid)!.queries = false;\n\n return this;\n },\n\n disableMutations() {\n configs.get(uid)!.mutations = false;\n\n return this;\n },\n\n disableAction(action: string) {\n const config = configs.get(uid)!;\n\n if (!config.disabledActions.includes(action)) {\n config.disabledActions.push(action);\n }\n\n return this;\n },\n\n disableActions(actions = []) {\n actions.forEach((action) => this.disableAction(action));\n\n return this;\n },\n\n field(fieldName: string) {\n const { fields } = configs.get(uid)!;\n\n if (!fields.has(fieldName)) {\n fields.set(fieldName, getDefaultFieldConfig());\n }\n\n return {\n isEnabled() {\n return fields.get(fieldName)!.enabled;\n },\n\n hasInputEnabled() {\n return fields.get(fieldName)!.input;\n },\n\n hasOutputEnabled() {\n return fields.get(fieldName)!.output;\n },\n\n hasFiltersEnabeld() {\n return fields.get(fieldName)!.filters;\n },\n\n disable() {\n fields.set(fieldName, {\n enabled: false,\n\n output: false,\n input: false,\n\n filters: false,\n });\n\n return this;\n },\n\n disableOutput() {\n fields.get(fieldName)!.output = false;\n\n return this;\n },\n\n disableInput() {\n fields.get(fieldName)!.input = false;\n\n return this;\n },\n\n disableFilters() {\n fields.get(fieldName)!.filters = false;\n\n return this;\n },\n };\n },\n };\n };\n};\n"],"names":["getDefaultContentTypeConfig","enabled","mutations","queries","disabledActions","fields","Map","getDefaultFieldConfig","input","output","filters","ALL_ACTIONS","configs","uid","has","set","isEnabled","get","isDisabled","areQueriesEnabled","areQueriesDisabled","areMutationsEnabled","areMutationsDisabled","isActionEnabled","action","matchingActions","every","includes","isActionDisabled","disable","disableQueries","disableMutations","disableAction","config","push","disableActions","actions","forEach","field","fieldName","hasInputEnabled","hasOutputEnabled","hasFiltersEnabeld","disableOutput","disableInput","disableFilters"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../server/src/services/format/index.ts"],"sourcesContent":["import returnTypes from './return-types';\n\nexport default () => ({\n returnTypes: returnTypes(),\n});\n"],"names":["returnTypes"],"mappings":";;;;AAEA,aAAe,CAAA,KAAO;QACpBA,WAAaA,EAAAA,WAAAA;AACf,KAAA,CAAC;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../server/src/services/format/index.ts"],"sourcesContent":["import returnTypes from './return-types';\n\nexport default () => ({\n returnTypes: returnTypes(),\n});\n"],"names":["returnTypes"],"mappings":";;AAEA,aAAe,CAAA,KAAO;QACpBA,WAAaA,EAAAA,WAAAA;AACf,KAAA,CAAC;;;;"}
|