@strapi/core 0.0.0-next.9e9a841899e6378b6f48ab8f419e4b0cc62bdf32 → 0.0.0-next.a1da9b829e36a866a425439d22ab6f484b547d9f
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.
Potentially problematic release.
This version of @strapi/core might be problematic. Click here for more details.
- package/dist/Strapi.d.ts.map +1 -1
- package/dist/Strapi.js +458 -0
- package/dist/Strapi.js.map +1 -0
- package/dist/Strapi.mjs +437 -0
- package/dist/Strapi.mjs.map +1 -0
- package/dist/compile.js +27 -0
- package/dist/compile.js.map +1 -0
- package/dist/compile.mjs +25 -0
- package/dist/compile.mjs.map +1 -0
- package/dist/configuration/config-loader.js +119 -0
- package/dist/configuration/config-loader.js.map +1 -0
- package/dist/configuration/config-loader.mjs +117 -0
- package/dist/configuration/config-loader.mjs.map +1 -0
- package/dist/configuration/get-dirs.js +33 -0
- package/dist/configuration/get-dirs.js.map +1 -0
- package/dist/configuration/get-dirs.mjs +31 -0
- package/dist/configuration/get-dirs.mjs.map +1 -0
- package/dist/configuration/index.d.ts +1 -0
- package/dist/configuration/index.d.ts.map +1 -1
- package/dist/configuration/index.js +92 -0
- package/dist/configuration/index.js.map +1 -0
- package/dist/configuration/index.mjs +90 -0
- package/dist/configuration/index.mjs.map +1 -0
- package/dist/configuration/urls.d.ts.map +1 -1
- package/dist/configuration/urls.js +81 -0
- package/dist/configuration/urls.js.map +1 -0
- package/dist/configuration/urls.mjs +77 -0
- package/dist/configuration/urls.mjs.map +1 -0
- package/dist/container.js +34 -0
- package/dist/container.js.map +1 -0
- package/dist/container.mjs +32 -0
- package/dist/container.mjs.map +1 -0
- package/dist/core-api/controller/collection-type.js +85 -0
- package/dist/core-api/controller/collection-type.js.map +1 -0
- package/dist/core-api/controller/collection-type.mjs +83 -0
- package/dist/core-api/controller/collection-type.mjs.map +1 -0
- package/dist/core-api/controller/index.d.ts.map +1 -1
- package/dist/core-api/controller/index.js +68 -0
- package/dist/core-api/controller/index.js.map +1 -0
- package/dist/core-api/controller/index.mjs +66 -0
- package/dist/core-api/controller/index.mjs.map +1 -0
- package/dist/core-api/controller/single-type.js +47 -0
- package/dist/core-api/controller/single-type.js.map +1 -0
- package/dist/core-api/controller/single-type.mjs +45 -0
- package/dist/core-api/controller/single-type.mjs.map +1 -0
- package/dist/core-api/controller/transform.d.ts +3 -2
- package/dist/core-api/controller/transform.d.ts.map +1 -1
- package/dist/core-api/controller/transform.js +95 -0
- package/dist/core-api/controller/transform.js.map +1 -0
- package/dist/core-api/controller/transform.mjs +93 -0
- package/dist/core-api/controller/transform.mjs.map +1 -0
- package/dist/core-api/routes/index.d.ts +4 -22
- package/dist/core-api/routes/index.d.ts.map +1 -1
- package/dist/core-api/routes/index.js +211 -0
- package/dist/core-api/routes/index.js.map +1 -0
- package/dist/core-api/routes/index.mjs +190 -0
- package/dist/core-api/routes/index.mjs.map +1 -0
- package/dist/core-api/routes/validation/attributes.d.ts +244 -0
- package/dist/core-api/routes/validation/attributes.d.ts.map +1 -0
- package/dist/core-api/routes/validation/attributes.js +560 -0
- package/dist/core-api/routes/validation/attributes.js.map +1 -0
- package/dist/core-api/routes/validation/attributes.mjs +521 -0
- package/dist/core-api/routes/validation/attributes.mjs.map +1 -0
- package/dist/core-api/routes/validation/common.d.ts +105 -0
- package/dist/core-api/routes/validation/common.d.ts.map +1 -0
- package/dist/core-api/routes/validation/common.js +116 -0
- package/dist/core-api/routes/validation/common.js.map +1 -0
- package/dist/core-api/routes/validation/common.mjs +95 -0
- package/dist/core-api/routes/validation/common.mjs.map +1 -0
- package/dist/core-api/routes/validation/component.d.ts +34 -0
- package/dist/core-api/routes/validation/component.d.ts.map +1 -0
- package/dist/core-api/routes/validation/component.js +45 -0
- package/dist/core-api/routes/validation/component.js.map +1 -0
- package/dist/core-api/routes/validation/component.mjs +43 -0
- package/dist/core-api/routes/validation/component.mjs.map +1 -0
- package/dist/core-api/routes/validation/constants.d.ts +8 -0
- package/dist/core-api/routes/validation/constants.d.ts.map +1 -0
- package/dist/core-api/routes/validation/constants.js +18 -0
- package/dist/core-api/routes/validation/constants.js.map +1 -0
- package/dist/core-api/routes/validation/constants.mjs +16 -0
- package/dist/core-api/routes/validation/constants.mjs.map +1 -0
- package/dist/core-api/routes/validation/content-type.d.ts +128 -0
- package/dist/core-api/routes/validation/content-type.d.ts.map +1 -0
- package/dist/core-api/routes/validation/content-type.js +201 -0
- package/dist/core-api/routes/validation/content-type.js.map +1 -0
- package/dist/core-api/routes/validation/content-type.mjs +180 -0
- package/dist/core-api/routes/validation/content-type.mjs.map +1 -0
- package/dist/core-api/routes/validation/index.d.ts +5 -0
- package/dist/core-api/routes/validation/index.d.ts.map +1 -0
- package/dist/core-api/routes/validation/mappers.d.ts +105 -0
- package/dist/core-api/routes/validation/mappers.d.ts.map +1 -0
- package/dist/core-api/routes/validation/mappers.js +238 -0
- package/dist/core-api/routes/validation/mappers.js.map +1 -0
- package/dist/core-api/routes/validation/mappers.mjs +214 -0
- package/dist/core-api/routes/validation/mappers.mjs.map +1 -0
- package/dist/core-api/routes/validation/utils.d.ts +47 -0
- package/dist/core-api/routes/validation/utils.d.ts.map +1 -0
- package/dist/core-api/routes/validation/utils.js +128 -0
- package/dist/core-api/routes/validation/utils.js.map +1 -0
- package/dist/core-api/routes/validation/utils.mjs +106 -0
- package/dist/core-api/routes/validation/utils.mjs.map +1 -0
- package/dist/core-api/service/collection-type.js +80 -0
- package/dist/core-api/service/collection-type.js.map +1 -0
- package/dist/core-api/service/collection-type.mjs +77 -0
- package/dist/core-api/service/collection-type.mjs.map +1 -0
- package/dist/core-api/service/core-service.js +13 -0
- package/dist/core-api/service/core-service.js.map +1 -0
- package/dist/core-api/service/core-service.mjs +11 -0
- package/dist/core-api/service/core-service.mjs.map +1 -0
- package/dist/core-api/service/index.js +16 -0
- package/dist/core-api/service/index.js.map +1 -0
- package/dist/core-api/service/index.mjs +14 -0
- package/dist/core-api/service/index.mjs.map +1 -0
- package/dist/core-api/service/pagination.js +78 -0
- package/dist/core-api/service/pagination.js.map +1 -0
- package/dist/core-api/service/pagination.mjs +73 -0
- package/dist/core-api/service/pagination.mjs.map +1 -0
- package/dist/core-api/service/single-type.js +50 -0
- package/dist/core-api/service/single-type.js.map +1 -0
- package/dist/core-api/service/single-type.mjs +47 -0
- package/dist/core-api/service/single-type.mjs.map +1 -0
- package/dist/domain/content-type/index.d.ts.map +1 -1
- package/dist/domain/content-type/index.js +122 -0
- package/dist/domain/content-type/index.js.map +1 -0
- package/dist/domain/content-type/index.mjs +119 -0
- package/dist/domain/content-type/index.mjs.map +1 -0
- package/dist/domain/content-type/validator.js +92 -0
- package/dist/domain/content-type/validator.js.map +1 -0
- package/dist/domain/content-type/validator.mjs +90 -0
- package/dist/domain/content-type/validator.mjs.map +1 -0
- package/dist/domain/module/index.d.ts.map +1 -1
- package/dist/domain/module/index.js +119 -0
- package/dist/domain/module/index.js.map +1 -0
- package/dist/domain/module/index.mjs +117 -0
- package/dist/domain/module/index.mjs.map +1 -0
- package/dist/domain/module/validation.js +30 -0
- package/dist/domain/module/validation.js.map +1 -0
- package/dist/domain/module/validation.mjs +28 -0
- package/dist/domain/module/validation.mjs.map +1 -0
- package/dist/ee/index.d.ts +7 -0
- package/dist/ee/index.d.ts.map +1 -1
- package/dist/ee/index.js +218 -0
- package/dist/ee/index.js.map +1 -0
- package/dist/ee/index.mjs +216 -0
- package/dist/ee/index.mjs.map +1 -0
- package/dist/ee/license.d.ts +3 -1
- package/dist/ee/license.d.ts.map +1 -1
- package/dist/ee/license.js +121 -0
- package/dist/ee/license.js.map +1 -0
- package/dist/ee/license.mjs +115 -0
- package/dist/ee/license.mjs.map +1 -0
- package/dist/factories.d.ts +3 -1
- package/dist/factories.d.ts.map +1 -1
- package/dist/factories.js +93 -0
- package/dist/factories.js.map +1 -0
- package/dist/factories.mjs +87 -0
- package/dist/factories.mjs.map +1 -0
- package/dist/index.js +19 -9943
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +17 -9920
- package/dist/index.mjs.map +1 -1
- package/dist/loaders/admin.d.ts.map +1 -1
- package/dist/loaders/admin.js +27 -0
- package/dist/loaders/admin.js.map +1 -0
- package/dist/loaders/admin.mjs +25 -0
- package/dist/loaders/admin.mjs.map +1 -0
- package/dist/loaders/apis.js +160 -0
- package/dist/loaders/apis.js.map +1 -0
- package/dist/loaders/apis.mjs +158 -0
- package/dist/loaders/apis.mjs.map +1 -0
- package/dist/loaders/components.js +37 -0
- package/dist/loaders/components.js.map +1 -0
- package/dist/loaders/components.mjs +35 -0
- package/dist/loaders/components.mjs.map +1 -0
- package/dist/loaders/index.js +26 -0
- package/dist/loaders/index.js.map +1 -0
- package/dist/loaders/index.mjs +24 -0
- package/dist/loaders/index.mjs.map +1 -0
- package/dist/loaders/middlewares.js +35 -0
- package/dist/loaders/middlewares.js.map +1 -0
- package/dist/loaders/middlewares.mjs +33 -0
- package/dist/loaders/middlewares.mjs.map +1 -0
- package/dist/loaders/plugins/get-enabled-plugins.js +136 -0
- package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -0
- package/dist/loaders/plugins/get-enabled-plugins.mjs +134 -0
- package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -0
- package/dist/loaders/plugins/get-user-plugins-config.js +28 -0
- package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -0
- package/dist/loaders/plugins/get-user-plugins-config.mjs +26 -0
- package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -0
- package/dist/loaders/plugins/index.js +155 -0
- package/dist/loaders/plugins/index.js.map +1 -0
- package/dist/loaders/plugins/index.mjs +134 -0
- package/dist/loaders/plugins/index.mjs.map +1 -0
- package/dist/loaders/policies.js +29 -0
- package/dist/loaders/policies.js.map +1 -0
- package/dist/loaders/policies.mjs +27 -0
- package/dist/loaders/policies.mjs.map +1 -0
- package/dist/loaders/sanitizers.js +12 -0
- package/dist/loaders/sanitizers.js.map +1 -0
- package/dist/loaders/sanitizers.mjs +10 -0
- package/dist/loaders/sanitizers.mjs.map +1 -0
- package/dist/loaders/src-index.js +41 -0
- package/dist/loaders/src-index.js.map +1 -0
- package/dist/loaders/src-index.mjs +39 -0
- package/dist/loaders/src-index.mjs.map +1 -0
- package/dist/loaders/validators.js +11 -0
- package/dist/loaders/validators.js.map +1 -0
- package/dist/loaders/validators.mjs +9 -0
- package/dist/loaders/validators.mjs.map +1 -0
- package/dist/middlewares/body.js +69 -0
- package/dist/middlewares/body.js.map +1 -0
- package/dist/middlewares/body.mjs +67 -0
- package/dist/middlewares/body.mjs.map +1 -0
- package/dist/middlewares/compression.js +8 -0
- package/dist/middlewares/compression.js.map +1 -0
- package/dist/middlewares/compression.mjs +6 -0
- package/dist/middlewares/compression.mjs.map +1 -0
- package/dist/middlewares/cors.d.ts +9 -1
- package/dist/middlewares/cors.d.ts.map +1 -1
- package/dist/middlewares/cors.js +86 -0
- package/dist/middlewares/cors.js.map +1 -0
- package/dist/middlewares/cors.mjs +83 -0
- package/dist/middlewares/cors.mjs.map +1 -0
- package/dist/middlewares/errors.js +35 -0
- package/dist/middlewares/errors.js.map +1 -0
- package/dist/middlewares/errors.mjs +33 -0
- package/dist/middlewares/errors.mjs.map +1 -0
- package/dist/middlewares/favicon.js +32 -0
- package/dist/middlewares/favicon.js.map +1 -0
- package/dist/middlewares/favicon.mjs +30 -0
- package/dist/middlewares/favicon.mjs.map +1 -0
- package/dist/middlewares/index.js +36 -0
- package/dist/middlewares/index.js.map +1 -0
- package/dist/middlewares/index.mjs +34 -0
- package/dist/middlewares/index.mjs.map +1 -0
- package/dist/middlewares/ip.js +8 -0
- package/dist/middlewares/ip.js.map +1 -0
- package/dist/middlewares/ip.mjs +6 -0
- package/dist/middlewares/ip.mjs.map +1 -0
- package/dist/middlewares/logger.js +13 -0
- package/dist/middlewares/logger.js.map +1 -0
- package/dist/middlewares/logger.mjs +11 -0
- package/dist/middlewares/logger.mjs.map +1 -0
- package/dist/middlewares/powered-by.js +18 -0
- package/dist/middlewares/powered-by.js.map +1 -0
- package/dist/middlewares/powered-by.mjs +16 -0
- package/dist/middlewares/powered-by.mjs.map +1 -0
- package/dist/middlewares/public.js +38 -0
- package/dist/middlewares/public.js.map +1 -0
- package/dist/middlewares/public.mjs +36 -0
- package/dist/middlewares/public.mjs.map +1 -0
- package/dist/middlewares/query.js +43 -0
- package/dist/middlewares/query.js.map +1 -0
- package/dist/middlewares/query.mjs +41 -0
- package/dist/middlewares/query.mjs.map +1 -0
- package/dist/middlewares/response-time.js +13 -0
- package/dist/middlewares/response-time.js.map +1 -0
- package/dist/middlewares/response-time.mjs +11 -0
- package/dist/middlewares/response-time.mjs.map +1 -0
- package/dist/middlewares/responses.js +17 -0
- package/dist/middlewares/responses.js.map +1 -0
- package/dist/middlewares/responses.mjs +15 -0
- package/dist/middlewares/responses.mjs.map +1 -0
- package/dist/middlewares/security.js +116 -0
- package/dist/middlewares/security.js.map +1 -0
- package/dist/middlewares/security.mjs +114 -0
- package/dist/middlewares/security.mjs.map +1 -0
- package/dist/middlewares/session.js +31 -0
- package/dist/middlewares/session.js.map +1 -0
- package/dist/middlewares/session.mjs +29 -0
- package/dist/middlewares/session.mjs.map +1 -0
- package/dist/migrations/database/5.0.0-discard-drafts.js +168 -0
- package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -0
- package/dist/migrations/database/5.0.0-discard-drafts.mjs +165 -0
- package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -0
- package/dist/migrations/draft-publish.js +69 -0
- package/dist/migrations/draft-publish.js.map +1 -0
- package/dist/migrations/draft-publish.mjs +66 -0
- package/dist/migrations/draft-publish.mjs.map +1 -0
- package/dist/migrations/first-published-at.d.ts +4 -0
- package/dist/migrations/first-published-at.d.ts.map +1 -0
- package/dist/migrations/first-published-at.js +51 -0
- package/dist/migrations/first-published-at.js.map +1 -0
- package/dist/migrations/first-published-at.mjs +49 -0
- package/dist/migrations/first-published-at.mjs.map +1 -0
- package/dist/migrations/i18n.js +71 -0
- package/dist/migrations/i18n.js.map +1 -0
- package/dist/migrations/i18n.mjs +68 -0
- package/dist/migrations/i18n.mjs.map +1 -0
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/index.js +34 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/index.mjs +31 -0
- package/dist/migrations/index.mjs.map +1 -0
- package/dist/package.json.js +186 -0
- package/dist/package.json.js.map +1 -0
- package/dist/package.json.mjs +163 -0
- package/dist/package.json.mjs.map +1 -0
- package/dist/providers/admin.js +30 -0
- package/dist/providers/admin.js.map +1 -0
- package/dist/providers/admin.mjs +28 -0
- package/dist/providers/admin.mjs.map +1 -0
- package/dist/providers/coreStore.js +16 -0
- package/dist/providers/coreStore.js.map +1 -0
- package/dist/providers/coreStore.mjs +14 -0
- package/dist/providers/coreStore.mjs.map +1 -0
- package/dist/providers/cron.js +23 -0
- package/dist/providers/cron.js.map +1 -0
- package/dist/providers/cron.mjs +21 -0
- package/dist/providers/cron.mjs.map +1 -0
- package/dist/providers/index.js +20 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/index.mjs +18 -0
- package/dist/providers/index.mjs.map +1 -0
- package/dist/providers/provider.js +6 -0
- package/dist/providers/provider.js.map +1 -0
- package/dist/providers/provider.mjs +4 -0
- package/dist/providers/provider.mjs.map +1 -0
- package/dist/providers/registries.js +40 -0
- package/dist/providers/registries.js.map +1 -0
- package/dist/providers/registries.mjs +38 -0
- package/dist/providers/registries.mjs.map +1 -0
- package/dist/providers/telemetry.js +22 -0
- package/dist/providers/telemetry.js.map +1 -0
- package/dist/providers/telemetry.mjs +20 -0
- package/dist/providers/telemetry.mjs.map +1 -0
- package/dist/providers/webhooks.js +32 -0
- package/dist/providers/webhooks.js.map +1 -0
- package/dist/providers/webhooks.mjs +30 -0
- package/dist/providers/webhooks.mjs.map +1 -0
- package/dist/registries/apis.js +26 -0
- package/dist/registries/apis.js.map +1 -0
- package/dist/registries/apis.mjs +24 -0
- package/dist/registries/apis.mjs.map +1 -0
- package/dist/registries/components.js +43 -0
- package/dist/registries/components.js.map +1 -0
- package/dist/registries/components.mjs +41 -0
- package/dist/registries/components.mjs.map +1 -0
- package/dist/registries/content-types.js +65 -0
- package/dist/registries/content-types.js.map +1 -0
- package/dist/registries/content-types.mjs +63 -0
- package/dist/registries/content-types.mjs.map +1 -0
- package/dist/registries/controllers.js +79 -0
- package/dist/registries/controllers.js.map +1 -0
- package/dist/registries/controllers.mjs +77 -0
- package/dist/registries/controllers.mjs.map +1 -0
- package/dist/registries/custom-fields.js +81 -0
- package/dist/registries/custom-fields.js.map +1 -0
- package/dist/registries/custom-fields.mjs +79 -0
- package/dist/registries/custom-fields.mjs.map +1 -0
- package/dist/registries/hooks.js +55 -0
- package/dist/registries/hooks.js.map +1 -0
- package/dist/registries/hooks.mjs +53 -0
- package/dist/registries/hooks.mjs.map +1 -0
- package/dist/registries/middlewares.js +58 -0
- package/dist/registries/middlewares.js.map +1 -0
- package/dist/registries/middlewares.mjs +56 -0
- package/dist/registries/middlewares.mjs.map +1 -0
- package/dist/registries/models.js +17 -0
- package/dist/registries/models.js.map +1 -0
- package/dist/registries/models.mjs +15 -0
- package/dist/registries/models.mjs.map +1 -0
- package/dist/registries/modules.js +42 -0
- package/dist/registries/modules.js.map +1 -0
- package/dist/registries/modules.mjs +40 -0
- package/dist/registries/modules.mjs.map +1 -0
- package/dist/registries/namespace.js +28 -0
- package/dist/registries/namespace.js.map +1 -0
- package/dist/registries/namespace.mjs +24 -0
- package/dist/registries/namespace.mjs.map +1 -0
- package/dist/registries/plugins.js +26 -0
- package/dist/registries/plugins.js.map +1 -0
- package/dist/registries/plugins.mjs +24 -0
- package/dist/registries/plugins.mjs.map +1 -0
- package/dist/registries/policies.js +115 -0
- package/dist/registries/policies.js.map +1 -0
- package/dist/registries/policies.mjs +113 -0
- package/dist/registries/policies.mjs.map +1 -0
- package/dist/registries/sanitizers.js +26 -0
- package/dist/registries/sanitizers.js.map +1 -0
- package/dist/registries/sanitizers.mjs +24 -0
- package/dist/registries/sanitizers.mjs.map +1 -0
- package/dist/registries/services.js +80 -0
- package/dist/registries/services.js.map +1 -0
- package/dist/registries/services.mjs +78 -0
- package/dist/registries/services.mjs.map +1 -0
- package/dist/registries/validators.js +26 -0
- package/dist/registries/validators.js.map +1 -0
- package/dist/registries/validators.mjs +24 -0
- package/dist/registries/validators.mjs.map +1 -0
- package/dist/services/auth/index.js +81 -0
- package/dist/services/auth/index.js.map +1 -0
- package/dist/services/auth/index.mjs +79 -0
- package/dist/services/auth/index.mjs.map +1 -0
- package/dist/services/config.js +51 -0
- package/dist/services/config.js.map +1 -0
- package/dist/services/config.mjs +49 -0
- package/dist/services/config.mjs.map +1 -0
- package/dist/services/content-api/index.d.ts +1 -1
- package/dist/services/content-api/index.d.ts.map +1 -1
- package/dist/services/content-api/index.js +86 -0
- package/dist/services/content-api/index.js.map +1 -0
- package/dist/services/content-api/index.mjs +84 -0
- package/dist/services/content-api/index.mjs.map +1 -0
- package/dist/services/content-api/permissions/engine.js +10 -0
- package/dist/services/content-api/permissions/engine.js.map +1 -0
- package/dist/services/content-api/permissions/engine.mjs +8 -0
- package/dist/services/content-api/permissions/engine.mjs.map +1 -0
- package/dist/services/content-api/permissions/index.js +107 -0
- package/dist/services/content-api/permissions/index.js.map +1 -0
- package/dist/services/content-api/permissions/index.mjs +105 -0
- package/dist/services/content-api/permissions/index.mjs.map +1 -0
- package/dist/services/content-api/permissions/providers/action.js +19 -0
- package/dist/services/content-api/permissions/providers/action.js.map +1 -0
- package/dist/services/content-api/permissions/providers/action.mjs +17 -0
- package/dist/services/content-api/permissions/providers/action.mjs.map +1 -0
- package/dist/services/content-api/permissions/providers/condition.js +19 -0
- package/dist/services/content-api/permissions/providers/condition.js.map +1 -0
- package/dist/services/content-api/permissions/providers/condition.mjs +17 -0
- package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -0
- package/dist/services/content-source-maps.d.ts +12 -0
- package/dist/services/content-source-maps.d.ts.map +1 -0
- package/dist/services/content-source-maps.js +86 -0
- package/dist/services/content-source-maps.js.map +1 -0
- package/dist/services/content-source-maps.mjs +84 -0
- package/dist/services/content-source-maps.mjs.map +1 -0
- package/dist/services/core-store.d.ts +2 -2
- package/dist/services/core-store.d.ts.map +1 -1
- package/dist/services/core-store.js +127 -0
- package/dist/services/core-store.js.map +1 -0
- package/dist/services/core-store.mjs +124 -0
- package/dist/services/core-store.mjs.map +1 -0
- package/dist/services/cron.js +77 -0
- package/dist/services/cron.js.map +1 -0
- package/dist/services/cron.mjs +75 -0
- package/dist/services/cron.mjs.map +1 -0
- package/dist/services/custom-fields.js +12 -0
- package/dist/services/custom-fields.js.map +1 -0
- package/dist/services/custom-fields.mjs +10 -0
- package/dist/services/custom-fields.mjs.map +1 -0
- package/dist/services/document-service/attributes/index.js +27 -0
- package/dist/services/document-service/attributes/index.js.map +1 -0
- package/dist/services/document-service/attributes/index.mjs +25 -0
- package/dist/services/document-service/attributes/index.mjs.map +1 -0
- package/dist/services/document-service/attributes/transforms.js +21 -0
- package/dist/services/document-service/attributes/transforms.js.map +1 -0
- package/dist/services/document-service/attributes/transforms.mjs +19 -0
- package/dist/services/document-service/attributes/transforms.mjs.map +1 -0
- package/dist/services/document-service/common.js +8 -0
- package/dist/services/document-service/common.js.map +1 -0
- package/dist/services/document-service/common.mjs +6 -0
- package/dist/services/document-service/common.mjs.map +1 -0
- package/dist/services/document-service/components.d.ts +6 -1
- package/dist/services/document-service/components.d.ts.map +1 -1
- package/dist/services/document-service/components.js +383 -0
- package/dist/services/document-service/components.js.map +1 -0
- package/dist/services/document-service/components.mjs +374 -0
- package/dist/services/document-service/components.mjs.map +1 -0
- package/dist/services/document-service/draft-and-publish.js +109 -0
- package/dist/services/document-service/draft-and-publish.js.map +1 -0
- package/dist/services/document-service/draft-and-publish.mjs +102 -0
- package/dist/services/document-service/draft-and-publish.mjs.map +1 -0
- package/dist/services/document-service/entries.d.ts.map +1 -1
- package/dist/services/document-service/entries.js +155 -0
- package/dist/services/document-service/entries.js.map +1 -0
- package/dist/services/document-service/entries.mjs +153 -0
- package/dist/services/document-service/entries.mjs.map +1 -0
- package/dist/services/document-service/events.js +59 -0
- package/dist/services/document-service/events.js.map +1 -0
- package/dist/services/document-service/events.mjs +57 -0
- package/dist/services/document-service/events.mjs.map +1 -0
- package/dist/services/document-service/first-published-at.d.ts +7 -0
- package/dist/services/document-service/first-published-at.d.ts.map +1 -0
- package/dist/services/document-service/first-published-at.js +31 -0
- package/dist/services/document-service/first-published-at.js.map +1 -0
- package/dist/services/document-service/first-published-at.mjs +28 -0
- package/dist/services/document-service/first-published-at.mjs.map +1 -0
- package/dist/services/document-service/index.js +56 -0
- package/dist/services/document-service/index.js.map +1 -0
- package/dist/services/document-service/index.mjs +54 -0
- package/dist/services/document-service/index.mjs.map +1 -0
- package/dist/services/document-service/internationalization.d.ts +6 -1
- package/dist/services/document-service/internationalization.d.ts.map +1 -1
- package/dist/services/document-service/internationalization.js +111 -0
- package/dist/services/document-service/internationalization.js.map +1 -0
- package/dist/services/document-service/internationalization.mjs +105 -0
- package/dist/services/document-service/internationalization.mjs.map +1 -0
- package/dist/services/document-service/middlewares/errors.js +29 -0
- package/dist/services/document-service/middlewares/errors.js.map +1 -0
- package/dist/services/document-service/middlewares/errors.mjs +27 -0
- package/dist/services/document-service/middlewares/errors.mjs.map +1 -0
- package/dist/services/document-service/middlewares/middleware-manager.js +51 -0
- package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -0
- package/dist/services/document-service/middlewares/middleware-manager.mjs +49 -0
- package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -0
- package/dist/services/document-service/params.js +14 -0
- package/dist/services/document-service/params.js.map +1 -0
- package/dist/services/document-service/params.mjs +12 -0
- package/dist/services/document-service/params.mjs.map +1 -0
- package/dist/services/document-service/repository.d.ts.map +1 -1
- package/dist/services/document-service/repository.js +372 -0
- package/dist/services/document-service/repository.js.map +1 -0
- package/dist/services/document-service/repository.mjs +370 -0
- package/dist/services/document-service/repository.mjs.map +1 -0
- package/dist/services/document-service/transform/data.js +25 -0
- package/dist/services/document-service/transform/data.js.map +1 -0
- package/dist/services/document-service/transform/data.mjs +23 -0
- package/dist/services/document-service/transform/data.mjs.map +1 -0
- package/dist/services/document-service/transform/fields.js +33 -0
- package/dist/services/document-service/transform/fields.js.map +1 -0
- package/dist/services/document-service/transform/fields.mjs +31 -0
- package/dist/services/document-service/transform/fields.mjs.map +1 -0
- package/dist/services/document-service/transform/id-map.js +125 -0
- package/dist/services/document-service/transform/id-map.js.map +1 -0
- package/dist/services/document-service/transform/id-map.mjs +123 -0
- package/dist/services/document-service/transform/id-map.mjs.map +1 -0
- package/dist/services/document-service/transform/id-transform.js +41 -0
- package/dist/services/document-service/transform/id-transform.js.map +1 -0
- package/dist/services/document-service/transform/id-transform.mjs +39 -0
- package/dist/services/document-service/transform/id-transform.mjs.map +1 -0
- package/dist/services/document-service/transform/populate.js +26 -0
- package/dist/services/document-service/transform/populate.js.map +1 -0
- package/dist/services/document-service/transform/populate.mjs +24 -0
- package/dist/services/document-service/transform/populate.mjs.map +1 -0
- package/dist/services/document-service/transform/query.js +14 -0
- package/dist/services/document-service/transform/query.js.map +1 -0
- package/dist/services/document-service/transform/query.mjs +12 -0
- package/dist/services/document-service/transform/query.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.js +80 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.mjs +78 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.js +110 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.mjs +108 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/transform/default-locale.js +50 -0
- package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -0
- package/dist/services/document-service/transform/relations/transform/default-locale.mjs +48 -0
- package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/utils/dp.js +56 -0
- package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -0
- package/dist/services/document-service/transform/relations/utils/dp.mjs +54 -0
- package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/utils/i18n.js +27 -0
- package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -0
- package/dist/services/document-service/transform/relations/utils/i18n.mjs +23 -0
- package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/utils/map-relation.js +130 -0
- package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -0
- package/dist/services/document-service/transform/relations/utils/map-relation.mjs +127 -0
- package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -0
- package/dist/services/document-service/utils/bidirectional-relations.d.ts +95 -0
- package/dist/services/document-service/utils/bidirectional-relations.d.ts.map +1 -0
- package/dist/services/document-service/utils/bidirectional-relations.js +148 -0
- package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -0
- package/dist/services/document-service/utils/bidirectional-relations.mjs +145 -0
- package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -0
- package/dist/services/document-service/utils/populate.js +71 -0
- package/dist/services/document-service/utils/populate.js.map +1 -0
- package/dist/services/document-service/utils/populate.mjs +69 -0
- package/dist/services/document-service/utils/populate.mjs.map +1 -0
- package/dist/services/document-service/utils/unidirectional-relations.d.ts +19 -2
- package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -1
- package/dist/services/document-service/utils/unidirectional-relations.js +131 -0
- package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -0
- package/dist/services/document-service/utils/unidirectional-relations.mjs +128 -0
- package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -0
- package/dist/services/entity-service/index.js +238 -0
- package/dist/services/entity-service/index.js.map +1 -0
- package/dist/services/entity-service/index.mjs +236 -0
- package/dist/services/entity-service/index.mjs.map +1 -0
- package/dist/services/entity-validator/blocks-validator.js +160 -0
- package/dist/services/entity-validator/blocks-validator.js.map +1 -0
- package/dist/services/entity-validator/blocks-validator.mjs +158 -0
- package/dist/services/entity-validator/blocks-validator.mjs.map +1 -0
- package/dist/services/entity-validator/index.d.ts.map +1 -1
- package/dist/services/entity-validator/index.js +393 -0
- package/dist/services/entity-validator/index.js.map +1 -0
- package/dist/services/entity-validator/index.mjs +391 -0
- package/dist/services/entity-validator/index.mjs.map +1 -0
- package/dist/services/entity-validator/validators.d.ts +1 -0
- package/dist/services/entity-validator/validators.d.ts.map +1 -1
- package/dist/services/entity-validator/validators.js +302 -0
- package/dist/services/entity-validator/validators.js.map +1 -0
- package/dist/services/entity-validator/validators.mjs +293 -0
- package/dist/services/entity-validator/validators.mjs.map +1 -0
- package/dist/services/errors.js +76 -0
- package/dist/services/errors.js.map +1 -0
- package/dist/services/errors.mjs +72 -0
- package/dist/services/errors.mjs.map +1 -0
- package/dist/services/event-hub.js +85 -0
- package/dist/services/event-hub.js.map +1 -0
- package/dist/services/event-hub.mjs +83 -0
- package/dist/services/event-hub.mjs.map +1 -0
- package/dist/services/features.js +22 -0
- package/dist/services/features.js.map +1 -0
- package/dist/services/features.mjs +20 -0
- package/dist/services/features.mjs.map +1 -0
- package/dist/services/fs.js +52 -0
- package/dist/services/fs.js.map +1 -0
- package/dist/services/fs.mjs +50 -0
- package/dist/services/fs.mjs.map +1 -0
- package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
- package/dist/services/metrics/admin-user-hash.js +16 -0
- package/dist/services/metrics/admin-user-hash.js.map +1 -0
- package/dist/services/metrics/admin-user-hash.mjs +14 -0
- package/dist/services/metrics/admin-user-hash.mjs.map +1 -0
- package/dist/services/metrics/index.d.ts +1 -1
- package/dist/services/metrics/index.d.ts.map +1 -1
- package/dist/services/metrics/index.js +52 -0
- package/dist/services/metrics/index.js.map +1 -0
- package/dist/services/metrics/index.mjs +50 -0
- package/dist/services/metrics/index.mjs.map +1 -0
- package/dist/services/metrics/is-truthy.js +16 -0
- package/dist/services/metrics/is-truthy.js.map +1 -0
- package/dist/services/metrics/is-truthy.mjs +14 -0
- package/dist/services/metrics/is-truthy.mjs.map +1 -0
- package/dist/services/metrics/middleware.js +40 -0
- package/dist/services/metrics/middleware.js.map +1 -0
- package/dist/services/metrics/middleware.mjs +38 -0
- package/dist/services/metrics/middleware.mjs.map +1 -0
- package/dist/services/metrics/rate-limiter.js +26 -0
- package/dist/services/metrics/rate-limiter.js.map +1 -0
- package/dist/services/metrics/rate-limiter.mjs +24 -0
- package/dist/services/metrics/rate-limiter.mjs.map +1 -0
- package/dist/services/metrics/sender.d.ts.map +1 -1
- package/dist/services/metrics/sender.js +85 -0
- package/dist/services/metrics/sender.js.map +1 -0
- package/dist/services/metrics/sender.mjs +83 -0
- package/dist/services/metrics/sender.mjs.map +1 -0
- package/dist/services/query-params.js +15 -0
- package/dist/services/query-params.js.map +1 -0
- package/dist/services/query-params.mjs +13 -0
- package/dist/services/query-params.mjs.map +1 -0
- package/dist/services/reloader.js +39 -0
- package/dist/services/reloader.js.map +1 -0
- package/dist/services/reloader.mjs +37 -0
- package/dist/services/reloader.mjs.map +1 -0
- package/dist/services/request-context.js +16 -0
- package/dist/services/request-context.js.map +1 -0
- package/dist/services/request-context.mjs +14 -0
- package/dist/services/request-context.mjs.map +1 -0
- package/dist/services/server/admin-api.js +14 -0
- package/dist/services/server/admin-api.js.map +1 -0
- package/dist/services/server/admin-api.mjs +12 -0
- package/dist/services/server/admin-api.mjs.map +1 -0
- package/dist/services/server/api.js +36 -0
- package/dist/services/server/api.js.map +1 -0
- package/dist/services/server/api.mjs +34 -0
- package/dist/services/server/api.mjs.map +1 -0
- package/dist/services/server/compose-endpoint.js +128 -0
- package/dist/services/server/compose-endpoint.js.map +1 -0
- package/dist/services/server/compose-endpoint.mjs +126 -0
- package/dist/services/server/compose-endpoint.mjs.map +1 -0
- package/dist/services/server/content-api.js +14 -0
- package/dist/services/server/content-api.js.map +1 -0
- package/dist/services/server/content-api.mjs +12 -0
- package/dist/services/server/content-api.mjs.map +1 -0
- package/dist/services/server/http-server.js +54 -0
- package/dist/services/server/http-server.js.map +1 -0
- package/dist/services/server/http-server.mjs +52 -0
- package/dist/services/server/http-server.mjs.map +1 -0
- package/dist/services/server/index.js +90 -0
- package/dist/services/server/index.js.map +1 -0
- package/dist/services/server/index.mjs +88 -0
- package/dist/services/server/index.mjs.map +1 -0
- package/dist/services/server/koa.js +54 -0
- package/dist/services/server/koa.js.map +1 -0
- package/dist/services/server/koa.mjs +52 -0
- package/dist/services/server/koa.mjs.map +1 -0
- package/dist/services/server/middleware.js +96 -0
- package/dist/services/server/middleware.js.map +1 -0
- package/dist/services/server/middleware.mjs +93 -0
- package/dist/services/server/middleware.mjs.map +1 -0
- package/dist/services/server/policy.js +27 -0
- package/dist/services/server/policy.js.map +1 -0
- package/dist/services/server/policy.mjs +25 -0
- package/dist/services/server/policy.mjs.map +1 -0
- package/dist/services/server/register-middlewares.js +79 -0
- package/dist/services/server/register-middlewares.js.map +1 -0
- package/dist/services/server/register-middlewares.mjs +77 -0
- package/dist/services/server/register-middlewares.mjs.map +1 -0
- package/dist/services/server/register-routes.js +119 -0
- package/dist/services/server/register-routes.js.map +1 -0
- package/dist/services/server/register-routes.mjs +117 -0
- package/dist/services/server/register-routes.mjs.map +1 -0
- package/dist/services/server/routing.d.ts +10 -0
- package/dist/services/server/routing.d.ts.map +1 -1
- package/dist/services/server/routing.js +110 -0
- package/dist/services/server/routing.js.map +1 -0
- package/dist/services/server/routing.mjs +107 -0
- package/dist/services/server/routing.mjs.map +1 -0
- package/dist/services/utils/conditional-fields.d.ts +3 -0
- package/dist/services/utils/conditional-fields.d.ts.map +1 -0
- package/dist/services/utils/conditional-fields.js +22 -0
- package/dist/services/utils/conditional-fields.js.map +1 -0
- package/dist/services/utils/conditional-fields.mjs +20 -0
- package/dist/services/utils/conditional-fields.mjs.map +1 -0
- package/dist/services/utils/dynamic-zones.js +16 -0
- package/dist/services/utils/dynamic-zones.js.map +1 -0
- package/dist/services/utils/dynamic-zones.mjs +14 -0
- package/dist/services/utils/dynamic-zones.mjs.map +1 -0
- package/dist/services/webhook-runner.js +135 -0
- package/dist/services/webhook-runner.js.map +1 -0
- package/dist/services/webhook-runner.mjs +133 -0
- package/dist/services/webhook-runner.mjs.map +1 -0
- package/dist/services/webhook-store.js +143 -0
- package/dist/services/webhook-store.js.map +1 -0
- package/dist/services/webhook-store.mjs +140 -0
- package/dist/services/webhook-store.mjs.map +1 -0
- package/dist/services/worker-queue.js +51 -0
- package/dist/services/worker-queue.js.map +1 -0
- package/dist/services/worker-queue.mjs +49 -0
- package/dist/services/worker-queue.mjs.map +1 -0
- package/dist/utils/convert-custom-field-type.js +21 -0
- package/dist/utils/convert-custom-field-type.js.map +1 -0
- package/dist/utils/convert-custom-field-type.mjs +19 -0
- package/dist/utils/convert-custom-field-type.mjs.map +1 -0
- package/dist/utils/cron.js +72 -0
- package/dist/utils/cron.js.map +1 -0
- package/dist/utils/cron.mjs +70 -0
- package/dist/utils/cron.mjs.map +1 -0
- package/dist/utils/fetch.d.ts +5 -1
- package/dist/utils/fetch.d.ts.map +1 -1
- package/dist/utils/fetch.js +31 -0
- package/dist/utils/fetch.js.map +1 -0
- package/dist/utils/fetch.mjs +29 -0
- package/dist/utils/fetch.mjs.map +1 -0
- package/dist/utils/filepath-to-prop-path.js +25 -0
- package/dist/utils/filepath-to-prop-path.js.map +1 -0
- package/dist/utils/filepath-to-prop-path.mjs +23 -0
- package/dist/utils/filepath-to-prop-path.mjs.map +1 -0
- package/dist/utils/is-initialized.js +25 -0
- package/dist/utils/is-initialized.js.map +1 -0
- package/dist/utils/is-initialized.mjs +23 -0
- package/dist/utils/is-initialized.mjs.map +1 -0
- package/dist/utils/lifecycles.js +10 -0
- package/dist/utils/lifecycles.js.map +1 -0
- package/dist/utils/lifecycles.mjs +8 -0
- package/dist/utils/lifecycles.mjs.map +1 -0
- package/dist/utils/load-config-file.js +47 -0
- package/dist/utils/load-config-file.js.map +1 -0
- package/dist/utils/load-config-file.mjs +45 -0
- package/dist/utils/load-config-file.mjs.map +1 -0
- package/dist/utils/load-files.js +44 -0
- package/dist/utils/load-files.js.map +1 -0
- package/dist/utils/load-files.mjs +42 -0
- package/dist/utils/load-files.mjs.map +1 -0
- package/dist/utils/open-browser.js +11 -0
- package/dist/utils/open-browser.js.map +1 -0
- package/dist/utils/open-browser.mjs +9 -0
- package/dist/utils/open-browser.mjs.map +1 -0
- package/dist/utils/resolve-working-dirs.js +26 -0
- package/dist/utils/resolve-working-dirs.js.map +1 -0
- package/dist/utils/resolve-working-dirs.mjs +24 -0
- package/dist/utils/resolve-working-dirs.mjs.map +1 -0
- package/dist/utils/signals.js +23 -0
- package/dist/utils/signals.js.map +1 -0
- package/dist/utils/signals.mjs +21 -0
- package/dist/utils/signals.mjs.map +1 -0
- package/dist/utils/startup-logger.js +110 -0
- package/dist/utils/startup-logger.js.map +1 -0
- package/dist/utils/startup-logger.mjs +108 -0
- package/dist/utils/startup-logger.mjs.map +1 -0
- package/dist/utils/transform-content-types-to-models.d.ts +197 -0
- package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
- package/dist/utils/transform-content-types-to-models.js +377 -0
- package/dist/utils/transform-content-types-to-models.js.map +1 -0
- package/dist/utils/transform-content-types-to-models.mjs +365 -0
- package/dist/utils/transform-content-types-to-models.mjs.map +1 -0
- package/dist/utils/update-notifier/index.js +80 -0
- package/dist/utils/update-notifier/index.js.map +1 -0
- package/dist/utils/update-notifier/index.mjs +78 -0
- package/dist/utils/update-notifier/index.mjs.map +1 -0
- package/package.json +18 -14
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import createDebugger from 'debug';
|
|
2
|
+
import _ from 'lodash';
|
|
3
|
+
import WorkerQueue from './worker-queue.mjs';
|
|
4
|
+
|
|
5
|
+
const debug = createDebugger('strapi:webhook');
|
|
6
|
+
const defaultConfiguration = {
|
|
7
|
+
defaultHeaders: {}
|
|
8
|
+
};
|
|
9
|
+
class WebhookRunner {
|
|
10
|
+
deleteListener(event) {
|
|
11
|
+
debug(`Deleting listener for event '${event}'`);
|
|
12
|
+
const fn = this.listeners.get(event);
|
|
13
|
+
if (fn !== undefined) {
|
|
14
|
+
this.eventHub.off(event, fn);
|
|
15
|
+
this.listeners.delete(event);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
createListener(event) {
|
|
19
|
+
debug(`Creating listener for event '${event}'`);
|
|
20
|
+
if (this.listeners.has(event)) {
|
|
21
|
+
this.logger.error(`The webhook runner is already listening for the event '${event}'. Did you mean to call .register() ?`);
|
|
22
|
+
}
|
|
23
|
+
const listen = async (info)=>{
|
|
24
|
+
this.queue.enqueue({
|
|
25
|
+
event,
|
|
26
|
+
info
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
this.listeners.set(event, listen);
|
|
30
|
+
this.eventHub.on(event, listen);
|
|
31
|
+
}
|
|
32
|
+
async executeListener({ event, info }) {
|
|
33
|
+
debug(`Executing webhook for event '${event}'`);
|
|
34
|
+
const webhooks = this.webhooksMap.get(event) || [];
|
|
35
|
+
const activeWebhooks = webhooks.filter((webhook)=>webhook.isEnabled === true);
|
|
36
|
+
for (const webhook of activeWebhooks){
|
|
37
|
+
await this.run(webhook, event, info).catch((error)=>{
|
|
38
|
+
this.logger.error('Error running webhook');
|
|
39
|
+
this.logger.error(error);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
run(webhook, event, info = {}) {
|
|
44
|
+
const { url, headers } = webhook;
|
|
45
|
+
return this.fetch(url, {
|
|
46
|
+
method: 'post',
|
|
47
|
+
body: JSON.stringify({
|
|
48
|
+
event,
|
|
49
|
+
createdAt: new Date(),
|
|
50
|
+
...info
|
|
51
|
+
}),
|
|
52
|
+
headers: {
|
|
53
|
+
...this.config.defaultHeaders,
|
|
54
|
+
...headers,
|
|
55
|
+
'X-Strapi-Event': event,
|
|
56
|
+
'Content-Type': 'application/json'
|
|
57
|
+
},
|
|
58
|
+
signal: AbortSignal.timeout(10000)
|
|
59
|
+
}).then(async (res)=>{
|
|
60
|
+
if (res.ok) {
|
|
61
|
+
return {
|
|
62
|
+
statusCode: res.status
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
statusCode: res.status,
|
|
67
|
+
message: await res.text()
|
|
68
|
+
};
|
|
69
|
+
}).catch((err)=>{
|
|
70
|
+
return {
|
|
71
|
+
statusCode: 500,
|
|
72
|
+
message: err.message
|
|
73
|
+
};
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
add(webhook) {
|
|
77
|
+
debug(`Registering webhook '${webhook.id}'`);
|
|
78
|
+
const { events } = webhook;
|
|
79
|
+
events.forEach((event)=>{
|
|
80
|
+
if (this.webhooksMap.has(event)) {
|
|
81
|
+
this.webhooksMap.get(event)?.push(webhook);
|
|
82
|
+
} else {
|
|
83
|
+
this.webhooksMap.set(event, [
|
|
84
|
+
webhook
|
|
85
|
+
]);
|
|
86
|
+
this.createListener(event);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
update(webhook) {
|
|
91
|
+
debug(`Refreshing webhook '${webhook.id}'`);
|
|
92
|
+
this.remove(webhook);
|
|
93
|
+
this.add(webhook);
|
|
94
|
+
}
|
|
95
|
+
remove(webhook) {
|
|
96
|
+
debug(`Unregistering webhook '${webhook.id}'`);
|
|
97
|
+
this.webhooksMap.forEach((webhooks, event)=>{
|
|
98
|
+
const filteredWebhooks = webhooks.filter((value)=>value.id !== webhook.id);
|
|
99
|
+
// Cleanup hanging listeners
|
|
100
|
+
if (filteredWebhooks.length === 0) {
|
|
101
|
+
this.webhooksMap.delete(event);
|
|
102
|
+
this.deleteListener(event);
|
|
103
|
+
} else {
|
|
104
|
+
this.webhooksMap.set(event, filteredWebhooks);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
constructor({ eventHub, logger, configuration = {}, fetch }){
|
|
109
|
+
this.webhooksMap = new Map();
|
|
110
|
+
this.listeners = new Map();
|
|
111
|
+
debug('Initialized webhook runner');
|
|
112
|
+
this.eventHub = eventHub;
|
|
113
|
+
this.logger = logger;
|
|
114
|
+
this.fetch = fetch;
|
|
115
|
+
if (typeof configuration !== 'object') {
|
|
116
|
+
throw new Error('Invalid configuration provided to the webhookRunner.\nCheck your server.json -> webhooks configuration');
|
|
117
|
+
}
|
|
118
|
+
this.config = _.merge(defaultConfiguration, configuration);
|
|
119
|
+
this.queue = new WorkerQueue({
|
|
120
|
+
logger,
|
|
121
|
+
concurrency: 5
|
|
122
|
+
});
|
|
123
|
+
this.queue.subscribe(this.executeListener.bind(this));
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Expose a factory function instead of the class
|
|
128
|
+
*/ function createWebhookRunner(opts) {
|
|
129
|
+
return new WebhookRunner(opts);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export { createWebhookRunner as default };
|
|
133
|
+
//# sourceMappingURL=webhook-runner.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-runner.mjs","sources":["../../src/services/webhook-runner.ts"],"sourcesContent":["/**\n * The event hub is Strapi's event control center.\n */\n\nimport createdDebugger from 'debug';\nimport _ from 'lodash';\nimport type { Logger } from '@strapi/logger';\n\nimport type { Modules } from '@strapi/types';\nimport WorkerQueue from './worker-queue';\nimport type { EventHub } from './event-hub';\nimport type { Fetch } from '../utils/fetch';\n\ntype Webhook = Modules.WebhookStore.Webhook;\n\ninterface Config {\n defaultHeaders: Record<string, string>;\n}\n\ninterface ConstructorParameters {\n eventHub: EventHub;\n logger: Logger;\n configuration?: Record<string, unknown>;\n fetch: Fetch;\n}\n\ninterface Event {\n event: string;\n info: Record<string, unknown>;\n}\n\ntype Listener = (info: Record<string, unknown>) => Promise<void>;\n\nconst debug = createdDebugger('strapi:webhook');\n\nconst defaultConfiguration: Config = {\n defaultHeaders: {},\n};\n\nclass WebhookRunner {\n private eventHub: EventHub;\n\n private logger: Logger;\n\n private config: Config;\n\n private webhooksMap: Map<string, Webhook[]> = new Map();\n\n private listeners: Map<string, Listener> = new Map();\n\n private queue: WorkerQueue<Event, void>;\n\n private fetch: Fetch;\n\n constructor({ eventHub, logger, configuration = {}, fetch }: ConstructorParameters) {\n debug('Initialized webhook runner');\n this.eventHub = eventHub;\n this.logger = logger;\n this.fetch = fetch;\n\n if (typeof configuration !== 'object') {\n throw new Error(\n 'Invalid configuration provided to the webhookRunner.\\nCheck your server.json -> webhooks configuration'\n );\n }\n\n this.config = _.merge(defaultConfiguration, configuration);\n\n this.queue = new WorkerQueue({ logger, concurrency: 5 });\n\n this.queue.subscribe(this.executeListener.bind(this));\n }\n\n deleteListener(event: string) {\n debug(`Deleting listener for event '${event}'`);\n\n const fn = this.listeners.get(event);\n\n if (fn !== undefined) {\n this.eventHub.off(event, fn);\n this.listeners.delete(event);\n }\n }\n\n createListener(event: string) {\n debug(`Creating listener for event '${event}'`);\n if (this.listeners.has(event)) {\n this.logger.error(\n `The webhook runner is already listening for the event '${event}'. Did you mean to call .register() ?`\n );\n }\n\n const listen = async (info: Event['info']) => {\n this.queue.enqueue({ event, info });\n };\n\n this.listeners.set(event, listen);\n this.eventHub.on(event, listen);\n }\n\n async executeListener({ event, info }: Event) {\n debug(`Executing webhook for event '${event}'`);\n const webhooks = this.webhooksMap.get(event) || [];\n const activeWebhooks = webhooks.filter((webhook) => webhook.isEnabled === true);\n\n for (const webhook of activeWebhooks) {\n await this.run(webhook, event, info).catch((error: unknown) => {\n this.logger.error('Error running webhook');\n this.logger.error(error);\n });\n }\n }\n\n run(webhook: Webhook, event: string, info = {}) {\n const { url, headers } = webhook;\n\n return this.fetch(url, {\n method: 'post',\n body: JSON.stringify({\n event,\n createdAt: new Date(),\n ...info,\n }),\n headers: {\n ...this.config.defaultHeaders,\n ...headers,\n 'X-Strapi-Event': event,\n 'Content-Type': 'application/json',\n },\n signal: AbortSignal.timeout(10000),\n })\n .then(async (res) => {\n if (res.ok) {\n return {\n statusCode: res.status,\n };\n }\n\n return {\n statusCode: res.status,\n message: await res.text(),\n };\n })\n .catch((err) => {\n return {\n statusCode: 500,\n message: err.message,\n };\n });\n }\n\n add(webhook: Webhook) {\n debug(`Registering webhook '${webhook.id}'`);\n const { events } = webhook;\n\n events.forEach((event) => {\n if (this.webhooksMap.has(event)) {\n this.webhooksMap.get(event)?.push(webhook);\n } else {\n this.webhooksMap.set(event, [webhook]);\n this.createListener(event);\n }\n });\n }\n\n update(webhook: Webhook) {\n debug(`Refreshing webhook '${webhook.id}'`);\n this.remove(webhook);\n this.add(webhook);\n }\n\n remove(webhook: Webhook) {\n debug(`Unregistering webhook '${webhook.id}'`);\n\n this.webhooksMap.forEach((webhooks, event) => {\n const filteredWebhooks = webhooks.filter((value) => value.id !== webhook.id);\n\n // Cleanup hanging listeners\n if (filteredWebhooks.length === 0) {\n this.webhooksMap.delete(event);\n this.deleteListener(event);\n } else {\n this.webhooksMap.set(event, filteredWebhooks);\n }\n });\n }\n}\n\n/**\n * Expose a factory function instead of the class\n */\nexport default function createWebhookRunner(opts: ConstructorParameters): WebhookRunner {\n return new WebhookRunner(opts);\n}\n\nexport type { WebhookRunner };\n"],"names":["debug","createdDebugger","defaultConfiguration","defaultHeaders","WebhookRunner","deleteListener","event","fn","listeners","get","undefined","eventHub","off","delete","createListener","has","logger","error","listen","info","queue","enqueue","set","on","executeListener","webhooks","webhooksMap","activeWebhooks","filter","webhook","isEnabled","run","catch","url","headers","fetch","method","body","JSON","stringify","createdAt","Date","config","signal","AbortSignal","timeout","then","res","ok","statusCode","status","message","text","err","add","id","events","forEach","push","update","remove","filteredWebhooks","value","length","constructor","configuration","Map","Error","_","merge","WorkerQueue","concurrency","subscribe","bind","createWebhookRunner","opts"],"mappings":"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"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var strapiUtils = require('@strapi/utils');
|
|
4
|
+
|
|
5
|
+
const { ValidationError } = strapiUtils.errors;
|
|
6
|
+
const webhookModel = {
|
|
7
|
+
uid: 'strapi::webhook',
|
|
8
|
+
singularName: 'strapi_webhooks',
|
|
9
|
+
tableName: 'strapi_webhooks',
|
|
10
|
+
attributes: {
|
|
11
|
+
id: {
|
|
12
|
+
type: 'increments'
|
|
13
|
+
},
|
|
14
|
+
name: {
|
|
15
|
+
type: 'string'
|
|
16
|
+
},
|
|
17
|
+
url: {
|
|
18
|
+
type: 'text'
|
|
19
|
+
},
|
|
20
|
+
headers: {
|
|
21
|
+
type: 'json'
|
|
22
|
+
},
|
|
23
|
+
events: {
|
|
24
|
+
type: 'json'
|
|
25
|
+
},
|
|
26
|
+
enabled: {
|
|
27
|
+
type: 'boolean'
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
const toDBObject = (data)=>{
|
|
32
|
+
return {
|
|
33
|
+
name: data.name,
|
|
34
|
+
url: data.url,
|
|
35
|
+
headers: data.headers,
|
|
36
|
+
events: data.events,
|
|
37
|
+
enabled: data.isEnabled
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
const fromDBObject = (row)=>{
|
|
41
|
+
return {
|
|
42
|
+
id: typeof row.id === 'number' ? row.id.toString() : row.id,
|
|
43
|
+
name: row.name,
|
|
44
|
+
url: row.url,
|
|
45
|
+
headers: row.headers,
|
|
46
|
+
events: row.events,
|
|
47
|
+
isEnabled: row.enabled
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
const webhookEventValidator = async (allowedEvents, events)=>{
|
|
51
|
+
const allowedValues = Array.from(allowedEvents.values());
|
|
52
|
+
events.forEach((event)=>{
|
|
53
|
+
if (allowedValues.includes(event)) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
throw new ValidationError(`Webhook event ${event} is not supported`);
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
const createWebhookStore = ({ db })=>{
|
|
60
|
+
return {
|
|
61
|
+
allowedEvents: new Map([
|
|
62
|
+
[
|
|
63
|
+
'ENTRY_CREATE',
|
|
64
|
+
'entry.create'
|
|
65
|
+
],
|
|
66
|
+
[
|
|
67
|
+
'ENTRY_UPDATE',
|
|
68
|
+
'entry.update'
|
|
69
|
+
],
|
|
70
|
+
[
|
|
71
|
+
'ENTRY_DELETE',
|
|
72
|
+
'entry.delete'
|
|
73
|
+
],
|
|
74
|
+
[
|
|
75
|
+
'ENTRY_PUBLISH',
|
|
76
|
+
'entry.publish'
|
|
77
|
+
],
|
|
78
|
+
[
|
|
79
|
+
'ENTRY_UNPUBLISH',
|
|
80
|
+
'entry.unpublish'
|
|
81
|
+
],
|
|
82
|
+
[
|
|
83
|
+
'ENTRY_DRAFT_DISCARD',
|
|
84
|
+
'entry.draft-discard'
|
|
85
|
+
]
|
|
86
|
+
]),
|
|
87
|
+
addAllowedEvent (key, value) {
|
|
88
|
+
this.allowedEvents.set(key, value);
|
|
89
|
+
},
|
|
90
|
+
removeAllowedEvent (key) {
|
|
91
|
+
this.allowedEvents.delete(key);
|
|
92
|
+
},
|
|
93
|
+
listAllowedEvents () {
|
|
94
|
+
return Array.from(this.allowedEvents.keys());
|
|
95
|
+
},
|
|
96
|
+
getAllowedEvent (key) {
|
|
97
|
+
return this.allowedEvents.get(key);
|
|
98
|
+
},
|
|
99
|
+
async findWebhooks () {
|
|
100
|
+
const results = await db.query('strapi::webhook').findMany();
|
|
101
|
+
return results.map(fromDBObject);
|
|
102
|
+
},
|
|
103
|
+
async findWebhook (id) {
|
|
104
|
+
const result = await db.query('strapi::webhook').findOne({
|
|
105
|
+
where: {
|
|
106
|
+
id
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
return result ? fromDBObject(result) : null;
|
|
110
|
+
},
|
|
111
|
+
async createWebhook (data) {
|
|
112
|
+
await webhookEventValidator(this.allowedEvents, data.events);
|
|
113
|
+
return db.query('strapi::webhook').create({
|
|
114
|
+
data: toDBObject({
|
|
115
|
+
...data,
|
|
116
|
+
isEnabled: true
|
|
117
|
+
})
|
|
118
|
+
}).then(fromDBObject);
|
|
119
|
+
},
|
|
120
|
+
async updateWebhook (id, data) {
|
|
121
|
+
await webhookEventValidator(this.allowedEvents, data.events);
|
|
122
|
+
const webhook = await db.query('strapi::webhook').update({
|
|
123
|
+
where: {
|
|
124
|
+
id
|
|
125
|
+
},
|
|
126
|
+
data: toDBObject(data)
|
|
127
|
+
});
|
|
128
|
+
return webhook ? fromDBObject(webhook) : null;
|
|
129
|
+
},
|
|
130
|
+
async deleteWebhook (id) {
|
|
131
|
+
const webhook = await db.query('strapi::webhook').delete({
|
|
132
|
+
where: {
|
|
133
|
+
id
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
return webhook ? fromDBObject(webhook) : null;
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
exports.createWebhookStore = createWebhookStore;
|
|
142
|
+
exports.webhookModel = webhookModel;
|
|
143
|
+
//# sourceMappingURL=webhook-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-store.js","sources":["../../src/services/webhook-store.ts"],"sourcesContent":["/**\n * Webhook store is the implementation of webhook storage over the core_store\n */\n\nimport { errors } from '@strapi/utils';\nimport type { Model, Database } from '@strapi/database';\nimport type { Modules } from '@strapi/types';\n\nconst { ValidationError } = errors;\n\nconst webhookModel: Model = {\n uid: 'strapi::webhook',\n singularName: 'strapi_webhooks',\n tableName: 'strapi_webhooks',\n attributes: {\n id: {\n type: 'increments',\n },\n name: {\n type: 'string',\n },\n url: {\n type: 'text',\n },\n headers: {\n type: 'json',\n },\n events: {\n type: 'json',\n },\n enabled: {\n type: 'boolean',\n },\n },\n};\n\ntype Webhook = Modules.WebhookStore.Webhook;\ntype DBOutput = Omit<Webhook, 'id' | 'isEnabled'> & { id: string | number; enabled: boolean };\ntype DBInput = Omit<DBOutput, 'id'>;\n\nconst toDBObject = (data: Webhook): DBInput => {\n return {\n name: data.name,\n url: data.url,\n headers: data.headers,\n events: data.events,\n enabled: data.isEnabled,\n };\n};\n\nconst fromDBObject = (row: DBOutput): Webhook => {\n return {\n id: typeof row.id === 'number' ? row.id.toString() : row.id,\n name: row.name,\n url: row.url,\n headers: row.headers,\n events: row.events,\n isEnabled: row.enabled,\n };\n};\n\nconst webhookEventValidator = async (allowedEvents: Map<string, string>, events: string[]) => {\n const allowedValues = Array.from(allowedEvents.values());\n\n events.forEach((event) => {\n if (allowedValues.includes(event)) {\n return;\n }\n\n throw new ValidationError(`Webhook event ${event} is not supported`);\n });\n};\n\nexport interface WebhookStore {\n allowedEvents: Map<string, string>;\n addAllowedEvent(key: string, value: string): void;\n removeAllowedEvent(key: string): void;\n listAllowedEvents(): string[];\n getAllowedEvent(key: string): string | undefined;\n findWebhooks(): Promise<Webhook[]>;\n findWebhook(id: string): Promise<Webhook | null>;\n createWebhook(data: Webhook): Promise<Webhook>;\n updateWebhook(id: string, data: Webhook): Promise<Webhook | null>;\n deleteWebhook(id: string): Promise<Webhook | null>;\n}\n\nconst createWebhookStore = ({ db }: { db: Database }): WebhookStore => {\n return {\n allowedEvents: new Map([\n ['ENTRY_CREATE', 'entry.create'],\n ['ENTRY_UPDATE', 'entry.update'],\n ['ENTRY_DELETE', 'entry.delete'],\n ['ENTRY_PUBLISH', 'entry.publish'],\n ['ENTRY_UNPUBLISH', 'entry.unpublish'],\n ['ENTRY_DRAFT_DISCARD', 'entry.draft-discard'],\n ]),\n addAllowedEvent(key, value) {\n this.allowedEvents.set(key, value);\n },\n removeAllowedEvent(key) {\n this.allowedEvents.delete(key);\n },\n listAllowedEvents() {\n return Array.from(this.allowedEvents.keys());\n },\n getAllowedEvent(key) {\n return this.allowedEvents.get(key);\n },\n async findWebhooks() {\n const results = await db.query('strapi::webhook').findMany();\n\n return results.map(fromDBObject);\n },\n async findWebhook(id) {\n const result = await db.query('strapi::webhook').findOne({ where: { id } });\n return result ? fromDBObject(result) : null;\n },\n async createWebhook(data) {\n await webhookEventValidator(this.allowedEvents, data.events);\n\n return db\n .query('strapi::webhook')\n .create({\n data: toDBObject({ ...data, isEnabled: true }),\n })\n .then(fromDBObject);\n },\n async updateWebhook(id, data) {\n await webhookEventValidator(this.allowedEvents, data.events);\n\n const webhook = await db.query('strapi::webhook').update({\n where: { id },\n data: toDBObject(data),\n });\n\n return webhook ? fromDBObject(webhook) : null;\n },\n async deleteWebhook(id) {\n const webhook = await db.query('strapi::webhook').delete({ where: { id } });\n return webhook ? fromDBObject(webhook) : null;\n },\n };\n};\n\nexport { webhookModel, createWebhookStore };\n"],"names":["ValidationError","errors","webhookModel","uid","singularName","tableName","attributes","id","type","name","url","headers","events","enabled","toDBObject","data","isEnabled","fromDBObject","row","toString","webhookEventValidator","allowedEvents","allowedValues","Array","from","values","forEach","event","includes","createWebhookStore","db","Map","addAllowedEvent","key","value","set","removeAllowedEvent","delete","listAllowedEvents","keys","getAllowedEvent","get","findWebhooks","results","query","findMany","map","findWebhook","result","findOne","where","createWebhook","create","then","updateWebhook","webhook","update","deleteWebhook"],"mappings":"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"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { errors } from '@strapi/utils';
|
|
2
|
+
|
|
3
|
+
const { ValidationError } = errors;
|
|
4
|
+
const webhookModel = {
|
|
5
|
+
uid: 'strapi::webhook',
|
|
6
|
+
singularName: 'strapi_webhooks',
|
|
7
|
+
tableName: 'strapi_webhooks',
|
|
8
|
+
attributes: {
|
|
9
|
+
id: {
|
|
10
|
+
type: 'increments'
|
|
11
|
+
},
|
|
12
|
+
name: {
|
|
13
|
+
type: 'string'
|
|
14
|
+
},
|
|
15
|
+
url: {
|
|
16
|
+
type: 'text'
|
|
17
|
+
},
|
|
18
|
+
headers: {
|
|
19
|
+
type: 'json'
|
|
20
|
+
},
|
|
21
|
+
events: {
|
|
22
|
+
type: 'json'
|
|
23
|
+
},
|
|
24
|
+
enabled: {
|
|
25
|
+
type: 'boolean'
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
const toDBObject = (data)=>{
|
|
30
|
+
return {
|
|
31
|
+
name: data.name,
|
|
32
|
+
url: data.url,
|
|
33
|
+
headers: data.headers,
|
|
34
|
+
events: data.events,
|
|
35
|
+
enabled: data.isEnabled
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
const fromDBObject = (row)=>{
|
|
39
|
+
return {
|
|
40
|
+
id: typeof row.id === 'number' ? row.id.toString() : row.id,
|
|
41
|
+
name: row.name,
|
|
42
|
+
url: row.url,
|
|
43
|
+
headers: row.headers,
|
|
44
|
+
events: row.events,
|
|
45
|
+
isEnabled: row.enabled
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
const webhookEventValidator = async (allowedEvents, events)=>{
|
|
49
|
+
const allowedValues = Array.from(allowedEvents.values());
|
|
50
|
+
events.forEach((event)=>{
|
|
51
|
+
if (allowedValues.includes(event)) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
throw new ValidationError(`Webhook event ${event} is not supported`);
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
const createWebhookStore = ({ db })=>{
|
|
58
|
+
return {
|
|
59
|
+
allowedEvents: new Map([
|
|
60
|
+
[
|
|
61
|
+
'ENTRY_CREATE',
|
|
62
|
+
'entry.create'
|
|
63
|
+
],
|
|
64
|
+
[
|
|
65
|
+
'ENTRY_UPDATE',
|
|
66
|
+
'entry.update'
|
|
67
|
+
],
|
|
68
|
+
[
|
|
69
|
+
'ENTRY_DELETE',
|
|
70
|
+
'entry.delete'
|
|
71
|
+
],
|
|
72
|
+
[
|
|
73
|
+
'ENTRY_PUBLISH',
|
|
74
|
+
'entry.publish'
|
|
75
|
+
],
|
|
76
|
+
[
|
|
77
|
+
'ENTRY_UNPUBLISH',
|
|
78
|
+
'entry.unpublish'
|
|
79
|
+
],
|
|
80
|
+
[
|
|
81
|
+
'ENTRY_DRAFT_DISCARD',
|
|
82
|
+
'entry.draft-discard'
|
|
83
|
+
]
|
|
84
|
+
]),
|
|
85
|
+
addAllowedEvent (key, value) {
|
|
86
|
+
this.allowedEvents.set(key, value);
|
|
87
|
+
},
|
|
88
|
+
removeAllowedEvent (key) {
|
|
89
|
+
this.allowedEvents.delete(key);
|
|
90
|
+
},
|
|
91
|
+
listAllowedEvents () {
|
|
92
|
+
return Array.from(this.allowedEvents.keys());
|
|
93
|
+
},
|
|
94
|
+
getAllowedEvent (key) {
|
|
95
|
+
return this.allowedEvents.get(key);
|
|
96
|
+
},
|
|
97
|
+
async findWebhooks () {
|
|
98
|
+
const results = await db.query('strapi::webhook').findMany();
|
|
99
|
+
return results.map(fromDBObject);
|
|
100
|
+
},
|
|
101
|
+
async findWebhook (id) {
|
|
102
|
+
const result = await db.query('strapi::webhook').findOne({
|
|
103
|
+
where: {
|
|
104
|
+
id
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
return result ? fromDBObject(result) : null;
|
|
108
|
+
},
|
|
109
|
+
async createWebhook (data) {
|
|
110
|
+
await webhookEventValidator(this.allowedEvents, data.events);
|
|
111
|
+
return db.query('strapi::webhook').create({
|
|
112
|
+
data: toDBObject({
|
|
113
|
+
...data,
|
|
114
|
+
isEnabled: true
|
|
115
|
+
})
|
|
116
|
+
}).then(fromDBObject);
|
|
117
|
+
},
|
|
118
|
+
async updateWebhook (id, data) {
|
|
119
|
+
await webhookEventValidator(this.allowedEvents, data.events);
|
|
120
|
+
const webhook = await db.query('strapi::webhook').update({
|
|
121
|
+
where: {
|
|
122
|
+
id
|
|
123
|
+
},
|
|
124
|
+
data: toDBObject(data)
|
|
125
|
+
});
|
|
126
|
+
return webhook ? fromDBObject(webhook) : null;
|
|
127
|
+
},
|
|
128
|
+
async deleteWebhook (id) {
|
|
129
|
+
const webhook = await db.query('strapi::webhook').delete({
|
|
130
|
+
where: {
|
|
131
|
+
id
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
return webhook ? fromDBObject(webhook) : null;
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
export { createWebhookStore, webhookModel };
|
|
140
|
+
//# sourceMappingURL=webhook-store.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-store.mjs","sources":["../../src/services/webhook-store.ts"],"sourcesContent":["/**\n * Webhook store is the implementation of webhook storage over the core_store\n */\n\nimport { errors } from '@strapi/utils';\nimport type { Model, Database } from '@strapi/database';\nimport type { Modules } from '@strapi/types';\n\nconst { ValidationError } = errors;\n\nconst webhookModel: Model = {\n uid: 'strapi::webhook',\n singularName: 'strapi_webhooks',\n tableName: 'strapi_webhooks',\n attributes: {\n id: {\n type: 'increments',\n },\n name: {\n type: 'string',\n },\n url: {\n type: 'text',\n },\n headers: {\n type: 'json',\n },\n events: {\n type: 'json',\n },\n enabled: {\n type: 'boolean',\n },\n },\n};\n\ntype Webhook = Modules.WebhookStore.Webhook;\ntype DBOutput = Omit<Webhook, 'id' | 'isEnabled'> & { id: string | number; enabled: boolean };\ntype DBInput = Omit<DBOutput, 'id'>;\n\nconst toDBObject = (data: Webhook): DBInput => {\n return {\n name: data.name,\n url: data.url,\n headers: data.headers,\n events: data.events,\n enabled: data.isEnabled,\n };\n};\n\nconst fromDBObject = (row: DBOutput): Webhook => {\n return {\n id: typeof row.id === 'number' ? row.id.toString() : row.id,\n name: row.name,\n url: row.url,\n headers: row.headers,\n events: row.events,\n isEnabled: row.enabled,\n };\n};\n\nconst webhookEventValidator = async (allowedEvents: Map<string, string>, events: string[]) => {\n const allowedValues = Array.from(allowedEvents.values());\n\n events.forEach((event) => {\n if (allowedValues.includes(event)) {\n return;\n }\n\n throw new ValidationError(`Webhook event ${event} is not supported`);\n });\n};\n\nexport interface WebhookStore {\n allowedEvents: Map<string, string>;\n addAllowedEvent(key: string, value: string): void;\n removeAllowedEvent(key: string): void;\n listAllowedEvents(): string[];\n getAllowedEvent(key: string): string | undefined;\n findWebhooks(): Promise<Webhook[]>;\n findWebhook(id: string): Promise<Webhook | null>;\n createWebhook(data: Webhook): Promise<Webhook>;\n updateWebhook(id: string, data: Webhook): Promise<Webhook | null>;\n deleteWebhook(id: string): Promise<Webhook | null>;\n}\n\nconst createWebhookStore = ({ db }: { db: Database }): WebhookStore => {\n return {\n allowedEvents: new Map([\n ['ENTRY_CREATE', 'entry.create'],\n ['ENTRY_UPDATE', 'entry.update'],\n ['ENTRY_DELETE', 'entry.delete'],\n ['ENTRY_PUBLISH', 'entry.publish'],\n ['ENTRY_UNPUBLISH', 'entry.unpublish'],\n ['ENTRY_DRAFT_DISCARD', 'entry.draft-discard'],\n ]),\n addAllowedEvent(key, value) {\n this.allowedEvents.set(key, value);\n },\n removeAllowedEvent(key) {\n this.allowedEvents.delete(key);\n },\n listAllowedEvents() {\n return Array.from(this.allowedEvents.keys());\n },\n getAllowedEvent(key) {\n return this.allowedEvents.get(key);\n },\n async findWebhooks() {\n const results = await db.query('strapi::webhook').findMany();\n\n return results.map(fromDBObject);\n },\n async findWebhook(id) {\n const result = await db.query('strapi::webhook').findOne({ where: { id } });\n return result ? fromDBObject(result) : null;\n },\n async createWebhook(data) {\n await webhookEventValidator(this.allowedEvents, data.events);\n\n return db\n .query('strapi::webhook')\n .create({\n data: toDBObject({ ...data, isEnabled: true }),\n })\n .then(fromDBObject);\n },\n async updateWebhook(id, data) {\n await webhookEventValidator(this.allowedEvents, data.events);\n\n const webhook = await db.query('strapi::webhook').update({\n where: { id },\n data: toDBObject(data),\n });\n\n return webhook ? fromDBObject(webhook) : null;\n },\n async deleteWebhook(id) {\n const webhook = await db.query('strapi::webhook').delete({ where: { id } });\n return webhook ? fromDBObject(webhook) : null;\n },\n };\n};\n\nexport { webhookModel, createWebhookStore };\n"],"names":["ValidationError","errors","webhookModel","uid","singularName","tableName","attributes","id","type","name","url","headers","events","enabled","toDBObject","data","isEnabled","fromDBObject","row","toString","webhookEventValidator","allowedEvents","allowedValues","Array","from","values","forEach","event","includes","createWebhookStore","db","Map","addAllowedEvent","key","value","set","removeAllowedEvent","delete","listAllowedEvents","keys","getAllowedEvent","get","findWebhooks","results","query","findMany","map","findWebhook","result","findOne","where","createWebhook","create","then","updateWebhook","webhook","update","deleteWebhook"],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var createDebugger = require('debug');
|
|
4
|
+
|
|
5
|
+
const debug = createDebugger('strapi:worker-queue');
|
|
6
|
+
const noop = ()=>{};
|
|
7
|
+
class WorkerQueue {
|
|
8
|
+
subscribe(worker) {
|
|
9
|
+
debug('Subscribe to worker queue');
|
|
10
|
+
this.worker = worker;
|
|
11
|
+
}
|
|
12
|
+
enqueue(payload) {
|
|
13
|
+
debug('Enqueue event in worker queue');
|
|
14
|
+
if (this.running < this.concurrency) {
|
|
15
|
+
this.running += 1;
|
|
16
|
+
this.execute(payload);
|
|
17
|
+
} else {
|
|
18
|
+
this.queue.unshift(payload);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
pop() {
|
|
22
|
+
debug('Pop worker queue and execute');
|
|
23
|
+
const payload = this.queue.pop();
|
|
24
|
+
if (payload) {
|
|
25
|
+
this.execute(payload);
|
|
26
|
+
} else {
|
|
27
|
+
this.running -= 1;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
async execute(payload) {
|
|
31
|
+
debug('Execute worker');
|
|
32
|
+
try {
|
|
33
|
+
await this.worker(payload);
|
|
34
|
+
} catch (error) {
|
|
35
|
+
this.logger.error(error);
|
|
36
|
+
} finally{
|
|
37
|
+
this.pop();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
constructor({ logger, concurrency = 5 }){
|
|
41
|
+
debug('Initialize worker queue');
|
|
42
|
+
this.logger = logger;
|
|
43
|
+
this.worker = noop;
|
|
44
|
+
this.concurrency = concurrency;
|
|
45
|
+
this.running = 0;
|
|
46
|
+
this.queue = [];
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
module.exports = WorkerQueue;
|
|
51
|
+
//# sourceMappingURL=worker-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-queue.js","sources":["../../src/services/worker-queue.ts"],"sourcesContent":["/**\n * Simple worker queue in memory\n */\nimport createDebugger from 'debug';\nimport type { Logger } from '@strapi/logger';\nimport type { Utils } from '@strapi/types';\n\nconst debug = createDebugger('strapi:worker-queue');\n\ninterface ConstructorParameters {\n logger: Logger;\n concurrency?: number;\n}\n\ntype Worker<TPayload, TReturn> = (payload: TPayload) => Promise<TReturn> | TReturn;\n\nconst noop: Utils.Function.Any = () => {};\n\nexport default class WorkerQueue<TPayload, TReturn> {\n logger: Logger;\n\n worker: Worker<TPayload, TReturn>;\n\n concurrency: number;\n\n running: number;\n\n queue: TPayload[];\n\n constructor({ logger, concurrency = 5 }: ConstructorParameters) {\n debug('Initialize worker queue');\n\n this.logger = logger;\n this.worker = noop;\n\n this.concurrency = concurrency;\n this.running = 0;\n this.queue = [];\n }\n\n subscribe(worker: Worker<TPayload, TReturn>) {\n debug('Subscribe to worker queue');\n this.worker = worker;\n }\n\n enqueue(payload: TPayload) {\n debug('Enqueue event in worker queue');\n if (this.running < this.concurrency) {\n this.running += 1;\n this.execute(payload);\n } else {\n this.queue.unshift(payload);\n }\n }\n\n pop() {\n debug('Pop worker queue and execute');\n const payload = this.queue.pop();\n\n if (payload) {\n this.execute(payload);\n } else {\n this.running -= 1;\n }\n }\n\n async execute(payload: TPayload) {\n debug('Execute worker');\n try {\n await this.worker(payload);\n } catch (error) {\n this.logger.error(error);\n } finally {\n this.pop();\n }\n }\n}\n"],"names":["debug","createDebugger","noop","WorkerQueue","subscribe","worker","enqueue","payload","running","concurrency","execute","queue","unshift","pop","error","logger","constructor"],"mappings":";;;;AAOA,MAAMA,QAAQC,cAAe,CAAA,qBAAA,CAAA;AAS7B,MAAMC,OAA2B,IAAO,EAAA;AAEzB,MAAMC,WAAAA,CAAAA;AAsBnBC,IAAAA,SAAAA,CAAUC,MAAiC,EAAE;QAC3CL,KAAM,CAAA,2BAAA,CAAA;QACN,IAAI,CAACK,MAAM,GAAGA,MAAAA;AAChB;AAEAC,IAAAA,OAAAA,CAAQC,OAAiB,EAAE;QACzBP,KAAM,CAAA,+BAAA,CAAA;AACN,QAAA,IAAI,IAAI,CAACQ,OAAO,GAAG,IAAI,CAACC,WAAW,EAAE;YACnC,IAAI,CAACD,OAAO,IAAI,CAAA;YAChB,IAAI,CAACE,OAAO,CAACH,OAAAA,CAAAA;SACR,MAAA;AACL,YAAA,IAAI,CAACI,KAAK,CAACC,OAAO,CAACL,OAAAA,CAAAA;AACrB;AACF;IAEAM,GAAM,GAAA;QACJb,KAAM,CAAA,8BAAA,CAAA;AACN,QAAA,MAAMO,OAAU,GAAA,IAAI,CAACI,KAAK,CAACE,GAAG,EAAA;AAE9B,QAAA,IAAIN,OAAS,EAAA;YACX,IAAI,CAACG,OAAO,CAACH,OAAAA,CAAAA;SACR,MAAA;YACL,IAAI,CAACC,OAAO,IAAI,CAAA;AAClB;AACF;IAEA,MAAME,OAAAA,CAAQH,OAAiB,EAAE;QAC/BP,KAAM,CAAA,gBAAA,CAAA;QACN,IAAI;YACF,MAAM,IAAI,CAACK,MAAM,CAACE,OAAAA,CAAAA;AACpB,SAAA,CAAE,OAAOO,KAAO,EAAA;AACd,YAAA,IAAI,CAACC,MAAM,CAACD,KAAK,CAACA,KAAAA,CAAAA;SACV,QAAA;AACR,YAAA,IAAI,CAACD,GAAG,EAAA;AACV;AACF;AA9CAG,IAAAA,WAAAA,CAAY,EAAED,MAAM,EAAEN,WAAc,GAAA,CAAC,EAAyB,CAAE;QAC9DT,KAAM,CAAA,yBAAA,CAAA;QAEN,IAAI,CAACe,MAAM,GAAGA,MAAAA;QACd,IAAI,CAACV,MAAM,GAAGH,IAAAA;QAEd,IAAI,CAACO,WAAW,GAAGA,WAAAA;QACnB,IAAI,CAACD,OAAO,GAAG,CAAA;QACf,IAAI,CAACG,KAAK,GAAG,EAAE;AACjB;AAsCF;;;;"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import createDebugger from 'debug';
|
|
2
|
+
|
|
3
|
+
const debug = createDebugger('strapi:worker-queue');
|
|
4
|
+
const noop = ()=>{};
|
|
5
|
+
class WorkerQueue {
|
|
6
|
+
subscribe(worker) {
|
|
7
|
+
debug('Subscribe to worker queue');
|
|
8
|
+
this.worker = worker;
|
|
9
|
+
}
|
|
10
|
+
enqueue(payload) {
|
|
11
|
+
debug('Enqueue event in worker queue');
|
|
12
|
+
if (this.running < this.concurrency) {
|
|
13
|
+
this.running += 1;
|
|
14
|
+
this.execute(payload);
|
|
15
|
+
} else {
|
|
16
|
+
this.queue.unshift(payload);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
pop() {
|
|
20
|
+
debug('Pop worker queue and execute');
|
|
21
|
+
const payload = this.queue.pop();
|
|
22
|
+
if (payload) {
|
|
23
|
+
this.execute(payload);
|
|
24
|
+
} else {
|
|
25
|
+
this.running -= 1;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
async execute(payload) {
|
|
29
|
+
debug('Execute worker');
|
|
30
|
+
try {
|
|
31
|
+
await this.worker(payload);
|
|
32
|
+
} catch (error) {
|
|
33
|
+
this.logger.error(error);
|
|
34
|
+
} finally{
|
|
35
|
+
this.pop();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
constructor({ logger, concurrency = 5 }){
|
|
39
|
+
debug('Initialize worker queue');
|
|
40
|
+
this.logger = logger;
|
|
41
|
+
this.worker = noop;
|
|
42
|
+
this.concurrency = concurrency;
|
|
43
|
+
this.running = 0;
|
|
44
|
+
this.queue = [];
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export { WorkerQueue as default };
|
|
49
|
+
//# sourceMappingURL=worker-queue.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-queue.mjs","sources":["../../src/services/worker-queue.ts"],"sourcesContent":["/**\n * Simple worker queue in memory\n */\nimport createDebugger from 'debug';\nimport type { Logger } from '@strapi/logger';\nimport type { Utils } from '@strapi/types';\n\nconst debug = createDebugger('strapi:worker-queue');\n\ninterface ConstructorParameters {\n logger: Logger;\n concurrency?: number;\n}\n\ntype Worker<TPayload, TReturn> = (payload: TPayload) => Promise<TReturn> | TReturn;\n\nconst noop: Utils.Function.Any = () => {};\n\nexport default class WorkerQueue<TPayload, TReturn> {\n logger: Logger;\n\n worker: Worker<TPayload, TReturn>;\n\n concurrency: number;\n\n running: number;\n\n queue: TPayload[];\n\n constructor({ logger, concurrency = 5 }: ConstructorParameters) {\n debug('Initialize worker queue');\n\n this.logger = logger;\n this.worker = noop;\n\n this.concurrency = concurrency;\n this.running = 0;\n this.queue = [];\n }\n\n subscribe(worker: Worker<TPayload, TReturn>) {\n debug('Subscribe to worker queue');\n this.worker = worker;\n }\n\n enqueue(payload: TPayload) {\n debug('Enqueue event in worker queue');\n if (this.running < this.concurrency) {\n this.running += 1;\n this.execute(payload);\n } else {\n this.queue.unshift(payload);\n }\n }\n\n pop() {\n debug('Pop worker queue and execute');\n const payload = this.queue.pop();\n\n if (payload) {\n this.execute(payload);\n } else {\n this.running -= 1;\n }\n }\n\n async execute(payload: TPayload) {\n debug('Execute worker');\n try {\n await this.worker(payload);\n } catch (error) {\n this.logger.error(error);\n } finally {\n this.pop();\n }\n }\n}\n"],"names":["debug","createDebugger","noop","WorkerQueue","subscribe","worker","enqueue","payload","running","concurrency","execute","queue","unshift","pop","error","logger","constructor"],"mappings":";;AAOA,MAAMA,QAAQC,cAAe,CAAA,qBAAA,CAAA;AAS7B,MAAMC,OAA2B,IAAO,EAAA;AAEzB,MAAMC,WAAAA,CAAAA;AAsBnBC,IAAAA,SAAAA,CAAUC,MAAiC,EAAE;QAC3CL,KAAM,CAAA,2BAAA,CAAA;QACN,IAAI,CAACK,MAAM,GAAGA,MAAAA;AAChB;AAEAC,IAAAA,OAAAA,CAAQC,OAAiB,EAAE;QACzBP,KAAM,CAAA,+BAAA,CAAA;AACN,QAAA,IAAI,IAAI,CAACQ,OAAO,GAAG,IAAI,CAACC,WAAW,EAAE;YACnC,IAAI,CAACD,OAAO,IAAI,CAAA;YAChB,IAAI,CAACE,OAAO,CAACH,OAAAA,CAAAA;SACR,MAAA;AACL,YAAA,IAAI,CAACI,KAAK,CAACC,OAAO,CAACL,OAAAA,CAAAA;AACrB;AACF;IAEAM,GAAM,GAAA;QACJb,KAAM,CAAA,8BAAA,CAAA;AACN,QAAA,MAAMO,OAAU,GAAA,IAAI,CAACI,KAAK,CAACE,GAAG,EAAA;AAE9B,QAAA,IAAIN,OAAS,EAAA;YACX,IAAI,CAACG,OAAO,CAACH,OAAAA,CAAAA;SACR,MAAA;YACL,IAAI,CAACC,OAAO,IAAI,CAAA;AAClB;AACF;IAEA,MAAME,OAAAA,CAAQH,OAAiB,EAAE;QAC/BP,KAAM,CAAA,gBAAA,CAAA;QACN,IAAI;YACF,MAAM,IAAI,CAACK,MAAM,CAACE,OAAAA,CAAAA;AACpB,SAAA,CAAE,OAAOO,KAAO,EAAA;AACd,YAAA,IAAI,CAACC,MAAM,CAACD,KAAK,CAACA,KAAAA,CAAAA;SACV,QAAA;AACR,YAAA,IAAI,CAACD,GAAG,EAAA;AACV;AACF;AA9CAG,IAAAA,WAAAA,CAAY,EAAED,MAAM,EAAEN,WAAc,GAAA,CAAC,EAAyB,CAAE;QAC9DT,KAAM,CAAA,yBAAA,CAAA;QAEN,IAAI,CAACe,MAAM,GAAGA,MAAAA;QACd,IAAI,CAACV,MAAM,GAAGH,IAAAA;QAEd,IAAI,CAACO,WAAW,GAAGA,WAAAA;QACnB,IAAI,CAACD,OAAO,GAAG,CAAA;QACf,IAAI,CAACG,KAAK,GAAG,EAAE;AACjB;AAsCF;;;;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const convertCustomFieldType = (strapi)=>{
|
|
4
|
+
const allContentTypeSchemaAttributes = Object.values(strapi.contentTypes).map((schema)=>schema.attributes);
|
|
5
|
+
const allComponentSchemaAttributes = Object.values(strapi.components).map((schema)=>schema.attributes);
|
|
6
|
+
const allSchemasAttributes = [
|
|
7
|
+
...allContentTypeSchemaAttributes,
|
|
8
|
+
...allComponentSchemaAttributes
|
|
9
|
+
];
|
|
10
|
+
for (const schemaAttrbutes of allSchemasAttributes){
|
|
11
|
+
for (const attribute of Object.values(schemaAttrbutes)){
|
|
12
|
+
if (attribute.type === 'customField') {
|
|
13
|
+
const customField = strapi.get('custom-fields').get(attribute.customField);
|
|
14
|
+
attribute.type = customField.type;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
exports.convertCustomFieldType = convertCustomFieldType;
|
|
21
|
+
//# sourceMappingURL=convert-custom-field-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-custom-field-type.js","sources":["../../src/utils/convert-custom-field-type.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\ntype InputAttributes = {\n [key: string]: {\n type: string;\n customField?: string;\n };\n};\n\nexport const convertCustomFieldType = (strapi: Core.Strapi) => {\n const allContentTypeSchemaAttributes = Object.values(strapi.contentTypes).map(\n (schema) => schema.attributes\n );\n\n const allComponentSchemaAttributes = Object.values(strapi.components).map(\n (schema) => schema.attributes\n );\n const allSchemasAttributes: InputAttributes[] = [\n ...allContentTypeSchemaAttributes,\n ...allComponentSchemaAttributes,\n ];\n\n for (const schemaAttrbutes of allSchemasAttributes) {\n for (const attribute of Object.values(schemaAttrbutes)) {\n if (attribute.type === 'customField') {\n const customField = strapi.get('custom-fields').get(attribute.customField);\n attribute.type = customField.type;\n }\n }\n }\n};\n"],"names":["convertCustomFieldType","strapi","allContentTypeSchemaAttributes","Object","values","contentTypes","map","schema","attributes","allComponentSchemaAttributes","components","allSchemasAttributes","schemaAttrbutes","attribute","type","customField","get"],"mappings":";;AASO,MAAMA,yBAAyB,CAACC,MAAAA,GAAAA;AACrC,IAAA,MAAMC,8BAAiCC,GAAAA,MAAAA,CAAOC,MAAM,CAACH,MAAOI,CAAAA,YAAY,CAAEC,CAAAA,GAAG,CAC3E,CAACC,MAAWA,GAAAA,MAAAA,CAAOC,UAAU,CAAA;AAG/B,IAAA,MAAMC,4BAA+BN,GAAAA,MAAAA,CAAOC,MAAM,CAACH,MAAOS,CAAAA,UAAU,CAAEJ,CAAAA,GAAG,CACvE,CAACC,MAAWA,GAAAA,MAAAA,CAAOC,UAAU,CAAA;AAE/B,IAAA,MAAMG,oBAA0C,GAAA;AAC3CT,QAAAA,GAAAA,8BAAAA;AACAO,QAAAA,GAAAA;AACJ,KAAA;IAED,KAAK,MAAMG,mBAAmBD,oBAAsB,CAAA;AAClD,QAAA,KAAK,MAAME,SAAAA,IAAaV,MAAOC,CAAAA,MAAM,CAACQ,eAAkB,CAAA,CAAA;YACtD,IAAIC,SAAAA,CAAUC,IAAI,KAAK,aAAe,EAAA;gBACpC,MAAMC,WAAAA,GAAcd,OAAOe,GAAG,CAAC,iBAAiBA,GAAG,CAACH,UAAUE,WAAW,CAAA;gBACzEF,SAAUC,CAAAA,IAAI,GAAGC,WAAAA,CAAYD,IAAI;AACnC;AACF;AACF;AACF;;;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const convertCustomFieldType = (strapi)=>{
|
|
2
|
+
const allContentTypeSchemaAttributes = Object.values(strapi.contentTypes).map((schema)=>schema.attributes);
|
|
3
|
+
const allComponentSchemaAttributes = Object.values(strapi.components).map((schema)=>schema.attributes);
|
|
4
|
+
const allSchemasAttributes = [
|
|
5
|
+
...allContentTypeSchemaAttributes,
|
|
6
|
+
...allComponentSchemaAttributes
|
|
7
|
+
];
|
|
8
|
+
for (const schemaAttrbutes of allSchemasAttributes){
|
|
9
|
+
for (const attribute of Object.values(schemaAttrbutes)){
|
|
10
|
+
if (attribute.type === 'customField') {
|
|
11
|
+
const customField = strapi.get('custom-fields').get(attribute.customField);
|
|
12
|
+
attribute.type = customField.type;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export { convertCustomFieldType };
|
|
19
|
+
//# sourceMappingURL=convert-custom-field-type.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-custom-field-type.mjs","sources":["../../src/utils/convert-custom-field-type.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\ntype InputAttributes = {\n [key: string]: {\n type: string;\n customField?: string;\n };\n};\n\nexport const convertCustomFieldType = (strapi: Core.Strapi) => {\n const allContentTypeSchemaAttributes = Object.values(strapi.contentTypes).map(\n (schema) => schema.attributes\n );\n\n const allComponentSchemaAttributes = Object.values(strapi.components).map(\n (schema) => schema.attributes\n );\n const allSchemasAttributes: InputAttributes[] = [\n ...allContentTypeSchemaAttributes,\n ...allComponentSchemaAttributes,\n ];\n\n for (const schemaAttrbutes of allSchemasAttributes) {\n for (const attribute of Object.values(schemaAttrbutes)) {\n if (attribute.type === 'customField') {\n const customField = strapi.get('custom-fields').get(attribute.customField);\n attribute.type = customField.type;\n }\n }\n }\n};\n"],"names":["convertCustomFieldType","strapi","allContentTypeSchemaAttributes","Object","values","contentTypes","map","schema","attributes","allComponentSchemaAttributes","components","allSchemasAttributes","schemaAttrbutes","attribute","type","customField","get"],"mappings":"AASO,MAAMA,yBAAyB,CAACC,MAAAA,GAAAA;AACrC,IAAA,MAAMC,8BAAiCC,GAAAA,MAAAA,CAAOC,MAAM,CAACH,MAAOI,CAAAA,YAAY,CAAEC,CAAAA,GAAG,CAC3E,CAACC,MAAWA,GAAAA,MAAAA,CAAOC,UAAU,CAAA;AAG/B,IAAA,MAAMC,4BAA+BN,GAAAA,MAAAA,CAAOC,MAAM,CAACH,MAAOS,CAAAA,UAAU,CAAEJ,CAAAA,GAAG,CACvE,CAACC,MAAWA,GAAAA,MAAAA,CAAOC,UAAU,CAAA;AAE/B,IAAA,MAAMG,oBAA0C,GAAA;AAC3CT,QAAAA,GAAAA,8BAAAA;AACAO,QAAAA,GAAAA;AACJ,KAAA;IAED,KAAK,MAAMG,mBAAmBD,oBAAsB,CAAA;AAClD,QAAA,KAAK,MAAME,SAAAA,IAAaV,MAAOC,CAAAA,MAAM,CAACQ,eAAkB,CAAA,CAAA;YACtD,IAAIC,SAAAA,CAAUC,IAAI,KAAK,aAAe,EAAA;gBACpC,MAAMC,WAAAA,GAAcd,OAAOe,GAAG,CAAC,iBAAiBA,GAAG,CAACH,UAAUE,WAAW,CAAA;gBACzEF,SAAUC,CAAAA,IAAI,GAAGC,WAAAA,CAAYD,IAAI;AACnC;AACF;AACF;AACF;;;;"}
|