@strapi/core 0.0.0-experimental.9df68962083938acba06546a7901c68a63266aec → 0.0.0-experimental.9e9a841899e6378b6f48ab8f419e4b0cc62bdf32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +18 -3
- package/dist/Strapi.d.ts +3 -1
- package/dist/Strapi.d.ts.map +1 -1
- package/dist/configuration/index.d.ts.map +1 -1
- package/dist/core-api/service/collection-type.d.ts +2 -2
- package/dist/ee/index.d.ts.map +1 -1
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9954 -27
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +9932 -29
- package/dist/index.mjs.map +1 -1
- package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
- package/dist/loaders/plugins/index.d.ts.map +1 -1
- package/dist/middlewares/body.d.ts.map +1 -1
- package/dist/middlewares/cors.d.ts.map +1 -1
- package/dist/middlewares/query.d.ts.map +1 -1
- package/dist/middlewares/security.d.ts.map +1 -1
- package/dist/migrations/database/5.0.0-discard-drafts.d.ts +14 -11
- package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -1
- package/dist/migrations/draft-publish.d.ts +2 -2
- package/dist/migrations/draft-publish.d.ts.map +1 -1
- package/dist/migrations/i18n.d.ts +5 -0
- package/dist/migrations/i18n.d.ts.map +1 -0
- package/dist/migrations/index.d.ts +5 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/providers/admin.d.ts.map +1 -1
- package/dist/registries/policies.d.ts +1 -1
- package/dist/registries/policies.d.ts.map +1 -1
- package/dist/services/content-api/index.d.ts +10 -12
- package/dist/services/content-api/index.d.ts.map +1 -1
- package/dist/services/content-api/permissions/index.d.ts +10 -12
- package/dist/services/content-api/permissions/index.d.ts.map +1 -1
- package/dist/services/content-api/permissions/providers/action.d.ts +5 -6
- package/dist/services/content-api/permissions/providers/action.d.ts.map +1 -1
- package/dist/services/content-api/permissions/providers/condition.d.ts +5 -6
- package/dist/services/content-api/permissions/providers/condition.d.ts.map +1 -1
- package/dist/services/cron.d.ts +3 -3
- package/dist/services/cron.d.ts.map +1 -1
- package/dist/services/document-service/common.d.ts +1 -1
- package/dist/services/document-service/common.d.ts.map +1 -1
- package/dist/services/document-service/components.d.ts.map +1 -1
- package/dist/services/document-service/draft-and-publish.d.ts +1 -1
- package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
- package/dist/services/document-service/entries.d.ts +2 -2
- package/dist/services/document-service/entries.d.ts.map +1 -1
- package/dist/services/document-service/events.d.ts +1 -1
- package/dist/services/document-service/events.d.ts.map +1 -1
- package/dist/services/document-service/index.d.ts +2 -1
- package/dist/services/document-service/index.d.ts.map +1 -1
- package/dist/services/document-service/repository.d.ts.map +1 -1
- package/dist/services/document-service/transform/id-map.d.ts +1 -1
- package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
- package/dist/services/document-service/transform/id-transform.d.ts +1 -1
- package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
- package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +1 -1
- package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
- package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
- package/dist/services/document-service/transform/relations/utils/dp.d.ts +1 -1
- package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
- package/dist/services/document-service/transform/relations/utils/i18n.d.ts +1 -1
- package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
- package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -1
- package/dist/services/document-service/utils/populate.d.ts +1 -1
- package/dist/services/document-service/utils/populate.d.ts.map +1 -1
- package/dist/services/document-service/utils/unidirectional-relations.d.ts +36 -0
- package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -0
- package/dist/services/entity-validator/blocks-validator.d.ts +1 -2
- package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -1
- package/dist/services/entity-validator/index.d.ts +15 -1
- package/dist/services/entity-validator/index.d.ts.map +1 -1
- package/dist/services/entity-validator/validators.d.ts +36 -25
- package/dist/services/entity-validator/validators.d.ts.map +1 -1
- package/dist/services/metrics/middleware.d.ts.map +1 -1
- package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
- package/dist/utils/fetch.d.ts.map +1 -1
- package/dist/utils/filepath-to-prop-path.d.ts +1 -1
- package/dist/utils/filepath-to-prop-path.d.ts.map +1 -1
- package/dist/utils/startup-logger.d.ts.map +1 -1
- package/dist/utils/transform-content-types-to-models.d.ts +355 -23
- package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
- package/dist/utils/update-notifier/index.d.ts.map +1 -1
- package/package.json +31 -30
- package/dist/Strapi.js +0 -388
- package/dist/Strapi.js.map +0 -1
- package/dist/Strapi.mjs +0 -386
- package/dist/Strapi.mjs.map +0 -1
- package/dist/compile.js +0 -18
- package/dist/compile.js.map +0 -1
- package/dist/compile.mjs +0 -17
- package/dist/compile.mjs.map +0 -1
- package/dist/configuration/config-loader.js +0 -106
- package/dist/configuration/config-loader.js.map +0 -1
- package/dist/configuration/config-loader.mjs +0 -104
- package/dist/configuration/config-loader.mjs.map +0 -1
- package/dist/configuration/get-dirs.js +0 -31
- package/dist/configuration/get-dirs.js.map +0 -1
- package/dist/configuration/get-dirs.mjs +0 -31
- package/dist/configuration/get-dirs.mjs.map +0 -1
- package/dist/configuration/index.js +0 -80
- package/dist/configuration/index.js.map +0 -1
- package/dist/configuration/index.mjs +0 -75
- package/dist/configuration/index.mjs.map +0 -1
- package/dist/configuration/urls.js +0 -68
- package/dist/configuration/urls.js.map +0 -1
- package/dist/configuration/urls.mjs +0 -66
- package/dist/configuration/urls.mjs.map +0 -1
- package/dist/container.js +0 -30
- package/dist/container.js.map +0 -1
- package/dist/container.mjs +0 -30
- package/dist/container.mjs.map +0 -1
- package/dist/core-api/controller/collection-type.js +0 -84
- package/dist/core-api/controller/collection-type.js.map +0 -1
- package/dist/core-api/controller/collection-type.mjs +0 -84
- package/dist/core-api/controller/collection-type.mjs.map +0 -1
- package/dist/core-api/controller/index.js +0 -52
- package/dist/core-api/controller/index.js.map +0 -1
- package/dist/core-api/controller/index.mjs +0 -52
- package/dist/core-api/controller/index.mjs.map +0 -1
- package/dist/core-api/controller/single-type.js +0 -46
- package/dist/core-api/controller/single-type.js.map +0 -1
- package/dist/core-api/controller/single-type.mjs +0 -46
- package/dist/core-api/controller/single-type.mjs.map +0 -1
- package/dist/core-api/controller/transform.js +0 -76
- package/dist/core-api/controller/transform.js.map +0 -1
- package/dist/core-api/controller/transform.mjs +0 -76
- package/dist/core-api/controller/transform.mjs.map +0 -1
- package/dist/core-api/routes/index.js +0 -67
- package/dist/core-api/routes/index.js.map +0 -1
- package/dist/core-api/routes/index.mjs +0 -67
- package/dist/core-api/routes/index.mjs.map +0 -1
- package/dist/core-api/service/collection-type.js +0 -67
- package/dist/core-api/service/collection-type.js.map +0 -1
- package/dist/core-api/service/collection-type.mjs +0 -67
- package/dist/core-api/service/collection-type.mjs.map +0 -1
- package/dist/core-api/service/core-service.js +0 -12
- package/dist/core-api/service/core-service.js.map +0 -1
- package/dist/core-api/service/core-service.mjs +0 -12
- package/dist/core-api/service/core-service.mjs.map +0 -1
- package/dist/core-api/service/index.js +0 -16
- package/dist/core-api/service/index.js.map +0 -1
- package/dist/core-api/service/index.mjs +0 -16
- package/dist/core-api/service/index.mjs.map +0 -1
- package/dist/core-api/service/pagination.js +0 -52
- package/dist/core-api/service/pagination.js.map +0 -1
- package/dist/core-api/service/pagination.mjs +0 -52
- package/dist/core-api/service/pagination.mjs.map +0 -1
- package/dist/core-api/service/single-type.js +0 -46
- package/dist/core-api/service/single-type.js.map +0 -1
- package/dist/core-api/service/single-type.mjs +0 -46
- package/dist/core-api/service/single-type.mjs.map +0 -1
- package/dist/domain/content-type/index.js +0 -111
- package/dist/domain/content-type/index.js.map +0 -1
- package/dist/domain/content-type/index.mjs +0 -109
- package/dist/domain/content-type/index.mjs.map +0 -1
- package/dist/domain/content-type/validator.js +0 -77
- package/dist/domain/content-type/validator.js.map +0 -1
- package/dist/domain/content-type/validator.mjs +0 -75
- package/dist/domain/content-type/validator.mjs.map +0 -1
- package/dist/domain/module/index.js +0 -107
- package/dist/domain/module/index.js.map +0 -1
- package/dist/domain/module/index.mjs +0 -105
- package/dist/domain/module/index.mjs.map +0 -1
- package/dist/domain/module/validation.js +0 -25
- package/dist/domain/module/validation.js.map +0 -1
- package/dist/domain/module/validation.mjs +0 -25
- package/dist/domain/module/validation.mjs.map +0 -1
- package/dist/ee/index.js +0 -153
- package/dist/ee/index.js.map +0 -1
- package/dist/ee/index.mjs +0 -154
- package/dist/ee/index.mjs.map +0 -1
- package/dist/ee/license.js +0 -91
- package/dist/ee/license.js.map +0 -1
- package/dist/ee/license.mjs +0 -88
- package/dist/ee/license.mjs.map +0 -1
- package/dist/factories.js +0 -80
- package/dist/factories.js.map +0 -1
- package/dist/factories.mjs +0 -80
- package/dist/factories.mjs.map +0 -1
- package/dist/loaders/admin.js +0 -26
- package/dist/loaders/admin.js.map +0 -1
- package/dist/loaders/admin.mjs +0 -25
- package/dist/loaders/admin.mjs.map +0 -1
- package/dist/loaders/apis.js +0 -137
- package/dist/loaders/apis.js.map +0 -1
- package/dist/loaders/apis.mjs +0 -135
- package/dist/loaders/apis.mjs.map +0 -1
- package/dist/loaders/components.js +0 -38
- package/dist/loaders/components.js.map +0 -1
- package/dist/loaders/components.mjs +0 -37
- package/dist/loaders/components.mjs.map +0 -1
- package/dist/loaders/index.js +0 -24
- package/dist/loaders/index.js.map +0 -1
- package/dist/loaders/index.mjs +0 -24
- package/dist/loaders/index.mjs.map +0 -1
- package/dist/loaders/middlewares.js +0 -31
- package/dist/loaders/middlewares.js.map +0 -1
- package/dist/loaders/middlewares.mjs +0 -30
- package/dist/loaders/middlewares.mjs.map +0 -1
- package/dist/loaders/plugins/get-enabled-plugins.js +0 -113
- package/dist/loaders/plugins/get-enabled-plugins.js.map +0 -1
- package/dist/loaders/plugins/get-enabled-plugins.mjs +0 -111
- package/dist/loaders/plugins/get-enabled-plugins.mjs.map +0 -1
- package/dist/loaders/plugins/get-user-plugins-config.js +0 -27
- package/dist/loaders/plugins/get-user-plugins-config.js.map +0 -1
- package/dist/loaders/plugins/get-user-plugins-config.mjs +0 -25
- package/dist/loaders/plugins/get-user-plugins-config.mjs.map +0 -1
- package/dist/loaders/plugins/index.js +0 -118
- package/dist/loaders/plugins/index.js.map +0 -1
- package/dist/loaders/plugins/index.mjs +0 -117
- package/dist/loaders/plugins/index.mjs.map +0 -1
- package/dist/loaders/policies.js +0 -25
- package/dist/loaders/policies.js.map +0 -1
- package/dist/loaders/policies.mjs +0 -24
- package/dist/loaders/policies.mjs.map +0 -1
- package/dist/loaders/sanitizers.js +0 -6
- package/dist/loaders/sanitizers.js.map +0 -1
- package/dist/loaders/sanitizers.mjs +0 -7
- package/dist/loaders/sanitizers.mjs.map +0 -1
- package/dist/loaders/src-index.js +0 -33
- package/dist/loaders/src-index.js.map +0 -1
- package/dist/loaders/src-index.mjs +0 -34
- package/dist/loaders/src-index.mjs.map +0 -1
- package/dist/loaders/validators.js +0 -6
- package/dist/loaders/validators.js.map +0 -1
- package/dist/loaders/validators.mjs +0 -7
- package/dist/loaders/validators.mjs.map +0 -1
- package/dist/middlewares/body.js +0 -65
- package/dist/middlewares/body.js.map +0 -1
- package/dist/middlewares/body.mjs +0 -61
- package/dist/middlewares/body.mjs.map +0 -1
- package/dist/middlewares/compression.js +0 -8
- package/dist/middlewares/compression.js.map +0 -1
- package/dist/middlewares/compression.mjs +0 -6
- package/dist/middlewares/compression.mjs.map +0 -1
- package/dist/middlewares/cors.js +0 -49
- package/dist/middlewares/cors.js.map +0 -1
- package/dist/middlewares/cors.mjs +0 -47
- package/dist/middlewares/cors.mjs.map +0 -1
- package/dist/middlewares/errors.js +0 -33
- package/dist/middlewares/errors.js.map +0 -1
- package/dist/middlewares/errors.mjs +0 -33
- package/dist/middlewares/errors.mjs.map +0 -1
- package/dist/middlewares/favicon.js +0 -22
- package/dist/middlewares/favicon.js.map +0 -1
- package/dist/middlewares/favicon.mjs +0 -20
- package/dist/middlewares/favicon.mjs.map +0 -1
- package/dist/middlewares/index.js +0 -34
- package/dist/middlewares/index.js.map +0 -1
- package/dist/middlewares/index.mjs +0 -34
- package/dist/middlewares/index.mjs.map +0 -1
- package/dist/middlewares/ip.js +0 -8
- package/dist/middlewares/ip.js.map +0 -1
- package/dist/middlewares/ip.mjs +0 -6
- package/dist/middlewares/ip.mjs.map +0 -1
- package/dist/middlewares/logger.js +0 -12
- package/dist/middlewares/logger.js.map +0 -1
- package/dist/middlewares/logger.mjs +0 -12
- package/dist/middlewares/logger.mjs.map +0 -1
- package/dist/middlewares/powered-by.js +0 -14
- package/dist/middlewares/powered-by.js.map +0 -1
- package/dist/middlewares/powered-by.mjs +0 -14
- package/dist/middlewares/powered-by.mjs.map +0 -1
- package/dist/middlewares/public.js +0 -34
- package/dist/middlewares/public.js.map +0 -1
- package/dist/middlewares/public.mjs +0 -32
- package/dist/middlewares/public.mjs.map +0 -1
- package/dist/middlewares/query.js +0 -40
- package/dist/middlewares/query.js.map +0 -1
- package/dist/middlewares/query.mjs +0 -38
- package/dist/middlewares/query.mjs.map +0 -1
- package/dist/middlewares/response-time.js +0 -12
- package/dist/middlewares/response-time.js.map +0 -1
- package/dist/middlewares/response-time.mjs +0 -12
- package/dist/middlewares/response-time.mjs.map +0 -1
- package/dist/middlewares/responses.js +0 -15
- package/dist/middlewares/responses.js.map +0 -1
- package/dist/middlewares/responses.mjs +0 -15
- package/dist/middlewares/responses.mjs.map +0 -1
- package/dist/middlewares/security.js +0 -78
- package/dist/middlewares/security.js.map +0 -1
- package/dist/middlewares/security.mjs +0 -76
- package/dist/middlewares/security.mjs.map +0 -1
- package/dist/middlewares/session.js +0 -30
- package/dist/middlewares/session.js.map +0 -1
- package/dist/middlewares/session.mjs +0 -28
- package/dist/middlewares/session.mjs.map +0 -1
- package/dist/migrations/database/5.0.0-discard-drafts.js +0 -50
- package/dist/migrations/database/5.0.0-discard-drafts.js.map +0 -1
- package/dist/migrations/database/5.0.0-discard-drafts.mjs +0 -50
- package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +0 -1
- package/dist/migrations/draft-publish.js +0 -42
- package/dist/migrations/draft-publish.js.map +0 -1
- package/dist/migrations/draft-publish.mjs +0 -42
- package/dist/migrations/draft-publish.mjs.map +0 -1
- package/dist/providers/admin.js +0 -20
- package/dist/providers/admin.js.map +0 -1
- package/dist/providers/admin.mjs +0 -21
- package/dist/providers/admin.mjs.map +0 -1
- package/dist/providers/coreStore.js +0 -11
- package/dist/providers/coreStore.js.map +0 -1
- package/dist/providers/coreStore.mjs +0 -12
- package/dist/providers/coreStore.mjs.map +0 -1
- package/dist/providers/cron.js +0 -20
- package/dist/providers/cron.js.map +0 -1
- package/dist/providers/cron.mjs +0 -21
- package/dist/providers/cron.mjs.map +0 -1
- package/dist/providers/index.js +0 -11
- package/dist/providers/index.js.map +0 -1
- package/dist/providers/index.mjs +0 -11
- package/dist/providers/index.mjs.map +0 -1
- package/dist/providers/provider.js +0 -5
- package/dist/providers/provider.js.map +0 -1
- package/dist/providers/provider.mjs +0 -5
- package/dist/providers/provider.mjs.map +0 -1
- package/dist/providers/registries.js +0 -35
- package/dist/providers/registries.js.map +0 -1
- package/dist/providers/registries.mjs +0 -36
- package/dist/providers/registries.mjs.map +0 -1
- package/dist/providers/telemetry.js +0 -19
- package/dist/providers/telemetry.js.map +0 -1
- package/dist/providers/telemetry.mjs +0 -20
- package/dist/providers/telemetry.mjs.map +0 -1
- package/dist/providers/webhooks.js +0 -30
- package/dist/providers/webhooks.js.map +0 -1
- package/dist/providers/webhooks.mjs +0 -31
- package/dist/providers/webhooks.mjs.map +0 -1
- package/dist/registries/apis.js +0 -23
- package/dist/registries/apis.js.map +0 -1
- package/dist/registries/apis.mjs +0 -24
- package/dist/registries/apis.mjs.map +0 -1
- package/dist/registries/components.js +0 -45
- package/dist/registries/components.js.map +0 -1
- package/dist/registries/components.mjs +0 -46
- package/dist/registries/components.mjs.map +0 -1
- package/dist/registries/content-types.js +0 -70
- package/dist/registries/content-types.js.map +0 -1
- package/dist/registries/content-types.mjs +0 -71
- package/dist/registries/content-types.mjs.map +0 -1
- package/dist/registries/controllers.js +0 -80
- package/dist/registries/controllers.js.map +0 -1
- package/dist/registries/controllers.mjs +0 -81
- package/dist/registries/controllers.mjs.map +0 -1
- package/dist/registries/custom-fields.js +0 -71
- package/dist/registries/custom-fields.js.map +0 -1
- package/dist/registries/custom-fields.mjs +0 -72
- package/dist/registries/custom-fields.mjs.map +0 -1
- package/dist/registries/hooks.js +0 -58
- package/dist/registries/hooks.js.map +0 -1
- package/dist/registries/hooks.mjs +0 -59
- package/dist/registries/hooks.mjs.map +0 -1
- package/dist/registries/middlewares.js +0 -60
- package/dist/registries/middlewares.js.map +0 -1
- package/dist/registries/middlewares.mjs +0 -61
- package/dist/registries/middlewares.mjs.map +0 -1
- package/dist/registries/models.js +0 -16
- package/dist/registries/models.js.map +0 -1
- package/dist/registries/models.mjs +0 -16
- package/dist/registries/models.mjs.map +0 -1
- package/dist/registries/modules.js +0 -39
- package/dist/registries/modules.js.map +0 -1
- package/dist/registries/modules.mjs +0 -40
- package/dist/registries/modules.mjs.map +0 -1
- package/dist/registries/namespace.js +0 -27
- package/dist/registries/namespace.js.map +0 -1
- package/dist/registries/namespace.mjs +0 -27
- package/dist/registries/namespace.mjs.map +0 -1
- package/dist/registries/plugins.js +0 -23
- package/dist/registries/plugins.js.map +0 -1
- package/dist/registries/plugins.mjs +0 -24
- package/dist/registries/plugins.mjs.map +0 -1
- package/dist/registries/policies.js +0 -108
- package/dist/registries/policies.js.map +0 -1
- package/dist/registries/policies.mjs +0 -109
- package/dist/registries/policies.mjs.map +0 -1
- package/dist/registries/sanitizers.js +0 -25
- package/dist/registries/sanitizers.js.map +0 -1
- package/dist/registries/sanitizers.mjs +0 -24
- package/dist/registries/sanitizers.mjs.map +0 -1
- package/dist/registries/services.js +0 -80
- package/dist/registries/services.js.map +0 -1
- package/dist/registries/services.mjs +0 -81
- package/dist/registries/services.mjs.map +0 -1
- package/dist/registries/validators.js +0 -25
- package/dist/registries/validators.js.map +0 -1
- package/dist/registries/validators.mjs +0 -24
- package/dist/registries/validators.mjs.map +0 -1
- package/dist/services/auth/index.js +0 -81
- package/dist/services/auth/index.js.map +0 -1
- package/dist/services/auth/index.mjs +0 -80
- package/dist/services/auth/index.mjs.map +0 -1
- package/dist/services/config.js +0 -47
- package/dist/services/config.js.map +0 -1
- package/dist/services/config.mjs +0 -47
- package/dist/services/config.mjs.map +0 -1
- package/dist/services/content-api/index.js +0 -85
- package/dist/services/content-api/index.js.map +0 -1
- package/dist/services/content-api/index.mjs +0 -84
- package/dist/services/content-api/index.mjs.map +0 -1
- package/dist/services/content-api/permissions/engine.js +0 -7
- package/dist/services/content-api/permissions/engine.js.map +0 -1
- package/dist/services/content-api/permissions/engine.mjs +0 -6
- package/dist/services/content-api/permissions/engine.mjs.map +0 -1
- package/dist/services/content-api/permissions/index.js +0 -87
- package/dist/services/content-api/permissions/index.js.map +0 -1
- package/dist/services/content-api/permissions/index.mjs +0 -86
- package/dist/services/content-api/permissions/index.mjs.map +0 -1
- package/dist/services/content-api/permissions/providers/action.js +0 -16
- package/dist/services/content-api/permissions/providers/action.js.map +0 -1
- package/dist/services/content-api/permissions/providers/action.mjs +0 -17
- package/dist/services/content-api/permissions/providers/action.mjs.map +0 -1
- package/dist/services/content-api/permissions/providers/condition.js +0 -16
- package/dist/services/content-api/permissions/providers/condition.js.map +0 -1
- package/dist/services/content-api/permissions/providers/condition.mjs +0 -17
- package/dist/services/content-api/permissions/providers/condition.mjs.map +0 -1
- package/dist/services/core-store.js +0 -107
- package/dist/services/core-store.js.map +0 -1
- package/dist/services/core-store.mjs +0 -107
- package/dist/services/core-store.mjs.map +0 -1
- package/dist/services/cron.js +0 -63
- package/dist/services/cron.js.map +0 -1
- package/dist/services/cron.mjs +0 -64
- package/dist/services/cron.mjs.map +0 -1
- package/dist/services/custom-fields.js +0 -10
- package/dist/services/custom-fields.js.map +0 -1
- package/dist/services/custom-fields.mjs +0 -11
- package/dist/services/custom-fields.mjs.map +0 -1
- package/dist/services/document-service/attributes/index.js +0 -22
- package/dist/services/document-service/attributes/index.js.map +0 -1
- package/dist/services/document-service/attributes/index.mjs +0 -22
- package/dist/services/document-service/attributes/index.mjs.map +0 -1
- package/dist/services/document-service/attributes/transforms.js +0 -20
- package/dist/services/document-service/attributes/transforms.js.map +0 -1
- package/dist/services/document-service/attributes/transforms.mjs +0 -19
- package/dist/services/document-service/attributes/transforms.mjs.map +0 -1
- package/dist/services/document-service/common.js +0 -7
- package/dist/services/document-service/common.js.map +0 -1
- package/dist/services/document-service/common.mjs +0 -7
- package/dist/services/document-service/common.mjs.map +0 -1
- package/dist/services/document-service/components.js +0 -288
- package/dist/services/document-service/components.js.map +0 -1
- package/dist/services/document-service/components.mjs +0 -286
- package/dist/services/document-service/components.mjs.map +0 -1
- package/dist/services/document-service/draft-and-publish.js +0 -69
- package/dist/services/document-service/draft-and-publish.js.map +0 -1
- package/dist/services/document-service/draft-and-publish.mjs +0 -69
- package/dist/services/document-service/draft-and-publish.mjs.map +0 -1
- package/dist/services/document-service/entries.js +0 -96
- package/dist/services/document-service/entries.js.map +0 -1
- package/dist/services/document-service/entries.mjs +0 -96
- package/dist/services/document-service/entries.mjs.map +0 -1
- package/dist/services/document-service/events.js +0 -47
- package/dist/services/document-service/events.js.map +0 -1
- package/dist/services/document-service/events.mjs +0 -47
- package/dist/services/document-service/events.mjs.map +0 -1
- package/dist/services/document-service/index.js +0 -35
- package/dist/services/document-service/index.js.map +0 -1
- package/dist/services/document-service/index.mjs +0 -35
- package/dist/services/document-service/index.mjs.map +0 -1
- package/dist/services/document-service/internationalization.js +0 -63
- package/dist/services/document-service/internationalization.js.map +0 -1
- package/dist/services/document-service/internationalization.mjs +0 -63
- package/dist/services/document-service/internationalization.mjs.map +0 -1
- package/dist/services/document-service/middlewares/errors.js +0 -25
- package/dist/services/document-service/middlewares/errors.js.map +0 -1
- package/dist/services/document-service/middlewares/errors.mjs +0 -25
- package/dist/services/document-service/middlewares/errors.mjs.map +0 -1
- package/dist/services/document-service/middlewares/middleware-manager.js +0 -49
- package/dist/services/document-service/middlewares/middleware-manager.js.map +0 -1
- package/dist/services/document-service/middlewares/middleware-manager.mjs +0 -49
- package/dist/services/document-service/middlewares/middleware-manager.mjs.map +0 -1
- package/dist/services/document-service/params.js +0 -8
- package/dist/services/document-service/params.js.map +0 -1
- package/dist/services/document-service/params.mjs +0 -8
- package/dist/services/document-service/params.mjs.map +0 -1
- package/dist/services/document-service/repository.js +0 -278
- package/dist/services/document-service/repository.js.map +0 -1
- package/dist/services/document-service/repository.mjs +0 -278
- package/dist/services/document-service/repository.mjs.map +0 -1
- package/dist/services/document-service/transform/data.js +0 -15
- package/dist/services/document-service/transform/data.js.map +0 -1
- package/dist/services/document-service/transform/data.mjs +0 -15
- package/dist/services/document-service/transform/data.mjs.map +0 -1
- package/dist/services/document-service/transform/fields.js +0 -24
- package/dist/services/document-service/transform/fields.js.map +0 -1
- package/dist/services/document-service/transform/fields.mjs +0 -24
- package/dist/services/document-service/transform/fields.mjs.map +0 -1
- package/dist/services/document-service/transform/id-map.js +0 -78
- package/dist/services/document-service/transform/id-map.js.map +0 -1
- package/dist/services/document-service/transform/id-map.mjs +0 -78
- package/dist/services/document-service/transform/id-map.mjs.map +0 -1
- package/dist/services/document-service/transform/id-transform.js +0 -33
- package/dist/services/document-service/transform/id-transform.js.map +0 -1
- package/dist/services/document-service/transform/id-transform.mjs +0 -33
- package/dist/services/document-service/transform/id-transform.mjs.map +0 -1
- package/dist/services/document-service/transform/populate.js +0 -21
- package/dist/services/document-service/transform/populate.js.map +0 -1
- package/dist/services/document-service/transform/populate.mjs +0 -21
- package/dist/services/document-service/transform/populate.mjs.map +0 -1
- package/dist/services/document-service/transform/query.js +0 -9
- package/dist/services/document-service/transform/query.js.map +0 -1
- package/dist/services/document-service/transform/query.mjs +0 -9
- package/dist/services/document-service/transform/query.mjs.map +0 -1
- package/dist/services/document-service/transform/relations/extract/data-ids.js +0 -57
- package/dist/services/document-service/transform/relations/extract/data-ids.js.map +0 -1
- package/dist/services/document-service/transform/relations/extract/data-ids.mjs +0 -57
- package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +0 -1
- package/dist/services/document-service/transform/relations/transform/data-ids.js +0 -76
- package/dist/services/document-service/transform/relations/transform/data-ids.js.map +0 -1
- package/dist/services/document-service/transform/relations/transform/data-ids.mjs +0 -76
- package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +0 -1
- package/dist/services/document-service/transform/relations/transform/default-locale.js +0 -32
- package/dist/services/document-service/transform/relations/transform/default-locale.js.map +0 -1
- package/dist/services/document-service/transform/relations/transform/default-locale.mjs +0 -32
- package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +0 -1
- package/dist/services/document-service/transform/relations/utils/dp.js +0 -30
- package/dist/services/document-service/transform/relations/utils/dp.js.map +0 -1
- package/dist/services/document-service/transform/relations/utils/dp.mjs +0 -30
- package/dist/services/document-service/transform/relations/utils/dp.mjs.map +0 -1
- package/dist/services/document-service/transform/relations/utils/i18n.js +0 -25
- package/dist/services/document-service/transform/relations/utils/i18n.js.map +0 -1
- package/dist/services/document-service/transform/relations/utils/i18n.mjs +0 -25
- package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +0 -1
- package/dist/services/document-service/transform/relations/utils/map-relation.js +0 -91
- package/dist/services/document-service/transform/relations/utils/map-relation.js.map +0 -1
- package/dist/services/document-service/transform/relations/utils/map-relation.mjs +0 -91
- package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +0 -1
- package/dist/services/document-service/utils/populate.js +0 -41
- package/dist/services/document-service/utils/populate.js.map +0 -1
- package/dist/services/document-service/utils/populate.mjs +0 -41
- package/dist/services/document-service/utils/populate.mjs.map +0 -1
- package/dist/services/entity-service/index.js +0 -169
- package/dist/services/entity-service/index.js.map +0 -1
- package/dist/services/entity-service/index.mjs +0 -167
- package/dist/services/entity-service/index.mjs.map +0 -1
- package/dist/services/entity-validator/blocks-validator.js +0 -127
- package/dist/services/entity-validator/blocks-validator.js.map +0 -1
- package/dist/services/entity-validator/blocks-validator.mjs +0 -128
- package/dist/services/entity-validator/blocks-validator.mjs.map +0 -1
- package/dist/services/entity-validator/index.js +0 -333
- package/dist/services/entity-validator/index.js.map +0 -1
- package/dist/services/entity-validator/index.mjs +0 -332
- package/dist/services/entity-validator/index.mjs.map +0 -1
- package/dist/services/entity-validator/validators.js +0 -126
- package/dist/services/entity-validator/validators.js.map +0 -1
- package/dist/services/entity-validator/validators.mjs +0 -124
- package/dist/services/entity-validator/validators.mjs.map +0 -1
- package/dist/services/errors.js +0 -76
- package/dist/services/errors.js.map +0 -1
- package/dist/services/errors.mjs +0 -74
- package/dist/services/errors.mjs.map +0 -1
- package/dist/services/event-hub.js +0 -72
- package/dist/services/event-hub.js.map +0 -1
- package/dist/services/event-hub.mjs +0 -73
- package/dist/services/event-hub.mjs.map +0 -1
- package/dist/services/features.js +0 -17
- package/dist/services/features.js.map +0 -1
- package/dist/services/features.mjs +0 -17
- package/dist/services/features.mjs.map +0 -1
- package/dist/services/fs.js +0 -51
- package/dist/services/fs.js.map +0 -1
- package/dist/services/fs.mjs +0 -49
- package/dist/services/fs.mjs.map +0 -1
- package/dist/services/metrics/admin-user-hash.js +0 -14
- package/dist/services/metrics/admin-user-hash.js.map +0 -1
- package/dist/services/metrics/admin-user-hash.mjs +0 -12
- package/dist/services/metrics/admin-user-hash.mjs.map +0 -1
- package/dist/services/metrics/index.js +0 -45
- package/dist/services/metrics/index.js.map +0 -1
- package/dist/services/metrics/index.mjs +0 -46
- package/dist/services/metrics/index.mjs.map +0 -1
- package/dist/services/metrics/is-truthy.js +0 -9
- package/dist/services/metrics/is-truthy.js.map +0 -1
- package/dist/services/metrics/is-truthy.mjs +0 -8
- package/dist/services/metrics/is-truthy.mjs.map +0 -1
- package/dist/services/metrics/middleware.js +0 -25
- package/dist/services/metrics/middleware.js.map +0 -1
- package/dist/services/metrics/middleware.mjs +0 -26
- package/dist/services/metrics/middleware.mjs.map +0 -1
- package/dist/services/metrics/rate-limiter.js +0 -21
- package/dist/services/metrics/rate-limiter.js.map +0 -1
- package/dist/services/metrics/rate-limiter.mjs +0 -22
- package/dist/services/metrics/rate-limiter.mjs.map +0 -1
- package/dist/services/metrics/sender.js +0 -76
- package/dist/services/metrics/sender.js.map +0 -1
- package/dist/services/metrics/sender.mjs +0 -70
- package/dist/services/metrics/sender.mjs.map +0 -1
- package/dist/services/query-params.js +0 -12
- package/dist/services/query-params.js.map +0 -1
- package/dist/services/query-params.mjs +0 -13
- package/dist/services/query-params.mjs.map +0 -1
- package/dist/services/reloader.js +0 -36
- package/dist/services/reloader.js.map +0 -1
- package/dist/services/reloader.mjs +0 -36
- package/dist/services/reloader.mjs.map +0 -1
- package/dist/services/request-context.js +0 -13
- package/dist/services/request-context.js.map +0 -1
- package/dist/services/request-context.mjs +0 -14
- package/dist/services/request-context.mjs.map +0 -1
- package/dist/services/server/admin-api.js +0 -13
- package/dist/services/server/admin-api.js.map +0 -1
- package/dist/services/server/admin-api.mjs +0 -13
- package/dist/services/server/admin-api.mjs.map +0 -1
- package/dist/services/server/api.js +0 -30
- package/dist/services/server/api.js.map +0 -1
- package/dist/services/server/api.mjs +0 -28
- package/dist/services/server/api.mjs.map +0 -1
- package/dist/services/server/compose-endpoint.js +0 -117
- package/dist/services/server/compose-endpoint.js.map +0 -1
- package/dist/services/server/compose-endpoint.mjs +0 -116
- package/dist/services/server/compose-endpoint.mjs.map +0 -1
- package/dist/services/server/content-api.js +0 -12
- package/dist/services/server/content-api.js.map +0 -1
- package/dist/services/server/content-api.mjs +0 -12
- package/dist/services/server/content-api.mjs.map +0 -1
- package/dist/services/server/http-server.js +0 -50
- package/dist/services/server/http-server.js.map +0 -1
- package/dist/services/server/http-server.mjs +0 -48
- package/dist/services/server/http-server.mjs.map +0 -1
- package/dist/services/server/index.js +0 -87
- package/dist/services/server/index.js.map +0 -1
- package/dist/services/server/index.mjs +0 -85
- package/dist/services/server/index.mjs.map +0 -1
- package/dist/services/server/koa.js +0 -52
- package/dist/services/server/koa.js.map +0 -1
- package/dist/services/server/koa.mjs +0 -48
- package/dist/services/server/koa.mjs.map +0 -1
- package/dist/services/server/middleware.js +0 -92
- package/dist/services/server/middleware.js.map +0 -1
- package/dist/services/server/middleware.mjs +0 -90
- package/dist/services/server/middleware.mjs.map +0 -1
- package/dist/services/server/policy.js +0 -20
- package/dist/services/server/policy.js.map +0 -1
- package/dist/services/server/policy.mjs +0 -20
- package/dist/services/server/policy.mjs.map +0 -1
- package/dist/services/server/register-middlewares.js +0 -72
- package/dist/services/server/register-middlewares.js.map +0 -1
- package/dist/services/server/register-middlewares.mjs +0 -73
- package/dist/services/server/register-middlewares.mjs.map +0 -1
- package/dist/services/server/register-routes.js +0 -76
- package/dist/services/server/register-routes.js.map +0 -1
- package/dist/services/server/register-routes.mjs +0 -75
- package/dist/services/server/register-routes.mjs.map +0 -1
- package/dist/services/server/routing.js +0 -91
- package/dist/services/server/routing.js.map +0 -1
- package/dist/services/server/routing.mjs +0 -89
- package/dist/services/server/routing.mjs.map +0 -1
- package/dist/services/utils/dynamic-zones.js +0 -17
- package/dist/services/utils/dynamic-zones.js.map +0 -1
- package/dist/services/utils/dynamic-zones.mjs +0 -18
- package/dist/services/utils/dynamic-zones.mjs.map +0 -1
- package/dist/services/webhook-runner.js +0 -133
- package/dist/services/webhook-runner.js.map +0 -1
- package/dist/services/webhook-runner.mjs +0 -131
- package/dist/services/webhook-runner.mjs.map +0 -1
- package/dist/services/webhook-store.js +0 -110
- package/dist/services/webhook-store.js.map +0 -1
- package/dist/services/webhook-store.mjs +0 -110
- package/dist/services/webhook-store.mjs.map +0 -1
- package/dist/services/worker-queue.js +0 -56
- package/dist/services/worker-queue.js.map +0 -1
- package/dist/services/worker-queue.mjs +0 -55
- package/dist/services/worker-queue.mjs.map +0 -1
- package/dist/utils/convert-custom-field-type.js +0 -24
- package/dist/utils/convert-custom-field-type.js.map +0 -1
- package/dist/utils/convert-custom-field-type.mjs +0 -24
- package/dist/utils/convert-custom-field-type.mjs.map +0 -1
- package/dist/utils/cron.js +0 -38
- package/dist/utils/cron.js.map +0 -1
- package/dist/utils/cron.mjs +0 -38
- package/dist/utils/cron.mjs.map +0 -1
- package/dist/utils/fetch.js +0 -20
- package/dist/utils/fetch.js.map +0 -1
- package/dist/utils/fetch.mjs +0 -20
- package/dist/utils/fetch.mjs.map +0 -1
- package/dist/utils/filepath-to-prop-path.js +0 -12
- package/dist/utils/filepath-to-prop-path.js.map +0 -1
- package/dist/utils/filepath-to-prop-path.mjs +0 -10
- package/dist/utils/filepath-to-prop-path.mjs.map +0 -1
- package/dist/utils/is-initialized.js +0 -16
- package/dist/utils/is-initialized.js.map +0 -1
- package/dist/utils/is-initialized.mjs +0 -16
- package/dist/utils/is-initialized.mjs.map +0 -1
- package/dist/utils/lifecycles.js +0 -9
- package/dist/utils/lifecycles.js.map +0 -1
- package/dist/utils/lifecycles.mjs +0 -9
- package/dist/utils/lifecycles.mjs.map +0 -1
- package/dist/utils/load-config-file.js +0 -45
- package/dist/utils/load-config-file.js.map +0 -1
- package/dist/utils/load-config-file.mjs +0 -42
- package/dist/utils/load-config-file.mjs.map +0 -1
- package/dist/utils/load-files.js +0 -39
- package/dist/utils/load-files.js.map +0 -1
- package/dist/utils/load-files.mjs +0 -35
- package/dist/utils/load-files.mjs.map +0 -1
- package/dist/utils/open-browser.js +0 -11
- package/dist/utils/open-browser.js.map +0 -1
- package/dist/utils/open-browser.mjs +0 -9
- package/dist/utils/open-browser.mjs.map +0 -1
- package/dist/utils/resolve-working-dirs.js +0 -13
- package/dist/utils/resolve-working-dirs.js.map +0 -1
- package/dist/utils/resolve-working-dirs.mjs +0 -11
- package/dist/utils/resolve-working-dirs.mjs.map +0 -1
- package/dist/utils/signals.js +0 -17
- package/dist/utils/signals.js.map +0 -1
- package/dist/utils/signals.mjs +0 -17
- package/dist/utils/signals.mjs.map +0 -1
- package/dist/utils/startup-logger.js +0 -81
- package/dist/utils/startup-logger.js.map +0 -1
- package/dist/utils/startup-logger.mjs +0 -77
- package/dist/utils/startup-logger.mjs.map +0 -1
- package/dist/utils/transform-content-types-to-models.js +0 -285
- package/dist/utils/transform-content-types-to-models.js.map +0 -1
- package/dist/utils/transform-content-types-to-models.mjs +0 -282
- package/dist/utils/transform-content-types-to-models.mjs.map +0 -1
- package/dist/utils/update-notifier/index.js +0 -85
- package/dist/utils/update-notifier/index.js.map +0 -1
- package/dist/utils/update-notifier/index.mjs +0 -78
- package/dist/utils/update-notifier/index.mjs.map +0 -1
@@ -1,75 +0,0 @@
|
|
1
|
-
import _ from "lodash";
|
2
|
-
const createRouteScopeGenerator = (namespace) => (route) => {
|
3
|
-
const prefix = namespace.endsWith("::") ? namespace : `${namespace}.`;
|
4
|
-
if (typeof route.handler === "string") {
|
5
|
-
_.defaultsDeep(route, {
|
6
|
-
config: {
|
7
|
-
auth: {
|
8
|
-
scope: [`${route.handler.startsWith(prefix) ? "" : prefix}${route.handler}`]
|
9
|
-
}
|
10
|
-
}
|
11
|
-
});
|
12
|
-
}
|
13
|
-
};
|
14
|
-
const registerAllRoutes = (strapi) => {
|
15
|
-
registerAdminRoutes(strapi);
|
16
|
-
registerAPIRoutes(strapi);
|
17
|
-
registerPluginRoutes(strapi);
|
18
|
-
};
|
19
|
-
const registerAdminRoutes = (strapi) => {
|
20
|
-
const generateRouteScope = createRouteScopeGenerator(`admin::`);
|
21
|
-
_.forEach(strapi.admin.routes, (router) => {
|
22
|
-
router.type = router.type || "admin";
|
23
|
-
router.prefix = router.prefix || `/admin`;
|
24
|
-
router.routes.forEach((route) => {
|
25
|
-
generateRouteScope(route);
|
26
|
-
route.info = { pluginName: "admin" };
|
27
|
-
});
|
28
|
-
strapi.server.routes(router);
|
29
|
-
});
|
30
|
-
};
|
31
|
-
const registerPluginRoutes = (strapi) => {
|
32
|
-
for (const pluginName of Object.keys(strapi.plugins)) {
|
33
|
-
const plugin = strapi.plugins[pluginName];
|
34
|
-
const generateRouteScope = createRouteScopeGenerator(`plugin::${pluginName}`);
|
35
|
-
if (Array.isArray(plugin.routes)) {
|
36
|
-
plugin.routes.forEach((route) => {
|
37
|
-
generateRouteScope(route);
|
38
|
-
route.info = { pluginName };
|
39
|
-
});
|
40
|
-
strapi.server.routes({
|
41
|
-
type: "admin",
|
42
|
-
prefix: `/${pluginName}`,
|
43
|
-
routes: plugin.routes
|
44
|
-
});
|
45
|
-
} else {
|
46
|
-
_.forEach(plugin.routes, (router) => {
|
47
|
-
router.type = router.type || "admin";
|
48
|
-
router.prefix = router.prefix || `/${pluginName}`;
|
49
|
-
router.routes.forEach((route) => {
|
50
|
-
generateRouteScope(route);
|
51
|
-
route.info = { pluginName };
|
52
|
-
});
|
53
|
-
strapi.server.routes(router);
|
54
|
-
});
|
55
|
-
}
|
56
|
-
}
|
57
|
-
};
|
58
|
-
const registerAPIRoutes = (strapi) => {
|
59
|
-
for (const apiName of Object.keys(strapi.apis)) {
|
60
|
-
const api = strapi.api(apiName);
|
61
|
-
const generateRouteScope = createRouteScopeGenerator(`api::${apiName}`);
|
62
|
-
_.forEach(api.routes, (router) => {
|
63
|
-
router.type = "content-api";
|
64
|
-
router.routes?.forEach((route) => {
|
65
|
-
generateRouteScope(route);
|
66
|
-
route.info = { apiName };
|
67
|
-
});
|
68
|
-
return strapi.server.routes(router);
|
69
|
-
});
|
70
|
-
}
|
71
|
-
};
|
72
|
-
export {
|
73
|
-
registerAllRoutes as default
|
74
|
-
};
|
75
|
-
//# sourceMappingURL=register-routes.mjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"register-routes.mjs","sources":["../../../src/services/server/register-routes.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Core } from '@strapi/types';\n\nconst createRouteScopeGenerator = (namespace: string) => (route: Core.RouteInput) => {\n const prefix = namespace.endsWith('::') ? namespace : `${namespace}.`;\n\n if (typeof route.handler === 'string') {\n _.defaultsDeep(route, {\n config: {\n auth: {\n scope: [`${route.handler.startsWith(prefix) ? '' : prefix}${route.handler}`],\n },\n },\n });\n }\n};\n\n/**\n * Register all routes\n */\nexport default (strapi: Core.Strapi) => {\n registerAdminRoutes(strapi);\n registerAPIRoutes(strapi);\n registerPluginRoutes(strapi);\n};\n\n/**\n * Register admin routes\n * @param {import('../../').Strapi} strapi\n */\nconst registerAdminRoutes = (strapi: Core.Strapi) => {\n const generateRouteScope = createRouteScopeGenerator(`admin::`);\n\n _.forEach(strapi.admin.routes, (router) => {\n router.type = router.type || 'admin';\n router.prefix = router.prefix || `/admin`;\n router.routes.forEach((route) => {\n generateRouteScope(route);\n route.info = { pluginName: 'admin' };\n });\n strapi.server.routes(router);\n });\n};\n\n/**\n * Register plugin routes\n * @param {import('../../').Strapi} strapi\n */\nconst registerPluginRoutes = (strapi: Core.Strapi) => {\n for (const pluginName of Object.keys(strapi.plugins)) {\n const plugin = strapi.plugins[pluginName];\n\n const generateRouteScope = createRouteScopeGenerator(`plugin::${pluginName}`);\n\n if (Array.isArray(plugin.routes)) {\n plugin.routes.forEach((route) => {\n generateRouteScope(route);\n route.info = { pluginName };\n });\n\n strapi.server.routes({\n type: 'admin',\n prefix: `/${pluginName}`,\n routes: plugin.routes,\n });\n } else {\n _.forEach(plugin.routes, (router) => {\n router.type = router.type || 'admin';\n router.prefix = router.prefix || `/${pluginName}`;\n router.routes.forEach((route) => {\n generateRouteScope(route);\n route.info = { pluginName };\n });\n\n strapi.server.routes(router);\n });\n }\n }\n};\n\n/**\n * Register api routes\n */\nconst registerAPIRoutes = (strapi: Core.Strapi) => {\n for (const apiName of Object.keys(strapi.apis)) {\n const api = strapi.api(apiName);\n\n const generateRouteScope = createRouteScopeGenerator(`api::${apiName}`);\n\n _.forEach(api.routes, (router) => {\n // TODO: remove once auth setup\n // pass meta down to compose endpoint\n router.type = 'content-api';\n router.routes?.forEach((route) => {\n generateRouteScope(route);\n route.info = { apiName };\n });\n\n return strapi.server.routes(router);\n });\n }\n};\n"],"names":[],"mappings":";AAGA,MAAM,4BAA4B,CAAC,cAAsB,CAAC,UAA2B;AACnF,QAAM,SAAS,UAAU,SAAS,IAAI,IAAI,YAAY,GAAG,SAAS;AAE9D,MAAA,OAAO,MAAM,YAAY,UAAU;AACrC,MAAE,aAAa,OAAO;AAAA,MACpB,QAAQ;AAAA,QACN,MAAM;AAAA,UACJ,OAAO,CAAC,GAAG,MAAM,QAAQ,WAAW,MAAM,IAAI,KAAK,MAAM,GAAG,MAAM,OAAO,EAAE;AAAA,QAC7E;AAAA,MACF;AAAA,IAAA,CACD;AAAA,EACH;AACF;AAKA,MAAe,oBAAA,CAAC,WAAwB;AACtC,sBAAoB,MAAM;AAC1B,oBAAkB,MAAM;AACxB,uBAAqB,MAAM;AAC7B;AAMA,MAAM,sBAAsB,CAAC,WAAwB;AAC7C,QAAA,qBAAqB,0BAA0B,SAAS;AAE9D,IAAE,QAAQ,OAAO,MAAM,QAAQ,CAAC,WAAW;AAClC,WAAA,OAAO,OAAO,QAAQ;AACtB,WAAA,SAAS,OAAO,UAAU;AAC1B,WAAA,OAAO,QAAQ,CAAC,UAAU;AAC/B,yBAAmB,KAAK;AAClB,YAAA,OAAO,EAAE,YAAY,QAAQ;AAAA,IAAA,CACpC;AACM,WAAA,OAAO,OAAO,MAAM;AAAA,EAAA,CAC5B;AACH;AAMA,MAAM,uBAAuB,CAAC,WAAwB;AACpD,aAAW,cAAc,OAAO,KAAK,OAAO,OAAO,GAAG;AAC9C,UAAA,SAAS,OAAO,QAAQ,UAAU;AAExC,UAAM,qBAAqB,0BAA0B,WAAW,UAAU,EAAE;AAE5E,QAAI,MAAM,QAAQ,OAAO,MAAM,GAAG;AACzB,aAAA,OAAO,QAAQ,CAAC,UAAU;AAC/B,2BAAmB,KAAK;AAClB,cAAA,OAAO,EAAE;MAAW,CAC3B;AAED,aAAO,OAAO,OAAO;AAAA,QACnB,MAAM;AAAA,QACN,QAAQ,IAAI,UAAU;AAAA,QACtB,QAAQ,OAAO;AAAA,MAAA,CAChB;AAAA,IAAA,OACI;AACL,QAAE,QAAQ,OAAO,QAAQ,CAAC,WAAW;AAC5B,eAAA,OAAO,OAAO,QAAQ;AAC7B,eAAO,SAAS,OAAO,UAAU,IAAI,UAAU;AACxC,eAAA,OAAO,QAAQ,CAAC,UAAU;AAC/B,6BAAmB,KAAK;AAClB,gBAAA,OAAO,EAAE;QAAW,CAC3B;AAEM,eAAA,OAAO,OAAO,MAAM;AAAA,MAAA,CAC5B;AAAA,IACH;AAAA,EACF;AACF;AAKA,MAAM,oBAAoB,CAAC,WAAwB;AACjD,aAAW,WAAW,OAAO,KAAK,OAAO,IAAI,GAAG;AACxC,UAAA,MAAM,OAAO,IAAI,OAAO;AAE9B,UAAM,qBAAqB,0BAA0B,QAAQ,OAAO,EAAE;AAEtE,MAAE,QAAQ,IAAI,QAAQ,CAAC,WAAW;AAGhC,aAAO,OAAO;AACP,aAAA,QAAQ,QAAQ,CAAC,UAAU;AAChC,2BAAmB,KAAK;AAClB,cAAA,OAAO,EAAE;MAAQ,CACxB;AAEM,aAAA,OAAO,OAAO,OAAO,MAAM;AAAA,IAAA,CACnC;AAAA,EACH;AACF;"}
|
@@ -1,91 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
3
|
-
const Router = require("@koa/router");
|
4
|
-
const _ = require("lodash/fp");
|
5
|
-
const strapiUtils = require("@strapi/utils");
|
6
|
-
const composeEndpoint = require("./compose-endpoint.js");
|
7
|
-
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
8
|
-
const Router__default = /* @__PURE__ */ _interopDefault(Router);
|
9
|
-
const policyOrMiddlewareSchema = strapiUtils.yup.lazy((value) => {
|
10
|
-
if (typeof value === "string") {
|
11
|
-
return strapiUtils.yup.string().required();
|
12
|
-
}
|
13
|
-
if (typeof value === "function") {
|
14
|
-
return strapiUtils.yup.mixed().isFunction();
|
15
|
-
}
|
16
|
-
return strapiUtils.yup.object({
|
17
|
-
name: strapiUtils.yup.string().required(),
|
18
|
-
options: strapiUtils.yup.object().notRequired()
|
19
|
-
// any options
|
20
|
-
});
|
21
|
-
});
|
22
|
-
const routeSchema = strapiUtils.yup.object({
|
23
|
-
method: strapiUtils.yup.string().oneOf(["GET", "POST", "PUT", "PATCH", "DELETE", "ALL"]).required(),
|
24
|
-
path: strapiUtils.yup.string().required(),
|
25
|
-
handler: strapiUtils.yup.lazy((value) => {
|
26
|
-
if (typeof value === "string") {
|
27
|
-
return strapiUtils.yup.string().required();
|
28
|
-
}
|
29
|
-
if (Array.isArray(value)) {
|
30
|
-
return strapiUtils.yup.array().required();
|
31
|
-
}
|
32
|
-
return strapiUtils.yup.mixed().isFunction().required();
|
33
|
-
}),
|
34
|
-
config: strapiUtils.yup.object({
|
35
|
-
auth: strapiUtils.yup.lazy((value) => {
|
36
|
-
if (value === false) {
|
37
|
-
return strapiUtils.yup.boolean().required();
|
38
|
-
}
|
39
|
-
return strapiUtils.yup.object({
|
40
|
-
scope: strapiUtils.yup.array().of(strapiUtils.yup.string()).required()
|
41
|
-
});
|
42
|
-
}),
|
43
|
-
policies: strapiUtils.yup.array().of(policyOrMiddlewareSchema).notRequired(),
|
44
|
-
middlewares: strapiUtils.yup.array().of(policyOrMiddlewareSchema).notRequired()
|
45
|
-
}).notRequired()
|
46
|
-
});
|
47
|
-
const validateRouteConfig = (routeConfig) => {
|
48
|
-
try {
|
49
|
-
return routeSchema.validateSync(routeConfig, {
|
50
|
-
strict: true,
|
51
|
-
abortEarly: false,
|
52
|
-
stripUnknown: true
|
53
|
-
});
|
54
|
-
} catch (error) {
|
55
|
-
if (error instanceof strapiUtils.yup.ValidationError) {
|
56
|
-
throw new Error(`Invalid route config ${error.message}`);
|
57
|
-
}
|
58
|
-
}
|
59
|
-
};
|
60
|
-
const createRouteManager = (strapi, opts = {}) => {
|
61
|
-
const { type } = opts;
|
62
|
-
const composeEndpoint$1 = composeEndpoint(strapi);
|
63
|
-
const createRoute = (route, router) => {
|
64
|
-
validateRouteConfig(route);
|
65
|
-
const routeWithInfo = Object.assign(route, {
|
66
|
-
info: {
|
67
|
-
...route.info ?? {},
|
68
|
-
type: type || "api"
|
69
|
-
}
|
70
|
-
});
|
71
|
-
composeEndpoint$1(routeWithInfo, { router });
|
72
|
-
};
|
73
|
-
const addRoutes = (routes, router) => {
|
74
|
-
if (Array.isArray(routes)) {
|
75
|
-
routes.forEach((route) => createRoute(route, router));
|
76
|
-
} else if (routes.routes) {
|
77
|
-
const subRouter = new Router__default.default({ prefix: routes.prefix });
|
78
|
-
routes.routes.forEach((route) => {
|
79
|
-
const hasPrefix = _.has("prefix", route.config);
|
80
|
-
createRoute(route, hasPrefix ? router : subRouter);
|
81
|
-
});
|
82
|
-
return router.use(subRouter.routes(), subRouter.allowedMethods());
|
83
|
-
}
|
84
|
-
};
|
85
|
-
return {
|
86
|
-
addRoutes
|
87
|
-
};
|
88
|
-
};
|
89
|
-
exports.createRouteManager = createRouteManager;
|
90
|
-
exports.validateRouteConfig = validateRouteConfig;
|
91
|
-
//# sourceMappingURL=routing.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"routing.js","sources":["../../../src/services/server/routing.ts"],"sourcesContent":["import Router from '@koa/router';\nimport { has } from 'lodash/fp';\nimport { yup } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nimport createEndpointComposer from './compose-endpoint';\n\nconst policyOrMiddlewareSchema = yup.lazy((value) => {\n if (typeof value === 'string') {\n return yup.string().required();\n }\n\n if (typeof value === 'function') {\n return yup.mixed().isFunction();\n }\n\n return yup.object({\n name: yup.string().required(),\n options: yup.object().notRequired(), // any options\n });\n});\n\nconst routeSchema = yup.object({\n method: yup.string().oneOf(['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'ALL']).required(),\n path: yup.string().required(),\n handler: yup.lazy((value) => {\n if (typeof value === 'string') {\n return yup.string().required();\n }\n\n if (Array.isArray(value)) {\n return yup.array().required();\n }\n\n return yup.mixed().isFunction().required();\n }),\n config: yup\n .object({\n auth: yup.lazy((value) => {\n if (value === false) {\n return yup.boolean().required();\n }\n\n return yup.object({\n scope: yup.array().of(yup.string()).required(),\n });\n }),\n policies: yup\n .array()\n // FIXME: fixed in yup v1\n .of(policyOrMiddlewareSchema as any)\n .notRequired(),\n middlewares: yup\n .array()\n // FIXME: fixed in yup v1\n .of(policyOrMiddlewareSchema as any)\n .notRequired(),\n })\n .notRequired(),\n});\n\nconst validateRouteConfig = (routeConfig: Core.RouteInput) => {\n try {\n return routeSchema.validateSync(routeConfig, {\n strict: true,\n abortEarly: false,\n stripUnknown: true,\n });\n } catch (error) {\n if (error instanceof yup.ValidationError) {\n throw new Error(`Invalid route config ${error.message}`);\n }\n }\n};\n\nconst createRouteManager = (strapi: Core.Strapi, opts: { type?: string } = {}) => {\n const { type } = opts;\n\n const composeEndpoint = createEndpointComposer(strapi);\n\n const createRoute = (route: Core.RouteInput, router: Router) => {\n validateRouteConfig(route);\n\n // NOTE: the router type is used to tag controller actions and for authentication / authorization so we need to pass this info down to the route level\n const routeWithInfo = Object.assign(route, {\n info: {\n ...(route.info ?? {}),\n type: type || 'api',\n },\n });\n\n composeEndpoint(routeWithInfo, { router });\n };\n\n const addRoutes = (routes: Core.Router | Core.RouteInput[], router: Router) => {\n if (Array.isArray(routes)) {\n routes.forEach((route) => createRoute(route, router));\n } else if (routes.routes) {\n const subRouter = new Router({ prefix: routes.prefix });\n\n routes.routes.forEach((route) => {\n const hasPrefix = has('prefix', route.config);\n createRoute(route, hasPrefix ? router : subRouter);\n });\n\n return router.use(subRouter.routes(), subRouter.allowedMethods());\n }\n };\n\n return {\n addRoutes,\n };\n};\n\nexport { validateRouteConfig, createRouteManager };\n"],"names":["yup","composeEndpoint","createEndpointComposer","Router","has"],"mappings":"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"}
|
@@ -1,89 +0,0 @@
|
|
1
|
-
import Router from "@koa/router";
|
2
|
-
import { has } from "lodash/fp";
|
3
|
-
import { yup } from "@strapi/utils";
|
4
|
-
import createEndpointComposer from "./compose-endpoint.mjs";
|
5
|
-
const policyOrMiddlewareSchema = yup.lazy((value) => {
|
6
|
-
if (typeof value === "string") {
|
7
|
-
return yup.string().required();
|
8
|
-
}
|
9
|
-
if (typeof value === "function") {
|
10
|
-
return yup.mixed().isFunction();
|
11
|
-
}
|
12
|
-
return yup.object({
|
13
|
-
name: yup.string().required(),
|
14
|
-
options: yup.object().notRequired()
|
15
|
-
// any options
|
16
|
-
});
|
17
|
-
});
|
18
|
-
const routeSchema = yup.object({
|
19
|
-
method: yup.string().oneOf(["GET", "POST", "PUT", "PATCH", "DELETE", "ALL"]).required(),
|
20
|
-
path: yup.string().required(),
|
21
|
-
handler: yup.lazy((value) => {
|
22
|
-
if (typeof value === "string") {
|
23
|
-
return yup.string().required();
|
24
|
-
}
|
25
|
-
if (Array.isArray(value)) {
|
26
|
-
return yup.array().required();
|
27
|
-
}
|
28
|
-
return yup.mixed().isFunction().required();
|
29
|
-
}),
|
30
|
-
config: yup.object({
|
31
|
-
auth: yup.lazy((value) => {
|
32
|
-
if (value === false) {
|
33
|
-
return yup.boolean().required();
|
34
|
-
}
|
35
|
-
return yup.object({
|
36
|
-
scope: yup.array().of(yup.string()).required()
|
37
|
-
});
|
38
|
-
}),
|
39
|
-
policies: yup.array().of(policyOrMiddlewareSchema).notRequired(),
|
40
|
-
middlewares: yup.array().of(policyOrMiddlewareSchema).notRequired()
|
41
|
-
}).notRequired()
|
42
|
-
});
|
43
|
-
const validateRouteConfig = (routeConfig) => {
|
44
|
-
try {
|
45
|
-
return routeSchema.validateSync(routeConfig, {
|
46
|
-
strict: true,
|
47
|
-
abortEarly: false,
|
48
|
-
stripUnknown: true
|
49
|
-
});
|
50
|
-
} catch (error) {
|
51
|
-
if (error instanceof yup.ValidationError) {
|
52
|
-
throw new Error(`Invalid route config ${error.message}`);
|
53
|
-
}
|
54
|
-
}
|
55
|
-
};
|
56
|
-
const createRouteManager = (strapi, opts = {}) => {
|
57
|
-
const { type } = opts;
|
58
|
-
const composeEndpoint = createEndpointComposer(strapi);
|
59
|
-
const createRoute = (route, router) => {
|
60
|
-
validateRouteConfig(route);
|
61
|
-
const routeWithInfo = Object.assign(route, {
|
62
|
-
info: {
|
63
|
-
...route.info ?? {},
|
64
|
-
type: type || "api"
|
65
|
-
}
|
66
|
-
});
|
67
|
-
composeEndpoint(routeWithInfo, { router });
|
68
|
-
};
|
69
|
-
const addRoutes = (routes, router) => {
|
70
|
-
if (Array.isArray(routes)) {
|
71
|
-
routes.forEach((route) => createRoute(route, router));
|
72
|
-
} else if (routes.routes) {
|
73
|
-
const subRouter = new Router({ prefix: routes.prefix });
|
74
|
-
routes.routes.forEach((route) => {
|
75
|
-
const hasPrefix = has("prefix", route.config);
|
76
|
-
createRoute(route, hasPrefix ? router : subRouter);
|
77
|
-
});
|
78
|
-
return router.use(subRouter.routes(), subRouter.allowedMethods());
|
79
|
-
}
|
80
|
-
};
|
81
|
-
return {
|
82
|
-
addRoutes
|
83
|
-
};
|
84
|
-
};
|
85
|
-
export {
|
86
|
-
createRouteManager,
|
87
|
-
validateRouteConfig
|
88
|
-
};
|
89
|
-
//# sourceMappingURL=routing.mjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"routing.mjs","sources":["../../../src/services/server/routing.ts"],"sourcesContent":["import Router from '@koa/router';\nimport { has } from 'lodash/fp';\nimport { yup } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nimport createEndpointComposer from './compose-endpoint';\n\nconst policyOrMiddlewareSchema = yup.lazy((value) => {\n if (typeof value === 'string') {\n return yup.string().required();\n }\n\n if (typeof value === 'function') {\n return yup.mixed().isFunction();\n }\n\n return yup.object({\n name: yup.string().required(),\n options: yup.object().notRequired(), // any options\n });\n});\n\nconst routeSchema = yup.object({\n method: yup.string().oneOf(['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'ALL']).required(),\n path: yup.string().required(),\n handler: yup.lazy((value) => {\n if (typeof value === 'string') {\n return yup.string().required();\n }\n\n if (Array.isArray(value)) {\n return yup.array().required();\n }\n\n return yup.mixed().isFunction().required();\n }),\n config: yup\n .object({\n auth: yup.lazy((value) => {\n if (value === false) {\n return yup.boolean().required();\n }\n\n return yup.object({\n scope: yup.array().of(yup.string()).required(),\n });\n }),\n policies: yup\n .array()\n // FIXME: fixed in yup v1\n .of(policyOrMiddlewareSchema as any)\n .notRequired(),\n middlewares: yup\n .array()\n // FIXME: fixed in yup v1\n .of(policyOrMiddlewareSchema as any)\n .notRequired(),\n })\n .notRequired(),\n});\n\nconst validateRouteConfig = (routeConfig: Core.RouteInput) => {\n try {\n return routeSchema.validateSync(routeConfig, {\n strict: true,\n abortEarly: false,\n stripUnknown: true,\n });\n } catch (error) {\n if (error instanceof yup.ValidationError) {\n throw new Error(`Invalid route config ${error.message}`);\n }\n }\n};\n\nconst createRouteManager = (strapi: Core.Strapi, opts: { type?: string } = {}) => {\n const { type } = opts;\n\n const composeEndpoint = createEndpointComposer(strapi);\n\n const createRoute = (route: Core.RouteInput, router: Router) => {\n validateRouteConfig(route);\n\n // NOTE: the router type is used to tag controller actions and for authentication / authorization so we need to pass this info down to the route level\n const routeWithInfo = Object.assign(route, {\n info: {\n ...(route.info ?? {}),\n type: type || 'api',\n },\n });\n\n composeEndpoint(routeWithInfo, { router });\n };\n\n const addRoutes = (routes: Core.Router | Core.RouteInput[], router: Router) => {\n if (Array.isArray(routes)) {\n routes.forEach((route) => createRoute(route, router));\n } else if (routes.routes) {\n const subRouter = new Router({ prefix: routes.prefix });\n\n routes.routes.forEach((route) => {\n const hasPrefix = has('prefix', route.config);\n createRoute(route, hasPrefix ? router : subRouter);\n });\n\n return router.use(subRouter.routes(), subRouter.allowedMethods());\n }\n };\n\n return {\n addRoutes,\n };\n};\n\nexport { validateRouteConfig, createRouteManager };\n"],"names":[],"mappings":";;;;AAOA,MAAM,2BAA2B,IAAI,KAAK,CAAC,UAAU;AAC/C,MAAA,OAAO,UAAU,UAAU;AACtB,WAAA,IAAI,SAAS;EACtB;AAEI,MAAA,OAAO,UAAU,YAAY;AACxB,WAAA,IAAI,QAAQ;EACrB;AAEA,SAAO,IAAI,OAAO;AAAA,IAChB,MAAM,IAAI,OAAO,EAAE,SAAS;AAAA,IAC5B,SAAS,IAAI,OAAO,EAAE,YAAY;AAAA;AAAA,EAAA,CACnC;AACH,CAAC;AAED,MAAM,cAAc,IAAI,OAAO;AAAA,EAC7B,QAAQ,IAAI,SAAS,MAAM,CAAC,OAAO,QAAQ,OAAO,SAAS,UAAU,KAAK,CAAC,EAAE,SAAS;AAAA,EACtF,MAAM,IAAI,OAAO,EAAE,SAAS;AAAA,EAC5B,SAAS,IAAI,KAAK,CAAC,UAAU;AACvB,QAAA,OAAO,UAAU,UAAU;AACtB,aAAA,IAAI,SAAS;IACtB;AAEI,QAAA,MAAM,QAAQ,KAAK,GAAG;AACjB,aAAA,IAAI,QAAQ;IACrB;AAEA,WAAO,IAAI,MAAA,EAAQ,aAAa,SAAS;AAAA,EAAA,CAC1C;AAAA,EACD,QAAQ,IACL,OAAO;AAAA,IACN,MAAM,IAAI,KAAK,CAAC,UAAU;AACxB,UAAI,UAAU,OAAO;AACZ,eAAA,IAAI,UAAU;MACvB;AAEA,aAAO,IAAI,OAAO;AAAA,QAChB,OAAO,IAAI,QAAQ,GAAG,IAAI,OAAA,CAAQ,EAAE,SAAS;AAAA,MAAA,CAC9C;AAAA,IAAA,CACF;AAAA,IACD,UAAU,IACP,MAAA,EAEA,GAAG,wBAA+B,EAClC,YAAY;AAAA,IACf,aAAa,IACV,MAAA,EAEA,GAAG,wBAA+B,EAClC,YAAY;AAAA,EAChB,CAAA,EACA,YAAY;AACjB,CAAC;AAEK,MAAA,sBAAsB,CAAC,gBAAiC;AACxD,MAAA;AACK,WAAA,YAAY,aAAa,aAAa;AAAA,MAC3C,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,cAAc;AAAA,IAAA,CACf;AAAA,WACM,OAAO;AACV,QAAA,iBAAiB,IAAI,iBAAiB;AACxC,YAAM,IAAI,MAAM,wBAAwB,MAAM,OAAO,EAAE;AAAA,IACzD;AAAA,EACF;AACF;AAEA,MAAM,qBAAqB,CAAC,QAAqB,OAA0B,OAAO;AAC1E,QAAA,EAAE,KAAS,IAAA;AAEX,QAAA,kBAAkB,uBAAuB,MAAM;AAE/C,QAAA,cAAc,CAAC,OAAwB,WAAmB;AAC9D,wBAAoB,KAAK;AAGnB,UAAA,gBAAgB,OAAO,OAAO,OAAO;AAAA,MACzC,MAAM;AAAA,QACJ,GAAI,MAAM,QAAQ,CAAC;AAAA,QACnB,MAAM,QAAQ;AAAA,MAChB;AAAA,IAAA,CACD;AAEe,oBAAA,eAAe,EAAE,OAAA,CAAQ;AAAA,EAAA;AAGrC,QAAA,YAAY,CAAC,QAAyC,WAAmB;AACzE,QAAA,MAAM,QAAQ,MAAM,GAAG;AACzB,aAAO,QAAQ,CAAC,UAAU,YAAY,OAAO,MAAM,CAAC;AAAA,IAAA,WAC3C,OAAO,QAAQ;AACxB,YAAM,YAAY,IAAI,OAAO,EAAE,QAAQ,OAAO,QAAQ;AAE/C,aAAA,OAAO,QAAQ,CAAC,UAAU;AAC/B,cAAM,YAAY,IAAI,UAAU,MAAM,MAAM;AAChC,oBAAA,OAAO,YAAY,SAAS,SAAS;AAAA,MAAA,CAClD;AAED,aAAO,OAAO,IAAI,UAAU,UAAU,UAAU,gBAAgB;AAAA,IAClE;AAAA,EAAA;AAGK,SAAA;AAAA,IACL;AAAA,EAAA;AAEJ;"}
|
@@ -1,17 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
const _ = require("lodash/fp");
|
3
|
-
const getNumberOfDynamicZones = () => {
|
4
|
-
const contentTypes = strapi.contentTypes;
|
5
|
-
return _.pipe(
|
6
|
-
_.map("attributes"),
|
7
|
-
_.flatMap(_.values),
|
8
|
-
_.sumBy((item) => {
|
9
|
-
if (item.type === "dynamiczone") {
|
10
|
-
return 1;
|
11
|
-
}
|
12
|
-
return 0;
|
13
|
-
})
|
14
|
-
)(contentTypes);
|
15
|
-
};
|
16
|
-
module.exports = getNumberOfDynamicZones;
|
17
|
-
//# sourceMappingURL=dynamic-zones.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"dynamic-zones.js","sources":["../../../src/services/utils/dynamic-zones.ts"],"sourcesContent":["import { map, values, sumBy, pipe, flatMap } from 'lodash/fp';\nimport type { Schema, UID } from '@strapi/types';\n\nconst getNumberOfDynamicZones = () => {\n const contentTypes: Record<UID.ContentType, Schema.ContentType> = strapi.contentTypes;\n\n return pipe(\n map('attributes'),\n flatMap(values),\n sumBy((item) => {\n if (item.type === 'dynamiczone') {\n return 1;\n }\n return 0;\n })\n )(contentTypes);\n};\n\nexport default getNumberOfDynamicZones;\n"],"names":["pipe","map","flatMap","values","sumBy"],"mappings":";;AAGA,MAAM,0BAA0B,MAAM;AACpC,QAAM,eAA4D,OAAO;AAElE,SAAAA,EAAA;AAAA,IACLC,EAAAA,IAAI,YAAY;AAAA,IAChBC,EAAAA,QAAQC,EAAAA,MAAM;AAAA,IACdC,EAAA,MAAM,CAAC,SAAS;AACV,UAAA,KAAK,SAAS,eAAe;AACxB,eAAA;AAAA,MACT;AACO,aAAA;AAAA,IAAA,CACR;AAAA,IACD,YAAY;AAChB;;"}
|
@@ -1,18 +0,0 @@
|
|
1
|
-
import { pipe, map, flatMap, values, sumBy } from "lodash/fp";
|
2
|
-
const getNumberOfDynamicZones = () => {
|
3
|
-
const contentTypes = strapi.contentTypes;
|
4
|
-
return pipe(
|
5
|
-
map("attributes"),
|
6
|
-
flatMap(values),
|
7
|
-
sumBy((item) => {
|
8
|
-
if (item.type === "dynamiczone") {
|
9
|
-
return 1;
|
10
|
-
}
|
11
|
-
return 0;
|
12
|
-
})
|
13
|
-
)(contentTypes);
|
14
|
-
};
|
15
|
-
export {
|
16
|
-
getNumberOfDynamicZones as default
|
17
|
-
};
|
18
|
-
//# sourceMappingURL=dynamic-zones.mjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"dynamic-zones.mjs","sources":["../../../src/services/utils/dynamic-zones.ts"],"sourcesContent":["import { map, values, sumBy, pipe, flatMap } from 'lodash/fp';\nimport type { Schema, UID } from '@strapi/types';\n\nconst getNumberOfDynamicZones = () => {\n const contentTypes: Record<UID.ContentType, Schema.ContentType> = strapi.contentTypes;\n\n return pipe(\n map('attributes'),\n flatMap(values),\n sumBy((item) => {\n if (item.type === 'dynamiczone') {\n return 1;\n }\n return 0;\n })\n )(contentTypes);\n};\n\nexport default getNumberOfDynamicZones;\n"],"names":[],"mappings":";AAGA,MAAM,0BAA0B,MAAM;AACpC,QAAM,eAA4D,OAAO;AAElE,SAAA;AAAA,IACL,IAAI,YAAY;AAAA,IAChB,QAAQ,MAAM;AAAA,IACd,MAAM,CAAC,SAAS;AACV,UAAA,KAAK,SAAS,eAAe;AACxB,eAAA;AAAA,MACT;AACO,aAAA;AAAA,IAAA,CACR;AAAA,IACD,YAAY;AAChB;"}
|
@@ -1,133 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
const createDebugger = require("debug");
|
3
|
-
const _ = require("lodash");
|
4
|
-
const workerQueue = require("./worker-queue.js");
|
5
|
-
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
6
|
-
const createDebugger__default = /* @__PURE__ */ _interopDefault(createDebugger);
|
7
|
-
const ___default = /* @__PURE__ */ _interopDefault(_);
|
8
|
-
const debug = createDebugger__default.default("strapi:webhook");
|
9
|
-
const defaultConfiguration = {
|
10
|
-
defaultHeaders: {}
|
11
|
-
};
|
12
|
-
class WebhookRunner {
|
13
|
-
eventHub;
|
14
|
-
logger;
|
15
|
-
config;
|
16
|
-
webhooksMap = /* @__PURE__ */ new Map();
|
17
|
-
listeners = /* @__PURE__ */ new Map();
|
18
|
-
queue;
|
19
|
-
fetch;
|
20
|
-
constructor({ eventHub, logger, configuration = {}, fetch }) {
|
21
|
-
debug("Initialized webhook runner");
|
22
|
-
this.eventHub = eventHub;
|
23
|
-
this.logger = logger;
|
24
|
-
this.fetch = fetch;
|
25
|
-
if (typeof configuration !== "object") {
|
26
|
-
throw new Error(
|
27
|
-
"Invalid configuration provided to the webhookRunner.\nCheck your server.json -> webhooks configuration"
|
28
|
-
);
|
29
|
-
}
|
30
|
-
this.config = ___default.default.merge(defaultConfiguration, configuration);
|
31
|
-
this.queue = new workerQueue({ logger, concurrency: 5 });
|
32
|
-
this.queue.subscribe(this.executeListener.bind(this));
|
33
|
-
}
|
34
|
-
deleteListener(event) {
|
35
|
-
debug(`Deleting listener for event '${event}'`);
|
36
|
-
const fn = this.listeners.get(event);
|
37
|
-
if (fn !== void 0) {
|
38
|
-
this.eventHub.off(event, fn);
|
39
|
-
this.listeners.delete(event);
|
40
|
-
}
|
41
|
-
}
|
42
|
-
createListener(event) {
|
43
|
-
debug(`Creating listener for event '${event}'`);
|
44
|
-
if (this.listeners.has(event)) {
|
45
|
-
this.logger.error(
|
46
|
-
`The webhook runner is already listening for the event '${event}'. Did you mean to call .register() ?`
|
47
|
-
);
|
48
|
-
}
|
49
|
-
const listen = async (info) => {
|
50
|
-
this.queue.enqueue({ event, info });
|
51
|
-
};
|
52
|
-
this.listeners.set(event, listen);
|
53
|
-
this.eventHub.on(event, listen);
|
54
|
-
}
|
55
|
-
async executeListener({ event, info }) {
|
56
|
-
debug(`Executing webhook for event '${event}'`);
|
57
|
-
const webhooks = this.webhooksMap.get(event) || [];
|
58
|
-
const activeWebhooks = webhooks.filter((webhook) => webhook.isEnabled === true);
|
59
|
-
for (const webhook of activeWebhooks) {
|
60
|
-
await this.run(webhook, event, info).catch((error) => {
|
61
|
-
this.logger.error("Error running webhook");
|
62
|
-
this.logger.error(error);
|
63
|
-
});
|
64
|
-
}
|
65
|
-
}
|
66
|
-
run(webhook, event, info = {}) {
|
67
|
-
const { url, headers } = webhook;
|
68
|
-
return this.fetch(url, {
|
69
|
-
method: "post",
|
70
|
-
body: JSON.stringify({
|
71
|
-
event,
|
72
|
-
createdAt: /* @__PURE__ */ new Date(),
|
73
|
-
...info
|
74
|
-
}),
|
75
|
-
headers: {
|
76
|
-
...this.config.defaultHeaders,
|
77
|
-
...headers,
|
78
|
-
"X-Strapi-Event": event,
|
79
|
-
"Content-Type": "application/json"
|
80
|
-
},
|
81
|
-
signal: AbortSignal.timeout(1e4)
|
82
|
-
}).then(async (res) => {
|
83
|
-
if (res.ok) {
|
84
|
-
return {
|
85
|
-
statusCode: res.status
|
86
|
-
};
|
87
|
-
}
|
88
|
-
return {
|
89
|
-
statusCode: res.status,
|
90
|
-
message: await res.text()
|
91
|
-
};
|
92
|
-
}).catch((err) => {
|
93
|
-
return {
|
94
|
-
statusCode: 500,
|
95
|
-
message: err.message
|
96
|
-
};
|
97
|
-
});
|
98
|
-
}
|
99
|
-
add(webhook) {
|
100
|
-
debug(`Registering webhook '${webhook.id}'`);
|
101
|
-
const { events } = webhook;
|
102
|
-
events.forEach((event) => {
|
103
|
-
if (this.webhooksMap.has(event)) {
|
104
|
-
this.webhooksMap.get(event)?.push(webhook);
|
105
|
-
} else {
|
106
|
-
this.webhooksMap.set(event, [webhook]);
|
107
|
-
this.createListener(event);
|
108
|
-
}
|
109
|
-
});
|
110
|
-
}
|
111
|
-
update(webhook) {
|
112
|
-
debug(`Refreshing webhook '${webhook.id}'`);
|
113
|
-
this.remove(webhook);
|
114
|
-
this.add(webhook);
|
115
|
-
}
|
116
|
-
remove(webhook) {
|
117
|
-
debug(`Unregistering webhook '${webhook.id}'`);
|
118
|
-
this.webhooksMap.forEach((webhooks, event) => {
|
119
|
-
const filteredWebhooks = webhooks.filter((value) => value.id !== webhook.id);
|
120
|
-
if (filteredWebhooks.length === 0) {
|
121
|
-
this.webhooksMap.delete(event);
|
122
|
-
this.deleteListener(event);
|
123
|
-
} else {
|
124
|
-
this.webhooksMap.set(event, filteredWebhooks);
|
125
|
-
}
|
126
|
-
});
|
127
|
-
}
|
128
|
-
}
|
129
|
-
function createWebhookRunner(opts) {
|
130
|
-
return new WebhookRunner(opts);
|
131
|
-
}
|
132
|
-
module.exports = createWebhookRunner;
|
133
|
-
//# sourceMappingURL=webhook-runner.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"webhook-runner.js","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":["createdDebugger","_","WorkerQueue"],"mappings":"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"}
|
@@ -1,131 +0,0 @@
|
|
1
|
-
import createDebugger from "debug";
|
2
|
-
import _ from "lodash";
|
3
|
-
import WorkerQueue from "./worker-queue.mjs";
|
4
|
-
const debug = createDebugger("strapi:webhook");
|
5
|
-
const defaultConfiguration = {
|
6
|
-
defaultHeaders: {}
|
7
|
-
};
|
8
|
-
class WebhookRunner {
|
9
|
-
eventHub;
|
10
|
-
logger;
|
11
|
-
config;
|
12
|
-
webhooksMap = /* @__PURE__ */ new Map();
|
13
|
-
listeners = /* @__PURE__ */ new Map();
|
14
|
-
queue;
|
15
|
-
fetch;
|
16
|
-
constructor({ eventHub, logger, configuration = {}, fetch }) {
|
17
|
-
debug("Initialized webhook runner");
|
18
|
-
this.eventHub = eventHub;
|
19
|
-
this.logger = logger;
|
20
|
-
this.fetch = fetch;
|
21
|
-
if (typeof configuration !== "object") {
|
22
|
-
throw new Error(
|
23
|
-
"Invalid configuration provided to the webhookRunner.\nCheck your server.json -> webhooks configuration"
|
24
|
-
);
|
25
|
-
}
|
26
|
-
this.config = _.merge(defaultConfiguration, configuration);
|
27
|
-
this.queue = new WorkerQueue({ logger, concurrency: 5 });
|
28
|
-
this.queue.subscribe(this.executeListener.bind(this));
|
29
|
-
}
|
30
|
-
deleteListener(event) {
|
31
|
-
debug(`Deleting listener for event '${event}'`);
|
32
|
-
const fn = this.listeners.get(event);
|
33
|
-
if (fn !== void 0) {
|
34
|
-
this.eventHub.off(event, fn);
|
35
|
-
this.listeners.delete(event);
|
36
|
-
}
|
37
|
-
}
|
38
|
-
createListener(event) {
|
39
|
-
debug(`Creating listener for event '${event}'`);
|
40
|
-
if (this.listeners.has(event)) {
|
41
|
-
this.logger.error(
|
42
|
-
`The webhook runner is already listening for the event '${event}'. Did you mean to call .register() ?`
|
43
|
-
);
|
44
|
-
}
|
45
|
-
const listen = async (info) => {
|
46
|
-
this.queue.enqueue({ event, info });
|
47
|
-
};
|
48
|
-
this.listeners.set(event, listen);
|
49
|
-
this.eventHub.on(event, listen);
|
50
|
-
}
|
51
|
-
async executeListener({ event, info }) {
|
52
|
-
debug(`Executing webhook for event '${event}'`);
|
53
|
-
const webhooks = this.webhooksMap.get(event) || [];
|
54
|
-
const activeWebhooks = webhooks.filter((webhook) => webhook.isEnabled === true);
|
55
|
-
for (const webhook of activeWebhooks) {
|
56
|
-
await this.run(webhook, event, info).catch((error) => {
|
57
|
-
this.logger.error("Error running webhook");
|
58
|
-
this.logger.error(error);
|
59
|
-
});
|
60
|
-
}
|
61
|
-
}
|
62
|
-
run(webhook, event, info = {}) {
|
63
|
-
const { url, headers } = webhook;
|
64
|
-
return this.fetch(url, {
|
65
|
-
method: "post",
|
66
|
-
body: JSON.stringify({
|
67
|
-
event,
|
68
|
-
createdAt: /* @__PURE__ */ new Date(),
|
69
|
-
...info
|
70
|
-
}),
|
71
|
-
headers: {
|
72
|
-
...this.config.defaultHeaders,
|
73
|
-
...headers,
|
74
|
-
"X-Strapi-Event": event,
|
75
|
-
"Content-Type": "application/json"
|
76
|
-
},
|
77
|
-
signal: AbortSignal.timeout(1e4)
|
78
|
-
}).then(async (res) => {
|
79
|
-
if (res.ok) {
|
80
|
-
return {
|
81
|
-
statusCode: res.status
|
82
|
-
};
|
83
|
-
}
|
84
|
-
return {
|
85
|
-
statusCode: res.status,
|
86
|
-
message: await res.text()
|
87
|
-
};
|
88
|
-
}).catch((err) => {
|
89
|
-
return {
|
90
|
-
statusCode: 500,
|
91
|
-
message: err.message
|
92
|
-
};
|
93
|
-
});
|
94
|
-
}
|
95
|
-
add(webhook) {
|
96
|
-
debug(`Registering webhook '${webhook.id}'`);
|
97
|
-
const { events } = webhook;
|
98
|
-
events.forEach((event) => {
|
99
|
-
if (this.webhooksMap.has(event)) {
|
100
|
-
this.webhooksMap.get(event)?.push(webhook);
|
101
|
-
} else {
|
102
|
-
this.webhooksMap.set(event, [webhook]);
|
103
|
-
this.createListener(event);
|
104
|
-
}
|
105
|
-
});
|
106
|
-
}
|
107
|
-
update(webhook) {
|
108
|
-
debug(`Refreshing webhook '${webhook.id}'`);
|
109
|
-
this.remove(webhook);
|
110
|
-
this.add(webhook);
|
111
|
-
}
|
112
|
-
remove(webhook) {
|
113
|
-
debug(`Unregistering webhook '${webhook.id}'`);
|
114
|
-
this.webhooksMap.forEach((webhooks, event) => {
|
115
|
-
const filteredWebhooks = webhooks.filter((value) => value.id !== webhook.id);
|
116
|
-
if (filteredWebhooks.length === 0) {
|
117
|
-
this.webhooksMap.delete(event);
|
118
|
-
this.deleteListener(event);
|
119
|
-
} else {
|
120
|
-
this.webhooksMap.set(event, filteredWebhooks);
|
121
|
-
}
|
122
|
-
});
|
123
|
-
}
|
124
|
-
}
|
125
|
-
function createWebhookRunner(opts) {
|
126
|
-
return new WebhookRunner(opts);
|
127
|
-
}
|
128
|
-
export {
|
129
|
-
createWebhookRunner as default
|
130
|
-
};
|
131
|
-
//# sourceMappingURL=webhook-runner.mjs.map
|
@@ -1 +0,0 @@
|
|
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":["createdDebugger"],"mappings":"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"}
|