@strapi/core 5.56.0 → 5.58.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Strapi.d.ts +29 -0
- package/dist/Strapi.d.ts.map +1 -1
- package/dist/Strapi.js +10 -3
- package/dist/Strapi.js.map +1 -1
- package/dist/Strapi.mjs +10 -3
- package/dist/Strapi.mjs.map +1 -1
- package/dist/configuration/get-dirs.js +2 -2
- package/dist/configuration/get-dirs.js.map +1 -1
- package/dist/configuration/get-dirs.mjs +2 -2
- package/dist/configuration/get-dirs.mjs.map +1 -1
- package/dist/configuration/index.d.ts +1 -2
- package/dist/configuration/index.d.ts.map +1 -1
- package/dist/configuration/index.js +1 -2
- package/dist/configuration/index.js.map +1 -1
- package/dist/configuration/index.mjs +2 -3
- package/dist/configuration/index.mjs.map +1 -1
- package/dist/core-api/controller/collection-type.js +3 -3
- package/dist/core-api/controller/collection-type.js.map +1 -1
- package/dist/core-api/controller/collection-type.mjs +1 -1
- package/dist/core-api/controller/collection-type.mjs.map +1 -1
- package/dist/core-api/controller/index.js +2 -2
- package/dist/core-api/controller/index.js.map +1 -1
- package/dist/core-api/controller/index.mjs +2 -2
- package/dist/core-api/controller/index.mjs.map +1 -1
- package/dist/core-api/controller/single-type.js +2 -2
- package/dist/core-api/controller/single-type.js.map +1 -1
- package/dist/core-api/controller/single-type.mjs +1 -1
- package/dist/core-api/controller/single-type.mjs.map +1 -1
- package/dist/core-api/controller/transform.d.ts +1 -4
- package/dist/core-api/controller/transform.d.ts.map +1 -1
- package/dist/core-api/controller/transform.js +8 -8
- package/dist/core-api/controller/transform.js.map +1 -1
- package/dist/core-api/controller/transform.mjs +5 -5
- package/dist/core-api/controller/transform.mjs.map +1 -1
- package/dist/core-api/routes/index.js +1 -1
- package/dist/core-api/routes/index.js.map +1 -1
- package/dist/core-api/routes/index.mjs +1 -1
- package/dist/core-api/routes/index.mjs.map +1 -1
- package/dist/core-api/service/pagination.js +9 -9
- package/dist/core-api/service/pagination.js.map +1 -1
- package/dist/core-api/service/pagination.mjs +7 -7
- package/dist/core-api/service/pagination.mjs.map +1 -1
- package/dist/domain/content-type/index.d.ts.map +1 -1
- package/dist/domain/content-type/index.js +1 -2
- package/dist/domain/content-type/index.js.map +1 -1
- package/dist/domain/content-type/index.mjs +1 -2
- package/dist/domain/content-type/index.mjs.map +1 -1
- package/dist/ee/entitlements.d.ts +44 -0
- package/dist/ee/entitlements.d.ts.map +1 -0
- package/dist/ee/entitlements.js +54 -0
- package/dist/ee/entitlements.js.map +1 -0
- package/dist/ee/entitlements.mjs +51 -0
- package/dist/ee/entitlements.mjs.map +1 -0
- package/dist/ee/index.d.ts +33 -0
- package/dist/ee/index.d.ts.map +1 -1
- package/dist/ee/index.js +74 -7
- package/dist/ee/index.js.map +1 -1
- package/dist/ee/index.mjs +74 -7
- package/dist/ee/index.mjs.map +1 -1
- package/dist/ee/license.d.ts +10 -0
- package/dist/ee/license.d.ts.map +1 -1
- package/dist/ee/license.js +25 -1
- package/dist/ee/license.js.map +1 -1
- package/dist/ee/license.mjs +25 -2
- package/dist/ee/license.mjs.map +1 -1
- package/dist/factories.d.ts.map +1 -1
- package/dist/factories.js +3 -2
- package/dist/factories.js.map +1 -1
- package/dist/factories.mjs +3 -2
- package/dist/factories.mjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/loaders/apis.d.ts.map +1 -1
- package/dist/loaders/apis.js +1 -2
- package/dist/loaders/apis.js.map +1 -1
- package/dist/loaders/apis.mjs +1 -2
- package/dist/loaders/apis.mjs.map +1 -1
- package/dist/loaders/plugins/get-enabled-plugins.d.ts +1 -1
- package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
- package/dist/loaders/plugins/get-enabled-plugins.js +6 -5
- package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
- package/dist/loaders/plugins/get-enabled-plugins.mjs +6 -5
- package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
- package/dist/loaders/plugins/get-user-plugins-config.js +2 -2
- package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
- package/dist/loaders/plugins/get-user-plugins-config.mjs +2 -2
- package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -1
- package/dist/loaders/plugins/index.js +9 -12
- package/dist/loaders/plugins/index.js.map +1 -1
- package/dist/loaders/plugins/index.mjs +9 -12
- package/dist/loaders/plugins/index.mjs.map +1 -1
- package/dist/middlewares/body.js +2 -2
- package/dist/middlewares/body.js.map +1 -1
- package/dist/middlewares/body.mjs +2 -2
- package/dist/middlewares/body.mjs.map +1 -1
- package/dist/middlewares/public.js +2 -2
- package/dist/middlewares/public.js.map +1 -1
- package/dist/middlewares/public.mjs +2 -2
- package/dist/middlewares/public.mjs.map +1 -1
- package/dist/middlewares/responses.d.ts.map +1 -1
- package/dist/middlewares/responses.js +1 -3
- package/dist/middlewares/responses.js.map +1 -1
- package/dist/middlewares/responses.mjs +1 -3
- package/dist/middlewares/responses.mjs.map +1 -1
- package/dist/middlewares/security.d.ts.map +1 -1
- package/dist/middlewares/security.js +3 -3
- package/dist/middlewares/security.js.map +1 -1
- package/dist/middlewares/security.mjs +3 -3
- package/dist/middlewares/security.mjs.map +1 -1
- package/dist/middlewares/session.js +2 -2
- package/dist/middlewares/session.js.map +1 -1
- package/dist/middlewares/session.mjs +2 -2
- package/dist/middlewares/session.mjs.map +1 -1
- package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -1
- package/dist/migrations/database/5.0.0-discard-drafts.js +1 -2
- package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -1
- package/dist/migrations/database/5.0.0-discard-drafts.mjs +1 -2
- package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -1
- package/dist/migrations/i18n.d.ts.map +1 -1
- package/dist/migrations/i18n.js +6 -4
- package/dist/migrations/i18n.js.map +1 -1
- package/dist/migrations/i18n.mjs +6 -4
- package/dist/migrations/i18n.mjs.map +1 -1
- package/dist/package.json.js +16 -16
- package/dist/package.json.mjs +16 -16
- package/dist/registries/apis.js +2 -2
- package/dist/registries/apis.js.map +1 -1
- package/dist/registries/apis.mjs +2 -2
- package/dist/registries/apis.mjs.map +1 -1
- package/dist/registries/components.js +2 -2
- package/dist/registries/components.js.map +1 -1
- package/dist/registries/components.mjs +2 -2
- package/dist/registries/components.mjs.map +1 -1
- package/dist/registries/content-types.d.ts +1 -1
- package/dist/registries/content-types.js +3 -3
- package/dist/registries/content-types.js.map +1 -1
- package/dist/registries/content-types.mjs +3 -3
- package/dist/registries/content-types.mjs.map +1 -1
- package/dist/registries/controllers.js +3 -3
- package/dist/registries/controllers.js.map +1 -1
- package/dist/registries/controllers.mjs +3 -3
- package/dist/registries/controllers.mjs.map +1 -1
- package/dist/registries/custom-fields.js +4 -4
- package/dist/registries/custom-fields.js.map +1 -1
- package/dist/registries/custom-fields.mjs +4 -4
- package/dist/registries/custom-fields.mjs.map +1 -1
- package/dist/registries/hooks.d.ts +1 -1
- package/dist/registries/hooks.js +2 -2
- package/dist/registries/hooks.js.map +1 -1
- package/dist/registries/hooks.mjs +2 -2
- package/dist/registries/hooks.mjs.map +1 -1
- package/dist/registries/middlewares.d.ts +1 -1
- package/dist/registries/middlewares.js +3 -3
- package/dist/registries/middlewares.js.map +1 -1
- package/dist/registries/middlewares.mjs +3 -3
- package/dist/registries/middlewares.mjs.map +1 -1
- package/dist/registries/modules.d.ts +1 -4
- package/dist/registries/modules.d.ts.map +1 -1
- package/dist/registries/modules.js +3 -3
- package/dist/registries/modules.js.map +1 -1
- package/dist/registries/modules.mjs +3 -3
- package/dist/registries/modules.mjs.map +1 -1
- package/dist/registries/plugins.js +2 -2
- package/dist/registries/plugins.js.map +1 -1
- package/dist/registries/plugins.mjs +2 -2
- package/dist/registries/plugins.mjs.map +1 -1
- package/dist/registries/policies.d.ts +1 -1
- package/dist/registries/policies.js +4 -4
- package/dist/registries/policies.js.map +1 -1
- package/dist/registries/policies.mjs +3 -3
- package/dist/registries/policies.mjs.map +1 -1
- package/dist/registries/services.js +3 -3
- package/dist/registries/services.js.map +1 -1
- package/dist/registries/services.mjs +3 -3
- package/dist/registries/services.mjs.map +1 -1
- package/dist/services/auth/index.js +3 -3
- package/dist/services/auth/index.js.map +1 -1
- package/dist/services/auth/index.mjs +3 -3
- package/dist/services/auth/index.mjs.map +1 -1
- package/dist/services/core-store.js +3 -3
- package/dist/services/core-store.js.map +1 -1
- package/dist/services/core-store.mjs +1 -1
- package/dist/services/core-store.mjs.map +1 -1
- package/dist/services/cron.d.ts.map +1 -1
- package/dist/services/cron.js +2 -4
- package/dist/services/cron.js.map +1 -1
- package/dist/services/cron.mjs +2 -4
- package/dist/services/cron.mjs.map +1 -1
- package/dist/services/document-service/attributes/index.js +2 -2
- package/dist/services/document-service/attributes/index.js.map +1 -1
- package/dist/services/document-service/attributes/index.mjs +1 -1
- package/dist/services/document-service/attributes/index.mjs.map +1 -1
- package/dist/services/document-service/attributes/transforms.js +3 -3
- package/dist/services/document-service/attributes/transforms.js.map +1 -1
- package/dist/services/document-service/attributes/transforms.mjs +2 -2
- package/dist/services/document-service/attributes/transforms.mjs.map +1 -1
- package/dist/services/document-service/components.d.ts.map +1 -1
- package/dist/services/document-service/components.js +13 -14
- package/dist/services/document-service/components.js.map +1 -1
- package/dist/services/document-service/components.mjs +12 -13
- package/dist/services/document-service/components.mjs.map +1 -1
- package/dist/services/document-service/draft-and-publish.js +65 -38
- package/dist/services/document-service/draft-and-publish.js.map +1 -1
- package/dist/services/document-service/draft-and-publish.mjs +59 -32
- package/dist/services/document-service/draft-and-publish.mjs.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/entries.js +16 -8
- package/dist/services/document-service/entries.js.map +1 -1
- package/dist/services/document-service/entries.mjs +17 -9
- package/dist/services/document-service/entries.mjs.map +1 -1
- package/dist/services/document-service/first-published-at.js +7 -5
- package/dist/services/document-service/first-published-at.js.map +1 -1
- package/dist/services/document-service/first-published-at.mjs +7 -5
- package/dist/services/document-service/first-published-at.mjs.map +1 -1
- package/dist/services/document-service/internationalization.d.ts.map +1 -1
- package/dist/services/document-service/internationalization.js +37 -28
- package/dist/services/document-service/internationalization.js.map +1 -1
- package/dist/services/document-service/internationalization.mjs +33 -24
- package/dist/services/document-service/internationalization.mjs.map +1 -1
- package/dist/services/document-service/params.d.ts +1 -0
- package/dist/services/document-service/params.d.ts.map +1 -1
- package/dist/services/document-service/params.js +6 -4
- package/dist/services/document-service/params.js.map +1 -1
- package/dist/services/document-service/params.mjs +6 -5
- package/dist/services/document-service/params.mjs.map +1 -1
- package/dist/services/document-service/repository.d.ts.map +1 -1
- package/dist/services/document-service/repository.js +84 -61
- package/dist/services/document-service/repository.js.map +1 -1
- package/dist/services/document-service/repository.mjs +47 -24
- package/dist/services/document-service/repository.mjs.map +1 -1
- package/dist/services/document-service/transform/fields.d.ts.map +1 -1
- package/dist/services/document-service/transform/fields.js +7 -1
- package/dist/services/document-service/transform/fields.js.map +1 -1
- package/dist/services/document-service/transform/fields.mjs +7 -1
- package/dist/services/document-service/transform/fields.mjs.map +1 -1
- package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
- package/dist/services/document-service/transform/id-map.js +2 -1
- package/dist/services/document-service/transform/id-map.js.map +1 -1
- package/dist/services/document-service/transform/id-map.mjs +2 -1
- package/dist/services/document-service/transform/id-map.mjs.map +1 -1
- package/dist/services/document-service/transform/id-transform.js +2 -2
- package/dist/services/document-service/transform/id-transform.js.map +1 -1
- package/dist/services/document-service/transform/id-transform.mjs +1 -1
- package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
- package/dist/services/document-service/transform/populate.d.ts.map +1 -1
- package/dist/services/document-service/transform/populate.js +8 -1
- package/dist/services/document-service/transform/populate.js.map +1 -1
- package/dist/services/document-service/transform/populate.mjs +8 -1
- package/dist/services/document-service/transform/populate.mjs.map +1 -1
- package/dist/services/document-service/transform/query.d.ts +3 -1
- package/dist/services/document-service/transform/query.d.ts.map +1 -1
- package/dist/services/document-service/transform/query.js +12 -6
- package/dist/services/document-service/transform/query.js.map +1 -1
- package/dist/services/document-service/transform/query.mjs +11 -5
- package/dist/services/document-service/transform/query.mjs.map +1 -1
- package/dist/services/document-service/transform/relations/extract/data-ids.js +2 -2
- package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
- package/dist/services/document-service/transform/relations/extract/data-ids.mjs +1 -1
- package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
- package/dist/services/document-service/transform/relations/transform/data-ids.js +2 -2
- package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
- package/dist/services/document-service/transform/relations/transform/data-ids.mjs +1 -1
- package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
- package/dist/services/document-service/transform/relations/transform/default-locale.js +1 -1
- package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -1
- package/dist/services/document-service/transform/relations/transform/default-locale.mjs +1 -1
- package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -1
- package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
- package/dist/services/document-service/transform/relations/utils/dp.js +1 -2
- package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
- package/dist/services/document-service/transform/relations/utils/dp.mjs +1 -2
- package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -1
- package/dist/services/document-service/transform/relations/utils/i18n.d.ts +2 -2
- package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
- package/dist/services/document-service/transform/relations/utils/i18n.js +2 -2
- package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
- package/dist/services/document-service/transform/relations/utils/i18n.mjs +2 -2
- package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
- package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -1
- package/dist/services/document-service/transform/relations/utils/map-relation.js +16 -10
- package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -1
- package/dist/services/document-service/transform/relations/utils/map-relation.mjs +13 -7
- package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -1
- package/dist/services/document-service/transform/relations/utils/xto-one.js +3 -3
- package/dist/services/document-service/transform/relations/utils/xto-one.js.map +1 -1
- package/dist/services/document-service/transform/relations/utils/xto-one.mjs +2 -2
- package/dist/services/document-service/transform/relations/utils/xto-one.mjs.map +1 -1
- package/dist/services/document-service/utils/bidirectional-relations.js +3 -3
- package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -1
- package/dist/services/document-service/utils/bidirectional-relations.mjs +3 -3
- package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -1
- package/dist/services/document-service/utils/clone-relations.js +3 -3
- package/dist/services/document-service/utils/clone-relations.js.map +1 -1
- package/dist/services/document-service/utils/clone-relations.mjs +3 -3
- package/dist/services/document-service/utils/clone-relations.mjs.map +1 -1
- package/dist/services/document-service/utils/self-referential-relations.js +4 -4
- package/dist/services/document-service/utils/self-referential-relations.js.map +1 -1
- package/dist/services/document-service/utils/self-referential-relations.mjs +4 -4
- package/dist/services/document-service/utils/self-referential-relations.mjs.map +1 -1
- package/dist/services/document-service/utils/unidirectional-relations.js +3 -3
- package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -1
- package/dist/services/document-service/utils/unidirectional-relations.mjs +3 -3
- package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -1
- package/dist/services/entity-validator/index.d.ts.map +1 -1
- package/dist/services/entity-validator/index.js +9 -10
- package/dist/services/entity-validator/index.js.map +1 -1
- package/dist/services/entity-validator/index.mjs +4 -5
- package/dist/services/entity-validator/index.mjs.map +1 -1
- package/dist/services/localization.d.ts +4 -0
- package/dist/services/localization.d.ts.map +1 -0
- package/dist/services/localization.js +51 -0
- package/dist/services/localization.js.map +1 -0
- package/dist/services/localization.mjs +49 -0
- package/dist/services/localization.mjs.map +1 -0
- package/dist/services/server/compose-endpoint.js +7 -7
- package/dist/services/server/compose-endpoint.js.map +1 -1
- package/dist/services/server/compose-endpoint.mjs +3 -3
- package/dist/services/server/compose-endpoint.mjs.map +1 -1
- package/dist/services/server/koa-methods.js +2 -2
- package/dist/services/server/koa-methods.js.map +1 -1
- package/dist/services/server/koa-methods.mjs +1 -1
- package/dist/services/server/koa-methods.mjs.map +1 -1
- package/dist/services/server/koa.d.ts.map +1 -1
- package/dist/services/server/koa.js +1 -2
- package/dist/services/server/koa.js.map +1 -1
- package/dist/services/server/koa.mjs +1 -2
- package/dist/services/server/koa.mjs.map +1 -1
- package/dist/services/server/middleware.d.ts.map +1 -1
- package/dist/services/server/middleware.js +1 -2
- package/dist/services/server/middleware.js.map +1 -1
- package/dist/services/server/middleware.mjs +1 -2
- package/dist/services/server/middleware.mjs.map +1 -1
- package/dist/services/server/routing.js +2 -2
- package/dist/services/server/routing.js.map +1 -1
- package/dist/services/server/routing.mjs +2 -2
- package/dist/services/server/routing.mjs.map +1 -1
- package/dist/services/utils/conditional-fields.d.ts +1 -1
- package/dist/services/utils/conditional-fields.d.ts.map +1 -1
- package/dist/services/utils/conditional-fields.js +2 -8
- package/dist/services/utils/conditional-fields.js.map +1 -1
- package/dist/services/utils/conditional-fields.mjs +2 -8
- package/dist/services/utils/conditional-fields.mjs.map +1 -1
- package/dist/services/utils/dynamic-zones.d.ts.map +1 -1
- package/dist/services/utils/dynamic-zones.js +2 -8
- package/dist/services/utils/dynamic-zones.js.map +1 -1
- package/dist/services/utils/dynamic-zones.mjs +2 -8
- package/dist/services/utils/dynamic-zones.mjs.map +1 -1
- package/dist/utils/cron.js +2 -2
- package/dist/utils/cron.js.map +1 -1
- package/dist/utils/cron.mjs +1 -1
- package/dist/utils/cron.mjs.map +1 -1
- package/dist/utils/detect-customizations.d.ts +31 -0
- package/dist/utils/detect-customizations.d.ts.map +1 -0
- package/dist/utils/detect-customizations.js +173 -0
- package/dist/utils/detect-customizations.js.map +1 -0
- package/dist/utils/detect-customizations.mjs +165 -0
- package/dist/utils/detect-customizations.mjs.map +1 -0
- package/dist/utils/filepath-to-prop-path.d.ts.map +1 -1
- package/dist/utils/filepath-to-prop-path.js +5 -12
- package/dist/utils/filepath-to-prop-path.js.map +1 -1
- package/dist/utils/filepath-to-prop-path.mjs +5 -11
- package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
- package/dist/utils/is-initialized.js +3 -3
- package/dist/utils/is-initialized.js.map +1 -1
- package/dist/utils/is-initialized.mjs +2 -2
- package/dist/utils/is-initialized.mjs.map +1 -1
- package/dist/utils/startup-logger.d.ts.map +1 -1
- package/dist/utils/startup-logger.js +2 -4
- package/dist/utils/startup-logger.js.map +1 -1
- package/dist/utils/startup-logger.mjs +2 -3
- package/dist/utils/startup-logger.mjs.map +1 -1
- package/dist/utils/transform-content-types-to-models.js +4 -4
- package/dist/utils/transform-content-types-to-models.js.map +1 -1
- package/dist/utils/transform-content-types-to-models.mjs +3 -3
- package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
- package/package.json +16 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body.js","sources":["../../src/middlewares/body.ts"],"sourcesContent":["import fse from 'fs-extra';\nimport { defaultsDeep } from 'lodash
|
|
1
|
+
{"version":3,"file":"body.js","sources":["../../src/middlewares/body.ts"],"sourcesContent":["import fse from 'fs-extra';\nimport { defaultsDeep } from 'lodash';\nimport { koaBody, KoaBodyMiddlewareOptions } from 'koa-body';\nimport mime from 'mime-types';\nimport type Koa from 'koa';\nimport type { Core } from '@strapi/types';\n\nexport type Config = KoaBodyMiddlewareOptions;\n\nconst defaults = {\n multipart: true,\n patchKoa: true,\n};\n\nfunction ensureFileMimeType(file: any): void {\n if (!file.type) {\n file.type = mime.lookup(file.name) || 'application/octet-stream';\n }\n}\n\nfunction getFiles(ctx: Koa.Context) {\n return ctx?.request?.files?.files;\n}\n\nconst bodyMiddleware: Core.MiddlewareFactory<Config> = (config, { strapi }) => {\n const bodyConfig: Config = defaultsDeep({}, config, defaults);\n\n let gqlEndpoint: string | undefined;\n if (strapi.plugin('graphql')) {\n const { config: gqlConfig } = strapi.plugin('graphql');\n gqlEndpoint = gqlConfig('endpoint');\n }\n\n return async (ctx, next) => {\n // TODO: find a better way later\n if (gqlEndpoint && ctx.url === gqlEndpoint) {\n await next();\n } else {\n try {\n await koaBody(bodyConfig)(ctx, async () => {});\n\n const files = getFiles(ctx);\n\n /**\n * in case the mime-type wasn't sent, Strapi tries to guess it\n * from the file extension, to avoid a corrupt database state\n */\n if (files) {\n if (Array.isArray(files)) {\n files.forEach(ensureFileMimeType);\n } else {\n ensureFileMimeType(files);\n }\n }\n\n await next();\n } catch (error) {\n if (\n error instanceof Error &&\n error.message &&\n error.message.includes('maxFileSize') &&\n error.message.includes('exceeded')\n ) {\n return ctx.payloadTooLarge('FileTooBig');\n }\n\n throw error;\n }\n }\n\n const files = getFiles(ctx);\n\n // clean any file that was uploaded\n if (files) {\n if (Array.isArray(files)) {\n // not awaiting to not slow the request\n Promise.all(files.map((file) => fse.remove(file.filepath)));\n } else if (files && files.filepath) {\n // not awaiting to not slow the request\n fse.remove(files.filepath);\n }\n delete ctx.request.files;\n }\n };\n};\n\nexport { bodyMiddleware as body };\n"],"names":["defaults","multipart","patchKoa","ensureFileMimeType","file","type","mime","lookup","name","getFiles","ctx","request","files","bodyMiddleware","config","strapi","bodyConfig","defaultsDeep","gqlEndpoint","plugin","gqlConfig","next","url","koaBody","Array","isArray","forEach","error","Error","message","includes","payloadTooLarge","Promise","all","map","fse","remove","filepath"],"mappings":";;;;;;;;;;;;AASA,MAAMA,QAAAA,GAAW;IACfC,SAAAA,EAAW,IAAA;IACXC,QAAAA,EAAU;AACZ,CAAA;AAEA,SAASC,mBAAmBC,IAAS,EAAA;IACnC,IAAI,CAACA,IAAAA,CAAKC,IAAI,EAAE;AACdD,QAAAA,IAAAA,CAAKC,IAAI,GAAGC,qBAAAA,CAAKC,MAAM,CAACH,IAAAA,CAAKI,IAAI,CAAA,IAAK,0BAAA;AACxC,IAAA;AACF;AAEA,SAASC,SAASC,GAAgB,EAAA;IAChC,OAAOA,GAAAA,EAAKC,SAASC,KAAAA,EAAOA,KAAAA;AAC9B;AAEA,MAAMC,cAAAA,GAAiD,CAACC,MAAAA,EAAQ,EAAEC,MAAM,EAAE,GAAA;AACxE,IAAA,MAAMC,UAAAA,GAAqBC,cAAAA,CAAa,EAAC,EAAGH,MAAAA,EAAQd,QAAAA,CAAAA;IAEpD,IAAIkB,WAAAA;IACJ,IAAIH,MAAAA,CAAOI,MAAM,CAAC,SAAA,CAAA,EAAY;AAC5B,QAAA,MAAM,EAAEL,MAAAA,EAAQM,SAAS,EAAE,GAAGL,MAAAA,CAAOI,MAAM,CAAC,SAAA,CAAA;AAC5CD,QAAAA,WAAAA,GAAcE,SAAAA,CAAU,UAAA,CAAA;AAC1B,IAAA;AAEA,IAAA,OAAO,OAAOV,GAAAA,EAAKW,IAAAA,GAAAA;;AAEjB,QAAA,IAAIH,WAAAA,IAAeR,GAAAA,CAAIY,GAAG,KAAKJ,WAAAA,EAAa;YAC1C,MAAMG,IAAAA,EAAAA;QACR,CAAA,MAAO;YACL,IAAI;gBACF,MAAME,eAAAA,CAAQP,UAAAA,CAAAA,CAAYN,GAAAA,EAAK,UAAA,CAAa,CAAA,CAAA;AAE5C,gBAAA,MAAME,QAAQH,QAAAA,CAASC,GAAAA,CAAAA;AAEvB;;;AAGC,YACD,IAAIE,KAAAA,EAAO;oBACT,IAAIY,KAAAA,CAAMC,OAAO,CAACb,KAAAA,CAAAA,EAAQ;AACxBA,wBAAAA,KAAAA,CAAMc,OAAO,CAACvB,kBAAAA,CAAAA;oBAChB,CAAA,MAAO;wBACLA,kBAAAA,CAAmBS,KAAAA,CAAAA;AACrB,oBAAA;AACF,gBAAA;gBAEA,MAAMS,IAAAA,EAAAA;AACR,YAAA,CAAA,CAAE,OAAOM,KAAAA,EAAO;AACd,gBAAA,IACEA,iBAAiBC,KAAAA,IACjBD,KAAAA,CAAME,OAAO,IACbF,MAAME,OAAO,CAACC,QAAQ,CAAC,kBACvBH,KAAAA,CAAME,OAAO,CAACC,QAAQ,CAAC,UAAA,CAAA,EACvB;oBACA,OAAOpB,GAAAA,CAAIqB,eAAe,CAAC,YAAA,CAAA;AAC7B,gBAAA;gBAEA,MAAMJ,KAAAA;AACR,YAAA;AACF,QAAA;AAEA,QAAA,MAAMf,QAAQH,QAAAA,CAASC,GAAAA,CAAAA;;AAGvB,QAAA,IAAIE,KAAAA,EAAO;YACT,IAAIY,KAAAA,CAAMC,OAAO,CAACb,KAAAA,CAAAA,EAAQ;;gBAExBoB,OAAAA,CAAQC,GAAG,CAACrB,KAAAA,CAAMsB,GAAG,CAAC,CAAC9B,IAAAA,GAAS+B,oBAAAA,CAAIC,MAAM,CAAChC,IAAAA,CAAKiC,QAAQ,CAAA,CAAA,CAAA;AAC1D,YAAA,CAAA,MAAO,IAAIzB,KAAAA,IAASA,KAAAA,CAAMyB,QAAQ,EAAE;;gBAElCF,oBAAAA,CAAIC,MAAM,CAACxB,KAAAA,CAAMyB,QAAQ,CAAA;AAC3B,YAAA;YACA,OAAO3B,GAAAA,CAAIC,OAAO,CAACC,KAAK;AAC1B,QAAA;AACF,IAAA,CAAA;AACF;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import fse from 'fs-extra';
|
|
2
|
-
import { defaultsDeep } from 'lodash
|
|
2
|
+
import { defaultsDeep } from 'lodash';
|
|
3
3
|
import { koaBody } from 'koa-body';
|
|
4
4
|
import mime from 'mime-types';
|
|
5
5
|
|
|
@@ -16,7 +16,7 @@ function getFiles(ctx) {
|
|
|
16
16
|
return ctx?.request?.files?.files;
|
|
17
17
|
}
|
|
18
18
|
const bodyMiddleware = (config, { strapi })=>{
|
|
19
|
-
const bodyConfig = defaultsDeep(
|
|
19
|
+
const bodyConfig = defaultsDeep({}, config, defaults);
|
|
20
20
|
let gqlEndpoint;
|
|
21
21
|
if (strapi.plugin('graphql')) {
|
|
22
22
|
const { config: gqlConfig } = strapi.plugin('graphql');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body.mjs","sources":["../../src/middlewares/body.ts"],"sourcesContent":["import fse from 'fs-extra';\nimport { defaultsDeep } from 'lodash
|
|
1
|
+
{"version":3,"file":"body.mjs","sources":["../../src/middlewares/body.ts"],"sourcesContent":["import fse from 'fs-extra';\nimport { defaultsDeep } from 'lodash';\nimport { koaBody, KoaBodyMiddlewareOptions } from 'koa-body';\nimport mime from 'mime-types';\nimport type Koa from 'koa';\nimport type { Core } from '@strapi/types';\n\nexport type Config = KoaBodyMiddlewareOptions;\n\nconst defaults = {\n multipart: true,\n patchKoa: true,\n};\n\nfunction ensureFileMimeType(file: any): void {\n if (!file.type) {\n file.type = mime.lookup(file.name) || 'application/octet-stream';\n }\n}\n\nfunction getFiles(ctx: Koa.Context) {\n return ctx?.request?.files?.files;\n}\n\nconst bodyMiddleware: Core.MiddlewareFactory<Config> = (config, { strapi }) => {\n const bodyConfig: Config = defaultsDeep({}, config, defaults);\n\n let gqlEndpoint: string | undefined;\n if (strapi.plugin('graphql')) {\n const { config: gqlConfig } = strapi.plugin('graphql');\n gqlEndpoint = gqlConfig('endpoint');\n }\n\n return async (ctx, next) => {\n // TODO: find a better way later\n if (gqlEndpoint && ctx.url === gqlEndpoint) {\n await next();\n } else {\n try {\n await koaBody(bodyConfig)(ctx, async () => {});\n\n const files = getFiles(ctx);\n\n /**\n * in case the mime-type wasn't sent, Strapi tries to guess it\n * from the file extension, to avoid a corrupt database state\n */\n if (files) {\n if (Array.isArray(files)) {\n files.forEach(ensureFileMimeType);\n } else {\n ensureFileMimeType(files);\n }\n }\n\n await next();\n } catch (error) {\n if (\n error instanceof Error &&\n error.message &&\n error.message.includes('maxFileSize') &&\n error.message.includes('exceeded')\n ) {\n return ctx.payloadTooLarge('FileTooBig');\n }\n\n throw error;\n }\n }\n\n const files = getFiles(ctx);\n\n // clean any file that was uploaded\n if (files) {\n if (Array.isArray(files)) {\n // not awaiting to not slow the request\n Promise.all(files.map((file) => fse.remove(file.filepath)));\n } else if (files && files.filepath) {\n // not awaiting to not slow the request\n fse.remove(files.filepath);\n }\n delete ctx.request.files;\n }\n };\n};\n\nexport { bodyMiddleware as body };\n"],"names":["defaults","multipart","patchKoa","ensureFileMimeType","file","type","mime","lookup","name","getFiles","ctx","request","files","bodyMiddleware","config","strapi","bodyConfig","defaultsDeep","gqlEndpoint","plugin","gqlConfig","next","url","koaBody","Array","isArray","forEach","error","Error","message","includes","payloadTooLarge","Promise","all","map","fse","remove","filepath"],"mappings":";;;;;AASA,MAAMA,QAAAA,GAAW;IACfC,SAAAA,EAAW,IAAA;IACXC,QAAAA,EAAU;AACZ,CAAA;AAEA,SAASC,mBAAmBC,IAAS,EAAA;IACnC,IAAI,CAACA,IAAAA,CAAKC,IAAI,EAAE;AACdD,QAAAA,IAAAA,CAAKC,IAAI,GAAGC,IAAAA,CAAKC,MAAM,CAACH,IAAAA,CAAKI,IAAI,CAAA,IAAK,0BAAA;AACxC,IAAA;AACF;AAEA,SAASC,SAASC,GAAgB,EAAA;IAChC,OAAOA,GAAAA,EAAKC,SAASC,KAAAA,EAAOA,KAAAA;AAC9B;AAEA,MAAMC,cAAAA,GAAiD,CAACC,MAAAA,EAAQ,EAAEC,MAAM,EAAE,GAAA;AACxE,IAAA,MAAMC,UAAAA,GAAqBC,YAAAA,CAAa,EAAC,EAAGH,MAAAA,EAAQd,QAAAA,CAAAA;IAEpD,IAAIkB,WAAAA;IACJ,IAAIH,MAAAA,CAAOI,MAAM,CAAC,SAAA,CAAA,EAAY;AAC5B,QAAA,MAAM,EAAEL,MAAAA,EAAQM,SAAS,EAAE,GAAGL,MAAAA,CAAOI,MAAM,CAAC,SAAA,CAAA;AAC5CD,QAAAA,WAAAA,GAAcE,SAAAA,CAAU,UAAA,CAAA;AAC1B,IAAA;AAEA,IAAA,OAAO,OAAOV,GAAAA,EAAKW,IAAAA,GAAAA;;AAEjB,QAAA,IAAIH,WAAAA,IAAeR,GAAAA,CAAIY,GAAG,KAAKJ,WAAAA,EAAa;YAC1C,MAAMG,IAAAA,EAAAA;QACR,CAAA,MAAO;YACL,IAAI;gBACF,MAAME,OAAAA,CAAQP,UAAAA,CAAAA,CAAYN,GAAAA,EAAK,UAAA,CAAa,CAAA,CAAA;AAE5C,gBAAA,MAAME,QAAQH,QAAAA,CAASC,GAAAA,CAAAA;AAEvB;;;AAGC,YACD,IAAIE,KAAAA,EAAO;oBACT,IAAIY,KAAAA,CAAMC,OAAO,CAACb,KAAAA,CAAAA,EAAQ;AACxBA,wBAAAA,KAAAA,CAAMc,OAAO,CAACvB,kBAAAA,CAAAA;oBAChB,CAAA,MAAO;wBACLA,kBAAAA,CAAmBS,KAAAA,CAAAA;AACrB,oBAAA;AACF,gBAAA;gBAEA,MAAMS,IAAAA,EAAAA;AACR,YAAA,CAAA,CAAE,OAAOM,KAAAA,EAAO;AACd,gBAAA,IACEA,iBAAiBC,KAAAA,IACjBD,KAAAA,CAAME,OAAO,IACbF,MAAME,OAAO,CAACC,QAAQ,CAAC,kBACvBH,KAAAA,CAAME,OAAO,CAACC,QAAQ,CAAC,UAAA,CAAA,EACvB;oBACA,OAAOpB,GAAAA,CAAIqB,eAAe,CAAC,YAAA,CAAA;AAC7B,gBAAA;gBAEA,MAAMJ,KAAAA;AACR,YAAA;AACF,QAAA;AAEA,QAAA,MAAMf,QAAQH,QAAAA,CAASC,GAAAA,CAAAA;;AAGvB,QAAA,IAAIE,KAAAA,EAAO;YACT,IAAIY,KAAAA,CAAMC,OAAO,CAACb,KAAAA,CAAAA,EAAQ;;gBAExBoB,OAAAA,CAAQC,GAAG,CAACrB,KAAAA,CAAMsB,GAAG,CAAC,CAAC9B,IAAAA,GAAS+B,GAAAA,CAAIC,MAAM,CAAChC,IAAAA,CAAKiC,QAAQ,CAAA,CAAA,CAAA;AAC1D,YAAA,CAAA,MAAO,IAAIzB,KAAAA,IAASA,KAAAA,CAAMyB,QAAQ,EAAE;;gBAElCF,GAAAA,CAAIC,MAAM,CAACxB,KAAAA,CAAMyB,QAAQ,CAAA;AAC3B,YAAA;YACA,OAAO3B,GAAAA,CAAIC,OAAO,CAACC,KAAK;AAC1B,QAAA;AACF,IAAA,CAAA;AACF;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _ = require('lodash');
|
|
4
4
|
var koaStatic = require('koa-static');
|
|
5
5
|
|
|
6
6
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -11,7 +11,7 @@ const defaults = {
|
|
|
11
11
|
maxAge: 60000
|
|
12
12
|
};
|
|
13
13
|
const publicStatic = (config, { strapi })=>{
|
|
14
|
-
const { maxAge } =
|
|
14
|
+
const { maxAge } = _.defaultsDeep({}, config, defaults);
|
|
15
15
|
strapi.server.routes([
|
|
16
16
|
{
|
|
17
17
|
method: 'GET',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.js","sources":["../../src/middlewares/public.ts"],"sourcesContent":["import { defaultsDeep } from 'lodash
|
|
1
|
+
{"version":3,"file":"public.js","sources":["../../src/middlewares/public.ts"],"sourcesContent":["import { defaultsDeep } from 'lodash';\nimport koaStatic from 'koa-static';\nimport type { Core } from '@strapi/types';\n\ntype Config = koaStatic.Options;\n\nconst defaults = {\n maxAge: 60000,\n};\n\nexport const publicStatic: Core.MiddlewareFactory = (\n config: Config,\n { strapi }: { strapi: Core.Strapi }\n) => {\n const { maxAge } = defaultsDeep({}, config, defaults);\n\n strapi.server.routes([\n {\n method: 'GET',\n path: '/',\n handler(ctx) {\n ctx.redirect(strapi.config.get('admin.url', '/admin'));\n },\n config: { auth: false },\n },\n // All other public GET-routes except /uploads/(.*) which is handled in upload middleware\n {\n method: 'GET',\n path: '/((?!uploads/).+)',\n handler: koaStatic(strapi.dirs.static.public, {\n maxage: maxAge,\n defer: true,\n }),\n config: { auth: false },\n },\n ]);\n};\n"],"names":["defaults","maxAge","publicStatic","config","strapi","defaultsDeep","server","routes","method","path","handler","ctx","redirect","get","auth","koaStatic","dirs","static","public","maxage","defer"],"mappings":";;;;;;;;;AAMA,MAAMA,QAAAA,GAAW;IACfC,MAAAA,EAAQ;AACV,CAAA;MAEaC,YAAAA,GAAuC,CAClDC,MAAAA,EACA,EAAEC,MAAM,EAA2B,GAAA;AAEnC,IAAA,MAAM,EAAEH,MAAM,EAAE,GAAGI,cAAAA,CAAa,IAAIF,MAAAA,EAAQH,QAAAA,CAAAA;IAE5CI,MAAAA,CAAOE,MAAM,CAACC,MAAM,CAAC;AACnB,QAAA;YACEC,MAAAA,EAAQ,KAAA;YACRC,IAAAA,EAAM,GAAA;AACNC,YAAAA,OAAAA,CAAAA,CAAQC,GAAG,EAAA;AACTA,gBAAAA,GAAAA,CAAIC,QAAQ,CAACR,MAAAA,CAAOD,MAAM,CAACU,GAAG,CAAC,WAAA,EAAa,QAAA,CAAA,CAAA;AAC9C,YAAA,CAAA;YACAV,MAAAA,EAAQ;gBAAEW,IAAAA,EAAM;AAAM;AACxB,SAAA;;AAEA,QAAA;YACEN,MAAAA,EAAQ,KAAA;YACRC,IAAAA,EAAM,mBAAA;AACNC,YAAAA,OAAAA,EAASK,2BAAUX,MAAAA,CAAOY,IAAI,CAACC,MAAM,CAACC,MAAM,EAAE;gBAC5CC,MAAAA,EAAQlB,MAAAA;gBACRmB,KAAAA,EAAO;AACT,aAAA,CAAA;YACAjB,MAAAA,EAAQ;gBAAEW,IAAAA,EAAM;AAAM;AACxB;AACD,KAAA,CAAA;AACH;;;;"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { defaultsDeep } from 'lodash
|
|
1
|
+
import { defaultsDeep } from 'lodash';
|
|
2
2
|
import koaStatic from 'koa-static';
|
|
3
3
|
|
|
4
4
|
const defaults = {
|
|
5
5
|
maxAge: 60000
|
|
6
6
|
};
|
|
7
7
|
const publicStatic = (config, { strapi })=>{
|
|
8
|
-
const { maxAge } = defaultsDeep(
|
|
8
|
+
const { maxAge } = defaultsDeep({}, config, defaults);
|
|
9
9
|
strapi.server.routes([
|
|
10
10
|
{
|
|
11
11
|
method: 'GET',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.mjs","sources":["../../src/middlewares/public.ts"],"sourcesContent":["import { defaultsDeep } from 'lodash
|
|
1
|
+
{"version":3,"file":"public.mjs","sources":["../../src/middlewares/public.ts"],"sourcesContent":["import { defaultsDeep } from 'lodash';\nimport koaStatic from 'koa-static';\nimport type { Core } from '@strapi/types';\n\ntype Config = koaStatic.Options;\n\nconst defaults = {\n maxAge: 60000,\n};\n\nexport const publicStatic: Core.MiddlewareFactory = (\n config: Config,\n { strapi }: { strapi: Core.Strapi }\n) => {\n const { maxAge } = defaultsDeep({}, config, defaults);\n\n strapi.server.routes([\n {\n method: 'GET',\n path: '/',\n handler(ctx) {\n ctx.redirect(strapi.config.get('admin.url', '/admin'));\n },\n config: { auth: false },\n },\n // All other public GET-routes except /uploads/(.*) which is handled in upload middleware\n {\n method: 'GET',\n path: '/((?!uploads/).+)',\n handler: koaStatic(strapi.dirs.static.public, {\n maxage: maxAge,\n defer: true,\n }),\n config: { auth: false },\n },\n ]);\n};\n"],"names":["defaults","maxAge","publicStatic","config","strapi","defaultsDeep","server","routes","method","path","handler","ctx","redirect","get","auth","koaStatic","dirs","static","public","maxage","defer"],"mappings":";;;AAMA,MAAMA,QAAAA,GAAW;IACfC,MAAAA,EAAQ;AACV,CAAA;MAEaC,YAAAA,GAAuC,CAClDC,MAAAA,EACA,EAAEC,MAAM,EAA2B,GAAA;AAEnC,IAAA,MAAM,EAAEH,MAAM,EAAE,GAAGI,YAAAA,CAAa,IAAIF,MAAAA,EAAQH,QAAAA,CAAAA;IAE5CI,MAAAA,CAAOE,MAAM,CAACC,MAAM,CAAC;AACnB,QAAA;YACEC,MAAAA,EAAQ,KAAA;YACRC,IAAAA,EAAM,GAAA;AACNC,YAAAA,OAAAA,CAAAA,CAAQC,GAAG,EAAA;AACTA,gBAAAA,GAAAA,CAAIC,QAAQ,CAACR,MAAAA,CAAOD,MAAM,CAACU,GAAG,CAAC,WAAA,EAAa,QAAA,CAAA,CAAA;AAC9C,YAAA,CAAA;YACAV,MAAAA,EAAQ;gBAAEW,IAAAA,EAAM;AAAM;AACxB,SAAA;;AAEA,QAAA;YACEN,MAAAA,EAAQ,KAAA;YACRC,IAAAA,EAAM,mBAAA;AACNC,YAAAA,OAAAA,EAASK,UAAUX,MAAAA,CAAOY,IAAI,CAACC,MAAM,CAACC,MAAM,EAAE;gBAC5CC,MAAAA,EAAQlB,MAAAA;gBACRmB,KAAAA,EAAO;AACT,aAAA,CAAA;YACAjB,MAAAA,EAAQ;gBAAEW,IAAAA,EAAM;AAAM;AACxB;AACD,KAAA,CAAA;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../src/middlewares/responses.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../src/middlewares/responses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;CACnD;AAED,eAAO,MAAM,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAWpD,CAAC"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var fp = require('lodash/fp');
|
|
4
|
-
|
|
5
3
|
const responses = (config = {})=>{
|
|
6
4
|
return async (ctx, next)=>{
|
|
7
5
|
await next();
|
|
8
6
|
const { status } = ctx;
|
|
9
7
|
const handler = config?.handlers?.[status];
|
|
10
|
-
if (
|
|
8
|
+
if (typeof handler === 'function') {
|
|
11
9
|
await handler(ctx, next);
|
|
12
10
|
}
|
|
13
11
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responses.js","sources":["../../src/middlewares/responses.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"responses.js","sources":["../../src/middlewares/responses.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nexport interface Config {\n handlers?: Record<number, Core.MiddlewareHandler>;\n}\n\nexport const responses: Core.MiddlewareFactory<Config> = (config = {}) => {\n return async (ctx, next) => {\n await next();\n\n const { status } = ctx;\n const handler = config?.handlers?.[status];\n\n if (typeof handler === 'function') {\n await handler(ctx, next);\n }\n };\n};\n"],"names":["responses","config","ctx","next","status","handler","handlers"],"mappings":";;AAMO,MAAMA,SAAAA,GAA4C,CAACC,MAAAA,GAAS,EAAE,GAAA;AACnE,IAAA,OAAO,OAAOC,GAAAA,EAAKC,IAAAA,GAAAA;QACjB,MAAMA,IAAAA,EAAAA;QAEN,MAAM,EAAEC,MAAM,EAAE,GAAGF,GAAAA;AACnB,QAAA,MAAMG,OAAAA,GAAUJ,MAAAA,EAAQK,QAAAA,GAAWF,MAAAA,CAAO;QAE1C,IAAI,OAAOC,YAAY,UAAA,EAAY;AACjC,YAAA,MAAMA,QAAQH,GAAAA,EAAKC,IAAAA,CAAAA;AACrB,QAAA;AACF,IAAA,CAAA;AACF;;;;"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import { isFunction } from 'lodash/fp';
|
|
2
|
-
|
|
3
1
|
const responses = (config = {})=>{
|
|
4
2
|
return async (ctx, next)=>{
|
|
5
3
|
await next();
|
|
6
4
|
const { status } = ctx;
|
|
7
5
|
const handler = config?.handlers?.[status];
|
|
8
|
-
if (
|
|
6
|
+
if (typeof handler === 'function') {
|
|
9
7
|
await handler(ctx, next);
|
|
10
8
|
}
|
|
11
9
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responses.mjs","sources":["../../src/middlewares/responses.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"responses.mjs","sources":["../../src/middlewares/responses.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nexport interface Config {\n handlers?: Record<number, Core.MiddlewareHandler>;\n}\n\nexport const responses: Core.MiddlewareFactory<Config> = (config = {}) => {\n return async (ctx, next) => {\n await next();\n\n const { status } = ctx;\n const handler = config?.handlers?.[status];\n\n if (typeof handler === 'function') {\n await handler(ctx, next);\n }\n };\n};\n"],"names":["responses","config","ctx","next","status","handler","handlers"],"mappings":"AAMO,MAAMA,SAAAA,GAA4C,CAACC,MAAAA,GAAS,EAAE,GAAA;AACnE,IAAA,OAAO,OAAOC,GAAAA,EAAKC,IAAAA,GAAAA;QACjB,MAAMA,IAAAA,EAAAA;QAEN,MAAM,EAAEC,MAAM,EAAE,GAAGF,GAAAA;AACnB,QAAA,MAAMG,OAAAA,GAAUJ,MAAAA,EAAQK,QAAAA,GAAWF,MAAAA,CAAO;QAE1C,IAAI,OAAOC,YAAY,UAAA,EAAY;AACjC,YAAA,MAAMA,QAAQH,GAAAA,EAAKC,IAAAA,CAAAA;AACrB,QAAA;AACF,IAAA,CAAA;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/middlewares/security.ts"],"names":[],"mappings":"AACA,OAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/middlewares/security.ts"],"names":[],"mappings":"AACA,OAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AA8B3D,eAAO,MAAM,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAkEjD,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _ = require('lodash');
|
|
4
4
|
var helmet = require('koa-helmet');
|
|
5
5
|
var strapiUtils = require('@strapi/utils');
|
|
6
6
|
|
|
@@ -30,10 +30,10 @@ const defaults = {
|
|
|
30
30
|
}
|
|
31
31
|
};
|
|
32
32
|
const mergeConfig = (existingConfig, newConfig)=>{
|
|
33
|
-
return
|
|
33
|
+
return _.mergeWith({}, existingConfig, newConfig, (obj, src)=>Array.isArray(obj) && Array.isArray(src) ? obj.concat(src) : undefined);
|
|
34
34
|
};
|
|
35
35
|
const security = (config, { strapi })=>(ctx, next)=>{
|
|
36
|
-
let helmetConfig =
|
|
36
|
+
let helmetConfig = _.defaultsDeep({}, config, defaults);
|
|
37
37
|
const specialPaths = [
|
|
38
38
|
'/documentation'
|
|
39
39
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.js","sources":["../../src/middlewares/security.ts"],"sourcesContent":["import { defaultsDeep, mergeWith } from 'lodash
|
|
1
|
+
{"version":3,"file":"security.js","sources":["../../src/middlewares/security.ts"],"sourcesContent":["import { defaultsDeep, mergeWith } from 'lodash';\nimport helmet, { KoaHelmet } from 'koa-helmet';\nimport { CSP_DEFAULTS } from '@strapi/utils';\n\nimport type { Core } from '@strapi/types';\n\nexport type Config = NonNullable<Parameters<KoaHelmet>[0]>;\n\nconst defaults: Config = {\n crossOriginEmbedderPolicy: false,\n crossOriginOpenerPolicy: false,\n crossOriginResourcePolicy: false,\n originAgentCluster: false,\n contentSecurityPolicy: {\n useDefaults: true,\n directives: {\n ...CSP_DEFAULTS,\n upgradeInsecureRequests: null,\n },\n },\n xssFilter: false,\n hsts: {\n maxAge: 31536000,\n includeSubDomains: true,\n },\n frameguard: {\n action: 'sameorigin',\n },\n};\n\nconst mergeConfig = (existingConfig: Config, newConfig: Config) => {\n return mergeWith({}, existingConfig, newConfig, (obj, src) =>\n Array.isArray(obj) && Array.isArray(src) ? obj.concat(src) : undefined\n );\n};\n\nexport const security: Core.MiddlewareFactory<Config> =\n (config, { strapi }) =>\n (ctx, next) => {\n let helmetConfig: Config = defaultsDeep({}, config, defaults);\n const specialPaths = ['/documentation'];\n\n const directives: {\n 'script-src': string[];\n 'img-src': string[];\n 'manifest-src': string[];\n 'frame-src': string[];\n } = {\n 'script-src': [\"'self'\", \"'unsafe-inline'\", 'cdn.jsdelivr.net'],\n 'img-src': [\"'self'\", 'data:', 'cdn.jsdelivr.net', 'strapi.io'],\n 'manifest-src': [],\n 'frame-src': [],\n };\n\n // if apollo graphql playground is enabled, add exceptions for it\n if (strapi.plugin('graphql')?.service('utils').playground.isEnabled()) {\n const { config: gqlConfig } = strapi.plugin('graphql');\n specialPaths.push(gqlConfig('endpoint'));\n\n directives['script-src'].push(`https: 'unsafe-inline'`);\n directives['img-src'].push(`'apollo-server-landing-page.cdn.apollographql.com'`);\n directives['manifest-src'].push(`'self'`);\n directives['manifest-src'].push('apollo-server-landing-page.cdn.apollographql.com');\n directives['frame-src'].push(`'self'`);\n directives['frame-src'].push('sandbox.embed.apollographql.com');\n }\n\n // TODO: we shouldn't combine playground exceptions with documentation for all routes, we should first check the path and then return exceptions specific to that\n if (ctx.method === 'GET' && specialPaths.some((str) => ctx.path.startsWith(str))) {\n helmetConfig = mergeConfig(helmetConfig, {\n crossOriginEmbedderPolicy: false, // TODO: only use this for graphql playground\n contentSecurityPolicy: {\n directives,\n },\n });\n }\n\n /**\n * These are for vite's watch mode so it can accurately\n * connect to the HMR websocket & reconnect on failure\n * or when the server restarts.\n *\n * It only applies in development, and only on GET requests\n * that are part of the admin route.\n */\n\n if (\n ['development', 'test'].includes(process.env.NODE_ENV ?? '') &&\n ctx.method === 'GET' &&\n ctx.path.startsWith(strapi.config.get('admin.path'))\n ) {\n helmetConfig = mergeConfig(helmetConfig, {\n contentSecurityPolicy: {\n directives: {\n 'script-src': [\"'self'\", \"'unsafe-inline'\"],\n 'connect-src': [\"'self'\", 'http:', 'https:', 'ws:'],\n },\n },\n });\n }\n\n return helmet(helmetConfig)(ctx, next);\n };\n"],"names":["defaults","crossOriginEmbedderPolicy","crossOriginOpenerPolicy","crossOriginResourcePolicy","originAgentCluster","contentSecurityPolicy","useDefaults","directives","CSP_DEFAULTS","upgradeInsecureRequests","xssFilter","hsts","maxAge","includeSubDomains","frameguard","action","mergeConfig","existingConfig","newConfig","mergeWith","obj","src","Array","isArray","concat","undefined","security","config","strapi","ctx","next","helmetConfig","defaultsDeep","specialPaths","plugin","service","playground","isEnabled","gqlConfig","push","method","some","str","path","startsWith","includes","process","env","NODE_ENV","get","helmet"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defaultsDeep, mergeWith } from 'lodash
|
|
1
|
+
import { defaultsDeep, mergeWith } from 'lodash';
|
|
2
2
|
import helmet from 'koa-helmet';
|
|
3
3
|
import { CSP_DEFAULTS } from '@strapi/utils';
|
|
4
4
|
|
|
@@ -24,10 +24,10 @@ const defaults = {
|
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
26
|
const mergeConfig = (existingConfig, newConfig)=>{
|
|
27
|
-
return mergeWith((obj, src)=>Array.isArray(obj) && Array.isArray(src) ? obj.concat(src) : undefined
|
|
27
|
+
return mergeWith({}, existingConfig, newConfig, (obj, src)=>Array.isArray(obj) && Array.isArray(src) ? obj.concat(src) : undefined);
|
|
28
28
|
};
|
|
29
29
|
const security = (config, { strapi })=>(ctx, next)=>{
|
|
30
|
-
let helmetConfig = defaultsDeep(
|
|
30
|
+
let helmetConfig = defaultsDeep({}, config, defaults);
|
|
31
31
|
const specialPaths = [
|
|
32
32
|
'/documentation'
|
|
33
33
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.mjs","sources":["../../src/middlewares/security.ts"],"sourcesContent":["import { defaultsDeep, mergeWith } from 'lodash
|
|
1
|
+
{"version":3,"file":"security.mjs","sources":["../../src/middlewares/security.ts"],"sourcesContent":["import { defaultsDeep, mergeWith } from 'lodash';\nimport helmet, { KoaHelmet } from 'koa-helmet';\nimport { CSP_DEFAULTS } from '@strapi/utils';\n\nimport type { Core } from '@strapi/types';\n\nexport type Config = NonNullable<Parameters<KoaHelmet>[0]>;\n\nconst defaults: Config = {\n crossOriginEmbedderPolicy: false,\n crossOriginOpenerPolicy: false,\n crossOriginResourcePolicy: false,\n originAgentCluster: false,\n contentSecurityPolicy: {\n useDefaults: true,\n directives: {\n ...CSP_DEFAULTS,\n upgradeInsecureRequests: null,\n },\n },\n xssFilter: false,\n hsts: {\n maxAge: 31536000,\n includeSubDomains: true,\n },\n frameguard: {\n action: 'sameorigin',\n },\n};\n\nconst mergeConfig = (existingConfig: Config, newConfig: Config) => {\n return mergeWith({}, existingConfig, newConfig, (obj, src) =>\n Array.isArray(obj) && Array.isArray(src) ? obj.concat(src) : undefined\n );\n};\n\nexport const security: Core.MiddlewareFactory<Config> =\n (config, { strapi }) =>\n (ctx, next) => {\n let helmetConfig: Config = defaultsDeep({}, config, defaults);\n const specialPaths = ['/documentation'];\n\n const directives: {\n 'script-src': string[];\n 'img-src': string[];\n 'manifest-src': string[];\n 'frame-src': string[];\n } = {\n 'script-src': [\"'self'\", \"'unsafe-inline'\", 'cdn.jsdelivr.net'],\n 'img-src': [\"'self'\", 'data:', 'cdn.jsdelivr.net', 'strapi.io'],\n 'manifest-src': [],\n 'frame-src': [],\n };\n\n // if apollo graphql playground is enabled, add exceptions for it\n if (strapi.plugin('graphql')?.service('utils').playground.isEnabled()) {\n const { config: gqlConfig } = strapi.plugin('graphql');\n specialPaths.push(gqlConfig('endpoint'));\n\n directives['script-src'].push(`https: 'unsafe-inline'`);\n directives['img-src'].push(`'apollo-server-landing-page.cdn.apollographql.com'`);\n directives['manifest-src'].push(`'self'`);\n directives['manifest-src'].push('apollo-server-landing-page.cdn.apollographql.com');\n directives['frame-src'].push(`'self'`);\n directives['frame-src'].push('sandbox.embed.apollographql.com');\n }\n\n // TODO: we shouldn't combine playground exceptions with documentation for all routes, we should first check the path and then return exceptions specific to that\n if (ctx.method === 'GET' && specialPaths.some((str) => ctx.path.startsWith(str))) {\n helmetConfig = mergeConfig(helmetConfig, {\n crossOriginEmbedderPolicy: false, // TODO: only use this for graphql playground\n contentSecurityPolicy: {\n directives,\n },\n });\n }\n\n /**\n * These are for vite's watch mode so it can accurately\n * connect to the HMR websocket & reconnect on failure\n * or when the server restarts.\n *\n * It only applies in development, and only on GET requests\n * that are part of the admin route.\n */\n\n if (\n ['development', 'test'].includes(process.env.NODE_ENV ?? '') &&\n ctx.method === 'GET' &&\n ctx.path.startsWith(strapi.config.get('admin.path'))\n ) {\n helmetConfig = mergeConfig(helmetConfig, {\n contentSecurityPolicy: {\n directives: {\n 'script-src': [\"'self'\", \"'unsafe-inline'\"],\n 'connect-src': [\"'self'\", 'http:', 'https:', 'ws:'],\n },\n },\n });\n }\n\n return helmet(helmetConfig)(ctx, next);\n };\n"],"names":["defaults","crossOriginEmbedderPolicy","crossOriginOpenerPolicy","crossOriginResourcePolicy","originAgentCluster","contentSecurityPolicy","useDefaults","directives","CSP_DEFAULTS","upgradeInsecureRequests","xssFilter","hsts","maxAge","includeSubDomains","frameguard","action","mergeConfig","existingConfig","newConfig","mergeWith","obj","src","Array","isArray","concat","undefined","security","config","strapi","ctx","next","helmetConfig","defaultsDeep","specialPaths","plugin","service","playground","isEnabled","gqlConfig","push","method","some","str","path","startsWith","includes","process","env","NODE_ENV","get","helmet"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _ = require('lodash');
|
|
4
4
|
var koaSession = require('koa-session');
|
|
5
5
|
|
|
6
6
|
const defaultConfig = {
|
|
@@ -17,7 +17,7 @@ const defaultConfig = {
|
|
|
17
17
|
};
|
|
18
18
|
const session = (userConfig, { strapi })=>{
|
|
19
19
|
const { keys } = strapi.server.app;
|
|
20
|
-
if (!
|
|
20
|
+
if (!Array.isArray(keys) || keys.length === 0 || keys.some((key)=>_.isEmpty(key))) {
|
|
21
21
|
throw new Error(`App keys are required. Please set app.keys in config/server.js (ex: keys: ['myKeyA', 'myKeyB'])`);
|
|
22
22
|
}
|
|
23
23
|
const config = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sources":["../../src/middlewares/session.ts"],"sourcesContent":["import { isEmpty
|
|
1
|
+
{"version":3,"file":"session.js","sources":["../../src/middlewares/session.ts"],"sourcesContent":["import { isEmpty } from 'lodash';\nimport { type SessionOptions, createSession } from 'koa-session';\nimport type { Core } from '@strapi/types';\n\nconst defaultConfig = {\n key: 'koa.sess',\n maxAge: 86400000,\n autoCommit: true,\n overwrite: true,\n httpOnly: true,\n signed: true,\n rolling: false,\n renew: false,\n secure: process.env.NODE_ENV === 'production',\n sameSite: undefined,\n};\n\nexport const session: Core.MiddlewareFactory<Partial<SessionOptions>> = (\n userConfig,\n { strapi }\n) => {\n const { keys } = strapi.server.app;\n if (!Array.isArray(keys) || keys.length === 0 || keys.some((key) => isEmpty(key))) {\n throw new Error(\n `App keys are required. Please set app.keys in config/server.js (ex: keys: ['myKeyA', 'myKeyB'])`\n );\n }\n\n const config: Partial<SessionOptions> = { ...defaultConfig, ...userConfig };\n\n strapi.server.use(createSession(config, strapi.server.app));\n};\n"],"names":["defaultConfig","key","maxAge","autoCommit","overwrite","httpOnly","signed","rolling","renew","secure","process","env","NODE_ENV","sameSite","undefined","session","userConfig","strapi","keys","server","app","Array","isArray","length","some","isEmpty","Error","config","use","createSession"],"mappings":";;;;;AAIA,MAAMA,aAAAA,GAAgB;IACpBC,GAAAA,EAAK,UAAA;IACLC,MAAAA,EAAQ,QAAA;IACRC,UAAAA,EAAY,IAAA;IACZC,SAAAA,EAAW,IAAA;IACXC,QAAAA,EAAU,IAAA;IACVC,MAAAA,EAAQ,IAAA;IACRC,OAAAA,EAAS,KAAA;IACTC,KAAAA,EAAO,KAAA;AACPC,IAAAA,MAAAA,EAAQC,OAAAA,CAAQC,GAAG,CAACC,QAAQ,KAAK,YAAA;IACjCC,QAAAA,EAAUC;AACZ,CAAA;MAEaC,OAAAA,GAA2D,CACtEC,UAAAA,EACA,EAAEC,MAAM,EAAE,GAAA;AAEV,IAAA,MAAM,EAAEC,IAAI,EAAE,GAAGD,MAAAA,CAAOE,MAAM,CAACC,GAAG;AAClC,IAAA,IAAI,CAACC,KAAAA,CAAMC,OAAO,CAACJ,SAASA,IAAAA,CAAKK,MAAM,KAAK,CAAA,IAAKL,KAAKM,IAAI,CAAC,CAACvB,GAAAA,GAAQwB,UAAQxB,GAAAA,CAAAA,CAAAA,EAAO;AACjF,QAAA,MAAM,IAAIyB,KAAAA,CACR,CAAC,+FAA+F,CAAC,CAAA;AAErG,IAAA;AAEA,IAAA,MAAMC,MAAAA,GAAkC;AAAE,QAAA,GAAG3B,aAAa;AAAE,QAAA,GAAGgB;AAAW,KAAA;IAE1EC,MAAAA,CAAOE,MAAM,CAACS,GAAG,CAACC,yBAAcF,MAAAA,EAAQV,MAAAA,CAAOE,MAAM,CAACC,GAAG,CAAA,CAAA;AAC3D;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isEmpty } from 'lodash';
|
|
2
2
|
import { createSession } from 'koa-session';
|
|
3
3
|
|
|
4
4
|
const defaultConfig = {
|
|
@@ -15,7 +15,7 @@ const defaultConfig = {
|
|
|
15
15
|
};
|
|
16
16
|
const session = (userConfig, { strapi })=>{
|
|
17
17
|
const { keys } = strapi.server.app;
|
|
18
|
-
if (!isArray(keys) ||
|
|
18
|
+
if (!Array.isArray(keys) || keys.length === 0 || keys.some((key)=>isEmpty(key))) {
|
|
19
19
|
throw new Error(`App keys are required. Please set app.keys in config/server.js (ex: keys: ['myKeyA', 'myKeyB'])`);
|
|
20
20
|
}
|
|
21
21
|
const config = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.mjs","sources":["../../src/middlewares/session.ts"],"sourcesContent":["import { isEmpty
|
|
1
|
+
{"version":3,"file":"session.mjs","sources":["../../src/middlewares/session.ts"],"sourcesContent":["import { isEmpty } from 'lodash';\nimport { type SessionOptions, createSession } from 'koa-session';\nimport type { Core } from '@strapi/types';\n\nconst defaultConfig = {\n key: 'koa.sess',\n maxAge: 86400000,\n autoCommit: true,\n overwrite: true,\n httpOnly: true,\n signed: true,\n rolling: false,\n renew: false,\n secure: process.env.NODE_ENV === 'production',\n sameSite: undefined,\n};\n\nexport const session: Core.MiddlewareFactory<Partial<SessionOptions>> = (\n userConfig,\n { strapi }\n) => {\n const { keys } = strapi.server.app;\n if (!Array.isArray(keys) || keys.length === 0 || keys.some((key) => isEmpty(key))) {\n throw new Error(\n `App keys are required. Please set app.keys in config/server.js (ex: keys: ['myKeyA', 'myKeyB'])`\n );\n }\n\n const config: Partial<SessionOptions> = { ...defaultConfig, ...userConfig };\n\n strapi.server.use(createSession(config, strapi.server.app));\n};\n"],"names":["defaultConfig","key","maxAge","autoCommit","overwrite","httpOnly","signed","rolling","renew","secure","process","env","NODE_ENV","sameSite","undefined","session","userConfig","strapi","keys","server","app","Array","isArray","length","some","isEmpty","Error","config","use","createSession"],"mappings":";;;AAIA,MAAMA,aAAAA,GAAgB;IACpBC,GAAAA,EAAK,UAAA;IACLC,MAAAA,EAAQ,QAAA;IACRC,UAAAA,EAAY,IAAA;IACZC,SAAAA,EAAW,IAAA;IACXC,QAAAA,EAAU,IAAA;IACVC,MAAAA,EAAQ,IAAA;IACRC,OAAAA,EAAS,KAAA;IACTC,KAAAA,EAAO,KAAA;AACPC,IAAAA,MAAAA,EAAQC,OAAAA,CAAQC,GAAG,CAACC,QAAQ,KAAK,YAAA;IACjCC,QAAAA,EAAUC;AACZ,CAAA;MAEaC,OAAAA,GAA2D,CACtEC,UAAAA,EACA,EAAEC,MAAM,EAAE,GAAA;AAEV,IAAA,MAAM,EAAEC,IAAI,EAAE,GAAGD,MAAAA,CAAOE,MAAM,CAACC,GAAG;AAClC,IAAA,IAAI,CAACC,KAAAA,CAAMC,OAAO,CAACJ,SAASA,IAAAA,CAAKK,MAAM,KAAK,CAAA,IAAKL,KAAKM,IAAI,CAAC,CAACvB,GAAAA,GAAQwB,QAAQxB,GAAAA,CAAAA,CAAAA,EAAO;AACjF,QAAA,MAAM,IAAIyB,KAAAA,CACR,CAAC,+FAA+F,CAAC,CAAA;AAErG,IAAA;AAEA,IAAA,MAAMC,MAAAA,GAAkC;AAAE,QAAA,GAAG3B,aAAa;AAAE,QAAA,GAAGgB;AAAW,KAAA;IAE1EC,MAAAA,CAAOE,MAAM,CAACS,GAAG,CAACC,cAAcF,MAAAA,EAAQV,MAAAA,CAAOE,MAAM,CAACC,GAAG,CAAA,CAAA;AAC3D;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"5.0.0-discard-drafts.d.ts","sourceRoot":"","sources":["../../../src/migrations/database/5.0.0-discard-drafts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAa5D,KAAK,eAAe,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAC9D,KAAK,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"5.0.0-discard-drafts.d.ts","sourceRoot":"","sources":["../../../src/migrations/database/5.0.0-discard-drafts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAa5D,KAAK,eAAe,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAC9D,KAAK,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AA8+G3C;;;;;GAKG;AACH,wBAAuB,iBAAiB,CAAC,EACvC,EAAE,EACF,GAAG,EACH,GAAG,EACH,gBAAuB,GACxB,EAAE;IACD,EAAE,EAAE,QAAQ,CAAC;IACb,GAAG,EAAE,IAAI,CAAC;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,oDAwBA;AAED,eAAO,MAAM,qBAAqB,EAAE,SAQnC,CAAC"}
|
|
@@ -1405,9 +1405,8 @@ const debug = createDebug__default.default('strapi::migration::discard-drafts');
|
|
|
1405
1405
|
if (publishedEntries.length === 0 || draftEntries.length === 0) {
|
|
1406
1406
|
return null;
|
|
1407
1407
|
}
|
|
1408
|
-
const i18nService = strapi.plugin('i18n')?.service('content-types');
|
|
1409
1408
|
const contentType = strapi.contentTypes[uid];
|
|
1410
|
-
const isLocalized =
|
|
1409
|
+
const isLocalized = strapi.localization.isLocalizedContentType(contentType);
|
|
1411
1410
|
const draftByDocumentId = new Map();
|
|
1412
1411
|
for (const draft of draftEntries){
|
|
1413
1412
|
if (!draft.document_id) {
|