@strapi/core 0.0.0-experimental.3f7b2587c5e3d548262671895cf11d8bf8c
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/LICENSE +22 -0
- package/README.md +1 -0
- package/dist/Strapi.d.ts +98 -0
- package/dist/Strapi.d.ts.map +1 -0
- package/dist/Strapi.js +443 -0
- package/dist/Strapi.js.map +1 -0
- package/dist/Strapi.mjs +442 -0
- package/dist/Strapi.mjs.map +1 -0
- package/dist/compile.d.ts +10 -0
- package/dist/compile.d.ts.map +1 -0
- package/dist/compile.js +18 -0
- package/dist/compile.js.map +1 -0
- package/dist/compile.mjs +17 -0
- package/dist/compile.mjs.map +1 -0
- package/dist/configuration/config-loader.d.ts +3 -0
- package/dist/configuration/config-loader.d.ts.map +1 -0
- package/dist/configuration/config-loader.js +102 -0
- package/dist/configuration/config-loader.js.map +1 -0
- package/dist/configuration/config-loader.mjs +100 -0
- package/dist/configuration/config-loader.mjs.map +1 -0
- package/dist/configuration/index.d.ts +51 -0
- package/dist/configuration/index.d.ts.map +1 -0
- package/dist/configuration/index.js +78 -0
- package/dist/configuration/index.js.map +1 -0
- package/dist/configuration/index.mjs +74 -0
- package/dist/configuration/index.mjs.map +1 -0
- package/dist/container.d.ts +8 -0
- package/dist/container.d.ts.map +1 -0
- package/dist/container.js +30 -0
- package/dist/container.js.map +1 -0
- package/dist/container.mjs +30 -0
- package/dist/container.mjs.map +1 -0
- package/dist/core-api/controller/collection-type.d.ts +11 -0
- package/dist/core-api/controller/collection-type.d.ts.map +1 -0
- package/dist/core-api/controller/collection-type.js +92 -0
- package/dist/core-api/controller/collection-type.js.map +1 -0
- package/dist/core-api/controller/collection-type.mjs +93 -0
- package/dist/core-api/controller/collection-type.mjs.map +1 -0
- package/dist/core-api/controller/index.d.ts +6 -0
- package/dist/core-api/controller/index.d.ts.map +1 -0
- package/dist/core-api/controller/index.js +47 -0
- package/dist/core-api/controller/index.js.map +1 -0
- package/dist/core-api/controller/index.mjs +47 -0
- package/dist/core-api/controller/index.mjs.map +1 -0
- package/dist/core-api/controller/single-type.d.ts +10 -0
- package/dist/core-api/controller/single-type.d.ts.map +1 -0
- package/dist/core-api/controller/single-type.js +50 -0
- package/dist/core-api/controller/single-type.js.map +1 -0
- package/dist/core-api/controller/single-type.mjs +51 -0
- package/dist/core-api/controller/single-type.mjs.map +1 -0
- package/dist/core-api/controller/transform.d.ts +22 -0
- package/dist/core-api/controller/transform.d.ts.map +1 -0
- package/dist/core-api/controller/transform.js +84 -0
- package/dist/core-api/controller/transform.js.map +1 -0
- package/dist/core-api/controller/transform.mjs +84 -0
- package/dist/core-api/controller/transform.mjs.map +1 -0
- package/dist/core-api/routes/index.d.ts +24 -0
- package/dist/core-api/routes/index.d.ts.map +1 -0
- package/dist/core-api/routes/index.js +67 -0
- package/dist/core-api/routes/index.js.map +1 -0
- package/dist/core-api/routes/index.mjs +67 -0
- package/dist/core-api/routes/index.mjs.map +1 -0
- package/dist/core-api/service/collection-type.d.ts +10 -0
- package/dist/core-api/service/collection-type.d.ts.map +1 -0
- package/dist/core-api/service/collection-type.js +58 -0
- package/dist/core-api/service/collection-type.js.map +1 -0
- package/dist/core-api/service/collection-type.mjs +59 -0
- package/dist/core-api/service/collection-type.mjs.map +1 -0
- package/dist/core-api/service/get-fetch-params.d.ts +7 -0
- package/dist/core-api/service/get-fetch-params.d.ts.map +1 -0
- package/dist/core-api/service/get-fetch-params.js +14 -0
- package/dist/core-api/service/get-fetch-params.js.map +1 -0
- package/dist/core-api/service/get-fetch-params.mjs +14 -0
- package/dist/core-api/service/get-fetch-params.mjs.map +1 -0
- package/dist/core-api/service/index.d.ts +9 -0
- package/dist/core-api/service/index.d.ts.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 +16 -0
- package/dist/core-api/service/index.mjs.map +1 -0
- package/dist/core-api/service/pagination.d.ts +41 -0
- package/dist/core-api/service/pagination.d.ts.map +1 -0
- package/dist/core-api/service/pagination.js +89 -0
- package/dist/core-api/service/pagination.js.map +1 -0
- package/dist/core-api/service/pagination.mjs +89 -0
- package/dist/core-api/service/pagination.mjs.map +1 -0
- package/dist/core-api/service/single-type.d.ts +9 -0
- package/dist/core-api/service/single-type.d.ts.map +1 -0
- package/dist/core-api/service/single-type.js +54 -0
- package/dist/core-api/service/single-type.js.map +1 -0
- package/dist/core-api/service/single-type.mjs +55 -0
- package/dist/core-api/service/single-type.mjs.map +1 -0
- package/dist/domain/content-type/index.d.ts +10 -0
- package/dist/domain/content-type/index.d.ts.map +1 -0
- package/dist/domain/content-type/index.js +108 -0
- package/dist/domain/content-type/index.js.map +1 -0
- package/dist/domain/content-type/index.mjs +106 -0
- package/dist/domain/content-type/index.mjs.map +1 -0
- package/dist/domain/content-type/validator.d.ts +23 -0
- package/dist/domain/content-type/validator.d.ts.map +1 -0
- package/dist/domain/content-type/validator.js +77 -0
- package/dist/domain/content-type/validator.js.map +1 -0
- package/dist/domain/content-type/validator.mjs +75 -0
- package/dist/domain/content-type/validator.mjs.map +1 -0
- package/dist/domain/module/index.d.ts +39 -0
- package/dist/domain/module/index.d.ts.map +1 -0
- package/dist/domain/module/index.js +107 -0
- package/dist/domain/module/index.js.map +1 -0
- package/dist/domain/module/index.mjs +105 -0
- package/dist/domain/module/index.mjs.map +1 -0
- package/dist/domain/module/validation.d.ts +15 -0
- package/dist/domain/module/validation.d.ts.map +1 -0
- package/dist/domain/module/validation.js +25 -0
- package/dist/domain/module/validation.js.map +1 -0
- package/dist/domain/module/validation.mjs +25 -0
- package/dist/domain/module/validation.mjs.map +1 -0
- package/dist/ee/index.d.ts +20 -0
- package/dist/ee/index.d.ts.map +1 -0
- package/dist/ee/index.js +153 -0
- package/dist/ee/index.js.map +1 -0
- package/dist/ee/index.mjs +154 -0
- package/dist/ee/index.mjs.map +1 -0
- package/dist/ee/license.d.ts +21 -0
- package/dist/ee/license.d.ts.map +1 -0
- package/dist/ee/license.js +90 -0
- package/dist/ee/license.js.map +1 -0
- package/dist/ee/license.mjs +87 -0
- package/dist/ee/license.mjs.map +1 -0
- package/dist/factories.d.ts +14 -0
- package/dist/factories.d.ts.map +1 -0
- package/dist/factories.js +86 -0
- package/dist/factories.js.map +1 -0
- package/dist/factories.mjs +86 -0
- package/dist/factories.mjs.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +7 -0
- package/dist/index.mjs.map +1 -0
- package/dist/loaders/admin.d.ts +3 -0
- package/dist/loaders/admin.d.ts.map +1 -0
- package/dist/loaders/admin.js +27 -0
- package/dist/loaders/admin.js.map +1 -0
- package/dist/loaders/admin.mjs +26 -0
- package/dist/loaders/admin.mjs.map +1 -0
- package/dist/loaders/apis.d.ts +3 -0
- package/dist/loaders/apis.d.ts.map +1 -0
- package/dist/loaders/apis.js +137 -0
- package/dist/loaders/apis.js.map +1 -0
- package/dist/loaders/apis.mjs +135 -0
- package/dist/loaders/apis.mjs.map +1 -0
- package/dist/loaders/components.d.ts +3 -0
- package/dist/loaders/components.d.ts.map +1 -0
- package/dist/loaders/components.js +38 -0
- package/dist/loaders/components.js.map +1 -0
- package/dist/loaders/components.mjs +37 -0
- package/dist/loaders/components.mjs.map +1 -0
- package/dist/loaders/index.d.ts +3 -0
- package/dist/loaders/index.d.ts.map +1 -0
- package/dist/loaders/index.js +26 -0
- package/dist/loaders/index.js.map +1 -0
- package/dist/loaders/index.mjs +26 -0
- package/dist/loaders/index.mjs.map +1 -0
- package/dist/loaders/middlewares.d.ts +3 -0
- package/dist/loaders/middlewares.d.ts.map +1 -0
- package/dist/loaders/middlewares.js +31 -0
- package/dist/loaders/middlewares.js.map +1 -0
- package/dist/loaders/middlewares.mjs +30 -0
- package/dist/loaders/middlewares.mjs.map +1 -0
- package/dist/loaders/plugins/get-enabled-plugins.d.ts +5 -0
- package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -0
- package/dist/loaders/plugins/get-enabled-plugins.js +111 -0
- package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -0
- package/dist/loaders/plugins/get-enabled-plugins.mjs +109 -0
- package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -0
- package/dist/loaders/plugins/get-user-plugins-config.d.ts +7 -0
- package/dist/loaders/plugins/get-user-plugins-config.d.ts.map +1 -0
- package/dist/loaders/plugins/get-user-plugins-config.js +27 -0
- package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -0
- package/dist/loaders/plugins/get-user-plugins-config.mjs +25 -0
- package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -0
- package/dist/loaders/plugins/index.d.ts +3 -0
- package/dist/loaders/plugins/index.d.ts.map +1 -0
- package/dist/loaders/plugins/index.js +118 -0
- package/dist/loaders/plugins/index.js.map +1 -0
- package/dist/loaders/plugins/index.mjs +117 -0
- package/dist/loaders/plugins/index.mjs.map +1 -0
- package/dist/loaders/policies.d.ts +3 -0
- package/dist/loaders/policies.d.ts.map +1 -0
- package/dist/loaders/policies.js +25 -0
- package/dist/loaders/policies.js.map +1 -0
- package/dist/loaders/policies.mjs +24 -0
- package/dist/loaders/policies.mjs.map +1 -0
- package/dist/loaders/sanitizers.d.ts +4 -0
- package/dist/loaders/sanitizers.d.ts.map +1 -0
- package/dist/loaders/sanitizers.js +6 -0
- package/dist/loaders/sanitizers.js.map +1 -0
- package/dist/loaders/sanitizers.mjs +7 -0
- package/dist/loaders/sanitizers.mjs.map +1 -0
- package/dist/loaders/src-index.d.ts +4 -0
- package/dist/loaders/src-index.d.ts.map +1 -0
- package/dist/loaders/src-index.js +33 -0
- package/dist/loaders/src-index.js.map +1 -0
- package/dist/loaders/src-index.mjs +34 -0
- package/dist/loaders/src-index.mjs.map +1 -0
- package/dist/loaders/validators.d.ts +4 -0
- package/dist/loaders/validators.d.ts.map +1 -0
- package/dist/loaders/validators.js +6 -0
- package/dist/loaders/validators.js.map +1 -0
- package/dist/loaders/validators.mjs +7 -0
- package/dist/loaders/validators.mjs.map +1 -0
- package/dist/middlewares/body.d.ts +6 -0
- package/dist/middlewares/body.d.ts.map +1 -0
- package/dist/middlewares/body.js +65 -0
- package/dist/middlewares/body.js.map +1 -0
- package/dist/middlewares/body.mjs +61 -0
- package/dist/middlewares/body.mjs.map +1 -0
- package/dist/middlewares/compression.d.ts +5 -0
- package/dist/middlewares/compression.d.ts.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 +13 -0
- package/dist/middlewares/cors.d.ts.map +1 -0
- package/dist/middlewares/cors.js +51 -0
- package/dist/middlewares/cors.js.map +1 -0
- package/dist/middlewares/cors.mjs +49 -0
- package/dist/middlewares/cors.mjs.map +1 -0
- package/dist/middlewares/errors.d.ts +4 -0
- package/dist/middlewares/errors.d.ts.map +1 -0
- package/dist/middlewares/errors.js +33 -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.d.ts +6 -0
- package/dist/middlewares/favicon.d.ts.map +1 -0
- package/dist/middlewares/favicon.js +22 -0
- package/dist/middlewares/favicon.js.map +1 -0
- package/dist/middlewares/favicon.mjs +20 -0
- package/dist/middlewares/favicon.mjs.map +1 -0
- package/dist/middlewares/index.d.ts +3 -0
- package/dist/middlewares/index.d.ts.map +1 -0
- package/dist/middlewares/index.js +34 -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.d.ts +5 -0
- package/dist/middlewares/ip.d.ts.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.d.ts +3 -0
- package/dist/middlewares/logger.d.ts.map +1 -0
- package/dist/middlewares/logger.js +12 -0
- package/dist/middlewares/logger.js.map +1 -0
- package/dist/middlewares/logger.mjs +12 -0
- package/dist/middlewares/logger.mjs.map +1 -0
- package/dist/middlewares/powered-by.d.ts +6 -0
- package/dist/middlewares/powered-by.d.ts.map +1 -0
- package/dist/middlewares/powered-by.js +14 -0
- package/dist/middlewares/powered-by.js.map +1 -0
- package/dist/middlewares/powered-by.mjs +14 -0
- package/dist/middlewares/powered-by.mjs.map +1 -0
- package/dist/middlewares/public.d.ts +3 -0
- package/dist/middlewares/public.d.ts.map +1 -0
- package/dist/middlewares/public.js +34 -0
- package/dist/middlewares/public.js.map +1 -0
- package/dist/middlewares/public.mjs +32 -0
- package/dist/middlewares/public.mjs.map +1 -0
- package/dist/middlewares/query.d.ts +3 -0
- package/dist/middlewares/query.d.ts.map +1 -0
- package/dist/middlewares/query.js +40 -0
- package/dist/middlewares/query.js.map +1 -0
- package/dist/middlewares/query.mjs +38 -0
- package/dist/middlewares/query.mjs.map +1 -0
- package/dist/middlewares/response-time.d.ts +3 -0
- package/dist/middlewares/response-time.d.ts.map +1 -0
- package/dist/middlewares/response-time.js +12 -0
- package/dist/middlewares/response-time.js.map +1 -0
- package/dist/middlewares/response-time.mjs +12 -0
- package/dist/middlewares/response-time.mjs.map +1 -0
- package/dist/middlewares/responses.d.ts +6 -0
- package/dist/middlewares/responses.d.ts.map +1 -0
- package/dist/middlewares/responses.js +15 -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.d.ts +5 -0
- package/dist/middlewares/security.d.ts.map +1 -0
- package/dist/middlewares/security.js +71 -0
- package/dist/middlewares/security.js.map +1 -0
- package/dist/middlewares/security.mjs +69 -0
- package/dist/middlewares/security.mjs.map +1 -0
- package/dist/middlewares/session.d.ts +4 -0
- package/dist/middlewares/session.d.ts.map +1 -0
- package/dist/middlewares/session.js +30 -0
- package/dist/middlewares/session.js.map +1 -0
- package/dist/middlewares/session.mjs +28 -0
- package/dist/middlewares/session.mjs.map +1 -0
- package/dist/registries/apis.d.ts +8 -0
- package/dist/registries/apis.d.ts.map +1 -0
- package/dist/registries/apis.js +23 -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.d.ts +25 -0
- package/dist/registries/components.d.ts.map +1 -0
- package/dist/registries/components.js +45 -0
- package/dist/registries/components.js.map +1 -0
- package/dist/registries/components.mjs +46 -0
- package/dist/registries/components.mjs.map +1 -0
- package/dist/registries/config.d.ts +4 -0
- package/dist/registries/config.d.ts.map +1 -0
- package/dist/registries/config.js +23 -0
- package/dist/registries/config.js.map +1 -0
- package/dist/registries/config.mjs +22 -0
- package/dist/registries/config.mjs.map +1 -0
- package/dist/registries/content-types.d.ts +33 -0
- package/dist/registries/content-types.d.ts.map +1 -0
- package/dist/registries/content-types.js +71 -0
- package/dist/registries/content-types.js.map +1 -0
- package/dist/registries/content-types.mjs +72 -0
- package/dist/registries/content-types.mjs.map +1 -0
- package/dist/registries/controllers.d.ts +35 -0
- package/dist/registries/controllers.d.ts.map +1 -0
- package/dist/registries/controllers.js +80 -0
- package/dist/registries/controllers.js.map +1 -0
- package/dist/registries/controllers.mjs +81 -0
- package/dist/registries/controllers.mjs.map +1 -0
- package/dist/registries/custom-fields.d.ts +8 -0
- package/dist/registries/custom-fields.d.ts.map +1 -0
- package/dist/registries/custom-fields.js +71 -0
- package/dist/registries/custom-fields.js.map +1 -0
- package/dist/registries/custom-fields.mjs +72 -0
- package/dist/registries/custom-fields.mjs.map +1 -0
- package/dist/registries/hooks.d.ts +44 -0
- package/dist/registries/hooks.d.ts.map +1 -0
- package/dist/registries/hooks.js +58 -0
- package/dist/registries/hooks.js.map +1 -0
- package/dist/registries/hooks.mjs +59 -0
- package/dist/registries/hooks.mjs.map +1 -0
- package/dist/registries/index.d.ts +16 -0
- package/dist/registries/index.d.ts.map +1 -0
- package/dist/registries/middlewares.d.ts +31 -0
- package/dist/registries/middlewares.d.ts.map +1 -0
- package/dist/registries/middlewares.js +60 -0
- package/dist/registries/middlewares.js.map +1 -0
- package/dist/registries/middlewares.mjs +61 -0
- package/dist/registries/middlewares.mjs.map +1 -0
- package/dist/registries/models.d.ts +6 -0
- package/dist/registries/models.d.ts.map +1 -0
- package/dist/registries/models.js +16 -0
- package/dist/registries/models.js.map +1 -0
- package/dist/registries/models.mjs +16 -0
- package/dist/registries/models.mjs.map +1 -0
- package/dist/registries/modules.d.ts +15 -0
- package/dist/registries/modules.d.ts.map +1 -0
- package/dist/registries/modules.js +39 -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.d.ts +5 -0
- package/dist/registries/namespace.d.ts.map +1 -0
- package/dist/registries/namespace.js +27 -0
- package/dist/registries/namespace.js.map +1 -0
- package/dist/registries/namespace.mjs +27 -0
- package/dist/registries/namespace.mjs.map +1 -0
- package/dist/registries/plugins.d.ts +9 -0
- package/dist/registries/plugins.d.ts.map +1 -0
- package/dist/registries/plugins.js +23 -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.d.ts +34 -0
- package/dist/registries/policies.d.ts.map +1 -0
- package/dist/registries/policies.js +62 -0
- package/dist/registries/policies.js.map +1 -0
- package/dist/registries/policies.mjs +63 -0
- package/dist/registries/policies.mjs.map +1 -0
- package/dist/registries/sanitizers.d.ts +10 -0
- package/dist/registries/sanitizers.d.ts.map +1 -0
- package/dist/registries/sanitizers.js +25 -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.d.ts +35 -0
- package/dist/registries/services.d.ts.map +1 -0
- package/dist/registries/services.js +80 -0
- package/dist/registries/services.js.map +1 -0
- package/dist/registries/services.mjs +81 -0
- package/dist/registries/services.mjs.map +1 -0
- package/dist/registries/validators.d.ts +10 -0
- package/dist/registries/validators.d.ts.map +1 -0
- package/dist/registries/validators.js +25 -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.d.ts +26 -0
- package/dist/services/auth/index.d.ts.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 +80 -0
- package/dist/services/auth/index.mjs.map +1 -0
- package/dist/services/content-api/index.d.ts +54 -0
- package/dist/services/content-api/index.d.ts.map +1 -0
- package/dist/services/content-api/index.js +59 -0
- package/dist/services/content-api/index.js.map +1 -0
- package/dist/services/content-api/index.mjs +58 -0
- package/dist/services/content-api/index.mjs.map +1 -0
- package/dist/services/content-api/permissions/engine.d.ts +5 -0
- package/dist/services/content-api/permissions/engine.d.ts.map +1 -0
- package/dist/services/content-api/permissions/engine.js +7 -0
- package/dist/services/content-api/permissions/engine.js.map +1 -0
- package/dist/services/content-api/permissions/engine.mjs +6 -0
- package/dist/services/content-api/permissions/engine.mjs.map +1 -0
- package/dist/services/content-api/permissions/index.d.ts +52 -0
- package/dist/services/content-api/permissions/index.d.ts.map +1 -0
- package/dist/services/content-api/permissions/index.js +87 -0
- package/dist/services/content-api/permissions/index.js.map +1 -0
- package/dist/services/content-api/permissions/index.mjs +86 -0
- package/dist/services/content-api/permissions/index.mjs.map +1 -0
- package/dist/services/content-api/permissions/providers/action.d.ts +20 -0
- package/dist/services/content-api/permissions/providers/action.d.ts.map +1 -0
- package/dist/services/content-api/permissions/providers/action.js +16 -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.d.ts +24 -0
- package/dist/services/content-api/permissions/providers/condition.d.ts.map +1 -0
- package/dist/services/content-api/permissions/providers/condition.js +16 -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-api/permissions/providers/index.d.ts +3 -0
- package/dist/services/content-api/permissions/providers/index.d.ts.map +1 -0
- package/dist/services/core-store.d.ts +33 -0
- package/dist/services/core-store.d.ts.map +1 -0
- package/dist/services/core-store.js +107 -0
- package/dist/services/core-store.js.map +1 -0
- package/dist/services/core-store.mjs +107 -0
- package/dist/services/core-store.mjs.map +1 -0
- package/dist/services/cron.d.ts +27 -0
- package/dist/services/cron.d.ts.map +1 -0
- package/dist/services/cron.js +63 -0
- package/dist/services/cron.js.map +1 -0
- package/dist/services/cron.mjs +64 -0
- package/dist/services/cron.mjs.map +1 -0
- package/dist/services/custom-fields.d.ts +4 -0
- package/dist/services/custom-fields.d.ts.map +1 -0
- package/dist/services/custom-fields.js +10 -0
- package/dist/services/custom-fields.js.map +1 -0
- package/dist/services/custom-fields.mjs +11 -0
- package/dist/services/custom-fields.mjs.map +1 -0
- package/dist/services/document-service/components.d.ts +2 -0
- package/dist/services/document-service/components.d.ts.map +1 -0
- package/dist/services/document-service/document-engine.d.ts +8 -0
- package/dist/services/document-service/document-engine.d.ts.map +1 -0
- package/dist/services/document-service/document-engine.js +200 -0
- package/dist/services/document-service/document-engine.js.map +1 -0
- package/dist/services/document-service/document-engine.mjs +201 -0
- package/dist/services/document-service/document-engine.mjs.map +1 -0
- package/dist/services/document-service/document-service.d.ts +21 -0
- package/dist/services/document-service/document-service.d.ts.map +1 -0
- package/dist/services/document-service/document-service.js +132 -0
- package/dist/services/document-service/document-service.js.map +1 -0
- package/dist/services/document-service/document-service.mjs +132 -0
- package/dist/services/document-service/document-service.mjs.map +1 -0
- package/dist/services/document-service/middlewares/defaults/draft-and-publish.d.ts +26 -0
- package/dist/services/document-service/middlewares/defaults/draft-and-publish.d.ts.map +1 -0
- package/dist/services/document-service/middlewares/defaults/draft-and-publish.js +58 -0
- package/dist/services/document-service/middlewares/defaults/draft-and-publish.js.map +1 -0
- package/dist/services/document-service/middlewares/defaults/draft-and-publish.mjs +58 -0
- package/dist/services/document-service/middlewares/defaults/draft-and-publish.mjs.map +1 -0
- package/dist/services/document-service/middlewares/defaults/index.d.ts +3 -0
- package/dist/services/document-service/middlewares/defaults/index.d.ts.map +1 -0
- package/dist/services/document-service/middlewares/defaults/index.js +82 -0
- package/dist/services/document-service/middlewares/defaults/index.js.map +1 -0
- package/dist/services/document-service/middlewares/defaults/index.mjs +82 -0
- package/dist/services/document-service/middlewares/defaults/index.mjs.map +1 -0
- package/dist/services/document-service/middlewares/defaults/locales.d.ts +18 -0
- package/dist/services/document-service/middlewares/defaults/locales.d.ts.map +1 -0
- package/dist/services/document-service/middlewares/defaults/locales.js +50 -0
- package/dist/services/document-service/middlewares/defaults/locales.js.map +1 -0
- package/dist/services/document-service/middlewares/defaults/locales.mjs +50 -0
- package/dist/services/document-service/middlewares/defaults/locales.mjs.map +1 -0
- package/dist/services/document-service/middlewares/index.d.ts +11 -0
- package/dist/services/document-service/middlewares/index.d.ts.map +1 -0
- package/dist/services/document-service/middlewares/index.js +59 -0
- package/dist/services/document-service/middlewares/index.js.map +1 -0
- package/dist/services/document-service/middlewares/index.mjs +59 -0
- package/dist/services/document-service/middlewares/index.mjs.map +1 -0
- package/dist/services/document-service/params.d.ts +2 -0
- package/dist/services/document-service/params.d.ts.map +1 -0
- package/dist/services/entity-service/attributes/index.d.ts +6 -0
- package/dist/services/entity-service/attributes/index.d.ts.map +1 -0
- package/dist/services/entity-service/attributes/index.js +22 -0
- package/dist/services/entity-service/attributes/index.js.map +1 -0
- package/dist/services/entity-service/attributes/index.mjs +22 -0
- package/dist/services/entity-service/attributes/index.mjs.map +1 -0
- package/dist/services/entity-service/attributes/transforms.d.ts +10 -0
- package/dist/services/entity-service/attributes/transforms.d.ts.map +1 -0
- package/dist/services/entity-service/attributes/transforms.js +20 -0
- package/dist/services/entity-service/attributes/transforms.js.map +1 -0
- package/dist/services/entity-service/attributes/transforms.mjs +19 -0
- package/dist/services/entity-service/attributes/transforms.mjs.map +1 -0
- package/dist/services/entity-service/components.d.ts +23 -0
- package/dist/services/entity-service/components.d.ts.map +1 -0
- package/dist/services/entity-service/components.js +384 -0
- package/dist/services/entity-service/components.js.map +1 -0
- package/dist/services/entity-service/components.mjs +382 -0
- package/dist/services/entity-service/components.mjs.map +1 -0
- package/dist/services/entity-service/index.d.ts +15 -0
- package/dist/services/entity-service/index.d.ts.map +1 -0
- package/dist/services/entity-service/index.js +328 -0
- package/dist/services/entity-service/index.js.map +1 -0
- package/dist/services/entity-service/index.mjs +326 -0
- package/dist/services/entity-service/index.mjs.map +1 -0
- package/dist/services/entity-service/params.d.ts +8 -0
- package/dist/services/entity-service/params.d.ts.map +1 -0
- package/dist/services/entity-service/params.js +8 -0
- package/dist/services/entity-service/params.js.map +1 -0
- package/dist/services/entity-service/params.mjs +8 -0
- package/dist/services/entity-service/params.mjs.map +1 -0
- package/dist/services/entity-validator/blocks-validator.d.ts +4 -0
- package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -0
- package/dist/services/entity-validator/blocks-validator.js +107 -0
- package/dist/services/entity-validator/blocks-validator.js.map +1 -0
- package/dist/services/entity-validator/blocks-validator.mjs +108 -0
- package/dist/services/entity-validator/blocks-validator.mjs.map +1 -0
- package/dist/services/entity-validator/index.d.ts +8 -0
- package/dist/services/entity-validator/index.d.ts.map +1 -0
- package/dist/services/entity-validator/index.js +322 -0
- package/dist/services/entity-validator/index.js.map +1 -0
- package/dist/services/entity-validator/index.mjs +321 -0
- package/dist/services/entity-validator/index.mjs.map +1 -0
- package/dist/services/entity-validator/validators.d.ts +39 -0
- package/dist/services/entity-validator/validators.d.ts.map +1 -0
- package/dist/services/entity-validator/validators.js +122 -0
- package/dist/services/entity-validator/validators.js.map +1 -0
- package/dist/services/entity-validator/validators.mjs +120 -0
- package/dist/services/entity-validator/validators.mjs.map +1 -0
- package/dist/services/errors.d.ts +40 -0
- package/dist/services/errors.d.ts.map +1 -0
- package/dist/services/errors.js +76 -0
- package/dist/services/errors.js.map +1 -0
- package/dist/services/errors.mjs +74 -0
- package/dist/services/errors.mjs.map +1 -0
- package/dist/services/event-hub.d.ts +19 -0
- package/dist/services/event-hub.d.ts.map +1 -0
- package/dist/services/event-hub.js +67 -0
- package/dist/services/event-hub.js.map +1 -0
- package/dist/services/event-hub.mjs +68 -0
- package/dist/services/event-hub.mjs.map +1 -0
- package/dist/services/features.d.ts +10 -0
- package/dist/services/features.d.ts.map +1 -0
- package/dist/services/features.js +17 -0
- package/dist/services/features.js.map +1 -0
- package/dist/services/features.mjs +17 -0
- package/dist/services/features.mjs.map +1 -0
- package/dist/services/fs.d.ts +13 -0
- package/dist/services/fs.d.ts.map +1 -0
- package/dist/services/fs.js +51 -0
- package/dist/services/fs.js.map +1 -0
- package/dist/services/fs.mjs +49 -0
- package/dist/services/fs.mjs.map +1 -0
- package/dist/services/metrics/admin-user-hash.d.ts +7 -0
- package/dist/services/metrics/admin-user-hash.d.ts.map +1 -0
- package/dist/services/metrics/admin-user-hash.js +14 -0
- package/dist/services/metrics/admin-user-hash.js.map +1 -0
- package/dist/services/metrics/admin-user-hash.mjs +12 -0
- package/dist/services/metrics/admin-user-hash.mjs.map +1 -0
- package/dist/services/metrics/index.d.ts +14 -0
- package/dist/services/metrics/index.d.ts.map +1 -0
- package/dist/services/metrics/index.js +45 -0
- package/dist/services/metrics/index.js.map +1 -0
- package/dist/services/metrics/index.mjs +46 -0
- package/dist/services/metrics/index.mjs.map +1 -0
- package/dist/services/metrics/is-truthy.d.ts +3 -0
- package/dist/services/metrics/is-truthy.d.ts.map +1 -0
- package/dist/services/metrics/is-truthy.js +9 -0
- package/dist/services/metrics/is-truthy.js.map +1 -0
- package/dist/services/metrics/is-truthy.mjs +8 -0
- package/dist/services/metrics/is-truthy.mjs.map +1 -0
- package/dist/services/metrics/middleware.d.ts +7 -0
- package/dist/services/metrics/middleware.d.ts.map +1 -0
- package/dist/services/metrics/middleware.js +25 -0
- package/dist/services/metrics/middleware.js.map +1 -0
- package/dist/services/metrics/middleware.mjs +26 -0
- package/dist/services/metrics/middleware.mjs.map +1 -0
- package/dist/services/metrics/rate-limiter.d.ts +7 -0
- package/dist/services/metrics/rate-limiter.d.ts.map +1 -0
- package/dist/services/metrics/rate-limiter.js +21 -0
- package/dist/services/metrics/rate-limiter.js.map +1 -0
- package/dist/services/metrics/rate-limiter.mjs +22 -0
- package/dist/services/metrics/rate-limiter.mjs.map +1 -0
- package/dist/services/metrics/sender.d.ts +13 -0
- package/dist/services/metrics/sender.d.ts.map +1 -0
- package/dist/services/metrics/sender.js +76 -0
- package/dist/services/metrics/sender.js.map +1 -0
- package/dist/services/metrics/sender.mjs +70 -0
- package/dist/services/metrics/sender.mjs.map +1 -0
- package/dist/services/request-context.d.ts +7 -0
- package/dist/services/request-context.d.ts.map +1 -0
- package/dist/services/request-context.js +13 -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.d.ts +11 -0
- package/dist/services/server/admin-api.d.ts.map +1 -0
- package/dist/services/server/admin-api.js +13 -0
- package/dist/services/server/admin-api.js.map +1 -0
- package/dist/services/server/admin-api.mjs +13 -0
- package/dist/services/server/admin-api.mjs.map +1 -0
- package/dist/services/server/api.d.ts +15 -0
- package/dist/services/server/api.d.ts.map +1 -0
- package/dist/services/server/api.js +30 -0
- package/dist/services/server/api.js.map +1 -0
- package/dist/services/server/api.mjs +28 -0
- package/dist/services/server/api.mjs.map +1 -0
- package/dist/services/server/compose-endpoint.d.ts +7 -0
- package/dist/services/server/compose-endpoint.d.ts.map +1 -0
- package/dist/services/server/compose-endpoint.js +115 -0
- package/dist/services/server/compose-endpoint.js.map +1 -0
- package/dist/services/server/compose-endpoint.mjs +114 -0
- package/dist/services/server/compose-endpoint.mjs.map +1 -0
- package/dist/services/server/content-api.d.ts +11 -0
- package/dist/services/server/content-api.d.ts.map +1 -0
- package/dist/services/server/content-api.js +12 -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.d.ts +10 -0
- package/dist/services/server/http-server.d.ts.map +1 -0
- package/dist/services/server/http-server.js +50 -0
- package/dist/services/server/http-server.js.map +1 -0
- package/dist/services/server/http-server.mjs +48 -0
- package/dist/services/server/http-server.mjs.map +1 -0
- package/dist/services/server/index.d.ts +4 -0
- package/dist/services/server/index.d.ts.map +1 -0
- package/dist/services/server/index.js +88 -0
- package/dist/services/server/index.js.map +1 -0
- package/dist/services/server/index.mjs +86 -0
- package/dist/services/server/index.mjs.map +1 -0
- package/dist/services/server/koa.d.ts +16 -0
- package/dist/services/server/koa.d.ts.map +1 -0
- package/dist/services/server/koa.js +52 -0
- package/dist/services/server/koa.js.map +1 -0
- package/dist/services/server/koa.mjs +48 -0
- package/dist/services/server/koa.mjs.map +1 -0
- package/dist/services/server/middleware.d.ts +11 -0
- package/dist/services/server/middleware.d.ts.map +1 -0
- package/dist/services/server/middleware.js +92 -0
- package/dist/services/server/middleware.js.map +1 -0
- package/dist/services/server/middleware.mjs +90 -0
- package/dist/services/server/middleware.mjs.map +1 -0
- package/dist/services/server/policy.d.ts +4 -0
- package/dist/services/server/policy.d.ts.map +1 -0
- package/dist/services/server/policy.js +20 -0
- package/dist/services/server/policy.js.map +1 -0
- package/dist/services/server/policy.mjs +20 -0
- package/dist/services/server/policy.mjs.map +1 -0
- package/dist/services/server/register-middlewares.d.ts +7 -0
- package/dist/services/server/register-middlewares.d.ts.map +1 -0
- package/dist/services/server/register-middlewares.js +72 -0
- package/dist/services/server/register-middlewares.js.map +1 -0
- package/dist/services/server/register-middlewares.mjs +73 -0
- package/dist/services/server/register-middlewares.mjs.map +1 -0
- package/dist/services/server/register-routes.d.ts +7 -0
- package/dist/services/server/register-routes.d.ts.map +1 -0
- package/dist/services/server/register-routes.js +76 -0
- package/dist/services/server/register-routes.js.map +1 -0
- package/dist/services/server/register-routes.mjs +75 -0
- package/dist/services/server/register-routes.mjs.map +1 -0
- package/dist/services/server/routing.d.ts +34 -0
- package/dist/services/server/routing.d.ts.map +1 -0
- package/dist/services/server/routing.js +91 -0
- package/dist/services/server/routing.js.map +1 -0
- package/dist/services/server/routing.mjs +89 -0
- package/dist/services/server/routing.mjs.map +1 -0
- package/dist/services/utils/dynamic-zones.d.ts +3 -0
- package/dist/services/utils/dynamic-zones.d.ts.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 +17 -0
- package/dist/services/utils/dynamic-zones.mjs.map +1 -0
- package/dist/services/utils/upload-files.d.ts +8 -0
- package/dist/services/utils/upload-files.d.ts.map +1 -0
- package/dist/services/utils/upload-files.js +64 -0
- package/dist/services/utils/upload-files.js.map +1 -0
- package/dist/services/utils/upload-files.mjs +63 -0
- package/dist/services/utils/upload-files.mjs.map +1 -0
- package/dist/services/webhook-runner.d.ts +49 -0
- package/dist/services/webhook-runner.d.ts.map +1 -0
- package/dist/services/webhook-runner.js +133 -0
- package/dist/services/webhook-runner.js.map +1 -0
- package/dist/services/webhook-runner.mjs +131 -0
- package/dist/services/webhook-runner.mjs.map +1 -0
- package/dist/services/webhook-store.d.ts +30 -0
- package/dist/services/webhook-store.d.ts.map +1 -0
- package/dist/services/webhook-store.js +104 -0
- package/dist/services/webhook-store.js.map +1 -0
- package/dist/services/webhook-store.mjs +104 -0
- package/dist/services/webhook-store.mjs.map +1 -0
- package/dist/services/worker-queue.d.ts +20 -0
- package/dist/services/worker-queue.d.ts.map +1 -0
- package/dist/services/worker-queue.js +56 -0
- package/dist/services/worker-queue.js.map +1 -0
- package/dist/services/worker-queue.mjs +55 -0
- package/dist/services/worker-queue.mjs.map +1 -0
- package/dist/utils/convert-custom-field-type.d.ts +3 -0
- package/dist/utils/convert-custom-field-type.d.ts.map +1 -0
- package/dist/utils/convert-custom-field-type.js +24 -0
- package/dist/utils/convert-custom-field-type.js.map +1 -0
- package/dist/utils/convert-custom-field-type.mjs +24 -0
- package/dist/utils/convert-custom-field-type.mjs.map +1 -0
- package/dist/utils/cron.d.ts +8 -0
- package/dist/utils/cron.d.ts.map +1 -0
- package/dist/utils/cron.js +38 -0
- package/dist/utils/cron.js.map +1 -0
- package/dist/utils/cron.mjs +38 -0
- package/dist/utils/cron.mjs.map +1 -0
- package/dist/utils/ee.d.ts +2 -0
- package/dist/utils/ee.d.ts.map +1 -0
- package/dist/utils/fetch.d.ts +4 -0
- package/dist/utils/fetch.d.ts.map +1 -0
- package/dist/utils/fetch.js +20 -0
- package/dist/utils/fetch.js.map +1 -0
- package/dist/utils/fetch.mjs +20 -0
- package/dist/utils/fetch.mjs.map +1 -0
- package/dist/utils/filepath-to-prop-path.d.ts +5 -0
- package/dist/utils/filepath-to-prop-path.d.ts.map +1 -0
- package/dist/utils/filepath-to-prop-path.js +12 -0
- package/dist/utils/filepath-to-prop-path.js.map +1 -0
- package/dist/utils/filepath-to-prop-path.mjs +10 -0
- package/dist/utils/filepath-to-prop-path.mjs.map +1 -0
- package/dist/utils/get-dirs.d.ts +9 -0
- package/dist/utils/get-dirs.d.ts.map +1 -0
- package/dist/utils/get-dirs.js +30 -0
- package/dist/utils/get-dirs.js.map +1 -0
- package/dist/utils/get-dirs.mjs +30 -0
- package/dist/utils/get-dirs.mjs.map +1 -0
- package/dist/utils/index.d.ts +12 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/is-initialized.d.ts +6 -0
- package/dist/utils/is-initialized.d.ts.map +1 -0
- package/dist/utils/is-initialized.js +16 -0
- package/dist/utils/is-initialized.js.map +1 -0
- package/dist/utils/is-initialized.mjs +16 -0
- package/dist/utils/is-initialized.mjs.map +1 -0
- package/dist/utils/lifecycles.d.ts +6 -0
- package/dist/utils/lifecycles.d.ts.map +1 -0
- package/dist/utils/lifecycles.js +9 -0
- package/dist/utils/lifecycles.js.map +1 -0
- package/dist/utils/lifecycles.mjs +9 -0
- package/dist/utils/lifecycles.mjs.map +1 -0
- package/dist/utils/load-config-file.d.ts +2 -0
- package/dist/utils/load-config-file.d.ts.map +1 -0
- package/dist/utils/load-config-file.js +45 -0
- package/dist/utils/load-config-file.js.map +1 -0
- package/dist/utils/load-config-file.mjs +42 -0
- package/dist/utils/load-config-file.mjs.map +1 -0
- package/dist/utils/load-files.d.ts +11 -0
- package/dist/utils/load-files.d.ts.map +1 -0
- package/dist/utils/load-files.js +39 -0
- package/dist/utils/load-files.js.map +1 -0
- package/dist/utils/load-files.mjs +35 -0
- package/dist/utils/load-files.mjs.map +1 -0
- package/dist/utils/open-browser.d.ts +4 -0
- package/dist/utils/open-browser.d.ts.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/signals.d.ts +3 -0
- package/dist/utils/signals.d.ts.map +1 -0
- package/dist/utils/signals.js +17 -0
- package/dist/utils/signals.js.map +1 -0
- package/dist/utils/signals.mjs +17 -0
- package/dist/utils/signals.mjs.map +1 -0
- package/dist/utils/startup-logger.d.ts +10 -0
- package/dist/utils/startup-logger.d.ts.map +1 -0
- package/dist/utils/startup-logger.js +81 -0
- package/dist/utils/startup-logger.js.map +1 -0
- package/dist/utils/startup-logger.mjs +77 -0
- package/dist/utils/startup-logger.mjs.map +1 -0
- package/dist/utils/transform-content-types-to-models.d.ts +6 -0
- package/dist/utils/transform-content-types-to-models.d.ts.map +1 -0
- package/dist/utils/transform-content-types-to-models.js +198 -0
- package/dist/utils/transform-content-types-to-models.js.map +1 -0
- package/dist/utils/transform-content-types-to-models.mjs +196 -0
- package/dist/utils/transform-content-types-to-models.mjs.map +1 -0
- package/dist/utils/update-notifier/index.d.ts +8 -0
- package/dist/utils/update-notifier/index.d.ts.map +1 -0
- package/dist/utils/update-notifier/index.js +88 -0
- package/dist/utils/update-notifier/index.js.map +1 -0
- package/dist/utils/update-notifier/index.mjs +81 -0
- package/dist/utils/update-notifier/index.mjs.map +1 -0
- package/package.json +134 -0
- package/resources/key.pub +9 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { has, isUndefined, toNumber } from "lodash/fp";
|
|
2
|
+
import { errors } from "@strapi/utils";
|
|
3
|
+
const getLimitConfigDefaults = () => ({
|
|
4
|
+
defaultLimit: toNumber(strapi.config.get("api.rest.defaultLimit", 25)),
|
|
5
|
+
maxLimit: toNumber(strapi.config.get("api.rest.maxLimit")) || null
|
|
6
|
+
});
|
|
7
|
+
const shouldApplyMaxLimit = (limit, maxLimit, { isPagedPagination: isPagedPagination2 = false } = {}) => !isPagedPagination2 && limit === -1 || maxLimit !== null && limit > maxLimit;
|
|
8
|
+
const shouldCount = (params) => {
|
|
9
|
+
if (has("pagination.withCount", params)) {
|
|
10
|
+
const withCount = params.pagination?.withCount;
|
|
11
|
+
if (typeof withCount === "boolean") {
|
|
12
|
+
return withCount;
|
|
13
|
+
}
|
|
14
|
+
if (typeof withCount === "undefined") {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
if (["true", "t", "1", 1].includes(withCount)) {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
if (["false", "f", "0", 0].includes(withCount)) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
throw new errors.ValidationError(
|
|
24
|
+
'Invalid withCount parameter. Expected "t","1","true","false","0","f"'
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
return Boolean(strapi.config.get("api.rest.withCount", true));
|
|
28
|
+
};
|
|
29
|
+
const isOffsetPagination = (pagination) => has("start", pagination) || has("limit", pagination);
|
|
30
|
+
const isPagedPagination = (pagination) => has("page", pagination) || has("pageSize", pagination);
|
|
31
|
+
const getPaginationInfo = (params) => {
|
|
32
|
+
const { defaultLimit, maxLimit } = getLimitConfigDefaults();
|
|
33
|
+
const { pagination } = params;
|
|
34
|
+
const isPaged = isPagedPagination(pagination);
|
|
35
|
+
const isOffset = isOffsetPagination(pagination);
|
|
36
|
+
if (isOffset && isPaged) {
|
|
37
|
+
throw new errors.ValidationError(
|
|
38
|
+
"Invalid pagination parameters. Expected either start/limit or page/pageSize"
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
if (!isOffset && !isPaged) {
|
|
42
|
+
return {
|
|
43
|
+
page: 1,
|
|
44
|
+
pageSize: defaultLimit
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
if (isPagedPagination(pagination)) {
|
|
48
|
+
const pageSize = isUndefined(pagination.pageSize) ? defaultLimit : Math.max(1, toNumber(pagination.pageSize));
|
|
49
|
+
return {
|
|
50
|
+
page: Math.max(1, toNumber(pagination.page || 1)),
|
|
51
|
+
pageSize: typeof maxLimit === "number" && shouldApplyMaxLimit(pageSize, maxLimit, { isPagedPagination: true }) ? maxLimit : Math.max(1, pageSize)
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
const limit = isUndefined(pagination.limit) ? defaultLimit : toNumber(pagination.limit);
|
|
55
|
+
return {
|
|
56
|
+
start: Math.max(0, toNumber(pagination.start || 0)),
|
|
57
|
+
limit: shouldApplyMaxLimit(limit, maxLimit) ? maxLimit || -1 : Math.max(1, limit)
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
const convertPagedToStartLimit = (paginationInfo) => {
|
|
61
|
+
if ("page" in paginationInfo) {
|
|
62
|
+
const { page, pageSize } = paginationInfo;
|
|
63
|
+
return {
|
|
64
|
+
start: (page - 1) * pageSize,
|
|
65
|
+
limit: pageSize
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
return paginationInfo;
|
|
69
|
+
};
|
|
70
|
+
const transformPaginationResponse = (paginationInfo, count) => {
|
|
71
|
+
if ("page" in paginationInfo) {
|
|
72
|
+
return {
|
|
73
|
+
...paginationInfo,
|
|
74
|
+
pageCount: Math.ceil(count / paginationInfo.pageSize),
|
|
75
|
+
total: count
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
...paginationInfo,
|
|
80
|
+
total: count
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
export {
|
|
84
|
+
convertPagedToStartLimit,
|
|
85
|
+
getPaginationInfo,
|
|
86
|
+
shouldCount,
|
|
87
|
+
transformPaginationResponse
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=pagination.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.mjs","sources":["../../../src/core-api/service/pagination.ts"],"sourcesContent":["import { has, toNumber, isUndefined } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\n\ninterface BasePaginationParams {\n withCount?: boolean | 't' | '1' | 'true' | 'f' | '0' | 'false' | 0 | 1;\n}\n\ntype PagedPagination = BasePaginationParams & {\n page?: number;\n pageSize?: number;\n};\n\ntype OffsetPagination = BasePaginationParams & {\n start?: number;\n limit?: number;\n};\n\nexport type PaginationParams = PagedPagination | OffsetPagination;\n\ntype PaginationInfo =\n | {\n page: number;\n pageSize: number;\n }\n | {\n start: number;\n limit: number;\n };\n\n/**\n * Default limit values from config\n */\nconst getLimitConfigDefaults = () => ({\n defaultLimit: toNumber(strapi.config.get('api.rest.defaultLimit', 25)),\n maxLimit: toNumber(strapi.config.get('api.rest.maxLimit')) || null,\n});\n\n/**\n * Should maxLimit be used as the limit or not\n */\nconst shouldApplyMaxLimit = (\n limit: number,\n maxLimit: number | null,\n { isPagedPagination = false } = {}\n) => (!isPagedPagination && limit === -1) || (maxLimit !== null && limit > maxLimit);\n\nconst shouldCount = (params: { pagination?: PaginationParams }) => {\n if (has('pagination.withCount', params)) {\n const withCount = params.pagination?.withCount;\n\n if (typeof withCount === 'boolean') {\n return withCount;\n }\n\n if (typeof withCount === 'undefined') {\n return false;\n }\n\n if (['true', 't', '1', 1].includes(withCount)) {\n return true;\n }\n\n if (['false', 'f', '0', 0].includes(withCount)) {\n return false;\n }\n\n throw new errors.ValidationError(\n 'Invalid withCount parameter. Expected \"t\",\"1\",\"true\",\"false\",\"0\",\"f\"'\n );\n }\n\n return Boolean(strapi.config.get('api.rest.withCount', true));\n};\n\nconst isOffsetPagination = (pagination?: PaginationParams): pagination is OffsetPagination =>\n has('start', pagination) || has('limit', pagination);\nconst isPagedPagination = (pagination?: PaginationParams): pagination is PagedPagination =>\n has('page', pagination) || has('pageSize', pagination);\n\nconst getPaginationInfo = (params: { pagination?: PaginationParams }): PaginationInfo => {\n const { defaultLimit, maxLimit } = getLimitConfigDefaults();\n\n const { pagination } = params;\n\n const isPaged = isPagedPagination(pagination);\n const isOffset = isOffsetPagination(pagination);\n\n if (isOffset && isPaged) {\n throw new errors.ValidationError(\n 'Invalid pagination parameters. Expected either start/limit or page/pageSize'\n );\n }\n\n if (!isOffset && !isPaged) {\n return {\n page: 1,\n pageSize: defaultLimit,\n };\n }\n\n if (isPagedPagination(pagination)) {\n const pageSize = isUndefined(pagination.pageSize)\n ? defaultLimit\n : Math.max(1, toNumber(pagination.pageSize));\n\n return {\n page: Math.max(1, toNumber(pagination.page || 1)),\n pageSize:\n typeof maxLimit === 'number' &&\n shouldApplyMaxLimit(pageSize, maxLimit, { isPagedPagination: true })\n ? maxLimit\n : Math.max(1, pageSize),\n };\n }\n\n const limit = isUndefined(pagination.limit) ? defaultLimit : toNumber(pagination.limit);\n\n return {\n start: Math.max(0, toNumber(pagination.start || 0)),\n limit: shouldApplyMaxLimit(limit, maxLimit) ? maxLimit || -1 : Math.max(1, limit),\n };\n};\n\nconst convertPagedToStartLimit = (paginationInfo: PaginationInfo) => {\n if ('page' in paginationInfo) {\n const { page, pageSize } = paginationInfo;\n return {\n start: (page - 1) * pageSize,\n limit: pageSize,\n };\n }\n\n return paginationInfo;\n};\n\nconst transformPaginationResponse = (paginationInfo: PaginationInfo, count: number) => {\n if ('page' in paginationInfo) {\n return {\n ...paginationInfo,\n pageCount: Math.ceil(count / paginationInfo.pageSize),\n total: count,\n };\n }\n\n return {\n ...paginationInfo,\n total: count,\n };\n};\n\nexport { getPaginationInfo, convertPagedToStartLimit, transformPaginationResponse, shouldCount };\n"],"names":["isPagedPagination"],"mappings":";;AAgCA,MAAM,yBAAyB,OAAO;AAAA,EACpC,cAAc,SAAS,OAAO,OAAO,IAAI,yBAAyB,EAAE,CAAC;AAAA,EACrE,UAAU,SAAS,OAAO,OAAO,IAAI,mBAAmB,CAAC,KAAK;AAChE;AAKA,MAAM,sBAAsB,CAC1B,OACA,UACA,EAAE,mBAAAA,qBAAoB,UAAU,CAAA,MAC5B,CAACA,sBAAqB,UAAU,MAAQ,aAAa,QAAQ,QAAQ;AAErE,MAAA,cAAc,CAAC,WAA8C;AAC7D,MAAA,IAAI,wBAAwB,MAAM,GAAG;AACjC,UAAA,YAAY,OAAO,YAAY;AAEjC,QAAA,OAAO,cAAc,WAAW;AAC3B,aAAA;AAAA,IACT;AAEI,QAAA,OAAO,cAAc,aAAa;AAC7B,aAAA;AAAA,IACT;AAEI,QAAA,CAAC,QAAQ,KAAK,KAAK,CAAC,EAAE,SAAS,SAAS,GAAG;AACtC,aAAA;AAAA,IACT;AAEI,QAAA,CAAC,SAAS,KAAK,KAAK,CAAC,EAAE,SAAS,SAAS,GAAG;AACvC,aAAA;AAAA,IACT;AAEA,UAAM,IAAI,OAAO;AAAA,MACf;AAAA,IAAA;AAAA,EAEJ;AAEA,SAAO,QAAQ,OAAO,OAAO,IAAI,sBAAsB,IAAI,CAAC;AAC9D;AAEA,MAAM,qBAAqB,CAAC,eAC1B,IAAI,SAAS,UAAU,KAAK,IAAI,SAAS,UAAU;AACrD,MAAM,oBAAoB,CAAC,eACzB,IAAI,QAAQ,UAAU,KAAK,IAAI,YAAY,UAAU;AAEjD,MAAA,oBAAoB,CAAC,WAA8D;AACvF,QAAM,EAAE,cAAc,SAAS,IAAI,uBAAuB;AAEpD,QAAA,EAAE,WAAe,IAAA;AAEjB,QAAA,UAAU,kBAAkB,UAAU;AACtC,QAAA,WAAW,mBAAmB,UAAU;AAE9C,MAAI,YAAY,SAAS;AACvB,UAAM,IAAI,OAAO;AAAA,MACf;AAAA,IAAA;AAAA,EAEJ;AAEI,MAAA,CAAC,YAAY,CAAC,SAAS;AAClB,WAAA;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA,EAEd;AAEI,MAAA,kBAAkB,UAAU,GAAG;AACjC,UAAM,WAAW,YAAY,WAAW,QAAQ,IAC5C,eACA,KAAK,IAAI,GAAG,SAAS,WAAW,QAAQ,CAAC;AAEtC,WAAA;AAAA,MACL,MAAM,KAAK,IAAI,GAAG,SAAS,WAAW,QAAQ,CAAC,CAAC;AAAA,MAChD,UACE,OAAO,aAAa,YACpB,oBAAoB,UAAU,UAAU,EAAE,mBAAmB,KAAA,CAAM,IAC/D,WACA,KAAK,IAAI,GAAG,QAAQ;AAAA,IAAA;AAAA,EAE9B;AAEM,QAAA,QAAQ,YAAY,WAAW,KAAK,IAAI,eAAe,SAAS,WAAW,KAAK;AAE/E,SAAA;AAAA,IACL,OAAO,KAAK,IAAI,GAAG,SAAS,WAAW,SAAS,CAAC,CAAC;AAAA,IAClD,OAAO,oBAAoB,OAAO,QAAQ,IAAI,YAAY,KAAK,KAAK,IAAI,GAAG,KAAK;AAAA,EAAA;AAEpF;AAEM,MAAA,2BAA2B,CAAC,mBAAmC;AACnE,MAAI,UAAU,gBAAgB;AACtB,UAAA,EAAE,MAAM,SAAa,IAAA;AACpB,WAAA;AAAA,MACL,QAAQ,OAAO,KAAK;AAAA,MACpB,OAAO;AAAA,IAAA;AAAA,EAEX;AAEO,SAAA;AACT;AAEM,MAAA,8BAA8B,CAAC,gBAAgC,UAAkB;AACrF,MAAI,UAAU,gBAAgB;AACrB,WAAA;AAAA,MACL,GAAG;AAAA,MACH,WAAW,KAAK,KAAK,QAAQ,eAAe,QAAQ;AAAA,MACpD,OAAO;AAAA,IAAA;AAAA,EAEX;AAEO,SAAA;AAAA,IACL,GAAG;AAAA,IACH,OAAO;AAAA,EAAA;AAEX;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { CoreApi, Schema } from '@strapi/types';
|
|
2
|
+
/**
|
|
3
|
+
* Returns a single type service to handle default core-api actions
|
|
4
|
+
*/
|
|
5
|
+
declare const createSingleTypeService: ({ contentType, }: {
|
|
6
|
+
contentType: Schema.SingleType;
|
|
7
|
+
}) => CoreApi.Service.SingleType;
|
|
8
|
+
export default createSingleTypeService;
|
|
9
|
+
//# sourceMappingURL=single-type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"single-type.d.ts","sourceRoot":"","sources":["../../../src/core-api/service/single-type.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAU,MAAM,eAAe,CAAC;AAY7D;;GAEG;AACH,QAAA,MAAM,uBAAuB;iBAGd,OAAO,UAAU;MAC5B,QAAQ,OAAO,CAAC,UAkDnB,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const _ = require("lodash/fp");
|
|
3
|
+
const strapiUtils = require("@strapi/utils");
|
|
4
|
+
const getFetchParams = require("./get-fetch-params.js");
|
|
5
|
+
const {
|
|
6
|
+
constants: { PUBLISHED_AT_ATTRIBUTE }
|
|
7
|
+
} = strapiUtils.contentTypes;
|
|
8
|
+
const setPublishedAt = (data) => {
|
|
9
|
+
data[PUBLISHED_AT_ATTRIBUTE] = _.propOr(/* @__PURE__ */ new Date(), PUBLISHED_AT_ATTRIBUTE, data);
|
|
10
|
+
};
|
|
11
|
+
const createSingleTypeService = ({
|
|
12
|
+
contentType
|
|
13
|
+
}) => {
|
|
14
|
+
const { uid } = contentType;
|
|
15
|
+
return {
|
|
16
|
+
getFetchParams: getFetchParams.getFetchParams,
|
|
17
|
+
/**
|
|
18
|
+
* Returns singleType content
|
|
19
|
+
*/
|
|
20
|
+
find(params = {}) {
|
|
21
|
+
return strapi.entityService?.findMany(uid, this.getFetchParams(params)) ?? null;
|
|
22
|
+
},
|
|
23
|
+
/**
|
|
24
|
+
* Creates or updates a singleType content
|
|
25
|
+
*
|
|
26
|
+
* @return {Promise}
|
|
27
|
+
*/
|
|
28
|
+
async createOrUpdate({ data, ...params } = { data: {} }) {
|
|
29
|
+
const entity = await this.find({ ...params, publicationState: "preview" });
|
|
30
|
+
if (!entity) {
|
|
31
|
+
const count = await strapi.query(uid).count();
|
|
32
|
+
if (count >= 1) {
|
|
33
|
+
throw new strapiUtils.errors.ValidationError("singleType.alreadyExists");
|
|
34
|
+
}
|
|
35
|
+
setPublishedAt(data);
|
|
36
|
+
return strapi.entityService?.create(uid, { ...params, data });
|
|
37
|
+
}
|
|
38
|
+
return strapi.entityService?.update(uid, entity.id, { ...params, data });
|
|
39
|
+
},
|
|
40
|
+
/**
|
|
41
|
+
* Deletes the singleType content
|
|
42
|
+
*
|
|
43
|
+
* @return {Promise}
|
|
44
|
+
*/
|
|
45
|
+
async delete(params = {}) {
|
|
46
|
+
const entity = await this.find(params);
|
|
47
|
+
if (!entity)
|
|
48
|
+
return;
|
|
49
|
+
return strapi.entityService?.delete(uid, entity.id);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
module.exports = createSingleTypeService;
|
|
54
|
+
//# sourceMappingURL=single-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"single-type.js","sources":["../../../src/core-api/service/single-type.ts"],"sourcesContent":["import { propOr } from 'lodash/fp';\nimport type { CoreApi, Schema, Common } from '@strapi/types';\nimport { errors, contentTypes as contentTypeUtils } from '@strapi/utils';\nimport { getFetchParams } from './get-fetch-params';\n\nconst {\n constants: { PUBLISHED_AT_ATTRIBUTE },\n} = contentTypeUtils;\n\nconst setPublishedAt = (data: Record<string, unknown>) => {\n data[PUBLISHED_AT_ATTRIBUTE] = propOr(new Date(), PUBLISHED_AT_ATTRIBUTE, data);\n};\n\n/**\n * Returns a single type service to handle default core-api actions\n */\nconst createSingleTypeService = ({\n contentType,\n}: {\n contentType: Schema.SingleType;\n}): CoreApi.Service.SingleType => {\n const { uid } = contentType;\n\n return <any>{\n getFetchParams,\n /**\n * Returns singleType content\n */\n find(params = {}) {\n return (\n strapi.entityService?.findMany(uid as Common.UID.SingleType, this.getFetchParams(params)) ??\n null\n );\n },\n\n /**\n * Creates or updates a singleType content\n *\n * @return {Promise}\n */\n async createOrUpdate({ data, ...params } = { data: {} }) {\n const entity = await this.find({ ...params, publicationState: 'preview' });\n\n if (!entity) {\n const count = await strapi.query(uid).count();\n if (count >= 1) {\n throw new errors.ValidationError('singleType.alreadyExists');\n }\n\n setPublishedAt(data);\n\n return strapi.entityService?.create(uid, { ...params, data });\n }\n\n return strapi.entityService?.update(uid, entity.id, { ...params, data });\n },\n\n /**\n * Deletes the singleType content\n *\n * @return {Promise}\n */\n async delete(params = {}) {\n const entity = await this.find(params);\n\n if (!entity) return;\n\n return strapi.entityService?.delete(uid, entity.id);\n },\n };\n};\n\nexport default createSingleTypeService;\n"],"names":["contentTypeUtils","propOr","getFetchParams","errors"],"mappings":";;;;AAKA,MAAM;AAAA,EACJ,WAAW,EAAE,uBAAuB;AACtC,IAAIA;AAEJ,MAAM,iBAAiB,CAAC,SAAkC;AACxD,OAAK,sBAAsB,IAAIC,EAAA,2BAAW,QAAQ,wBAAwB,IAAI;AAChF;AAKA,MAAM,0BAA0B,CAAC;AAAA,EAC/B;AACF,MAEkC;AAC1B,QAAA,EAAE,IAAQ,IAAA;AAEJ,SAAA;AAAA,IAAA,gBACVC,eAAA;AAAA;AAAA;AAAA;AAAA,IAIA,KAAK,SAAS,IAAI;AAEd,aAAA,OAAO,eAAe,SAAS,KAA8B,KAAK,eAAe,MAAM,CAAC,KACxF;AAAA,IAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,MAAM,eAAe,EAAE,MAAM,GAAG,OAAO,IAAI,EAAE,MAAM,CAAA,KAAM;AACjD,YAAA,SAAS,MAAM,KAAK,KAAK,EAAE,GAAG,QAAQ,kBAAkB,UAAA,CAAW;AAEzE,UAAI,CAAC,QAAQ;AACX,cAAM,QAAQ,MAAM,OAAO,MAAM,GAAG,EAAE;AACtC,YAAI,SAAS,GAAG;AACR,gBAAA,IAAIC,YAAO,OAAA,gBAAgB,0BAA0B;AAAA,QAC7D;AAEA,uBAAe,IAAI;AAEZ,eAAA,OAAO,eAAe,OAAO,KAAK,EAAE,GAAG,QAAQ,MAAM;AAAA,MAC9D;AAEO,aAAA,OAAO,eAAe,OAAO,KAAK,OAAO,IAAI,EAAE,GAAG,QAAQ,KAAA,CAAM;AAAA,IACzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,MAAM,OAAO,SAAS,IAAI;AACxB,YAAM,SAAS,MAAM,KAAK,KAAK,MAAM;AAErC,UAAI,CAAC;AAAQ;AAEb,aAAO,OAAO,eAAe,OAAO,KAAK,OAAO,EAAE;AAAA,IACpD;AAAA,EAAA;AAEJ;;"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { propOr } from "lodash/fp";
|
|
2
|
+
import { errors, contentTypes } from "@strapi/utils";
|
|
3
|
+
import { getFetchParams } from "./get-fetch-params.mjs";
|
|
4
|
+
const {
|
|
5
|
+
constants: { PUBLISHED_AT_ATTRIBUTE }
|
|
6
|
+
} = contentTypes;
|
|
7
|
+
const setPublishedAt = (data) => {
|
|
8
|
+
data[PUBLISHED_AT_ATTRIBUTE] = propOr(/* @__PURE__ */ new Date(), PUBLISHED_AT_ATTRIBUTE, data);
|
|
9
|
+
};
|
|
10
|
+
const createSingleTypeService = ({
|
|
11
|
+
contentType
|
|
12
|
+
}) => {
|
|
13
|
+
const { uid } = contentType;
|
|
14
|
+
return {
|
|
15
|
+
getFetchParams,
|
|
16
|
+
/**
|
|
17
|
+
* Returns singleType content
|
|
18
|
+
*/
|
|
19
|
+
find(params = {}) {
|
|
20
|
+
return strapi.entityService?.findMany(uid, this.getFetchParams(params)) ?? null;
|
|
21
|
+
},
|
|
22
|
+
/**
|
|
23
|
+
* Creates or updates a singleType content
|
|
24
|
+
*
|
|
25
|
+
* @return {Promise}
|
|
26
|
+
*/
|
|
27
|
+
async createOrUpdate({ data, ...params } = { data: {} }) {
|
|
28
|
+
const entity = await this.find({ ...params, publicationState: "preview" });
|
|
29
|
+
if (!entity) {
|
|
30
|
+
const count = await strapi.query(uid).count();
|
|
31
|
+
if (count >= 1) {
|
|
32
|
+
throw new errors.ValidationError("singleType.alreadyExists");
|
|
33
|
+
}
|
|
34
|
+
setPublishedAt(data);
|
|
35
|
+
return strapi.entityService?.create(uid, { ...params, data });
|
|
36
|
+
}
|
|
37
|
+
return strapi.entityService?.update(uid, entity.id, { ...params, data });
|
|
38
|
+
},
|
|
39
|
+
/**
|
|
40
|
+
* Deletes the singleType content
|
|
41
|
+
*
|
|
42
|
+
* @return {Promise}
|
|
43
|
+
*/
|
|
44
|
+
async delete(params = {}) {
|
|
45
|
+
const entity = await this.find(params);
|
|
46
|
+
if (!entity)
|
|
47
|
+
return;
|
|
48
|
+
return strapi.entityService?.delete(uid, entity.id);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
export {
|
|
53
|
+
createSingleTypeService as default
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=single-type.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"single-type.mjs","sources":["../../../src/core-api/service/single-type.ts"],"sourcesContent":["import { propOr } from 'lodash/fp';\nimport type { CoreApi, Schema, Common } from '@strapi/types';\nimport { errors, contentTypes as contentTypeUtils } from '@strapi/utils';\nimport { getFetchParams } from './get-fetch-params';\n\nconst {\n constants: { PUBLISHED_AT_ATTRIBUTE },\n} = contentTypeUtils;\n\nconst setPublishedAt = (data: Record<string, unknown>) => {\n data[PUBLISHED_AT_ATTRIBUTE] = propOr(new Date(), PUBLISHED_AT_ATTRIBUTE, data);\n};\n\n/**\n * Returns a single type service to handle default core-api actions\n */\nconst createSingleTypeService = ({\n contentType,\n}: {\n contentType: Schema.SingleType;\n}): CoreApi.Service.SingleType => {\n const { uid } = contentType;\n\n return <any>{\n getFetchParams,\n /**\n * Returns singleType content\n */\n find(params = {}) {\n return (\n strapi.entityService?.findMany(uid as Common.UID.SingleType, this.getFetchParams(params)) ??\n null\n );\n },\n\n /**\n * Creates or updates a singleType content\n *\n * @return {Promise}\n */\n async createOrUpdate({ data, ...params } = { data: {} }) {\n const entity = await this.find({ ...params, publicationState: 'preview' });\n\n if (!entity) {\n const count = await strapi.query(uid).count();\n if (count >= 1) {\n throw new errors.ValidationError('singleType.alreadyExists');\n }\n\n setPublishedAt(data);\n\n return strapi.entityService?.create(uid, { ...params, data });\n }\n\n return strapi.entityService?.update(uid, entity.id, { ...params, data });\n },\n\n /**\n * Deletes the singleType content\n *\n * @return {Promise}\n */\n async delete(params = {}) {\n const entity = await this.find(params);\n\n if (!entity) return;\n\n return strapi.entityService?.delete(uid, entity.id);\n },\n };\n};\n\nexport default createSingleTypeService;\n"],"names":["contentTypeUtils"],"mappings":";;;AAKA,MAAM;AAAA,EACJ,WAAW,EAAE,uBAAuB;AACtC,IAAIA;AAEJ,MAAM,iBAAiB,CAAC,SAAkC;AACxD,OAAK,sBAAsB,IAAI,2BAAW,QAAQ,wBAAwB,IAAI;AAChF;AAKA,MAAM,0BAA0B,CAAC;AAAA,EAC/B;AACF,MAEkC;AAC1B,QAAA,EAAE,IAAQ,IAAA;AAEJ,SAAA;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAIA,KAAK,SAAS,IAAI;AAEd,aAAA,OAAO,eAAe,SAAS,KAA8B,KAAK,eAAe,MAAM,CAAC,KACxF;AAAA,IAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,MAAM,eAAe,EAAE,MAAM,GAAG,OAAO,IAAI,EAAE,MAAM,CAAA,KAAM;AACjD,YAAA,SAAS,MAAM,KAAK,KAAK,EAAE,GAAG,QAAQ,kBAAkB,UAAA,CAAW;AAEzE,UAAI,CAAC,QAAQ;AACX,cAAM,QAAQ,MAAM,OAAO,MAAM,GAAG,EAAE;AACtC,YAAI,SAAS,GAAG;AACR,gBAAA,IAAI,OAAO,gBAAgB,0BAA0B;AAAA,QAC7D;AAEA,uBAAe,IAAI;AAEZ,eAAA,OAAO,eAAe,OAAO,KAAK,EAAE,GAAG,QAAQ,MAAM;AAAA,MAC9D;AAEO,aAAA,OAAO,eAAe,OAAO,KAAK,OAAO,IAAI,EAAE,GAAG,QAAQ,KAAA,CAAM;AAAA,IACzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,MAAM,OAAO,SAAS,IAAI;AACxB,YAAM,SAAS,MAAM,KAAK,KAAK,MAAM;AAErC,UAAI,CAAC;AAAQ;AAEb,aAAO,OAAO,eAAe,OAAO,KAAK,OAAO,EAAE;AAAA,IACpD;AAAA,EAAA;AAEJ;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Schema } from '@strapi/types';
|
|
2
|
+
export type ContentTypeDefinition = {
|
|
3
|
+
schema: Schema.ContentType;
|
|
4
|
+
actions: Record<string, unknown>;
|
|
5
|
+
lifecycles: Record<string, unknown>;
|
|
6
|
+
};
|
|
7
|
+
declare const createContentType: (uid: string, definition: ContentTypeDefinition) => Schema.ContentType;
|
|
8
|
+
declare const getGlobalId: (schema: Schema.ContentType, prefix?: string) => string;
|
|
9
|
+
export { createContentType, getGlobalId };
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/content-type/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC,CAAC;AAUF,QAAA,MAAM,iBAAiB,QAAS,MAAM,cAAc,qBAAqB,uBA+BxE,CAAC;AAqDF,QAAA,MAAM,WAAW,WAAY,OAAO,WAAW,WAAW,MAAM,WAK/D,CAAC;AAmBF,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const _ = require("lodash/fp");
|
|
4
|
+
const _$1 = require("lodash");
|
|
5
|
+
const strapiUtils = require("@strapi/utils");
|
|
6
|
+
const validator = require("./validator.js");
|
|
7
|
+
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
8
|
+
const ___default = /* @__PURE__ */ _interopDefault(_$1);
|
|
9
|
+
const {
|
|
10
|
+
CREATED_AT_ATTRIBUTE,
|
|
11
|
+
UPDATED_AT_ATTRIBUTE,
|
|
12
|
+
PUBLISHED_AT_ATTRIBUTE,
|
|
13
|
+
CREATED_BY_ATTRIBUTE,
|
|
14
|
+
UPDATED_BY_ATTRIBUTE
|
|
15
|
+
} = strapiUtils.contentTypes.constants;
|
|
16
|
+
const createContentType = (uid, definition) => {
|
|
17
|
+
try {
|
|
18
|
+
validator.validateContentTypeDefinition(definition);
|
|
19
|
+
} catch (e) {
|
|
20
|
+
if (e instanceof strapiUtils.yup.ValidationError) {
|
|
21
|
+
throw new Error(`Content Type Definition is invalid for ${uid}'.
|
|
22
|
+
${e.errors}`);
|
|
23
|
+
}
|
|
24
|
+
throw e;
|
|
25
|
+
}
|
|
26
|
+
const { schema, actions, lifecycles } = _.cloneDeep(definition);
|
|
27
|
+
Object.assign(schema, {
|
|
28
|
+
uid,
|
|
29
|
+
modelType: "contentType",
|
|
30
|
+
kind: schema.kind || "collectionType",
|
|
31
|
+
__schema__: pickSchema(definition.schema),
|
|
32
|
+
modelName: definition.schema.info.singularName,
|
|
33
|
+
actions,
|
|
34
|
+
lifecycles
|
|
35
|
+
});
|
|
36
|
+
addTimestamps(schema);
|
|
37
|
+
addDraftAndPublish(schema);
|
|
38
|
+
addCreatorFields(schema);
|
|
39
|
+
return schema;
|
|
40
|
+
};
|
|
41
|
+
const addTimestamps = (schema) => {
|
|
42
|
+
Object.assign(schema.attributes, {
|
|
43
|
+
[CREATED_AT_ATTRIBUTE]: {
|
|
44
|
+
type: "datetime"
|
|
45
|
+
},
|
|
46
|
+
// TODO: handle on edit set to new date
|
|
47
|
+
[UPDATED_AT_ATTRIBUTE]: {
|
|
48
|
+
type: "datetime"
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
const addDraftAndPublish = (schema) => {
|
|
53
|
+
schema.attributes[PUBLISHED_AT_ATTRIBUTE] = {
|
|
54
|
+
type: "datetime",
|
|
55
|
+
configurable: false,
|
|
56
|
+
writable: true,
|
|
57
|
+
visible: false,
|
|
58
|
+
default() {
|
|
59
|
+
return /* @__PURE__ */ new Date();
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
const addCreatorFields = (schema) => {
|
|
64
|
+
const isPrivate = !___default.default.get(schema, "options.populateCreatorFields", false);
|
|
65
|
+
schema.attributes[CREATED_BY_ATTRIBUTE] = {
|
|
66
|
+
type: "relation",
|
|
67
|
+
relation: "oneToOne",
|
|
68
|
+
target: "admin::user",
|
|
69
|
+
configurable: false,
|
|
70
|
+
writable: false,
|
|
71
|
+
visible: false,
|
|
72
|
+
useJoinTable: false,
|
|
73
|
+
private: isPrivate
|
|
74
|
+
};
|
|
75
|
+
schema.attributes[UPDATED_BY_ATTRIBUTE] = {
|
|
76
|
+
type: "relation",
|
|
77
|
+
relation: "oneToOne",
|
|
78
|
+
target: "admin::user",
|
|
79
|
+
configurable: false,
|
|
80
|
+
writable: false,
|
|
81
|
+
visible: false,
|
|
82
|
+
useJoinTable: false,
|
|
83
|
+
private: isPrivate
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
const getGlobalId = (schema, prefix) => {
|
|
87
|
+
const modelName = schema.info.singularName;
|
|
88
|
+
const globalId = prefix ? `${prefix}-${modelName}` : modelName;
|
|
89
|
+
return schema.globalId || ___default.default.upperFirst(___default.default.camelCase(globalId));
|
|
90
|
+
};
|
|
91
|
+
const pickSchema = (model) => {
|
|
92
|
+
const schema = ___default.default.cloneDeep(
|
|
93
|
+
___default.default.pick(model, [
|
|
94
|
+
"connection",
|
|
95
|
+
"collectionName",
|
|
96
|
+
"info",
|
|
97
|
+
"options",
|
|
98
|
+
"pluginOptions",
|
|
99
|
+
"attributes",
|
|
100
|
+
"kind"
|
|
101
|
+
])
|
|
102
|
+
);
|
|
103
|
+
schema.kind = model.kind || "collectionType";
|
|
104
|
+
return schema;
|
|
105
|
+
};
|
|
106
|
+
exports.createContentType = createContentType;
|
|
107
|
+
exports.getGlobalId = getGlobalId;
|
|
108
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/domain/content-type/index.ts"],"sourcesContent":["import { cloneDeep } from 'lodash/fp';\nimport _ from 'lodash';\nimport { yup, contentTypes as contentTypesUtils } from '@strapi/utils';\nimport type { Schema } from '@strapi/types';\nimport { validateContentTypeDefinition } from './validator';\n\nexport type ContentTypeDefinition = {\n schema: Schema.ContentType;\n actions: Record<string, unknown>;\n lifecycles: Record<string, unknown>;\n};\n\nconst {\n CREATED_AT_ATTRIBUTE,\n UPDATED_AT_ATTRIBUTE,\n PUBLISHED_AT_ATTRIBUTE,\n CREATED_BY_ATTRIBUTE,\n UPDATED_BY_ATTRIBUTE,\n} = contentTypesUtils.constants;\n\nconst createContentType = (uid: string, definition: ContentTypeDefinition) => {\n try {\n validateContentTypeDefinition(definition);\n } catch (e) {\n if (e instanceof yup.ValidationError) {\n throw new Error(`Content Type Definition is invalid for ${uid}'.\\n${e.errors}`);\n }\n\n throw e;\n }\n\n const { schema, actions, lifecycles } = cloneDeep(definition);\n\n // general info\n Object.assign(schema, {\n uid,\n modelType: 'contentType',\n kind: schema.kind || 'collectionType',\n __schema__: pickSchema(definition.schema),\n modelName: definition.schema.info.singularName,\n actions,\n lifecycles,\n });\n\n addTimestamps(schema);\n\n addDraftAndPublish(schema);\n\n addCreatorFields(schema);\n\n return schema;\n};\n\nconst addTimestamps = (schema: Schema.ContentType) => {\n // attributes\n Object.assign(schema.attributes, {\n [CREATED_AT_ATTRIBUTE]: {\n type: 'datetime',\n },\n // TODO: handle on edit set to new date\n [UPDATED_AT_ATTRIBUTE]: {\n type: 'datetime',\n },\n });\n};\n\nconst addDraftAndPublish = (schema: Schema.ContentType) => {\n schema.attributes[PUBLISHED_AT_ATTRIBUTE] = {\n type: 'datetime',\n configurable: false,\n writable: true,\n visible: false,\n default() {\n return new Date();\n },\n };\n};\n\nconst addCreatorFields = (schema: Schema.ContentType) => {\n const isPrivate = !_.get(schema, 'options.populateCreatorFields', false);\n\n schema.attributes[CREATED_BY_ATTRIBUTE] = {\n type: 'relation',\n relation: 'oneToOne',\n target: 'admin::user',\n configurable: false,\n writable: false,\n visible: false,\n useJoinTable: false,\n private: isPrivate,\n };\n\n schema.attributes[UPDATED_BY_ATTRIBUTE] = {\n type: 'relation',\n relation: 'oneToOne',\n target: 'admin::user',\n configurable: false,\n writable: false,\n visible: false,\n useJoinTable: false,\n private: isPrivate,\n };\n};\n\nconst getGlobalId = (schema: Schema.ContentType, prefix?: string) => {\n const modelName = schema.info.singularName;\n const globalId = prefix ? `${prefix}-${modelName}` : modelName;\n\n return schema.globalId || _.upperFirst(_.camelCase(globalId));\n};\n\nconst pickSchema = (model: Schema.ContentType) => {\n const schema = _.cloneDeep(\n _.pick(model, [\n 'connection',\n 'collectionName',\n 'info',\n 'options',\n 'pluginOptions',\n 'attributes',\n 'kind',\n ])\n );\n\n schema.kind = model.kind || 'collectionType';\n return schema;\n};\n\nexport { createContentType, getGlobalId };\n"],"names":["contentTypesUtils","validateContentTypeDefinition","yup","cloneDeep","_"],"mappings":";;;;;;;;AAYA,MAAM;AAAA,EACJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,IAAIA,YAAAA,aAAkB;AAEhB,MAAA,oBAAoB,CAAC,KAAa,eAAsC;AACxE,MAAA;AACFC,cAAA,8BAA8B,UAAU;AAAA,WACjC,GAAG;AACN,QAAA,aAAaC,gBAAI,iBAAiB;AAC9B,YAAA,IAAI,MAAM,0CAA0C,GAAG;AAAA,EAAO,EAAE,MAAM,EAAE;AAAA,IAChF;AAEM,UAAA;AAAA,EACR;AAEA,QAAM,EAAE,QAAQ,SAAS,WAAW,IAAIC,EAAAA,UAAU,UAAU;AAG5D,SAAO,OAAO,QAAQ;AAAA,IACpB;AAAA,IACA,WAAW;AAAA,IACX,MAAM,OAAO,QAAQ;AAAA,IACrB,YAAY,WAAW,WAAW,MAAM;AAAA,IACxC,WAAW,WAAW,OAAO,KAAK;AAAA,IAClC;AAAA,IACA;AAAA,EAAA,CACD;AAED,gBAAc,MAAM;AAEpB,qBAAmB,MAAM;AAEzB,mBAAiB,MAAM;AAEhB,SAAA;AACT;AAEA,MAAM,gBAAgB,CAAC,WAA+B;AAE7C,SAAA,OAAO,OAAO,YAAY;AAAA,IAC/B,CAAC,oBAAoB,GAAG;AAAA,MACtB,MAAM;AAAA,IACR;AAAA;AAAA,IAEA,CAAC,oBAAoB,GAAG;AAAA,MACtB,MAAM;AAAA,IACR;AAAA,EAAA,CACD;AACH;AAEA,MAAM,qBAAqB,CAAC,WAA+B;AAClD,SAAA,WAAW,sBAAsB,IAAI;AAAA,IAC1C,MAAM;AAAA,IACN,cAAc;AAAA,IACd,UAAU;AAAA,IACV,SAAS;AAAA,IACT,UAAU;AACR,iCAAW,KAAK;AAAA,IAClB;AAAA,EAAA;AAEJ;AAEA,MAAM,mBAAmB,CAAC,WAA+B;AACvD,QAAM,YAAY,CAACC,mBAAE,IAAI,QAAQ,iCAAiC,KAAK;AAEhE,SAAA,WAAW,oBAAoB,IAAI;AAAA,IACxC,MAAM;AAAA,IACN,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,UAAU;AAAA,IACV,SAAS;AAAA,IACT,cAAc;AAAA,IACd,SAAS;AAAA,EAAA;AAGJ,SAAA,WAAW,oBAAoB,IAAI;AAAA,IACxC,MAAM;AAAA,IACN,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,UAAU;AAAA,IACV,SAAS;AAAA,IACT,cAAc;AAAA,IACd,SAAS;AAAA,EAAA;AAEb;AAEM,MAAA,cAAc,CAAC,QAA4B,WAAoB;AAC7D,QAAA,YAAY,OAAO,KAAK;AAC9B,QAAM,WAAW,SAAS,GAAG,MAAM,IAAI,SAAS,KAAK;AAErD,SAAO,OAAO,YAAYA,mBAAE,WAAWA,WAAAA,QAAE,UAAU,QAAQ,CAAC;AAC9D;AAEA,MAAM,aAAa,CAAC,UAA8B;AAChD,QAAM,SAASA,WAAAA,QAAE;AAAA,IACfA,WAAA,QAAE,KAAK,OAAO;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,CACD;AAAA,EAAA;AAGI,SAAA,OAAO,MAAM,QAAQ;AACrB,SAAA;AACT;;;"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { cloneDeep } from "lodash/fp";
|
|
2
|
+
import _ from "lodash";
|
|
3
|
+
import { contentTypes, yup } from "@strapi/utils";
|
|
4
|
+
import { validateContentTypeDefinition } from "./validator.mjs";
|
|
5
|
+
const {
|
|
6
|
+
CREATED_AT_ATTRIBUTE,
|
|
7
|
+
UPDATED_AT_ATTRIBUTE,
|
|
8
|
+
PUBLISHED_AT_ATTRIBUTE,
|
|
9
|
+
CREATED_BY_ATTRIBUTE,
|
|
10
|
+
UPDATED_BY_ATTRIBUTE
|
|
11
|
+
} = contentTypes.constants;
|
|
12
|
+
const createContentType = (uid, definition) => {
|
|
13
|
+
try {
|
|
14
|
+
validateContentTypeDefinition(definition);
|
|
15
|
+
} catch (e) {
|
|
16
|
+
if (e instanceof yup.ValidationError) {
|
|
17
|
+
throw new Error(`Content Type Definition is invalid for ${uid}'.
|
|
18
|
+
${e.errors}`);
|
|
19
|
+
}
|
|
20
|
+
throw e;
|
|
21
|
+
}
|
|
22
|
+
const { schema, actions, lifecycles } = cloneDeep(definition);
|
|
23
|
+
Object.assign(schema, {
|
|
24
|
+
uid,
|
|
25
|
+
modelType: "contentType",
|
|
26
|
+
kind: schema.kind || "collectionType",
|
|
27
|
+
__schema__: pickSchema(definition.schema),
|
|
28
|
+
modelName: definition.schema.info.singularName,
|
|
29
|
+
actions,
|
|
30
|
+
lifecycles
|
|
31
|
+
});
|
|
32
|
+
addTimestamps(schema);
|
|
33
|
+
addDraftAndPublish(schema);
|
|
34
|
+
addCreatorFields(schema);
|
|
35
|
+
return schema;
|
|
36
|
+
};
|
|
37
|
+
const addTimestamps = (schema) => {
|
|
38
|
+
Object.assign(schema.attributes, {
|
|
39
|
+
[CREATED_AT_ATTRIBUTE]: {
|
|
40
|
+
type: "datetime"
|
|
41
|
+
},
|
|
42
|
+
// TODO: handle on edit set to new date
|
|
43
|
+
[UPDATED_AT_ATTRIBUTE]: {
|
|
44
|
+
type: "datetime"
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
const addDraftAndPublish = (schema) => {
|
|
49
|
+
schema.attributes[PUBLISHED_AT_ATTRIBUTE] = {
|
|
50
|
+
type: "datetime",
|
|
51
|
+
configurable: false,
|
|
52
|
+
writable: true,
|
|
53
|
+
visible: false,
|
|
54
|
+
default() {
|
|
55
|
+
return /* @__PURE__ */ new Date();
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
const addCreatorFields = (schema) => {
|
|
60
|
+
const isPrivate = !_.get(schema, "options.populateCreatorFields", false);
|
|
61
|
+
schema.attributes[CREATED_BY_ATTRIBUTE] = {
|
|
62
|
+
type: "relation",
|
|
63
|
+
relation: "oneToOne",
|
|
64
|
+
target: "admin::user",
|
|
65
|
+
configurable: false,
|
|
66
|
+
writable: false,
|
|
67
|
+
visible: false,
|
|
68
|
+
useJoinTable: false,
|
|
69
|
+
private: isPrivate
|
|
70
|
+
};
|
|
71
|
+
schema.attributes[UPDATED_BY_ATTRIBUTE] = {
|
|
72
|
+
type: "relation",
|
|
73
|
+
relation: "oneToOne",
|
|
74
|
+
target: "admin::user",
|
|
75
|
+
configurable: false,
|
|
76
|
+
writable: false,
|
|
77
|
+
visible: false,
|
|
78
|
+
useJoinTable: false,
|
|
79
|
+
private: isPrivate
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
const getGlobalId = (schema, prefix) => {
|
|
83
|
+
const modelName = schema.info.singularName;
|
|
84
|
+
const globalId = prefix ? `${prefix}-${modelName}` : modelName;
|
|
85
|
+
return schema.globalId || _.upperFirst(_.camelCase(globalId));
|
|
86
|
+
};
|
|
87
|
+
const pickSchema = (model) => {
|
|
88
|
+
const schema = _.cloneDeep(
|
|
89
|
+
_.pick(model, [
|
|
90
|
+
"connection",
|
|
91
|
+
"collectionName",
|
|
92
|
+
"info",
|
|
93
|
+
"options",
|
|
94
|
+
"pluginOptions",
|
|
95
|
+
"attributes",
|
|
96
|
+
"kind"
|
|
97
|
+
])
|
|
98
|
+
);
|
|
99
|
+
schema.kind = model.kind || "collectionType";
|
|
100
|
+
return schema;
|
|
101
|
+
};
|
|
102
|
+
export {
|
|
103
|
+
createContentType,
|
|
104
|
+
getGlobalId
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../src/domain/content-type/index.ts"],"sourcesContent":["import { cloneDeep } from 'lodash/fp';\nimport _ from 'lodash';\nimport { yup, contentTypes as contentTypesUtils } from '@strapi/utils';\nimport type { Schema } from '@strapi/types';\nimport { validateContentTypeDefinition } from './validator';\n\nexport type ContentTypeDefinition = {\n schema: Schema.ContentType;\n actions: Record<string, unknown>;\n lifecycles: Record<string, unknown>;\n};\n\nconst {\n CREATED_AT_ATTRIBUTE,\n UPDATED_AT_ATTRIBUTE,\n PUBLISHED_AT_ATTRIBUTE,\n CREATED_BY_ATTRIBUTE,\n UPDATED_BY_ATTRIBUTE,\n} = contentTypesUtils.constants;\n\nconst createContentType = (uid: string, definition: ContentTypeDefinition) => {\n try {\n validateContentTypeDefinition(definition);\n } catch (e) {\n if (e instanceof yup.ValidationError) {\n throw new Error(`Content Type Definition is invalid for ${uid}'.\\n${e.errors}`);\n }\n\n throw e;\n }\n\n const { schema, actions, lifecycles } = cloneDeep(definition);\n\n // general info\n Object.assign(schema, {\n uid,\n modelType: 'contentType',\n kind: schema.kind || 'collectionType',\n __schema__: pickSchema(definition.schema),\n modelName: definition.schema.info.singularName,\n actions,\n lifecycles,\n });\n\n addTimestamps(schema);\n\n addDraftAndPublish(schema);\n\n addCreatorFields(schema);\n\n return schema;\n};\n\nconst addTimestamps = (schema: Schema.ContentType) => {\n // attributes\n Object.assign(schema.attributes, {\n [CREATED_AT_ATTRIBUTE]: {\n type: 'datetime',\n },\n // TODO: handle on edit set to new date\n [UPDATED_AT_ATTRIBUTE]: {\n type: 'datetime',\n },\n });\n};\n\nconst addDraftAndPublish = (schema: Schema.ContentType) => {\n schema.attributes[PUBLISHED_AT_ATTRIBUTE] = {\n type: 'datetime',\n configurable: false,\n writable: true,\n visible: false,\n default() {\n return new Date();\n },\n };\n};\n\nconst addCreatorFields = (schema: Schema.ContentType) => {\n const isPrivate = !_.get(schema, 'options.populateCreatorFields', false);\n\n schema.attributes[CREATED_BY_ATTRIBUTE] = {\n type: 'relation',\n relation: 'oneToOne',\n target: 'admin::user',\n configurable: false,\n writable: false,\n visible: false,\n useJoinTable: false,\n private: isPrivate,\n };\n\n schema.attributes[UPDATED_BY_ATTRIBUTE] = {\n type: 'relation',\n relation: 'oneToOne',\n target: 'admin::user',\n configurable: false,\n writable: false,\n visible: false,\n useJoinTable: false,\n private: isPrivate,\n };\n};\n\nconst getGlobalId = (schema: Schema.ContentType, prefix?: string) => {\n const modelName = schema.info.singularName;\n const globalId = prefix ? `${prefix}-${modelName}` : modelName;\n\n return schema.globalId || _.upperFirst(_.camelCase(globalId));\n};\n\nconst pickSchema = (model: Schema.ContentType) => {\n const schema = _.cloneDeep(\n _.pick(model, [\n 'connection',\n 'collectionName',\n 'info',\n 'options',\n 'pluginOptions',\n 'attributes',\n 'kind',\n ])\n );\n\n schema.kind = model.kind || 'collectionType';\n return schema;\n};\n\nexport { createContentType, getGlobalId };\n"],"names":["contentTypesUtils"],"mappings":";;;;AAYA,MAAM;AAAA,EACJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,IAAIA,aAAkB;AAEhB,MAAA,oBAAoB,CAAC,KAAa,eAAsC;AACxE,MAAA;AACF,kCAA8B,UAAU;AAAA,WACjC,GAAG;AACN,QAAA,aAAa,IAAI,iBAAiB;AAC9B,YAAA,IAAI,MAAM,0CAA0C,GAAG;AAAA,EAAO,EAAE,MAAM,EAAE;AAAA,IAChF;AAEM,UAAA;AAAA,EACR;AAEA,QAAM,EAAE,QAAQ,SAAS,WAAW,IAAI,UAAU,UAAU;AAG5D,SAAO,OAAO,QAAQ;AAAA,IACpB;AAAA,IACA,WAAW;AAAA,IACX,MAAM,OAAO,QAAQ;AAAA,IACrB,YAAY,WAAW,WAAW,MAAM;AAAA,IACxC,WAAW,WAAW,OAAO,KAAK;AAAA,IAClC;AAAA,IACA;AAAA,EAAA,CACD;AAED,gBAAc,MAAM;AAEpB,qBAAmB,MAAM;AAEzB,mBAAiB,MAAM;AAEhB,SAAA;AACT;AAEA,MAAM,gBAAgB,CAAC,WAA+B;AAE7C,SAAA,OAAO,OAAO,YAAY;AAAA,IAC/B,CAAC,oBAAoB,GAAG;AAAA,MACtB,MAAM;AAAA,IACR;AAAA;AAAA,IAEA,CAAC,oBAAoB,GAAG;AAAA,MACtB,MAAM;AAAA,IACR;AAAA,EAAA,CACD;AACH;AAEA,MAAM,qBAAqB,CAAC,WAA+B;AAClD,SAAA,WAAW,sBAAsB,IAAI;AAAA,IAC1C,MAAM;AAAA,IACN,cAAc;AAAA,IACd,UAAU;AAAA,IACV,SAAS;AAAA,IACT,UAAU;AACR,iCAAW,KAAK;AAAA,IAClB;AAAA,EAAA;AAEJ;AAEA,MAAM,mBAAmB,CAAC,WAA+B;AACvD,QAAM,YAAY,CAAC,EAAE,IAAI,QAAQ,iCAAiC,KAAK;AAEhE,SAAA,WAAW,oBAAoB,IAAI;AAAA,IACxC,MAAM;AAAA,IACN,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,UAAU;AAAA,IACV,SAAS;AAAA,IACT,cAAc;AAAA,IACd,SAAS;AAAA,EAAA;AAGJ,SAAA,WAAW,oBAAoB,IAAI;AAAA,IACxC,MAAM;AAAA,IACN,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,UAAU;AAAA,IACV,SAAS;AAAA,IACT,cAAc;AAAA,IACd,SAAS;AAAA,EAAA;AAEb;AAEM,MAAA,cAAc,CAAC,QAA4B,WAAoB;AAC7D,QAAA,YAAY,OAAO,KAAK;AAC9B,QAAM,WAAW,SAAS,GAAG,MAAM,IAAI,SAAS,KAAK;AAErD,SAAO,OAAO,YAAY,EAAE,WAAW,EAAE,UAAU,QAAQ,CAAC;AAC9D;AAEA,MAAM,aAAa,CAAC,UAA8B;AAChD,QAAM,SAAS,EAAE;AAAA,IACf,EAAE,KAAK,OAAO;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,CACD;AAAA,EAAA;AAGI,SAAA,OAAO,MAAM,QAAQ;AACrB,SAAA;AACT;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { yup } from '@strapi/utils';
|
|
2
|
+
declare const validateContentTypeDefinition: (data: unknown) => import("yup/lib/object").AssertsShape<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
|
|
3
|
+
schema: import("yup").ObjectSchema<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
|
|
4
|
+
info: any;
|
|
5
|
+
attributes: import("yup/lib/object").OptionalObjectSchema<import("yup/lib/object").ObjectShape, Record<string, any>, import("yup/lib/object").TypeOfShape<import("yup/lib/object").ObjectShape>>;
|
|
6
|
+
}>, Record<string, any>, import("yup/lib/object").TypeOfShape<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
|
|
7
|
+
info: any;
|
|
8
|
+
attributes: import("yup/lib/object").OptionalObjectSchema<import("yup/lib/object").ObjectShape, Record<string, any>, import("yup/lib/object").TypeOfShape<import("yup/lib/object").ObjectShape>>;
|
|
9
|
+
}>>, import("yup/lib/object").AssertsShape<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
|
|
10
|
+
info: any;
|
|
11
|
+
attributes: import("yup/lib/object").OptionalObjectSchema<import("yup/lib/object").ObjectShape, Record<string, any>, import("yup/lib/object").TypeOfShape<import("yup/lib/object").ObjectShape>>;
|
|
12
|
+
}>>>;
|
|
13
|
+
actions: import("yup/lib/object").OptionalObjectSchema<import("yup/lib/object").ObjectShape, Record<string, any>, import("yup/lib/object").TypeOfShape<import("yup/lib/object").ObjectShape>>;
|
|
14
|
+
lifecycles: import("yup").ObjectSchema<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
|
|
15
|
+
[x: string]: import("yup/lib/mixed").MixedSchema<any, Record<string, any>, any>;
|
|
16
|
+
}>, Record<string, any>, import("yup/lib/object").TypeOfShape<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
|
|
17
|
+
[x: string]: import("yup/lib/mixed").MixedSchema<any, Record<string, any>, any>;
|
|
18
|
+
}>>, import("yup/lib/object").AssertsShape<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
|
|
19
|
+
[x: string]: import("yup/lib/mixed").MixedSchema<any, Record<string, any>, any>;
|
|
20
|
+
}>>>;
|
|
21
|
+
}>>;
|
|
22
|
+
export { validateContentTypeDefinition };
|
|
23
|
+
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/domain/content-type/validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAwB,MAAM,eAAe,CAAC;AAkG1D,QAAA,MAAM,6BAA6B,SAAU,OAAO;;;;;;;;;;;;;;;;;;;GAEnD,CAAC;AAEF,OAAO,EAAE,6BAA6B,EAAE,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const _ = require("lodash");
|
|
4
|
+
const strapiUtils = require("@strapi/utils");
|
|
5
|
+
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
6
|
+
const ___default = /* @__PURE__ */ _interopDefault(_);
|
|
7
|
+
const LIFECYCLES = [
|
|
8
|
+
"beforeCreate",
|
|
9
|
+
"afterCreate",
|
|
10
|
+
"beforeFindOne",
|
|
11
|
+
"afterFindOne",
|
|
12
|
+
"beforeFindMany",
|
|
13
|
+
"afterFindMany",
|
|
14
|
+
"beforeCount",
|
|
15
|
+
"afterCount",
|
|
16
|
+
"beforeCreateMany",
|
|
17
|
+
"afterCreateMany",
|
|
18
|
+
"beforeUpdate",
|
|
19
|
+
"afterUpdate",
|
|
20
|
+
"beforeUpdateMany",
|
|
21
|
+
"afterUpdateMany",
|
|
22
|
+
"beforeDelete",
|
|
23
|
+
"afterDelete",
|
|
24
|
+
"beforeDeleteMany",
|
|
25
|
+
"afterDeleteMany"
|
|
26
|
+
];
|
|
27
|
+
const GRAPHQL_ENUM_REGEX = /^[_A-Za-z][_0-9A-Za-z]*$/;
|
|
28
|
+
const lifecyclesShape = ___default.default.mapValues(___default.default.keyBy(LIFECYCLES), () => strapiUtils.yup.mixed().nullable().isFunction());
|
|
29
|
+
const contentTypeSchemaValidator = strapiUtils.yup.object().shape({
|
|
30
|
+
schema: strapiUtils.yup.object().shape({
|
|
31
|
+
info: strapiUtils.yup.object().shape({
|
|
32
|
+
displayName: strapiUtils.yup.string().required(),
|
|
33
|
+
singularName: strapiUtils.yup.string().isKebabCase().required(),
|
|
34
|
+
pluralName: strapiUtils.yup.string().isKebabCase().required()
|
|
35
|
+
}).required(),
|
|
36
|
+
attributes: strapiUtils.yup.object().test({
|
|
37
|
+
name: "valuesCollide",
|
|
38
|
+
message: "Some values collide when normalized",
|
|
39
|
+
test(attributes) {
|
|
40
|
+
for (const attrName of Object.keys(attributes)) {
|
|
41
|
+
const attr = attributes[attrName];
|
|
42
|
+
if (attr.type === "enumeration") {
|
|
43
|
+
const regressedValues = attr.enum.map(strapiUtils.toRegressedEnumValue);
|
|
44
|
+
if (!regressedValues.every((value) => GRAPHQL_ENUM_REGEX.test(value))) {
|
|
45
|
+
const message = `Invalid enumeration value. Values should have at least one alphabetical character preceding the first occurence of a number. Update your enumeration '${attrName}'.`;
|
|
46
|
+
return this.createError({ message });
|
|
47
|
+
}
|
|
48
|
+
if (regressedValues.some((value) => value === "")) {
|
|
49
|
+
return this.createError({
|
|
50
|
+
message: `At least one value of the enumeration '${attrName}' appears to be empty. Only alphanumerical characters are taken into account.`
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
const duplicates = ___default.default.uniq(
|
|
54
|
+
regressedValues.filter(
|
|
55
|
+
(value, index, values) => values.indexOf(value) !== index
|
|
56
|
+
)
|
|
57
|
+
);
|
|
58
|
+
if (duplicates.length) {
|
|
59
|
+
const message = `Some enumeration values of the field '${attrName}' collide when normalized: ${duplicates.join(
|
|
60
|
+
", "
|
|
61
|
+
)}. Please modify your enumeration.`;
|
|
62
|
+
return this.createError({ message });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
})
|
|
69
|
+
}),
|
|
70
|
+
actions: strapiUtils.yup.object().onlyContainsFunctions(),
|
|
71
|
+
lifecycles: strapiUtils.yup.object().shape(lifecyclesShape).noUnknown()
|
|
72
|
+
});
|
|
73
|
+
const validateContentTypeDefinition = (data) => {
|
|
74
|
+
return contentTypeSchemaValidator.validateSync(data, { strict: true, abortEarly: false });
|
|
75
|
+
};
|
|
76
|
+
exports.validateContentTypeDefinition = validateContentTypeDefinition;
|
|
77
|
+
//# sourceMappingURL=validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.js","sources":["../../../src/domain/content-type/validator.ts"],"sourcesContent":["import _ from 'lodash';\nimport { yup, toRegressedEnumValue } from '@strapi/utils';\nimport type { Schema } from '@strapi/types';\n\nconst LIFECYCLES = [\n 'beforeCreate',\n 'afterCreate',\n 'beforeFindOne',\n 'afterFindOne',\n 'beforeFindMany',\n 'afterFindMany',\n 'beforeCount',\n 'afterCount',\n 'beforeCreateMany',\n 'afterCreateMany',\n 'beforeUpdate',\n 'afterUpdate',\n 'beforeUpdateMany',\n 'afterUpdateMany',\n 'beforeDelete',\n 'afterDelete',\n 'beforeDeleteMany',\n 'afterDeleteMany',\n] as const;\n\n/**\n * For enumerations the least common denomiator is GraphQL, where\n * values needs to match the secure name regex:\n * GraphQL Spec https://spec.graphql.org/June2018/#sec-Names\n *\n * Therefore we need to make sure our users only use values, which\n * can be returned by GraphQL, by checking the regressed values\n * agains the GraphQL regex.\n *\n * TODO V5: check if we can avoid this coupling by moving this logic\n * into the GraphQL plugin.\n */\nconst GRAPHQL_ENUM_REGEX = /^[_A-Za-z][_0-9A-Za-z]*$/;\n\nconst lifecyclesShape = _.mapValues(_.keyBy(LIFECYCLES), () => yup.mixed().nullable().isFunction());\n\nconst contentTypeSchemaValidator = yup.object().shape({\n schema: yup.object().shape({\n info: yup\n .object()\n .shape({\n displayName: yup.string().required(),\n singularName: yup.string().isKebabCase().required(),\n pluralName: yup.string().isKebabCase().required(),\n })\n .required(),\n attributes: yup.object().test({\n name: 'valuesCollide',\n message: 'Some values collide when normalized',\n test(attributes: Schema.ContentType['attributes']) {\n for (const attrName of Object.keys(attributes)) {\n const attr = attributes[attrName];\n if (attr.type === 'enumeration') {\n const regressedValues = attr.enum.map(toRegressedEnumValue);\n\n // should match the GraphQL regex\n if (!regressedValues.every((value: string) => GRAPHQL_ENUM_REGEX.test(value))) {\n const message = `Invalid enumeration value. Values should have at least one alphabetical character preceding the first occurence of a number. Update your enumeration '${attrName}'.`;\n\n return this.createError({ message });\n }\n\n // should not contain empty values\n if (regressedValues.some((value: string) => value === '')) {\n return this.createError({\n message: `At least one value of the enumeration '${attrName}' appears to be empty. Only alphanumerical characters are taken into account.`,\n });\n }\n\n // should not collide\n const duplicates = _.uniq(\n regressedValues.filter(\n (value: string, index: number, values: string[]) => values.indexOf(value) !== index\n )\n );\n\n if (duplicates.length) {\n const message = `Some enumeration values of the field '${attrName}' collide when normalized: ${duplicates.join(\n ', '\n )}. Please modify your enumeration.`;\n\n return this.createError({ message });\n }\n }\n }\n\n return true;\n },\n }),\n }),\n actions: yup.object().onlyContainsFunctions(),\n lifecycles: yup.object().shape(lifecyclesShape).noUnknown(),\n});\n\nconst validateContentTypeDefinition = (data: unknown) => {\n return contentTypeSchemaValidator.validateSync(data, { strict: true, abortEarly: false });\n};\n\nexport { validateContentTypeDefinition };\n"],"names":["_","yup","toRegressedEnumValue"],"mappings":";;;;;;AAIA,MAAM,aAAa;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAcA,MAAM,qBAAqB;AAE3B,MAAM,kBAAkBA,WAAAA,QAAE,UAAUA,WAAA,QAAE,MAAM,UAAU,GAAG,MAAMC,YAAAA,IAAI,MAAM,EAAE,SAAS,EAAE,WAAY,CAAA;AAElG,MAAM,6BAA6BA,YAAA,IAAI,OAAO,EAAE,MAAM;AAAA,EACpD,QAAQA,YAAA,IAAI,OAAO,EAAE,MAAM;AAAA,IACzB,MAAMA,YAAA,IACH,OAAO,EACP,MAAM;AAAA,MACL,aAAaA,YAAA,IAAI,OAAO,EAAE,SAAS;AAAA,MACnC,cAAcA,YAAAA,IAAI,OAAS,EAAA,YAAA,EAAc,SAAS;AAAA,MAClD,YAAYA,YAAAA,IAAI,OAAS,EAAA,YAAA,EAAc,SAAS;AAAA,IACjD,CAAA,EACA,SAAS;AAAA,IACZ,YAAYA,YAAA,IAAI,OAAO,EAAE,KAAK;AAAA,MAC5B,MAAM;AAAA,MACN,SAAS;AAAA,MACT,KAAK,YAA8C;AACjD,mBAAW,YAAY,OAAO,KAAK,UAAU,GAAG;AACxC,gBAAA,OAAO,WAAW,QAAQ;AAC5B,cAAA,KAAK,SAAS,eAAe;AAC/B,kBAAM,kBAAkB,KAAK,KAAK,IAAIC,YAAoB,oBAAA;AAGtD,gBAAA,CAAC,gBAAgB,MAAM,CAAC,UAAkB,mBAAmB,KAAK,KAAK,CAAC,GAAG;AACvE,oBAAA,UAAU,yJAAyJ,QAAQ;AAEjL,qBAAO,KAAK,YAAY,EAAE,QAAS,CAAA;AAAA,YACrC;AAGA,gBAAI,gBAAgB,KAAK,CAAC,UAAkB,UAAU,EAAE,GAAG;AACzD,qBAAO,KAAK,YAAY;AAAA,gBACtB,SAAS,0CAA0C,QAAQ;AAAA,cAAA,CAC5D;AAAA,YACH;AAGA,kBAAM,aAAaF,WAAAA,QAAE;AAAA,cACnB,gBAAgB;AAAA,gBACd,CAAC,OAAe,OAAe,WAAqB,OAAO,QAAQ,KAAK,MAAM;AAAA,cAChF;AAAA,YAAA;AAGF,gBAAI,WAAW,QAAQ;AACrB,oBAAM,UAAU,yCAAyC,QAAQ,8BAA8B,WAAW;AAAA,gBACxG;AAAA,cACD,CAAA;AAED,qBAAO,KAAK,YAAY,EAAE,QAAS,CAAA;AAAA,YACrC;AAAA,UACF;AAAA,QACF;AAEO,eAAA;AAAA,MACT;AAAA,IAAA,CACD;AAAA,EAAA,CACF;AAAA,EACD,SAASC,YAAA,IAAI,OAAO,EAAE,sBAAsB;AAAA,EAC5C,YAAYA,YAAI,IAAA,OAAA,EAAS,MAAM,eAAe,EAAE,UAAU;AAC5D,CAAC;AAEK,MAAA,gCAAgC,CAAC,SAAkB;AAChD,SAAA,2BAA2B,aAAa,MAAM,EAAE,QAAQ,MAAM,YAAY,OAAO;AAC1F;;"}
|