@strapi/core 0.0.0-experimental.e576af447d9f97e89e24c6daa32d8f714376cd5f → 0.0.0-experimental.e5be7949a8aed02e6af3c5a8bb244f5512801ec4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of @strapi/core might be problematic. Click here for more details.
- package/dist/Strapi.d.ts.map +1 -1
- package/dist/Strapi.js +458 -0
- package/dist/Strapi.js.map +1 -0
- package/dist/Strapi.mjs +437 -0
- package/dist/Strapi.mjs.map +1 -0
- package/dist/compile.js +27 -0
- package/dist/compile.js.map +1 -0
- package/dist/compile.mjs +25 -0
- package/dist/compile.mjs.map +1 -0
- package/dist/configuration/config-loader.js +119 -0
- package/dist/configuration/config-loader.js.map +1 -0
- package/dist/configuration/config-loader.mjs +117 -0
- package/dist/configuration/config-loader.mjs.map +1 -0
- package/dist/configuration/get-dirs.js +33 -0
- package/dist/configuration/get-dirs.js.map +1 -0
- package/dist/configuration/get-dirs.mjs +31 -0
- package/dist/configuration/get-dirs.mjs.map +1 -0
- package/dist/configuration/index.d.ts +1 -0
- package/dist/configuration/index.d.ts.map +1 -1
- package/dist/configuration/index.js +92 -0
- package/dist/configuration/index.js.map +1 -0
- package/dist/configuration/index.mjs +90 -0
- package/dist/configuration/index.mjs.map +1 -0
- package/dist/configuration/urls.d.ts.map +1 -1
- package/dist/configuration/urls.js +81 -0
- package/dist/configuration/urls.js.map +1 -0
- package/dist/configuration/urls.mjs +77 -0
- package/dist/configuration/urls.mjs.map +1 -0
- package/dist/container.js +34 -0
- package/dist/container.js.map +1 -0
- package/dist/container.mjs +32 -0
- package/dist/container.mjs.map +1 -0
- package/dist/core-api/controller/collection-type.js +85 -0
- package/dist/core-api/controller/collection-type.js.map +1 -0
- package/dist/core-api/controller/collection-type.mjs +83 -0
- package/dist/core-api/controller/collection-type.mjs.map +1 -0
- package/dist/core-api/controller/index.d.ts.map +1 -1
- package/dist/core-api/controller/index.js +68 -0
- package/dist/core-api/controller/index.js.map +1 -0
- package/dist/core-api/controller/index.mjs +66 -0
- package/dist/core-api/controller/index.mjs.map +1 -0
- package/dist/core-api/controller/single-type.js +47 -0
- package/dist/core-api/controller/single-type.js.map +1 -0
- package/dist/core-api/controller/single-type.mjs +45 -0
- package/dist/core-api/controller/single-type.mjs.map +1 -0
- package/dist/core-api/controller/transform.d.ts +3 -2
- package/dist/core-api/controller/transform.d.ts.map +1 -1
- package/dist/core-api/controller/transform.js +95 -0
- package/dist/core-api/controller/transform.js.map +1 -0
- package/dist/core-api/controller/transform.mjs +93 -0
- package/dist/core-api/controller/transform.mjs.map +1 -0
- package/dist/core-api/routes/index.d.ts +4 -22
- package/dist/core-api/routes/index.d.ts.map +1 -1
- package/dist/core-api/routes/index.js +211 -0
- package/dist/core-api/routes/index.js.map +1 -0
- package/dist/core-api/routes/index.mjs +190 -0
- package/dist/core-api/routes/index.mjs.map +1 -0
- package/dist/core-api/routes/validation/attributes.d.ts +244 -0
- package/dist/core-api/routes/validation/attributes.d.ts.map +1 -0
- package/dist/core-api/routes/validation/attributes.js +560 -0
- package/dist/core-api/routes/validation/attributes.js.map +1 -0
- package/dist/core-api/routes/validation/attributes.mjs +521 -0
- package/dist/core-api/routes/validation/attributes.mjs.map +1 -0
- package/dist/core-api/routes/validation/common.d.ts +105 -0
- package/dist/core-api/routes/validation/common.d.ts.map +1 -0
- package/dist/core-api/routes/validation/common.js +116 -0
- package/dist/core-api/routes/validation/common.js.map +1 -0
- package/dist/core-api/routes/validation/common.mjs +95 -0
- package/dist/core-api/routes/validation/common.mjs.map +1 -0
- package/dist/core-api/routes/validation/component.d.ts +34 -0
- package/dist/core-api/routes/validation/component.d.ts.map +1 -0
- package/dist/core-api/routes/validation/component.js +45 -0
- package/dist/core-api/routes/validation/component.js.map +1 -0
- package/dist/core-api/routes/validation/component.mjs +43 -0
- package/dist/core-api/routes/validation/component.mjs.map +1 -0
- package/dist/core-api/routes/validation/constants.d.ts +8 -0
- package/dist/core-api/routes/validation/constants.d.ts.map +1 -0
- package/dist/core-api/routes/validation/constants.js +18 -0
- package/dist/core-api/routes/validation/constants.js.map +1 -0
- package/dist/core-api/routes/validation/constants.mjs +16 -0
- package/dist/core-api/routes/validation/constants.mjs.map +1 -0
- package/dist/core-api/routes/validation/content-type.d.ts +128 -0
- package/dist/core-api/routes/validation/content-type.d.ts.map +1 -0
- package/dist/core-api/routes/validation/content-type.js +201 -0
- package/dist/core-api/routes/validation/content-type.js.map +1 -0
- package/dist/core-api/routes/validation/content-type.mjs +180 -0
- package/dist/core-api/routes/validation/content-type.mjs.map +1 -0
- package/dist/core-api/routes/validation/index.d.ts +5 -0
- package/dist/core-api/routes/validation/index.d.ts.map +1 -0
- package/dist/core-api/routes/validation/mappers.d.ts +105 -0
- package/dist/core-api/routes/validation/mappers.d.ts.map +1 -0
- package/dist/core-api/routes/validation/mappers.js +238 -0
- package/dist/core-api/routes/validation/mappers.js.map +1 -0
- package/dist/core-api/routes/validation/mappers.mjs +214 -0
- package/dist/core-api/routes/validation/mappers.mjs.map +1 -0
- package/dist/core-api/routes/validation/utils.d.ts +47 -0
- package/dist/core-api/routes/validation/utils.d.ts.map +1 -0
- package/dist/core-api/routes/validation/utils.js +128 -0
- package/dist/core-api/routes/validation/utils.js.map +1 -0
- package/dist/core-api/routes/validation/utils.mjs +106 -0
- package/dist/core-api/routes/validation/utils.mjs.map +1 -0
- package/dist/core-api/service/collection-type.js +80 -0
- package/dist/core-api/service/collection-type.js.map +1 -0
- package/dist/core-api/service/collection-type.mjs +77 -0
- package/dist/core-api/service/collection-type.mjs.map +1 -0
- package/dist/core-api/service/core-service.js +13 -0
- package/dist/core-api/service/core-service.js.map +1 -0
- package/dist/core-api/service/core-service.mjs +11 -0
- package/dist/core-api/service/core-service.mjs.map +1 -0
- package/dist/core-api/service/index.js +16 -0
- package/dist/core-api/service/index.js.map +1 -0
- package/dist/core-api/service/index.mjs +14 -0
- package/dist/core-api/service/index.mjs.map +1 -0
- package/dist/core-api/service/pagination.js +78 -0
- package/dist/core-api/service/pagination.js.map +1 -0
- package/dist/core-api/service/pagination.mjs +73 -0
- package/dist/core-api/service/pagination.mjs.map +1 -0
- package/dist/core-api/service/single-type.js +50 -0
- package/dist/core-api/service/single-type.js.map +1 -0
- package/dist/core-api/service/single-type.mjs +47 -0
- package/dist/core-api/service/single-type.mjs.map +1 -0
- package/dist/domain/content-type/index.d.ts.map +1 -1
- package/dist/domain/content-type/index.js +122 -0
- package/dist/domain/content-type/index.js.map +1 -0
- package/dist/domain/content-type/index.mjs +119 -0
- package/dist/domain/content-type/index.mjs.map +1 -0
- package/dist/domain/content-type/validator.js +92 -0
- package/dist/domain/content-type/validator.js.map +1 -0
- package/dist/domain/content-type/validator.mjs +90 -0
- package/dist/domain/content-type/validator.mjs.map +1 -0
- package/dist/domain/module/index.d.ts.map +1 -1
- package/dist/domain/module/index.js +119 -0
- package/dist/domain/module/index.js.map +1 -0
- package/dist/domain/module/index.mjs +117 -0
- package/dist/domain/module/index.mjs.map +1 -0
- package/dist/domain/module/validation.js +30 -0
- package/dist/domain/module/validation.js.map +1 -0
- package/dist/domain/module/validation.mjs +28 -0
- package/dist/domain/module/validation.mjs.map +1 -0
- package/dist/ee/index.d.ts +7 -0
- package/dist/ee/index.d.ts.map +1 -1
- package/dist/ee/index.js +218 -0
- package/dist/ee/index.js.map +1 -0
- package/dist/ee/index.mjs +216 -0
- package/dist/ee/index.mjs.map +1 -0
- package/dist/ee/license.d.ts +3 -1
- package/dist/ee/license.d.ts.map +1 -1
- package/dist/ee/license.js +121 -0
- package/dist/ee/license.js.map +1 -0
- package/dist/ee/license.mjs +115 -0
- package/dist/ee/license.mjs.map +1 -0
- package/dist/factories.d.ts +3 -1
- package/dist/factories.d.ts.map +1 -1
- package/dist/factories.js +93 -0
- package/dist/factories.js.map +1 -0
- package/dist/factories.mjs +87 -0
- package/dist/factories.mjs.map +1 -0
- package/dist/index.js +19 -10090
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +17 -10067
- package/dist/index.mjs.map +1 -1
- package/dist/loaders/admin.d.ts.map +1 -1
- package/dist/loaders/admin.js +27 -0
- package/dist/loaders/admin.js.map +1 -0
- package/dist/loaders/admin.mjs +25 -0
- package/dist/loaders/admin.mjs.map +1 -0
- package/dist/loaders/apis.js +160 -0
- package/dist/loaders/apis.js.map +1 -0
- package/dist/loaders/apis.mjs +158 -0
- package/dist/loaders/apis.mjs.map +1 -0
- package/dist/loaders/components.js +37 -0
- package/dist/loaders/components.js.map +1 -0
- package/dist/loaders/components.mjs +35 -0
- package/dist/loaders/components.mjs.map +1 -0
- package/dist/loaders/index.js +26 -0
- package/dist/loaders/index.js.map +1 -0
- package/dist/loaders/index.mjs +24 -0
- package/dist/loaders/index.mjs.map +1 -0
- package/dist/loaders/middlewares.js +35 -0
- package/dist/loaders/middlewares.js.map +1 -0
- package/dist/loaders/middlewares.mjs +33 -0
- package/dist/loaders/middlewares.mjs.map +1 -0
- package/dist/loaders/plugins/get-enabled-plugins.js +136 -0
- package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -0
- package/dist/loaders/plugins/get-enabled-plugins.mjs +134 -0
- package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -0
- package/dist/loaders/plugins/get-user-plugins-config.js +28 -0
- package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -0
- package/dist/loaders/plugins/get-user-plugins-config.mjs +26 -0
- package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -0
- package/dist/loaders/plugins/index.js +155 -0
- package/dist/loaders/plugins/index.js.map +1 -0
- package/dist/loaders/plugins/index.mjs +134 -0
- package/dist/loaders/plugins/index.mjs.map +1 -0
- package/dist/loaders/policies.js +29 -0
- package/dist/loaders/policies.js.map +1 -0
- package/dist/loaders/policies.mjs +27 -0
- package/dist/loaders/policies.mjs.map +1 -0
- package/dist/loaders/sanitizers.js +12 -0
- package/dist/loaders/sanitizers.js.map +1 -0
- package/dist/loaders/sanitizers.mjs +10 -0
- package/dist/loaders/sanitizers.mjs.map +1 -0
- package/dist/loaders/src-index.js +41 -0
- package/dist/loaders/src-index.js.map +1 -0
- package/dist/loaders/src-index.mjs +39 -0
- package/dist/loaders/src-index.mjs.map +1 -0
- package/dist/loaders/validators.js +11 -0
- package/dist/loaders/validators.js.map +1 -0
- package/dist/loaders/validators.mjs +9 -0
- package/dist/loaders/validators.mjs.map +1 -0
- package/dist/middlewares/body.js +69 -0
- package/dist/middlewares/body.js.map +1 -0
- package/dist/middlewares/body.mjs +67 -0
- package/dist/middlewares/body.mjs.map +1 -0
- package/dist/middlewares/compression.js +8 -0
- package/dist/middlewares/compression.js.map +1 -0
- package/dist/middlewares/compression.mjs +6 -0
- package/dist/middlewares/compression.mjs.map +1 -0
- package/dist/middlewares/cors.d.ts +9 -1
- package/dist/middlewares/cors.d.ts.map +1 -1
- package/dist/middlewares/cors.js +86 -0
- package/dist/middlewares/cors.js.map +1 -0
- package/dist/middlewares/cors.mjs +83 -0
- package/dist/middlewares/cors.mjs.map +1 -0
- package/dist/middlewares/errors.js +35 -0
- package/dist/middlewares/errors.js.map +1 -0
- package/dist/middlewares/errors.mjs +33 -0
- package/dist/middlewares/errors.mjs.map +1 -0
- package/dist/middlewares/favicon.js +32 -0
- package/dist/middlewares/favicon.js.map +1 -0
- package/dist/middlewares/favicon.mjs +30 -0
- package/dist/middlewares/favicon.mjs.map +1 -0
- package/dist/middlewares/index.js +36 -0
- package/dist/middlewares/index.js.map +1 -0
- package/dist/middlewares/index.mjs +34 -0
- package/dist/middlewares/index.mjs.map +1 -0
- package/dist/middlewares/ip.js +8 -0
- package/dist/middlewares/ip.js.map +1 -0
- package/dist/middlewares/ip.mjs +6 -0
- package/dist/middlewares/ip.mjs.map +1 -0
- package/dist/middlewares/logger.js +13 -0
- package/dist/middlewares/logger.js.map +1 -0
- package/dist/middlewares/logger.mjs +11 -0
- package/dist/middlewares/logger.mjs.map +1 -0
- package/dist/middlewares/powered-by.js +18 -0
- package/dist/middlewares/powered-by.js.map +1 -0
- package/dist/middlewares/powered-by.mjs +16 -0
- package/dist/middlewares/powered-by.mjs.map +1 -0
- package/dist/middlewares/public.js +38 -0
- package/dist/middlewares/public.js.map +1 -0
- package/dist/middlewares/public.mjs +36 -0
- package/dist/middlewares/public.mjs.map +1 -0
- package/dist/middlewares/query.js +43 -0
- package/dist/middlewares/query.js.map +1 -0
- package/dist/middlewares/query.mjs +41 -0
- package/dist/middlewares/query.mjs.map +1 -0
- package/dist/middlewares/response-time.js +13 -0
- package/dist/middlewares/response-time.js.map +1 -0
- package/dist/middlewares/response-time.mjs +11 -0
- package/dist/middlewares/response-time.mjs.map +1 -0
- package/dist/middlewares/responses.js +17 -0
- package/dist/middlewares/responses.js.map +1 -0
- package/dist/middlewares/responses.mjs +15 -0
- package/dist/middlewares/responses.mjs.map +1 -0
- package/dist/middlewares/security.js +116 -0
- package/dist/middlewares/security.js.map +1 -0
- package/dist/middlewares/security.mjs +114 -0
- package/dist/middlewares/security.mjs.map +1 -0
- package/dist/middlewares/session.js +31 -0
- package/dist/middlewares/session.js.map +1 -0
- package/dist/middlewares/session.mjs +29 -0
- package/dist/middlewares/session.mjs.map +1 -0
- package/dist/migrations/database/5.0.0-discard-drafts.js +168 -0
- package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -0
- package/dist/migrations/database/5.0.0-discard-drafts.mjs +165 -0
- package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -0
- package/dist/migrations/draft-publish.js +69 -0
- package/dist/migrations/draft-publish.js.map +1 -0
- package/dist/migrations/draft-publish.mjs +66 -0
- package/dist/migrations/draft-publish.mjs.map +1 -0
- package/dist/migrations/first-published-at.d.ts +4 -0
- package/dist/migrations/first-published-at.d.ts.map +1 -0
- package/dist/migrations/first-published-at.js +51 -0
- package/dist/migrations/first-published-at.js.map +1 -0
- package/dist/migrations/first-published-at.mjs +49 -0
- package/dist/migrations/first-published-at.mjs.map +1 -0
- package/dist/migrations/i18n.js +71 -0
- package/dist/migrations/i18n.js.map +1 -0
- package/dist/migrations/i18n.mjs +68 -0
- package/dist/migrations/i18n.mjs.map +1 -0
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/index.js +34 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/index.mjs +31 -0
- package/dist/migrations/index.mjs.map +1 -0
- package/dist/package.json.js +186 -0
- package/dist/package.json.js.map +1 -0
- package/dist/package.json.mjs +163 -0
- package/dist/package.json.mjs.map +1 -0
- package/dist/providers/admin.js +30 -0
- package/dist/providers/admin.js.map +1 -0
- package/dist/providers/admin.mjs +28 -0
- package/dist/providers/admin.mjs.map +1 -0
- package/dist/providers/coreStore.js +16 -0
- package/dist/providers/coreStore.js.map +1 -0
- package/dist/providers/coreStore.mjs +14 -0
- package/dist/providers/coreStore.mjs.map +1 -0
- package/dist/providers/cron.js +23 -0
- package/dist/providers/cron.js.map +1 -0
- package/dist/providers/cron.mjs +21 -0
- package/dist/providers/cron.mjs.map +1 -0
- package/dist/providers/index.js +20 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/index.mjs +18 -0
- package/dist/providers/index.mjs.map +1 -0
- package/dist/providers/provider.js +6 -0
- package/dist/providers/provider.js.map +1 -0
- package/dist/providers/provider.mjs +4 -0
- package/dist/providers/provider.mjs.map +1 -0
- package/dist/providers/registries.js +40 -0
- package/dist/providers/registries.js.map +1 -0
- package/dist/providers/registries.mjs +38 -0
- package/dist/providers/registries.mjs.map +1 -0
- package/dist/providers/telemetry.js +22 -0
- package/dist/providers/telemetry.js.map +1 -0
- package/dist/providers/telemetry.mjs +20 -0
- package/dist/providers/telemetry.mjs.map +1 -0
- package/dist/providers/webhooks.js +32 -0
- package/dist/providers/webhooks.js.map +1 -0
- package/dist/providers/webhooks.mjs +30 -0
- package/dist/providers/webhooks.mjs.map +1 -0
- package/dist/registries/apis.js +26 -0
- package/dist/registries/apis.js.map +1 -0
- package/dist/registries/apis.mjs +24 -0
- package/dist/registries/apis.mjs.map +1 -0
- package/dist/registries/components.js +43 -0
- package/dist/registries/components.js.map +1 -0
- package/dist/registries/components.mjs +41 -0
- package/dist/registries/components.mjs.map +1 -0
- package/dist/registries/content-types.js +65 -0
- package/dist/registries/content-types.js.map +1 -0
- package/dist/registries/content-types.mjs +63 -0
- package/dist/registries/content-types.mjs.map +1 -0
- package/dist/registries/controllers.js +79 -0
- package/dist/registries/controllers.js.map +1 -0
- package/dist/registries/controllers.mjs +77 -0
- package/dist/registries/controllers.mjs.map +1 -0
- package/dist/registries/custom-fields.js +81 -0
- package/dist/registries/custom-fields.js.map +1 -0
- package/dist/registries/custom-fields.mjs +79 -0
- package/dist/registries/custom-fields.mjs.map +1 -0
- package/dist/registries/hooks.js +55 -0
- package/dist/registries/hooks.js.map +1 -0
- package/dist/registries/hooks.mjs +53 -0
- package/dist/registries/hooks.mjs.map +1 -0
- package/dist/registries/middlewares.js +58 -0
- package/dist/registries/middlewares.js.map +1 -0
- package/dist/registries/middlewares.mjs +56 -0
- package/dist/registries/middlewares.mjs.map +1 -0
- package/dist/registries/models.js +17 -0
- package/dist/registries/models.js.map +1 -0
- package/dist/registries/models.mjs +15 -0
- package/dist/registries/models.mjs.map +1 -0
- package/dist/registries/modules.js +42 -0
- package/dist/registries/modules.js.map +1 -0
- package/dist/registries/modules.mjs +40 -0
- package/dist/registries/modules.mjs.map +1 -0
- package/dist/registries/namespace.js +28 -0
- package/dist/registries/namespace.js.map +1 -0
- package/dist/registries/namespace.mjs +24 -0
- package/dist/registries/namespace.mjs.map +1 -0
- package/dist/registries/plugins.js +26 -0
- package/dist/registries/plugins.js.map +1 -0
- package/dist/registries/plugins.mjs +24 -0
- package/dist/registries/plugins.mjs.map +1 -0
- package/dist/registries/policies.js +115 -0
- package/dist/registries/policies.js.map +1 -0
- package/dist/registries/policies.mjs +113 -0
- package/dist/registries/policies.mjs.map +1 -0
- package/dist/registries/sanitizers.js +26 -0
- package/dist/registries/sanitizers.js.map +1 -0
- package/dist/registries/sanitizers.mjs +24 -0
- package/dist/registries/sanitizers.mjs.map +1 -0
- package/dist/registries/services.js +80 -0
- package/dist/registries/services.js.map +1 -0
- package/dist/registries/services.mjs +78 -0
- package/dist/registries/services.mjs.map +1 -0
- package/dist/registries/validators.js +26 -0
- package/dist/registries/validators.js.map +1 -0
- package/dist/registries/validators.mjs +24 -0
- package/dist/registries/validators.mjs.map +1 -0
- package/dist/services/auth/index.js +81 -0
- package/dist/services/auth/index.js.map +1 -0
- package/dist/services/auth/index.mjs +79 -0
- package/dist/services/auth/index.mjs.map +1 -0
- package/dist/services/config.js +51 -0
- package/dist/services/config.js.map +1 -0
- package/dist/services/config.mjs +49 -0
- package/dist/services/config.mjs.map +1 -0
- package/dist/services/content-api/index.d.ts +1 -1
- package/dist/services/content-api/index.d.ts.map +1 -1
- package/dist/services/content-api/index.js +86 -0
- package/dist/services/content-api/index.js.map +1 -0
- package/dist/services/content-api/index.mjs +84 -0
- package/dist/services/content-api/index.mjs.map +1 -0
- package/dist/services/content-api/permissions/engine.js +10 -0
- package/dist/services/content-api/permissions/engine.js.map +1 -0
- package/dist/services/content-api/permissions/engine.mjs +8 -0
- package/dist/services/content-api/permissions/engine.mjs.map +1 -0
- package/dist/services/content-api/permissions/index.js +107 -0
- package/dist/services/content-api/permissions/index.js.map +1 -0
- package/dist/services/content-api/permissions/index.mjs +105 -0
- package/dist/services/content-api/permissions/index.mjs.map +1 -0
- package/dist/services/content-api/permissions/providers/action.js +19 -0
- package/dist/services/content-api/permissions/providers/action.js.map +1 -0
- package/dist/services/content-api/permissions/providers/action.mjs +17 -0
- package/dist/services/content-api/permissions/providers/action.mjs.map +1 -0
- package/dist/services/content-api/permissions/providers/condition.js +19 -0
- package/dist/services/content-api/permissions/providers/condition.js.map +1 -0
- package/dist/services/content-api/permissions/providers/condition.mjs +17 -0
- package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -0
- package/dist/services/content-source-maps.d.ts +12 -0
- package/dist/services/content-source-maps.d.ts.map +1 -0
- package/dist/services/content-source-maps.js +86 -0
- package/dist/services/content-source-maps.js.map +1 -0
- package/dist/services/content-source-maps.mjs +84 -0
- package/dist/services/content-source-maps.mjs.map +1 -0
- package/dist/services/core-store.d.ts +2 -2
- package/dist/services/core-store.d.ts.map +1 -1
- package/dist/services/core-store.js +127 -0
- package/dist/services/core-store.js.map +1 -0
- package/dist/services/core-store.mjs +124 -0
- package/dist/services/core-store.mjs.map +1 -0
- package/dist/services/cron.js +77 -0
- package/dist/services/cron.js.map +1 -0
- package/dist/services/cron.mjs +75 -0
- package/dist/services/cron.mjs.map +1 -0
- package/dist/services/custom-fields.js +12 -0
- package/dist/services/custom-fields.js.map +1 -0
- package/dist/services/custom-fields.mjs +10 -0
- package/dist/services/custom-fields.mjs.map +1 -0
- package/dist/services/document-service/attributes/index.js +27 -0
- package/dist/services/document-service/attributes/index.js.map +1 -0
- package/dist/services/document-service/attributes/index.mjs +25 -0
- package/dist/services/document-service/attributes/index.mjs.map +1 -0
- package/dist/services/document-service/attributes/transforms.js +21 -0
- package/dist/services/document-service/attributes/transforms.js.map +1 -0
- package/dist/services/document-service/attributes/transforms.mjs +19 -0
- package/dist/services/document-service/attributes/transforms.mjs.map +1 -0
- package/dist/services/document-service/common.js +8 -0
- package/dist/services/document-service/common.js.map +1 -0
- package/dist/services/document-service/common.mjs +6 -0
- package/dist/services/document-service/common.mjs.map +1 -0
- package/dist/services/document-service/components.js +286 -0
- package/dist/services/document-service/components.js.map +1 -0
- package/dist/services/document-service/components.mjs +278 -0
- package/dist/services/document-service/components.mjs.map +1 -0
- package/dist/services/document-service/draft-and-publish.js +109 -0
- package/dist/services/document-service/draft-and-publish.js.map +1 -0
- package/dist/services/document-service/draft-and-publish.mjs +102 -0
- package/dist/services/document-service/draft-and-publish.mjs.map +1 -0
- package/dist/services/document-service/entries.d.ts.map +1 -1
- package/dist/services/document-service/entries.js +155 -0
- package/dist/services/document-service/entries.js.map +1 -0
- package/dist/services/document-service/entries.mjs +153 -0
- package/dist/services/document-service/entries.mjs.map +1 -0
- package/dist/services/document-service/events.js +59 -0
- package/dist/services/document-service/events.js.map +1 -0
- package/dist/services/document-service/events.mjs +57 -0
- package/dist/services/document-service/events.mjs.map +1 -0
- package/dist/services/document-service/first-published-at.d.ts +7 -0
- package/dist/services/document-service/first-published-at.d.ts.map +1 -0
- package/dist/services/document-service/first-published-at.js +31 -0
- package/dist/services/document-service/first-published-at.js.map +1 -0
- package/dist/services/document-service/first-published-at.mjs +28 -0
- package/dist/services/document-service/first-published-at.mjs.map +1 -0
- package/dist/services/document-service/index.js +56 -0
- package/dist/services/document-service/index.js.map +1 -0
- package/dist/services/document-service/index.mjs +54 -0
- package/dist/services/document-service/index.mjs.map +1 -0
- package/dist/services/document-service/internationalization.d.ts +6 -1
- package/dist/services/document-service/internationalization.d.ts.map +1 -1
- package/dist/services/document-service/internationalization.js +111 -0
- package/dist/services/document-service/internationalization.js.map +1 -0
- package/dist/services/document-service/internationalization.mjs +105 -0
- package/dist/services/document-service/internationalization.mjs.map +1 -0
- package/dist/services/document-service/middlewares/errors.js +29 -0
- package/dist/services/document-service/middlewares/errors.js.map +1 -0
- package/dist/services/document-service/middlewares/errors.mjs +27 -0
- package/dist/services/document-service/middlewares/errors.mjs.map +1 -0
- package/dist/services/document-service/middlewares/middleware-manager.js +51 -0
- package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -0
- package/dist/services/document-service/middlewares/middleware-manager.mjs +49 -0
- package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -0
- package/dist/services/document-service/params.js +14 -0
- package/dist/services/document-service/params.js.map +1 -0
- package/dist/services/document-service/params.mjs +12 -0
- package/dist/services/document-service/params.mjs.map +1 -0
- package/dist/services/document-service/repository.d.ts.map +1 -1
- package/dist/services/document-service/repository.js +368 -0
- package/dist/services/document-service/repository.js.map +1 -0
- package/dist/services/document-service/repository.mjs +366 -0
- package/dist/services/document-service/repository.mjs.map +1 -0
- package/dist/services/document-service/transform/data.js +25 -0
- package/dist/services/document-service/transform/data.js.map +1 -0
- package/dist/services/document-service/transform/data.mjs +23 -0
- package/dist/services/document-service/transform/data.mjs.map +1 -0
- package/dist/services/document-service/transform/fields.js +33 -0
- package/dist/services/document-service/transform/fields.js.map +1 -0
- package/dist/services/document-service/transform/fields.mjs +31 -0
- package/dist/services/document-service/transform/fields.mjs.map +1 -0
- package/dist/services/document-service/transform/id-map.js +125 -0
- package/dist/services/document-service/transform/id-map.js.map +1 -0
- package/dist/services/document-service/transform/id-map.mjs +123 -0
- package/dist/services/document-service/transform/id-map.mjs.map +1 -0
- package/dist/services/document-service/transform/id-transform.js +41 -0
- package/dist/services/document-service/transform/id-transform.js.map +1 -0
- package/dist/services/document-service/transform/id-transform.mjs +39 -0
- package/dist/services/document-service/transform/id-transform.mjs.map +1 -0
- package/dist/services/document-service/transform/populate.js +26 -0
- package/dist/services/document-service/transform/populate.js.map +1 -0
- package/dist/services/document-service/transform/populate.mjs +24 -0
- package/dist/services/document-service/transform/populate.mjs.map +1 -0
- package/dist/services/document-service/transform/query.js +14 -0
- package/dist/services/document-service/transform/query.js.map +1 -0
- package/dist/services/document-service/transform/query.mjs +12 -0
- package/dist/services/document-service/transform/query.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.js +80 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.mjs +78 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.js +110 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.mjs +108 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/transform/default-locale.js +50 -0
- package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -0
- package/dist/services/document-service/transform/relations/transform/default-locale.mjs +48 -0
- package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/utils/dp.js +56 -0
- package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -0
- package/dist/services/document-service/transform/relations/utils/dp.mjs +54 -0
- package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/utils/i18n.js +27 -0
- package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -0
- package/dist/services/document-service/transform/relations/utils/i18n.mjs +23 -0
- package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/utils/map-relation.js +130 -0
- package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -0
- package/dist/services/document-service/transform/relations/utils/map-relation.mjs +127 -0
- package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -0
- package/dist/services/document-service/utils/bidirectional-relations.d.ts.map +1 -1
- package/dist/services/document-service/utils/bidirectional-relations.js +148 -0
- package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -0
- package/dist/services/document-service/utils/bidirectional-relations.mjs +145 -0
- package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -0
- package/dist/services/document-service/utils/populate.js +71 -0
- package/dist/services/document-service/utils/populate.js.map +1 -0
- package/dist/services/document-service/utils/populate.mjs +69 -0
- package/dist/services/document-service/utils/populate.mjs.map +1 -0
- package/dist/services/document-service/utils/unidirectional-relations.d.ts +6 -1
- package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -1
- package/dist/services/document-service/utils/unidirectional-relations.js +171 -0
- package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -0
- package/dist/services/document-service/utils/unidirectional-relations.mjs +168 -0
- package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -0
- package/dist/services/entity-service/index.js +238 -0
- package/dist/services/entity-service/index.js.map +1 -0
- package/dist/services/entity-service/index.mjs +236 -0
- package/dist/services/entity-service/index.mjs.map +1 -0
- package/dist/services/entity-validator/blocks-validator.js +160 -0
- package/dist/services/entity-validator/blocks-validator.js.map +1 -0
- package/dist/services/entity-validator/blocks-validator.mjs +158 -0
- package/dist/services/entity-validator/blocks-validator.mjs.map +1 -0
- package/dist/services/entity-validator/index.d.ts.map +1 -1
- package/dist/services/entity-validator/index.js +393 -0
- package/dist/services/entity-validator/index.js.map +1 -0
- package/dist/services/entity-validator/index.mjs +391 -0
- package/dist/services/entity-validator/index.mjs.map +1 -0
- package/dist/services/entity-validator/validators.d.ts +1 -0
- package/dist/services/entity-validator/validators.d.ts.map +1 -1
- package/dist/services/entity-validator/validators.js +302 -0
- package/dist/services/entity-validator/validators.js.map +1 -0
- package/dist/services/entity-validator/validators.mjs +293 -0
- package/dist/services/entity-validator/validators.mjs.map +1 -0
- package/dist/services/errors.js +76 -0
- package/dist/services/errors.js.map +1 -0
- package/dist/services/errors.mjs +72 -0
- package/dist/services/errors.mjs.map +1 -0
- package/dist/services/event-hub.js +85 -0
- package/dist/services/event-hub.js.map +1 -0
- package/dist/services/event-hub.mjs +83 -0
- package/dist/services/event-hub.mjs.map +1 -0
- package/dist/services/features.js +22 -0
- package/dist/services/features.js.map +1 -0
- package/dist/services/features.mjs +20 -0
- package/dist/services/features.mjs.map +1 -0
- package/dist/services/fs.js +52 -0
- package/dist/services/fs.js.map +1 -0
- package/dist/services/fs.mjs +50 -0
- package/dist/services/fs.mjs.map +1 -0
- package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
- package/dist/services/metrics/admin-user-hash.js +16 -0
- package/dist/services/metrics/admin-user-hash.js.map +1 -0
- package/dist/services/metrics/admin-user-hash.mjs +14 -0
- package/dist/services/metrics/admin-user-hash.mjs.map +1 -0
- package/dist/services/metrics/index.d.ts +1 -1
- package/dist/services/metrics/index.d.ts.map +1 -1
- package/dist/services/metrics/index.js +52 -0
- package/dist/services/metrics/index.js.map +1 -0
- package/dist/services/metrics/index.mjs +50 -0
- package/dist/services/metrics/index.mjs.map +1 -0
- package/dist/services/metrics/is-truthy.js +16 -0
- package/dist/services/metrics/is-truthy.js.map +1 -0
- package/dist/services/metrics/is-truthy.mjs +14 -0
- package/dist/services/metrics/is-truthy.mjs.map +1 -0
- package/dist/services/metrics/middleware.js +40 -0
- package/dist/services/metrics/middleware.js.map +1 -0
- package/dist/services/metrics/middleware.mjs +38 -0
- package/dist/services/metrics/middleware.mjs.map +1 -0
- package/dist/services/metrics/rate-limiter.js +26 -0
- package/dist/services/metrics/rate-limiter.js.map +1 -0
- package/dist/services/metrics/rate-limiter.mjs +24 -0
- package/dist/services/metrics/rate-limiter.mjs.map +1 -0
- package/dist/services/metrics/sender.d.ts.map +1 -1
- package/dist/services/metrics/sender.js +85 -0
- package/dist/services/metrics/sender.js.map +1 -0
- package/dist/services/metrics/sender.mjs +83 -0
- package/dist/services/metrics/sender.mjs.map +1 -0
- package/dist/services/query-params.js +15 -0
- package/dist/services/query-params.js.map +1 -0
- package/dist/services/query-params.mjs +13 -0
- package/dist/services/query-params.mjs.map +1 -0
- package/dist/services/reloader.js +39 -0
- package/dist/services/reloader.js.map +1 -0
- package/dist/services/reloader.mjs +37 -0
- package/dist/services/reloader.mjs.map +1 -0
- package/dist/services/request-context.js +16 -0
- package/dist/services/request-context.js.map +1 -0
- package/dist/services/request-context.mjs +14 -0
- package/dist/services/request-context.mjs.map +1 -0
- package/dist/services/server/admin-api.js +14 -0
- package/dist/services/server/admin-api.js.map +1 -0
- package/dist/services/server/admin-api.mjs +12 -0
- package/dist/services/server/admin-api.mjs.map +1 -0
- package/dist/services/server/api.js +36 -0
- package/dist/services/server/api.js.map +1 -0
- package/dist/services/server/api.mjs +34 -0
- package/dist/services/server/api.mjs.map +1 -0
- package/dist/services/server/compose-endpoint.js +128 -0
- package/dist/services/server/compose-endpoint.js.map +1 -0
- package/dist/services/server/compose-endpoint.mjs +126 -0
- package/dist/services/server/compose-endpoint.mjs.map +1 -0
- package/dist/services/server/content-api.js +14 -0
- package/dist/services/server/content-api.js.map +1 -0
- package/dist/services/server/content-api.mjs +12 -0
- package/dist/services/server/content-api.mjs.map +1 -0
- package/dist/services/server/http-server.js +54 -0
- package/dist/services/server/http-server.js.map +1 -0
- package/dist/services/server/http-server.mjs +52 -0
- package/dist/services/server/http-server.mjs.map +1 -0
- package/dist/services/server/index.js +90 -0
- package/dist/services/server/index.js.map +1 -0
- package/dist/services/server/index.mjs +88 -0
- package/dist/services/server/index.mjs.map +1 -0
- package/dist/services/server/koa.js +54 -0
- package/dist/services/server/koa.js.map +1 -0
- package/dist/services/server/koa.mjs +52 -0
- package/dist/services/server/koa.mjs.map +1 -0
- package/dist/services/server/middleware.js +96 -0
- package/dist/services/server/middleware.js.map +1 -0
- package/dist/services/server/middleware.mjs +93 -0
- package/dist/services/server/middleware.mjs.map +1 -0
- package/dist/services/server/policy.js +27 -0
- package/dist/services/server/policy.js.map +1 -0
- package/dist/services/server/policy.mjs +25 -0
- package/dist/services/server/policy.mjs.map +1 -0
- package/dist/services/server/register-middlewares.js +79 -0
- package/dist/services/server/register-middlewares.js.map +1 -0
- package/dist/services/server/register-middlewares.mjs +77 -0
- package/dist/services/server/register-middlewares.mjs.map +1 -0
- package/dist/services/server/register-routes.js +119 -0
- package/dist/services/server/register-routes.js.map +1 -0
- package/dist/services/server/register-routes.mjs +117 -0
- package/dist/services/server/register-routes.mjs.map +1 -0
- package/dist/services/server/routing.d.ts +10 -0
- package/dist/services/server/routing.d.ts.map +1 -1
- package/dist/services/server/routing.js +110 -0
- package/dist/services/server/routing.js.map +1 -0
- package/dist/services/server/routing.mjs +107 -0
- package/dist/services/server/routing.mjs.map +1 -0
- package/dist/services/utils/conditional-fields.d.ts +3 -0
- package/dist/services/utils/conditional-fields.d.ts.map +1 -0
- package/dist/services/utils/conditional-fields.js +22 -0
- package/dist/services/utils/conditional-fields.js.map +1 -0
- package/dist/services/utils/conditional-fields.mjs +20 -0
- package/dist/services/utils/conditional-fields.mjs.map +1 -0
- package/dist/services/utils/dynamic-zones.js +16 -0
- package/dist/services/utils/dynamic-zones.js.map +1 -0
- package/dist/services/utils/dynamic-zones.mjs +14 -0
- package/dist/services/utils/dynamic-zones.mjs.map +1 -0
- package/dist/services/webhook-runner.js +135 -0
- package/dist/services/webhook-runner.js.map +1 -0
- package/dist/services/webhook-runner.mjs +133 -0
- package/dist/services/webhook-runner.mjs.map +1 -0
- package/dist/services/webhook-store.js +143 -0
- package/dist/services/webhook-store.js.map +1 -0
- package/dist/services/webhook-store.mjs +140 -0
- package/dist/services/webhook-store.mjs.map +1 -0
- package/dist/services/worker-queue.js +51 -0
- package/dist/services/worker-queue.js.map +1 -0
- package/dist/services/worker-queue.mjs +49 -0
- package/dist/services/worker-queue.mjs.map +1 -0
- package/dist/utils/convert-custom-field-type.js +21 -0
- package/dist/utils/convert-custom-field-type.js.map +1 -0
- package/dist/utils/convert-custom-field-type.mjs +19 -0
- package/dist/utils/convert-custom-field-type.mjs.map +1 -0
- package/dist/utils/cron.js +72 -0
- package/dist/utils/cron.js.map +1 -0
- package/dist/utils/cron.mjs +70 -0
- package/dist/utils/cron.mjs.map +1 -0
- package/dist/utils/fetch.d.ts +5 -1
- package/dist/utils/fetch.d.ts.map +1 -1
- package/dist/utils/fetch.js +31 -0
- package/dist/utils/fetch.js.map +1 -0
- package/dist/utils/fetch.mjs +29 -0
- package/dist/utils/fetch.mjs.map +1 -0
- package/dist/utils/filepath-to-prop-path.js +25 -0
- package/dist/utils/filepath-to-prop-path.js.map +1 -0
- package/dist/utils/filepath-to-prop-path.mjs +23 -0
- package/dist/utils/filepath-to-prop-path.mjs.map +1 -0
- package/dist/utils/is-initialized.js +25 -0
- package/dist/utils/is-initialized.js.map +1 -0
- package/dist/utils/is-initialized.mjs +23 -0
- package/dist/utils/is-initialized.mjs.map +1 -0
- package/dist/utils/lifecycles.js +10 -0
- package/dist/utils/lifecycles.js.map +1 -0
- package/dist/utils/lifecycles.mjs +8 -0
- package/dist/utils/lifecycles.mjs.map +1 -0
- package/dist/utils/load-config-file.js +47 -0
- package/dist/utils/load-config-file.js.map +1 -0
- package/dist/utils/load-config-file.mjs +45 -0
- package/dist/utils/load-config-file.mjs.map +1 -0
- package/dist/utils/load-files.js +44 -0
- package/dist/utils/load-files.js.map +1 -0
- package/dist/utils/load-files.mjs +42 -0
- package/dist/utils/load-files.mjs.map +1 -0
- package/dist/utils/open-browser.js +11 -0
- package/dist/utils/open-browser.js.map +1 -0
- package/dist/utils/open-browser.mjs +9 -0
- package/dist/utils/open-browser.mjs.map +1 -0
- package/dist/utils/resolve-working-dirs.js +26 -0
- package/dist/utils/resolve-working-dirs.js.map +1 -0
- package/dist/utils/resolve-working-dirs.mjs +24 -0
- package/dist/utils/resolve-working-dirs.mjs.map +1 -0
- package/dist/utils/signals.js +23 -0
- package/dist/utils/signals.js.map +1 -0
- package/dist/utils/signals.mjs +21 -0
- package/dist/utils/signals.mjs.map +1 -0
- package/dist/utils/startup-logger.js +110 -0
- package/dist/utils/startup-logger.js.map +1 -0
- package/dist/utils/startup-logger.mjs +108 -0
- package/dist/utils/startup-logger.mjs.map +1 -0
- package/dist/utils/transform-content-types-to-models.d.ts +197 -0
- package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
- package/dist/utils/transform-content-types-to-models.js +377 -0
- package/dist/utils/transform-content-types-to-models.js.map +1 -0
- package/dist/utils/transform-content-types-to-models.mjs +365 -0
- package/dist/utils/transform-content-types-to-models.mjs.map +1 -0
- package/dist/utils/update-notifier/index.js +80 -0
- package/dist/utils/update-notifier/index.js.map +1 -0
- package/dist/utils/update-notifier/index.mjs +78 -0
- package/dist/utils/update-notifier/index.mjs.map +1 -0
- package/package.json +18 -14
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var strapiUtils = require('@strapi/utils');
|
|
4
|
+
var fp = require('lodash/fp');
|
|
5
|
+
var components = require('./components.js');
|
|
6
|
+
var idTransform = require('./transform/id-transform.js');
|
|
7
|
+
var query = require('./transform/query.js');
|
|
8
|
+
var params = require('./params.js');
|
|
9
|
+
var index = require('./attributes/index.js');
|
|
10
|
+
var data = require('./transform/data.js');
|
|
11
|
+
|
|
12
|
+
const createEntriesService = (uid, entityValidator)=>{
|
|
13
|
+
const contentType = strapi.contentType(uid);
|
|
14
|
+
async function createEntry(params$1 = {}) {
|
|
15
|
+
const { data, ...restParams } = await idTransform.transformParamsDocumentId(uid, params$1);
|
|
16
|
+
const query$1 = query.transformParamsToQuery(uid, params.pickSelectionParams(restParams)); // select / populate
|
|
17
|
+
// Validation
|
|
18
|
+
if (!data) {
|
|
19
|
+
throw new Error('Create requires data attribute');
|
|
20
|
+
}
|
|
21
|
+
// Check for uniqueness based on documentId and locale (if localized)
|
|
22
|
+
if (data.documentId) {
|
|
23
|
+
const i18nService = strapi.plugin('i18n')?.service('content-types');
|
|
24
|
+
const isLocalized = i18nService?.isLocalizedContentType(contentType) ?? false;
|
|
25
|
+
const hasDraftAndPublish = contentType.options?.draftAndPublish === true;
|
|
26
|
+
const whereClause = {
|
|
27
|
+
documentId: data.documentId
|
|
28
|
+
};
|
|
29
|
+
if (isLocalized) {
|
|
30
|
+
whereClause.locale = data.locale;
|
|
31
|
+
}
|
|
32
|
+
let publishedStateDescription = '';
|
|
33
|
+
if (hasDraftAndPublish) {
|
|
34
|
+
if (data.publishedAt) {
|
|
35
|
+
// Current entry is published, check for existing published entry
|
|
36
|
+
whereClause.publishedAt = {
|
|
37
|
+
$notNull: true
|
|
38
|
+
};
|
|
39
|
+
publishedStateDescription = 'published';
|
|
40
|
+
} else {
|
|
41
|
+
// Current entry is a draft, check for existing draft entry
|
|
42
|
+
whereClause.publishedAt = {
|
|
43
|
+
$null: true
|
|
44
|
+
};
|
|
45
|
+
publishedStateDescription = 'draft';
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
const existingEntry = await strapi.db.query(uid).findOne({
|
|
49
|
+
select: [
|
|
50
|
+
'id'
|
|
51
|
+
],
|
|
52
|
+
where: whereClause
|
|
53
|
+
});
|
|
54
|
+
if (existingEntry) {
|
|
55
|
+
let errorMsg = `A ${publishedStateDescription} entry with documentId "${data.documentId}"`;
|
|
56
|
+
if (isLocalized && data.locale) {
|
|
57
|
+
errorMsg += ` and locale "${data.locale}"`;
|
|
58
|
+
}
|
|
59
|
+
errorMsg += ` already exists for UID "${uid}". This combination must be unique.`;
|
|
60
|
+
throw new strapiUtils.errors.ApplicationError(errorMsg);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
const validData = await entityValidator.validateEntityCreation(contentType, data, {
|
|
64
|
+
// Note: publishedAt value will always be set when DP is disabled
|
|
65
|
+
isDraft: !params$1?.data?.publishedAt,
|
|
66
|
+
locale: params$1?.locale
|
|
67
|
+
});
|
|
68
|
+
// Component handling
|
|
69
|
+
const componentData = await components.createComponents(uid, validData);
|
|
70
|
+
const dataWithComponents = components.assignComponentData(contentType, componentData, validData);
|
|
71
|
+
const entryData = index.applyTransforms(contentType, dataWithComponents);
|
|
72
|
+
const doc = await strapi.db.query(uid).create({
|
|
73
|
+
...query$1,
|
|
74
|
+
data: entryData
|
|
75
|
+
});
|
|
76
|
+
return doc;
|
|
77
|
+
}
|
|
78
|
+
async function deleteEntry(id) {
|
|
79
|
+
const componentsToDelete = await components.getComponents(uid, {
|
|
80
|
+
id
|
|
81
|
+
});
|
|
82
|
+
const deletedEntry = await strapi.db.query(uid).delete({
|
|
83
|
+
where: {
|
|
84
|
+
id
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
await components.deleteComponents(uid, componentsToDelete, {
|
|
88
|
+
loadComponents: false
|
|
89
|
+
});
|
|
90
|
+
return deletedEntry;
|
|
91
|
+
}
|
|
92
|
+
async function updateEntry(entryToUpdate, params$1 = {}) {
|
|
93
|
+
const { data, ...restParams } = await idTransform.transformParamsDocumentId(uid, params$1);
|
|
94
|
+
const query$1 = query.transformParamsToQuery(uid, params.pickSelectionParams(restParams)); // select / populate
|
|
95
|
+
const validData = await entityValidator.validateEntityUpdate(contentType, data, {
|
|
96
|
+
isDraft: !params$1?.data?.publishedAt,
|
|
97
|
+
locale: params$1?.locale
|
|
98
|
+
}, entryToUpdate);
|
|
99
|
+
// Component handling
|
|
100
|
+
const componentData = await components.updateComponents(uid, entryToUpdate, validData);
|
|
101
|
+
const dataWithComponents = components.assignComponentData(contentType, componentData, validData);
|
|
102
|
+
const entryData = index.applyTransforms(contentType, dataWithComponents);
|
|
103
|
+
return strapi.db.query(uid).update({
|
|
104
|
+
...query$1,
|
|
105
|
+
where: {
|
|
106
|
+
id: entryToUpdate.id
|
|
107
|
+
},
|
|
108
|
+
data: entryData
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
async function publishEntry(entry, params = {}) {
|
|
112
|
+
return strapiUtils.async.pipe(fp.omit('id'), fp.assoc('publishedAt', new Date()), (draft)=>{
|
|
113
|
+
const opts = {
|
|
114
|
+
uid,
|
|
115
|
+
locale: draft.locale,
|
|
116
|
+
status: 'published',
|
|
117
|
+
allowMissingId: true
|
|
118
|
+
};
|
|
119
|
+
return data.transformData(draft, opts);
|
|
120
|
+
}, // Create the published entry
|
|
121
|
+
(draft)=>createEntry({
|
|
122
|
+
...params,
|
|
123
|
+
data: draft,
|
|
124
|
+
locale: draft.locale,
|
|
125
|
+
status: 'published'
|
|
126
|
+
}))(entry);
|
|
127
|
+
}
|
|
128
|
+
async function discardDraftEntry(entry, params = {}) {
|
|
129
|
+
return strapiUtils.async.pipe(fp.omit('id'), fp.assoc('publishedAt', null), (entry)=>{
|
|
130
|
+
const opts = {
|
|
131
|
+
uid,
|
|
132
|
+
locale: entry.locale,
|
|
133
|
+
status: 'draft',
|
|
134
|
+
allowMissingId: true
|
|
135
|
+
};
|
|
136
|
+
return data.transformData(entry, opts);
|
|
137
|
+
}, // Create the draft entry
|
|
138
|
+
(data)=>createEntry({
|
|
139
|
+
...params,
|
|
140
|
+
locale: data.locale,
|
|
141
|
+
data,
|
|
142
|
+
status: 'draft'
|
|
143
|
+
}))(entry);
|
|
144
|
+
}
|
|
145
|
+
return {
|
|
146
|
+
create: createEntry,
|
|
147
|
+
delete: deleteEntry,
|
|
148
|
+
update: updateEntry,
|
|
149
|
+
publish: publishEntry,
|
|
150
|
+
discardDraft: discardDraftEntry
|
|
151
|
+
};
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
exports.createEntriesService = createEntriesService;
|
|
155
|
+
//# sourceMappingURL=entries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entries.js","sources":["../../../src/services/document-service/entries.ts"],"sourcesContent":["import type { UID, Modules } from '@strapi/types';\nimport { async, errors } from '@strapi/utils';\nimport { assoc, omit } from 'lodash/fp';\n\nimport * as components from './components';\n\nimport { transformParamsDocumentId } from './transform/id-transform';\nimport { transformParamsToQuery } from './transform/query';\nimport { pickSelectionParams } from './params';\nimport { applyTransforms } from './attributes';\nimport { transformData } from './transform/data';\n\nconst createEntriesService = (\n uid: UID.ContentType,\n entityValidator: Modules.EntityValidator.EntityValidator\n) => {\n const contentType = strapi.contentType(uid);\n\n async function createEntry(params = {} as any) {\n const { data, ...restParams } = await transformParamsDocumentId(uid, params);\n const query = transformParamsToQuery(uid, pickSelectionParams(restParams) as any); // select / populate\n\n // Validation\n if (!data) {\n throw new Error('Create requires data attribute');\n }\n\n // Check for uniqueness based on documentId and locale (if localized)\n if (data.documentId) {\n const i18nService = strapi.plugin('i18n')?.service('content-types');\n const isLocalized = i18nService?.isLocalizedContentType(contentType) ?? false;\n const hasDraftAndPublish = contentType.options?.draftAndPublish === true;\n\n const whereClause: Record<string, unknown> = { documentId: data.documentId };\n\n if (isLocalized) {\n whereClause.locale = data.locale;\n }\n\n let publishedStateDescription = '';\n\n if (hasDraftAndPublish) {\n if (data.publishedAt) {\n // Current entry is published, check for existing published entry\n whereClause.publishedAt = { $notNull: true };\n publishedStateDescription = 'published';\n } else {\n // Current entry is a draft, check for existing draft entry\n whereClause.publishedAt = { $null: true };\n publishedStateDescription = 'draft';\n }\n }\n\n const existingEntry = await strapi.db.query(uid).findOne({\n select: ['id'],\n where: whereClause,\n });\n\n if (existingEntry) {\n let errorMsg = `A ${publishedStateDescription} entry with documentId \"${data.documentId}\"`;\n if (isLocalized && data.locale) {\n errorMsg += ` and locale \"${data.locale}\"`;\n }\n errorMsg += ` already exists for UID \"${uid}\". This combination must be unique.`;\n throw new errors.ApplicationError(errorMsg);\n }\n }\n\n const validData = await entityValidator.validateEntityCreation(contentType, data, {\n // Note: publishedAt value will always be set when DP is disabled\n isDraft: !params?.data?.publishedAt,\n locale: params?.locale,\n });\n\n // Component handling\n const componentData = await components.createComponents(uid, validData);\n const dataWithComponents = components.assignComponentData(\n contentType,\n componentData,\n validData\n );\n\n const entryData = applyTransforms(contentType, dataWithComponents);\n\n const doc = await strapi.db.query(uid).create({ ...query, data: entryData });\n\n return doc;\n }\n\n async function deleteEntry(id: number) {\n const componentsToDelete = await components.getComponents(uid, { id });\n\n const deletedEntry = await strapi.db.query(uid).delete({ where: { id } });\n\n await components.deleteComponents(uid, componentsToDelete as any, { loadComponents: false });\n\n return deletedEntry;\n }\n\n async function updateEntry(entryToUpdate: any, params = {} as any) {\n const { data, ...restParams } = await transformParamsDocumentId(uid, params);\n const query = transformParamsToQuery(uid, pickSelectionParams(restParams) as any); // select / populate\n\n const validData = await entityValidator.validateEntityUpdate(\n contentType,\n data,\n {\n isDraft: !params?.data?.publishedAt, // Always update the draft version\n locale: params?.locale,\n },\n entryToUpdate\n );\n // Component handling\n const componentData = await components.updateComponents(uid, entryToUpdate, validData as any);\n const dataWithComponents = components.assignComponentData(\n contentType,\n componentData,\n validData\n );\n\n const entryData = applyTransforms(contentType, dataWithComponents);\n\n return strapi.db\n .query(uid)\n .update({ ...query, where: { id: entryToUpdate.id }, data: entryData });\n }\n\n async function publishEntry(entry: any, params = {} as any) {\n return async.pipe(\n omit('id'),\n assoc('publishedAt', new Date()),\n (draft) => {\n const opts = { uid, locale: draft.locale, status: 'published', allowMissingId: true };\n return transformData(draft, opts);\n },\n // Create the published entry\n (draft) => createEntry({ ...params, data: draft, locale: draft.locale, status: 'published' })\n )(entry);\n }\n\n async function discardDraftEntry(entry: any, params = {} as any) {\n return async.pipe(\n omit('id'),\n assoc('publishedAt', null),\n (entry) => {\n const opts = { uid, locale: entry.locale, status: 'draft', allowMissingId: true };\n return transformData(entry, opts);\n },\n // Create the draft entry\n (data) => createEntry({ ...params, locale: data.locale, data, status: 'draft' })\n )(entry);\n }\n\n return {\n create: createEntry,\n delete: deleteEntry,\n update: updateEntry,\n publish: publishEntry,\n discardDraft: discardDraftEntry,\n };\n};\n\nexport { createEntriesService };\n"],"names":["createEntriesService","uid","entityValidator","contentType","strapi","createEntry","params","data","restParams","transformParamsDocumentId","query","transformParamsToQuery","pickSelectionParams","Error","documentId","i18nService","plugin","service","isLocalized","isLocalizedContentType","hasDraftAndPublish","options","draftAndPublish","whereClause","locale","publishedStateDescription","publishedAt","$notNull","$null","existingEntry","db","findOne","select","where","errorMsg","errors","ApplicationError","validData","validateEntityCreation","isDraft","componentData","components","dataWithComponents","entryData","applyTransforms","doc","create","deleteEntry","id","componentsToDelete","deletedEntry","delete","loadComponents","updateEntry","entryToUpdate","validateEntityUpdate","update","publishEntry","entry","async","pipe","omit","assoc","Date","draft","opts","status","allowMissingId","transformData","discardDraftEntry","publish","discardDraft"],"mappings":"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"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { errors, async } from '@strapi/utils';
|
|
2
|
+
import { omit, assoc } from 'lodash/fp';
|
|
3
|
+
import { createComponents, assignComponentData, getComponents, deleteComponents, updateComponents } from './components.mjs';
|
|
4
|
+
import { transformParamsDocumentId as curriedTransformParamsDocumentId } from './transform/id-transform.mjs';
|
|
5
|
+
import { transformParamsToQuery } from './transform/query.mjs';
|
|
6
|
+
import { pickSelectionParams } from './params.mjs';
|
|
7
|
+
import { applyTransforms } from './attributes/index.mjs';
|
|
8
|
+
import { transformData } from './transform/data.mjs';
|
|
9
|
+
|
|
10
|
+
const createEntriesService = (uid, entityValidator)=>{
|
|
11
|
+
const contentType = strapi.contentType(uid);
|
|
12
|
+
async function createEntry(params = {}) {
|
|
13
|
+
const { data, ...restParams } = await curriedTransformParamsDocumentId(uid, params);
|
|
14
|
+
const query = transformParamsToQuery(uid, pickSelectionParams(restParams)); // select / populate
|
|
15
|
+
// Validation
|
|
16
|
+
if (!data) {
|
|
17
|
+
throw new Error('Create requires data attribute');
|
|
18
|
+
}
|
|
19
|
+
// Check for uniqueness based on documentId and locale (if localized)
|
|
20
|
+
if (data.documentId) {
|
|
21
|
+
const i18nService = strapi.plugin('i18n')?.service('content-types');
|
|
22
|
+
const isLocalized = i18nService?.isLocalizedContentType(contentType) ?? false;
|
|
23
|
+
const hasDraftAndPublish = contentType.options?.draftAndPublish === true;
|
|
24
|
+
const whereClause = {
|
|
25
|
+
documentId: data.documentId
|
|
26
|
+
};
|
|
27
|
+
if (isLocalized) {
|
|
28
|
+
whereClause.locale = data.locale;
|
|
29
|
+
}
|
|
30
|
+
let publishedStateDescription = '';
|
|
31
|
+
if (hasDraftAndPublish) {
|
|
32
|
+
if (data.publishedAt) {
|
|
33
|
+
// Current entry is published, check for existing published entry
|
|
34
|
+
whereClause.publishedAt = {
|
|
35
|
+
$notNull: true
|
|
36
|
+
};
|
|
37
|
+
publishedStateDescription = 'published';
|
|
38
|
+
} else {
|
|
39
|
+
// Current entry is a draft, check for existing draft entry
|
|
40
|
+
whereClause.publishedAt = {
|
|
41
|
+
$null: true
|
|
42
|
+
};
|
|
43
|
+
publishedStateDescription = 'draft';
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
const existingEntry = await strapi.db.query(uid).findOne({
|
|
47
|
+
select: [
|
|
48
|
+
'id'
|
|
49
|
+
],
|
|
50
|
+
where: whereClause
|
|
51
|
+
});
|
|
52
|
+
if (existingEntry) {
|
|
53
|
+
let errorMsg = `A ${publishedStateDescription} entry with documentId "${data.documentId}"`;
|
|
54
|
+
if (isLocalized && data.locale) {
|
|
55
|
+
errorMsg += ` and locale "${data.locale}"`;
|
|
56
|
+
}
|
|
57
|
+
errorMsg += ` already exists for UID "${uid}". This combination must be unique.`;
|
|
58
|
+
throw new errors.ApplicationError(errorMsg);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const validData = await entityValidator.validateEntityCreation(contentType, data, {
|
|
62
|
+
// Note: publishedAt value will always be set when DP is disabled
|
|
63
|
+
isDraft: !params?.data?.publishedAt,
|
|
64
|
+
locale: params?.locale
|
|
65
|
+
});
|
|
66
|
+
// Component handling
|
|
67
|
+
const componentData = await createComponents(uid, validData);
|
|
68
|
+
const dataWithComponents = assignComponentData(contentType, componentData, validData);
|
|
69
|
+
const entryData = applyTransforms(contentType, dataWithComponents);
|
|
70
|
+
const doc = await strapi.db.query(uid).create({
|
|
71
|
+
...query,
|
|
72
|
+
data: entryData
|
|
73
|
+
});
|
|
74
|
+
return doc;
|
|
75
|
+
}
|
|
76
|
+
async function deleteEntry(id) {
|
|
77
|
+
const componentsToDelete = await getComponents(uid, {
|
|
78
|
+
id
|
|
79
|
+
});
|
|
80
|
+
const deletedEntry = await strapi.db.query(uid).delete({
|
|
81
|
+
where: {
|
|
82
|
+
id
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
await deleteComponents(uid, componentsToDelete, {
|
|
86
|
+
loadComponents: false
|
|
87
|
+
});
|
|
88
|
+
return deletedEntry;
|
|
89
|
+
}
|
|
90
|
+
async function updateEntry(entryToUpdate, params = {}) {
|
|
91
|
+
const { data, ...restParams } = await curriedTransformParamsDocumentId(uid, params);
|
|
92
|
+
const query = transformParamsToQuery(uid, pickSelectionParams(restParams)); // select / populate
|
|
93
|
+
const validData = await entityValidator.validateEntityUpdate(contentType, data, {
|
|
94
|
+
isDraft: !params?.data?.publishedAt,
|
|
95
|
+
locale: params?.locale
|
|
96
|
+
}, entryToUpdate);
|
|
97
|
+
// Component handling
|
|
98
|
+
const componentData = await updateComponents(uid, entryToUpdate, validData);
|
|
99
|
+
const dataWithComponents = assignComponentData(contentType, componentData, validData);
|
|
100
|
+
const entryData = applyTransforms(contentType, dataWithComponents);
|
|
101
|
+
return strapi.db.query(uid).update({
|
|
102
|
+
...query,
|
|
103
|
+
where: {
|
|
104
|
+
id: entryToUpdate.id
|
|
105
|
+
},
|
|
106
|
+
data: entryData
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
async function publishEntry(entry, params = {}) {
|
|
110
|
+
return async.pipe(omit('id'), assoc('publishedAt', new Date()), (draft)=>{
|
|
111
|
+
const opts = {
|
|
112
|
+
uid,
|
|
113
|
+
locale: draft.locale,
|
|
114
|
+
status: 'published',
|
|
115
|
+
allowMissingId: true
|
|
116
|
+
};
|
|
117
|
+
return transformData(draft, opts);
|
|
118
|
+
}, // Create the published entry
|
|
119
|
+
(draft)=>createEntry({
|
|
120
|
+
...params,
|
|
121
|
+
data: draft,
|
|
122
|
+
locale: draft.locale,
|
|
123
|
+
status: 'published'
|
|
124
|
+
}))(entry);
|
|
125
|
+
}
|
|
126
|
+
async function discardDraftEntry(entry, params = {}) {
|
|
127
|
+
return async.pipe(omit('id'), assoc('publishedAt', null), (entry)=>{
|
|
128
|
+
const opts = {
|
|
129
|
+
uid,
|
|
130
|
+
locale: entry.locale,
|
|
131
|
+
status: 'draft',
|
|
132
|
+
allowMissingId: true
|
|
133
|
+
};
|
|
134
|
+
return transformData(entry, opts);
|
|
135
|
+
}, // Create the draft entry
|
|
136
|
+
(data)=>createEntry({
|
|
137
|
+
...params,
|
|
138
|
+
locale: data.locale,
|
|
139
|
+
data,
|
|
140
|
+
status: 'draft'
|
|
141
|
+
}))(entry);
|
|
142
|
+
}
|
|
143
|
+
return {
|
|
144
|
+
create: createEntry,
|
|
145
|
+
delete: deleteEntry,
|
|
146
|
+
update: updateEntry,
|
|
147
|
+
publish: publishEntry,
|
|
148
|
+
discardDraft: discardDraftEntry
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
export { createEntriesService };
|
|
153
|
+
//# sourceMappingURL=entries.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entries.mjs","sources":["../../../src/services/document-service/entries.ts"],"sourcesContent":["import type { UID, Modules } from '@strapi/types';\nimport { async, errors } from '@strapi/utils';\nimport { assoc, omit } from 'lodash/fp';\n\nimport * as components from './components';\n\nimport { transformParamsDocumentId } from './transform/id-transform';\nimport { transformParamsToQuery } from './transform/query';\nimport { pickSelectionParams } from './params';\nimport { applyTransforms } from './attributes';\nimport { transformData } from './transform/data';\n\nconst createEntriesService = (\n uid: UID.ContentType,\n entityValidator: Modules.EntityValidator.EntityValidator\n) => {\n const contentType = strapi.contentType(uid);\n\n async function createEntry(params = {} as any) {\n const { data, ...restParams } = await transformParamsDocumentId(uid, params);\n const query = transformParamsToQuery(uid, pickSelectionParams(restParams) as any); // select / populate\n\n // Validation\n if (!data) {\n throw new Error('Create requires data attribute');\n }\n\n // Check for uniqueness based on documentId and locale (if localized)\n if (data.documentId) {\n const i18nService = strapi.plugin('i18n')?.service('content-types');\n const isLocalized = i18nService?.isLocalizedContentType(contentType) ?? false;\n const hasDraftAndPublish = contentType.options?.draftAndPublish === true;\n\n const whereClause: Record<string, unknown> = { documentId: data.documentId };\n\n if (isLocalized) {\n whereClause.locale = data.locale;\n }\n\n let publishedStateDescription = '';\n\n if (hasDraftAndPublish) {\n if (data.publishedAt) {\n // Current entry is published, check for existing published entry\n whereClause.publishedAt = { $notNull: true };\n publishedStateDescription = 'published';\n } else {\n // Current entry is a draft, check for existing draft entry\n whereClause.publishedAt = { $null: true };\n publishedStateDescription = 'draft';\n }\n }\n\n const existingEntry = await strapi.db.query(uid).findOne({\n select: ['id'],\n where: whereClause,\n });\n\n if (existingEntry) {\n let errorMsg = `A ${publishedStateDescription} entry with documentId \"${data.documentId}\"`;\n if (isLocalized && data.locale) {\n errorMsg += ` and locale \"${data.locale}\"`;\n }\n errorMsg += ` already exists for UID \"${uid}\". This combination must be unique.`;\n throw new errors.ApplicationError(errorMsg);\n }\n }\n\n const validData = await entityValidator.validateEntityCreation(contentType, data, {\n // Note: publishedAt value will always be set when DP is disabled\n isDraft: !params?.data?.publishedAt,\n locale: params?.locale,\n });\n\n // Component handling\n const componentData = await components.createComponents(uid, validData);\n const dataWithComponents = components.assignComponentData(\n contentType,\n componentData,\n validData\n );\n\n const entryData = applyTransforms(contentType, dataWithComponents);\n\n const doc = await strapi.db.query(uid).create({ ...query, data: entryData });\n\n return doc;\n }\n\n async function deleteEntry(id: number) {\n const componentsToDelete = await components.getComponents(uid, { id });\n\n const deletedEntry = await strapi.db.query(uid).delete({ where: { id } });\n\n await components.deleteComponents(uid, componentsToDelete as any, { loadComponents: false });\n\n return deletedEntry;\n }\n\n async function updateEntry(entryToUpdate: any, params = {} as any) {\n const { data, ...restParams } = await transformParamsDocumentId(uid, params);\n const query = transformParamsToQuery(uid, pickSelectionParams(restParams) as any); // select / populate\n\n const validData = await entityValidator.validateEntityUpdate(\n contentType,\n data,\n {\n isDraft: !params?.data?.publishedAt, // Always update the draft version\n locale: params?.locale,\n },\n entryToUpdate\n );\n // Component handling\n const componentData = await components.updateComponents(uid, entryToUpdate, validData as any);\n const dataWithComponents = components.assignComponentData(\n contentType,\n componentData,\n validData\n );\n\n const entryData = applyTransforms(contentType, dataWithComponents);\n\n return strapi.db\n .query(uid)\n .update({ ...query, where: { id: entryToUpdate.id }, data: entryData });\n }\n\n async function publishEntry(entry: any, params = {} as any) {\n return async.pipe(\n omit('id'),\n assoc('publishedAt', new Date()),\n (draft) => {\n const opts = { uid, locale: draft.locale, status: 'published', allowMissingId: true };\n return transformData(draft, opts);\n },\n // Create the published entry\n (draft) => createEntry({ ...params, data: draft, locale: draft.locale, status: 'published' })\n )(entry);\n }\n\n async function discardDraftEntry(entry: any, params = {} as any) {\n return async.pipe(\n omit('id'),\n assoc('publishedAt', null),\n (entry) => {\n const opts = { uid, locale: entry.locale, status: 'draft', allowMissingId: true };\n return transformData(entry, opts);\n },\n // Create the draft entry\n (data) => createEntry({ ...params, locale: data.locale, data, status: 'draft' })\n )(entry);\n }\n\n return {\n create: createEntry,\n delete: deleteEntry,\n update: updateEntry,\n publish: publishEntry,\n discardDraft: discardDraftEntry,\n };\n};\n\nexport { createEntriesService };\n"],"names":["createEntriesService","uid","entityValidator","contentType","strapi","createEntry","params","data","restParams","transformParamsDocumentId","query","transformParamsToQuery","pickSelectionParams","Error","documentId","i18nService","plugin","service","isLocalized","isLocalizedContentType","hasDraftAndPublish","options","draftAndPublish","whereClause","locale","publishedStateDescription","publishedAt","$notNull","$null","existingEntry","db","findOne","select","where","errorMsg","errors","ApplicationError","validData","validateEntityCreation","isDraft","componentData","components","dataWithComponents","entryData","applyTransforms","doc","create","deleteEntry","id","componentsToDelete","deletedEntry","delete","loadComponents","updateEntry","entryToUpdate","validateEntityUpdate","update","publishEntry","entry","async","pipe","omit","assoc","Date","draft","opts","status","allowMissingId","transformData","discardDraftEntry","publish","discardDraft"],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var strapiUtils = require('@strapi/utils');
|
|
4
|
+
var populate = require('./utils/populate.js');
|
|
5
|
+
|
|
6
|
+
const EVENTS = {
|
|
7
|
+
ENTRY_CREATE: 'entry.create',
|
|
8
|
+
ENTRY_UPDATE: 'entry.update',
|
|
9
|
+
ENTRY_DELETE: 'entry.delete',
|
|
10
|
+
ENTRY_PUBLISH: 'entry.publish',
|
|
11
|
+
ENTRY_UNPUBLISH: 'entry.unpublish',
|
|
12
|
+
ENTRY_DRAFT_DISCARD: 'entry.draft-discard'
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Manager to trigger entry related events
|
|
16
|
+
*
|
|
17
|
+
* It will populate the entry if it is not a delete event.
|
|
18
|
+
* So the event payload will contain the full entry.
|
|
19
|
+
*/ const createEventManager = (strapi, uid)=>{
|
|
20
|
+
const populate$1 = populate.getDeepPopulate(uid, {});
|
|
21
|
+
const model = strapi.getModel(uid);
|
|
22
|
+
const emitEvent = async (eventName, entry)=>{
|
|
23
|
+
// There is no need to populate the entry if it has been deleted
|
|
24
|
+
let populatedEntry = entry;
|
|
25
|
+
if (![
|
|
26
|
+
EVENTS.ENTRY_DELETE,
|
|
27
|
+
EVENTS.ENTRY_UNPUBLISH
|
|
28
|
+
].includes(eventName)) {
|
|
29
|
+
populatedEntry = await strapi.db.query(uid).findOne({
|
|
30
|
+
where: {
|
|
31
|
+
id: entry.id
|
|
32
|
+
},
|
|
33
|
+
populate: populate$1
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
const sanitizedEntry = await strapiUtils.sanitize.sanitizers.defaultSanitizeOutput({
|
|
37
|
+
schema: model,
|
|
38
|
+
getModel: (uid)=>strapi.getModel(uid)
|
|
39
|
+
}, populatedEntry);
|
|
40
|
+
await strapi.eventHub.emit(eventName, {
|
|
41
|
+
model: model.modelName,
|
|
42
|
+
uid: model.uid,
|
|
43
|
+
entry: sanitizedEntry
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
return {
|
|
47
|
+
/**
|
|
48
|
+
* strapi.db.query might reuse the transaction used in the doc service request,
|
|
49
|
+
* so this is executed after that transaction is committed.
|
|
50
|
+
*/ emitEvent (eventName, entry) {
|
|
51
|
+
strapi.db.transaction(({ onCommit })=>{
|
|
52
|
+
onCommit(()=>emitEvent(eventName, entry));
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
exports.createEventManager = createEventManager;
|
|
59
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sources":["../../../src/services/document-service/events.ts"],"sourcesContent":["import type { UID, Utils, Modules, Core } from '@strapi/types';\nimport { sanitize } from '@strapi/utils';\n\nimport { getDeepPopulate } from './utils/populate';\n\nconst EVENTS = {\n ENTRY_CREATE: 'entry.create',\n ENTRY_UPDATE: 'entry.update',\n ENTRY_DELETE: 'entry.delete',\n ENTRY_PUBLISH: 'entry.publish',\n ENTRY_UNPUBLISH: 'entry.unpublish',\n ENTRY_DRAFT_DISCARD: 'entry.draft-discard',\n};\n\ntype EventName = Utils.Object.Values<typeof EVENTS>;\n\n/**\n * Manager to trigger entry related events\n *\n * It will populate the entry if it is not a delete event.\n * So the event payload will contain the full entry.\n */\nconst createEventManager = (strapi: Core.Strapi, uid: UID.Schema) => {\n const populate = getDeepPopulate(uid, {});\n const model = strapi.getModel(uid);\n\n const emitEvent = async (eventName: EventName, entry: Modules.Documents.AnyDocument) => {\n // There is no need to populate the entry if it has been deleted\n let populatedEntry = entry;\n if (![EVENTS.ENTRY_DELETE, EVENTS.ENTRY_UNPUBLISH].includes(eventName)) {\n populatedEntry = await strapi.db.query(uid).findOne({ where: { id: entry.id }, populate });\n }\n\n const sanitizedEntry = await sanitize.sanitizers.defaultSanitizeOutput(\n {\n schema: model,\n getModel: (uid) => strapi.getModel(uid as UID.Schema),\n },\n populatedEntry\n );\n\n await strapi.eventHub.emit(eventName, {\n model: model.modelName,\n uid: model.uid,\n entry: sanitizedEntry,\n });\n };\n\n return {\n /**\n * strapi.db.query might reuse the transaction used in the doc service request,\n * so this is executed after that transaction is committed.\n */\n emitEvent(eventName: EventName, entry: Modules.Documents.AnyDocument) {\n strapi.db.transaction(({ onCommit }) => {\n onCommit(() => emitEvent(eventName, entry));\n });\n },\n };\n};\n\nexport { createEventManager };\n"],"names":["EVENTS","ENTRY_CREATE","ENTRY_UPDATE","ENTRY_DELETE","ENTRY_PUBLISH","ENTRY_UNPUBLISH","ENTRY_DRAFT_DISCARD","createEventManager","strapi","uid","populate","getDeepPopulate","model","getModel","emitEvent","eventName","entry","populatedEntry","includes","db","query","findOne","where","id","sanitizedEntry","sanitize","sanitizers","defaultSanitizeOutput","schema","eventHub","emit","modelName","transaction","onCommit"],"mappings":";;;;;AAKA,MAAMA,MAAS,GAAA;IACbC,YAAc,EAAA,cAAA;IACdC,YAAc,EAAA,cAAA;IACdC,YAAc,EAAA,cAAA;IACdC,aAAe,EAAA,eAAA;IACfC,eAAiB,EAAA,iBAAA;IACjBC,mBAAqB,EAAA;AACvB,CAAA;AAIA;;;;;IAMA,MAAMC,kBAAqB,GAAA,CAACC,MAAqBC,EAAAA,GAAAA,GAAAA;IAC/C,MAAMC,UAAAA,GAAWC,wBAAgBF,CAAAA,GAAAA,EAAK,EAAC,CAAA;IACvC,MAAMG,KAAAA,GAAQJ,MAAOK,CAAAA,QAAQ,CAACJ,GAAAA,CAAAA;IAE9B,MAAMK,SAAAA,GAAY,OAAOC,SAAsBC,EAAAA,KAAAA,GAAAA;;AAE7C,QAAA,IAAIC,cAAiBD,GAAAA,KAAAA;AACrB,QAAA,IAAI,CAAC;AAAChB,YAAAA,MAAAA,CAAOG,YAAY;AAAEH,YAAAA,MAAAA,CAAOK;SAAgB,CAACa,QAAQ,CAACH,SAAY,CAAA,EAAA;YACtEE,cAAiB,GAAA,MAAMT,OAAOW,EAAE,CAACC,KAAK,CAACX,GAAAA,CAAAA,CAAKY,OAAO,CAAC;gBAAEC,KAAO,EAAA;AAAEC,oBAAAA,EAAAA,EAAIP,MAAMO;AAAG,iBAAA;AAAGb,0BAAAA;AAAS,aAAA,CAAA;AAC1F;AAEA,QAAA,MAAMc,iBAAiB,MAAMC,oBAAAA,CAASC,UAAU,CAACC,qBAAqB,CACpE;YACEC,MAAQhB,EAAAA,KAAAA;AACRC,YAAAA,QAAAA,EAAU,CAACJ,GAAAA,GAAQD,MAAOK,CAAAA,QAAQ,CAACJ,GAAAA;SAErCQ,EAAAA,cAAAA,CAAAA;AAGF,QAAA,MAAMT,MAAOqB,CAAAA,QAAQ,CAACC,IAAI,CAACf,SAAW,EAAA;AACpCH,YAAAA,KAAAA,EAAOA,MAAMmB,SAAS;AACtBtB,YAAAA,GAAAA,EAAKG,MAAMH,GAAG;YACdO,KAAOQ,EAAAA;AACT,SAAA,CAAA;AACF,KAAA;IAEA,OAAO;AACL;;;QAIAV,SAAAA,CAAAA,CAAUC,SAAoB,EAAEC,KAAoC,EAAA;AAClER,YAAAA,MAAAA,CAAOW,EAAE,CAACa,WAAW,CAAC,CAAC,EAAEC,QAAQ,EAAE,GAAA;gBACjCA,QAAS,CAAA,IAAMnB,UAAUC,SAAWC,EAAAA,KAAAA,CAAAA,CAAAA;AACtC,aAAA,CAAA;AACF;AACF,KAAA;AACF;;;;"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { sanitize } from '@strapi/utils';
|
|
2
|
+
import { getDeepPopulate } from './utils/populate.mjs';
|
|
3
|
+
|
|
4
|
+
const EVENTS = {
|
|
5
|
+
ENTRY_CREATE: 'entry.create',
|
|
6
|
+
ENTRY_UPDATE: 'entry.update',
|
|
7
|
+
ENTRY_DELETE: 'entry.delete',
|
|
8
|
+
ENTRY_PUBLISH: 'entry.publish',
|
|
9
|
+
ENTRY_UNPUBLISH: 'entry.unpublish',
|
|
10
|
+
ENTRY_DRAFT_DISCARD: 'entry.draft-discard'
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Manager to trigger entry related events
|
|
14
|
+
*
|
|
15
|
+
* It will populate the entry if it is not a delete event.
|
|
16
|
+
* So the event payload will contain the full entry.
|
|
17
|
+
*/ const createEventManager = (strapi, uid)=>{
|
|
18
|
+
const populate = getDeepPopulate(uid, {});
|
|
19
|
+
const model = strapi.getModel(uid);
|
|
20
|
+
const emitEvent = async (eventName, entry)=>{
|
|
21
|
+
// There is no need to populate the entry if it has been deleted
|
|
22
|
+
let populatedEntry = entry;
|
|
23
|
+
if (![
|
|
24
|
+
EVENTS.ENTRY_DELETE,
|
|
25
|
+
EVENTS.ENTRY_UNPUBLISH
|
|
26
|
+
].includes(eventName)) {
|
|
27
|
+
populatedEntry = await strapi.db.query(uid).findOne({
|
|
28
|
+
where: {
|
|
29
|
+
id: entry.id
|
|
30
|
+
},
|
|
31
|
+
populate
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
const sanitizedEntry = await sanitize.sanitizers.defaultSanitizeOutput({
|
|
35
|
+
schema: model,
|
|
36
|
+
getModel: (uid)=>strapi.getModel(uid)
|
|
37
|
+
}, populatedEntry);
|
|
38
|
+
await strapi.eventHub.emit(eventName, {
|
|
39
|
+
model: model.modelName,
|
|
40
|
+
uid: model.uid,
|
|
41
|
+
entry: sanitizedEntry
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
return {
|
|
45
|
+
/**
|
|
46
|
+
* strapi.db.query might reuse the transaction used in the doc service request,
|
|
47
|
+
* so this is executed after that transaction is committed.
|
|
48
|
+
*/ emitEvent (eventName, entry) {
|
|
49
|
+
strapi.db.transaction(({ onCommit })=>{
|
|
50
|
+
onCommit(()=>emitEvent(eventName, entry));
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
export { createEventManager };
|
|
57
|
+
//# sourceMappingURL=events.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.mjs","sources":["../../../src/services/document-service/events.ts"],"sourcesContent":["import type { UID, Utils, Modules, Core } from '@strapi/types';\nimport { sanitize } from '@strapi/utils';\n\nimport { getDeepPopulate } from './utils/populate';\n\nconst EVENTS = {\n ENTRY_CREATE: 'entry.create',\n ENTRY_UPDATE: 'entry.update',\n ENTRY_DELETE: 'entry.delete',\n ENTRY_PUBLISH: 'entry.publish',\n ENTRY_UNPUBLISH: 'entry.unpublish',\n ENTRY_DRAFT_DISCARD: 'entry.draft-discard',\n};\n\ntype EventName = Utils.Object.Values<typeof EVENTS>;\n\n/**\n * Manager to trigger entry related events\n *\n * It will populate the entry if it is not a delete event.\n * So the event payload will contain the full entry.\n */\nconst createEventManager = (strapi: Core.Strapi, uid: UID.Schema) => {\n const populate = getDeepPopulate(uid, {});\n const model = strapi.getModel(uid);\n\n const emitEvent = async (eventName: EventName, entry: Modules.Documents.AnyDocument) => {\n // There is no need to populate the entry if it has been deleted\n let populatedEntry = entry;\n if (![EVENTS.ENTRY_DELETE, EVENTS.ENTRY_UNPUBLISH].includes(eventName)) {\n populatedEntry = await strapi.db.query(uid).findOne({ where: { id: entry.id }, populate });\n }\n\n const sanitizedEntry = await sanitize.sanitizers.defaultSanitizeOutput(\n {\n schema: model,\n getModel: (uid) => strapi.getModel(uid as UID.Schema),\n },\n populatedEntry\n );\n\n await strapi.eventHub.emit(eventName, {\n model: model.modelName,\n uid: model.uid,\n entry: sanitizedEntry,\n });\n };\n\n return {\n /**\n * strapi.db.query might reuse the transaction used in the doc service request,\n * so this is executed after that transaction is committed.\n */\n emitEvent(eventName: EventName, entry: Modules.Documents.AnyDocument) {\n strapi.db.transaction(({ onCommit }) => {\n onCommit(() => emitEvent(eventName, entry));\n });\n },\n };\n};\n\nexport { createEventManager };\n"],"names":["EVENTS","ENTRY_CREATE","ENTRY_UPDATE","ENTRY_DELETE","ENTRY_PUBLISH","ENTRY_UNPUBLISH","ENTRY_DRAFT_DISCARD","createEventManager","strapi","uid","populate","getDeepPopulate","model","getModel","emitEvent","eventName","entry","populatedEntry","includes","db","query","findOne","where","id","sanitizedEntry","sanitize","sanitizers","defaultSanitizeOutput","schema","eventHub","emit","modelName","transaction","onCommit"],"mappings":";;;AAKA,MAAMA,MAAS,GAAA;IACbC,YAAc,EAAA,cAAA;IACdC,YAAc,EAAA,cAAA;IACdC,YAAc,EAAA,cAAA;IACdC,aAAe,EAAA,eAAA;IACfC,eAAiB,EAAA,iBAAA;IACjBC,mBAAqB,EAAA;AACvB,CAAA;AAIA;;;;;IAMA,MAAMC,kBAAqB,GAAA,CAACC,MAAqBC,EAAAA,GAAAA,GAAAA;IAC/C,MAAMC,QAAAA,GAAWC,eAAgBF,CAAAA,GAAAA,EAAK,EAAC,CAAA;IACvC,MAAMG,KAAAA,GAAQJ,MAAOK,CAAAA,QAAQ,CAACJ,GAAAA,CAAAA;IAE9B,MAAMK,SAAAA,GAAY,OAAOC,SAAsBC,EAAAA,KAAAA,GAAAA;;AAE7C,QAAA,IAAIC,cAAiBD,GAAAA,KAAAA;AACrB,QAAA,IAAI,CAAC;AAAChB,YAAAA,MAAAA,CAAOG,YAAY;AAAEH,YAAAA,MAAAA,CAAOK;SAAgB,CAACa,QAAQ,CAACH,SAAY,CAAA,EAAA;YACtEE,cAAiB,GAAA,MAAMT,OAAOW,EAAE,CAACC,KAAK,CAACX,GAAAA,CAAAA,CAAKY,OAAO,CAAC;gBAAEC,KAAO,EAAA;AAAEC,oBAAAA,EAAAA,EAAIP,MAAMO;AAAG,iBAAA;AAAGb,gBAAAA;AAAS,aAAA,CAAA;AAC1F;AAEA,QAAA,MAAMc,iBAAiB,MAAMC,QAAAA,CAASC,UAAU,CAACC,qBAAqB,CACpE;YACEC,MAAQhB,EAAAA,KAAAA;AACRC,YAAAA,QAAAA,EAAU,CAACJ,GAAAA,GAAQD,MAAOK,CAAAA,QAAQ,CAACJ,GAAAA;SAErCQ,EAAAA,cAAAA,CAAAA;AAGF,QAAA,MAAMT,MAAOqB,CAAAA,QAAQ,CAACC,IAAI,CAACf,SAAW,EAAA;AACpCH,YAAAA,KAAAA,EAAOA,MAAMmB,SAAS;AACtBtB,YAAAA,GAAAA,EAAKG,MAAMH,GAAG;YACdO,KAAOQ,EAAAA;AACT,SAAA,CAAA;AACF,KAAA;IAEA,OAAO;AACL;;;QAIAV,SAAAA,CAAAA,CAAUC,SAAoB,EAAEC,KAAoC,EAAA;AAClER,YAAAA,MAAAA,CAAOW,EAAE,CAACa,WAAW,CAAC,CAAC,EAAEC,QAAQ,EAAE,GAAA;gBACjCA,QAAS,CAAA,IAAMnB,UAAUC,SAAWC,EAAAA,KAAAA,CAAAA,CAAAA;AACtC,aAAA,CAAA;AACF;AACF,KAAA;AACF;;;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Modules, Schema } from '@strapi/types';
|
|
2
|
+
type EntriesUpdate = (entryToUpdate: any, param?: any) => Promise<any>;
|
|
3
|
+
type ParamsTransform = (params: Modules.Documents.Params.All) => Modules.Documents.Params.All;
|
|
4
|
+
declare const addFirstPublishedAtToDraft: (draft: any, update: EntriesUpdate, contentType: Schema.ContentType) => Promise<any>;
|
|
5
|
+
declare const filterDataFirstPublishedAt: ParamsTransform;
|
|
6
|
+
export { addFirstPublishedAtToDraft, filterDataFirstPublishedAt };
|
|
7
|
+
//# sourceMappingURL=first-published-at.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"first-published-at.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/first-published-at.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAErD,KAAK,aAAa,GAAG,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AACvE,KAAK,eAAe,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;AAE9F,QAAA,MAAM,0BAA0B,UACvB,GAAG,UACF,aAAa,eACR,OAAO,WAAW,iBAehC,CAAC;AAEF,QAAA,MAAM,0BAA0B,EAAE,eAMjC,CAAC;AAEF,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var strapiUtils = require('@strapi/utils');
|
|
4
|
+
var fp = require('lodash/fp');
|
|
5
|
+
|
|
6
|
+
const addFirstPublishedAtToDraft = async (draft, update, contentType)=>{
|
|
7
|
+
if (!strapiUtils.contentTypes.hasFirstPublishedAtField(contentType)) {
|
|
8
|
+
return draft;
|
|
9
|
+
}
|
|
10
|
+
if (draft.firstPublishedAt) {
|
|
11
|
+
return draft;
|
|
12
|
+
}
|
|
13
|
+
return update(draft, {
|
|
14
|
+
data: {
|
|
15
|
+
firstPublishedAt: Date.now()
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
const filterDataFirstPublishedAt = (params)=>{
|
|
20
|
+
if (params?.data?.firstPublishedAt) {
|
|
21
|
+
return fp.assoc([
|
|
22
|
+
'data',
|
|
23
|
+
'firstPublishedAt'
|
|
24
|
+
], null, params);
|
|
25
|
+
}
|
|
26
|
+
return params;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
exports.addFirstPublishedAtToDraft = addFirstPublishedAtToDraft;
|
|
30
|
+
exports.filterDataFirstPublishedAt = filterDataFirstPublishedAt;
|
|
31
|
+
//# sourceMappingURL=first-published-at.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"first-published-at.js","sources":["../../../src/services/document-service/first-published-at.ts"],"sourcesContent":["import { contentTypes } from '@strapi/utils';\nimport { assoc } from 'lodash/fp';\nimport type { Modules, Schema } from '@strapi/types';\n\ntype EntriesUpdate = (entryToUpdate: any, param?: any) => Promise<any>;\ntype ParamsTransform = (params: Modules.Documents.Params.All) => Modules.Documents.Params.All;\n\nconst addFirstPublishedAtToDraft = async (\n draft: any,\n update: EntriesUpdate,\n contentType: Schema.ContentType\n) => {\n if (!contentTypes.hasFirstPublishedAtField(contentType)) {\n return draft;\n }\n\n if (draft.firstPublishedAt) {\n return draft;\n }\n\n return update(draft, {\n data: {\n firstPublishedAt: Date.now(),\n },\n });\n};\n\nconst filterDataFirstPublishedAt: ParamsTransform = (params) => {\n if (params?.data?.firstPublishedAt) {\n return assoc(['data', 'firstPublishedAt'], null, params);\n }\n\n return params;\n};\n\nexport { addFirstPublishedAtToDraft, filterDataFirstPublishedAt };\n"],"names":["addFirstPublishedAtToDraft","draft","update","contentType","contentTypes","hasFirstPublishedAtField","firstPublishedAt","data","Date","now","filterDataFirstPublishedAt","params","assoc"],"mappings":";;;;;AAOMA,MAAAA,0BAAAA,GAA6B,OACjCC,KAAAA,EACAC,MACAC,EAAAA,WAAAA,GAAAA;AAEA,IAAA,IAAI,CAACC,wBAAAA,CAAaC,wBAAwB,CAACF,WAAc,CAAA,EAAA;QACvD,OAAOF,KAAAA;AACT;IAEA,IAAIA,KAAAA,CAAMK,gBAAgB,EAAE;QAC1B,OAAOL,KAAAA;AACT;AAEA,IAAA,OAAOC,OAAOD,KAAO,EAAA;QACnBM,IAAM,EAAA;AACJD,YAAAA,gBAAAA,EAAkBE,KAAKC,GAAG;AAC5B;AACF,KAAA,CAAA;AACF;AAEA,MAAMC,6BAA8C,CAACC,MAAAA,GAAAA;IACnD,IAAIA,MAAAA,EAAQJ,MAAMD,gBAAkB,EAAA;AAClC,QAAA,OAAOM,QAAM,CAAA;AAAC,YAAA,MAAA;AAAQ,YAAA;AAAmB,SAAA,EAAE,IAAMD,EAAAA,MAAAA,CAAAA;AACnD;IAEA,OAAOA,MAAAA;AACT;;;;;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { contentTypes } from '@strapi/utils';
|
|
2
|
+
import { assoc } from 'lodash/fp';
|
|
3
|
+
|
|
4
|
+
const addFirstPublishedAtToDraft = async (draft, update, contentType)=>{
|
|
5
|
+
if (!contentTypes.hasFirstPublishedAtField(contentType)) {
|
|
6
|
+
return draft;
|
|
7
|
+
}
|
|
8
|
+
if (draft.firstPublishedAt) {
|
|
9
|
+
return draft;
|
|
10
|
+
}
|
|
11
|
+
return update(draft, {
|
|
12
|
+
data: {
|
|
13
|
+
firstPublishedAt: Date.now()
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
const filterDataFirstPublishedAt = (params)=>{
|
|
18
|
+
if (params?.data?.firstPublishedAt) {
|
|
19
|
+
return assoc([
|
|
20
|
+
'data',
|
|
21
|
+
'firstPublishedAt'
|
|
22
|
+
], null, params);
|
|
23
|
+
}
|
|
24
|
+
return params;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export { addFirstPublishedAtToDraft, filterDataFirstPublishedAt };
|
|
28
|
+
//# sourceMappingURL=first-published-at.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"first-published-at.mjs","sources":["../../../src/services/document-service/first-published-at.ts"],"sourcesContent":["import { contentTypes } from '@strapi/utils';\nimport { assoc } from 'lodash/fp';\nimport type { Modules, Schema } from '@strapi/types';\n\ntype EntriesUpdate = (entryToUpdate: any, param?: any) => Promise<any>;\ntype ParamsTransform = (params: Modules.Documents.Params.All) => Modules.Documents.Params.All;\n\nconst addFirstPublishedAtToDraft = async (\n draft: any,\n update: EntriesUpdate,\n contentType: Schema.ContentType\n) => {\n if (!contentTypes.hasFirstPublishedAtField(contentType)) {\n return draft;\n }\n\n if (draft.firstPublishedAt) {\n return draft;\n }\n\n return update(draft, {\n data: {\n firstPublishedAt: Date.now(),\n },\n });\n};\n\nconst filterDataFirstPublishedAt: ParamsTransform = (params) => {\n if (params?.data?.firstPublishedAt) {\n return assoc(['data', 'firstPublishedAt'], null, params);\n }\n\n return params;\n};\n\nexport { addFirstPublishedAtToDraft, filterDataFirstPublishedAt };\n"],"names":["addFirstPublishedAtToDraft","draft","update","contentType","contentTypes","hasFirstPublishedAtField","firstPublishedAt","data","Date","now","filterDataFirstPublishedAt","params","assoc"],"mappings":";;;AAOMA,MAAAA,0BAAAA,GAA6B,OACjCC,KAAAA,EACAC,MACAC,EAAAA,WAAAA,GAAAA;AAEA,IAAA,IAAI,CAACC,YAAAA,CAAaC,wBAAwB,CAACF,WAAc,CAAA,EAAA;QACvD,OAAOF,KAAAA;AACT;IAEA,IAAIA,KAAAA,CAAMK,gBAAgB,EAAE;QAC1B,OAAOL,KAAAA;AACT;AAEA,IAAA,OAAOC,OAAOD,KAAO,EAAA;QACnBM,IAAM,EAAA;AACJD,YAAAA,gBAAAA,EAAkBE,KAAKC,GAAG;AAC5B;AACF,KAAA,CAAA;AACF;AAEA,MAAMC,6BAA8C,CAACC,MAAAA,GAAAA;IACnD,IAAIA,MAAAA,EAAQJ,MAAMD,gBAAkB,EAAA;AAClC,QAAA,OAAOM,KAAM,CAAA;AAAC,YAAA,MAAA;AAAQ,YAAA;AAAmB,SAAA,EAAE,IAAMD,EAAAA,MAAAA,CAAAA;AACnD;IAEA,OAAOA,MAAAA;AACT;;;;"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var errors = require('./middlewares/errors.js');
|
|
4
|
+
var middlewareManager = require('./middlewares/middleware-manager.js');
|
|
5
|
+
var repository = require('./repository.js');
|
|
6
|
+
var data = require('./transform/data.js');
|
|
7
|
+
var index = require('../entity-validator/index.js');
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Repository to :
|
|
11
|
+
* - Access documents via actions (findMany, findOne, create, update, delete, ...)
|
|
12
|
+
* - Execute middlewares on document actions
|
|
13
|
+
* - Apply default parameters to document actions
|
|
14
|
+
*
|
|
15
|
+
* @param strapi
|
|
16
|
+
* @param validator - validator for database entries
|
|
17
|
+
* @returns DocumentService
|
|
18
|
+
*
|
|
19
|
+
* @example Access documents
|
|
20
|
+
* const article = strapi.documents('api::article.article').create(params)
|
|
21
|
+
* const allArticles = strapi.documents('api::article.article').findMany(params)
|
|
22
|
+
*
|
|
23
|
+
*/ const createDocumentService = (strapi, validator = index)=>{
|
|
24
|
+
// Cache the repositories (one per content type)
|
|
25
|
+
const repositories = new Map();
|
|
26
|
+
// Manager to handle document service middlewares
|
|
27
|
+
const middlewares = middlewareManager.createMiddlewareManager();
|
|
28
|
+
middlewares.use(errors.databaseErrorsMiddleware);
|
|
29
|
+
const factory = function factory(uid) {
|
|
30
|
+
if (repositories.has(uid)) {
|
|
31
|
+
return repositories.get(uid);
|
|
32
|
+
}
|
|
33
|
+
const contentType = strapi.contentType(uid);
|
|
34
|
+
const repository$1 = repository.createContentTypeRepository(uid, validator);
|
|
35
|
+
const instance = middlewares.wrapObject(repository$1, {
|
|
36
|
+
uid,
|
|
37
|
+
contentType
|
|
38
|
+
}, {
|
|
39
|
+
exclude: [
|
|
40
|
+
'updateComponents',
|
|
41
|
+
'omitComponentData'
|
|
42
|
+
]
|
|
43
|
+
});
|
|
44
|
+
repositories.set(uid, instance);
|
|
45
|
+
return instance;
|
|
46
|
+
};
|
|
47
|
+
return Object.assign(factory, {
|
|
48
|
+
utils: {
|
|
49
|
+
transformData: data.transformData
|
|
50
|
+
},
|
|
51
|
+
use: middlewares.use.bind(middlewares)
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
exports.createDocumentService = createDocumentService;
|
|
56
|
+
//# sourceMappingURL=index.js.map
|