@strapi/core 0.0.0-experimental.abcfb5ddb536afe8e2213d4a4508536549e89f16 → 0.0.0-experimental.ae51b136d065d25740e6d2aa634b3dfec5824476
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of @strapi/core might be problematic. Click here for more details.
- package/dist/Strapi.d.ts.map +1 -1
- package/dist/Strapi.js +458 -0
- package/dist/Strapi.js.map +1 -0
- package/dist/Strapi.mjs +437 -0
- package/dist/Strapi.mjs.map +1 -0
- package/dist/compile.js +27 -0
- package/dist/compile.js.map +1 -0
- package/dist/compile.mjs +25 -0
- package/dist/compile.mjs.map +1 -0
- package/dist/configuration/config-loader.js +119 -0
- package/dist/configuration/config-loader.js.map +1 -0
- package/dist/configuration/config-loader.mjs +117 -0
- package/dist/configuration/config-loader.mjs.map +1 -0
- package/dist/configuration/get-dirs.js +33 -0
- package/dist/configuration/get-dirs.js.map +1 -0
- package/dist/configuration/get-dirs.mjs +31 -0
- package/dist/configuration/get-dirs.mjs.map +1 -0
- package/dist/configuration/index.d.ts +1 -0
- package/dist/configuration/index.d.ts.map +1 -1
- package/dist/configuration/index.js +92 -0
- package/dist/configuration/index.js.map +1 -0
- package/dist/configuration/index.mjs +90 -0
- package/dist/configuration/index.mjs.map +1 -0
- package/dist/configuration/urls.d.ts.map +1 -1
- package/dist/configuration/urls.js +81 -0
- package/dist/configuration/urls.js.map +1 -0
- package/dist/configuration/urls.mjs +77 -0
- package/dist/configuration/urls.mjs.map +1 -0
- package/dist/container.js +34 -0
- package/dist/container.js.map +1 -0
- package/dist/container.mjs +32 -0
- package/dist/container.mjs.map +1 -0
- package/dist/core-api/controller/collection-type.js +85 -0
- package/dist/core-api/controller/collection-type.js.map +1 -0
- package/dist/core-api/controller/collection-type.mjs +83 -0
- package/dist/core-api/controller/collection-type.mjs.map +1 -0
- package/dist/core-api/controller/index.d.ts.map +1 -1
- package/dist/core-api/controller/index.js +68 -0
- package/dist/core-api/controller/index.js.map +1 -0
- package/dist/core-api/controller/index.mjs +66 -0
- package/dist/core-api/controller/index.mjs.map +1 -0
- package/dist/core-api/controller/single-type.js +47 -0
- package/dist/core-api/controller/single-type.js.map +1 -0
- package/dist/core-api/controller/single-type.mjs +45 -0
- package/dist/core-api/controller/single-type.mjs.map +1 -0
- package/dist/core-api/controller/transform.d.ts +3 -2
- package/dist/core-api/controller/transform.d.ts.map +1 -1
- package/dist/core-api/controller/transform.js +95 -0
- package/dist/core-api/controller/transform.js.map +1 -0
- package/dist/core-api/controller/transform.mjs +93 -0
- package/dist/core-api/controller/transform.mjs.map +1 -0
- package/dist/core-api/routes/index.d.ts +4 -22
- package/dist/core-api/routes/index.d.ts.map +1 -1
- package/dist/core-api/routes/index.js +211 -0
- package/dist/core-api/routes/index.js.map +1 -0
- package/dist/core-api/routes/index.mjs +190 -0
- package/dist/core-api/routes/index.mjs.map +1 -0
- package/dist/core-api/routes/validation/attributes.d.ts +244 -0
- package/dist/core-api/routes/validation/attributes.d.ts.map +1 -0
- package/dist/core-api/routes/validation/attributes.js +560 -0
- package/dist/core-api/routes/validation/attributes.js.map +1 -0
- package/dist/core-api/routes/validation/attributes.mjs +521 -0
- package/dist/core-api/routes/validation/attributes.mjs.map +1 -0
- package/dist/core-api/routes/validation/common.d.ts +105 -0
- package/dist/core-api/routes/validation/common.d.ts.map +1 -0
- package/dist/core-api/routes/validation/common.js +116 -0
- package/dist/core-api/routes/validation/common.js.map +1 -0
- package/dist/core-api/routes/validation/common.mjs +95 -0
- package/dist/core-api/routes/validation/common.mjs.map +1 -0
- package/dist/core-api/routes/validation/component.d.ts +34 -0
- package/dist/core-api/routes/validation/component.d.ts.map +1 -0
- package/dist/core-api/routes/validation/component.js +45 -0
- package/dist/core-api/routes/validation/component.js.map +1 -0
- package/dist/core-api/routes/validation/component.mjs +43 -0
- package/dist/core-api/routes/validation/component.mjs.map +1 -0
- package/dist/core-api/routes/validation/constants.d.ts +8 -0
- package/dist/core-api/routes/validation/constants.d.ts.map +1 -0
- package/dist/core-api/routes/validation/constants.js +18 -0
- package/dist/core-api/routes/validation/constants.js.map +1 -0
- package/dist/core-api/routes/validation/constants.mjs +16 -0
- package/dist/core-api/routes/validation/constants.mjs.map +1 -0
- package/dist/core-api/routes/validation/content-type.d.ts +128 -0
- package/dist/core-api/routes/validation/content-type.d.ts.map +1 -0
- package/dist/core-api/routes/validation/content-type.js +201 -0
- package/dist/core-api/routes/validation/content-type.js.map +1 -0
- package/dist/core-api/routes/validation/content-type.mjs +180 -0
- package/dist/core-api/routes/validation/content-type.mjs.map +1 -0
- package/dist/core-api/routes/validation/index.d.ts +5 -0
- package/dist/core-api/routes/validation/index.d.ts.map +1 -0
- package/dist/core-api/routes/validation/mappers.d.ts +105 -0
- package/dist/core-api/routes/validation/mappers.d.ts.map +1 -0
- package/dist/core-api/routes/validation/mappers.js +238 -0
- package/dist/core-api/routes/validation/mappers.js.map +1 -0
- package/dist/core-api/routes/validation/mappers.mjs +214 -0
- package/dist/core-api/routes/validation/mappers.mjs.map +1 -0
- package/dist/core-api/routes/validation/utils.d.ts +47 -0
- package/dist/core-api/routes/validation/utils.d.ts.map +1 -0
- package/dist/core-api/routes/validation/utils.js +128 -0
- package/dist/core-api/routes/validation/utils.js.map +1 -0
- package/dist/core-api/routes/validation/utils.mjs +106 -0
- package/dist/core-api/routes/validation/utils.mjs.map +1 -0
- package/dist/core-api/service/collection-type.js +80 -0
- package/dist/core-api/service/collection-type.js.map +1 -0
- package/dist/core-api/service/collection-type.mjs +77 -0
- package/dist/core-api/service/collection-type.mjs.map +1 -0
- package/dist/core-api/service/core-service.js +13 -0
- package/dist/core-api/service/core-service.js.map +1 -0
- package/dist/core-api/service/core-service.mjs +11 -0
- package/dist/core-api/service/core-service.mjs.map +1 -0
- package/dist/core-api/service/index.js +16 -0
- package/dist/core-api/service/index.js.map +1 -0
- package/dist/core-api/service/index.mjs +14 -0
- package/dist/core-api/service/index.mjs.map +1 -0
- package/dist/core-api/service/pagination.js +78 -0
- package/dist/core-api/service/pagination.js.map +1 -0
- package/dist/core-api/service/pagination.mjs +73 -0
- package/dist/core-api/service/pagination.mjs.map +1 -0
- package/dist/core-api/service/single-type.js +50 -0
- package/dist/core-api/service/single-type.js.map +1 -0
- package/dist/core-api/service/single-type.mjs +47 -0
- package/dist/core-api/service/single-type.mjs.map +1 -0
- package/dist/domain/content-type/index.d.ts.map +1 -1
- package/dist/domain/content-type/index.js +122 -0
- package/dist/domain/content-type/index.js.map +1 -0
- package/dist/domain/content-type/index.mjs +119 -0
- package/dist/domain/content-type/index.mjs.map +1 -0
- package/dist/domain/content-type/validator.js +92 -0
- package/dist/domain/content-type/validator.js.map +1 -0
- package/dist/domain/content-type/validator.mjs +90 -0
- package/dist/domain/content-type/validator.mjs.map +1 -0
- package/dist/domain/module/index.d.ts.map +1 -1
- package/dist/domain/module/index.js +119 -0
- package/dist/domain/module/index.js.map +1 -0
- package/dist/domain/module/index.mjs +117 -0
- package/dist/domain/module/index.mjs.map +1 -0
- package/dist/domain/module/validation.js +30 -0
- package/dist/domain/module/validation.js.map +1 -0
- package/dist/domain/module/validation.mjs +28 -0
- package/dist/domain/module/validation.mjs.map +1 -0
- package/dist/ee/index.d.ts +7 -0
- package/dist/ee/index.d.ts.map +1 -1
- package/dist/ee/index.js +218 -0
- package/dist/ee/index.js.map +1 -0
- package/dist/ee/index.mjs +216 -0
- package/dist/ee/index.mjs.map +1 -0
- package/dist/ee/license.d.ts +3 -1
- package/dist/ee/license.d.ts.map +1 -1
- package/dist/ee/license.js +121 -0
- package/dist/ee/license.js.map +1 -0
- package/dist/ee/license.mjs +115 -0
- package/dist/ee/license.mjs.map +1 -0
- package/dist/factories.d.ts +3 -1
- package/dist/factories.d.ts.map +1 -1
- package/dist/factories.js +93 -0
- package/dist/factories.js.map +1 -0
- package/dist/factories.mjs +87 -0
- package/dist/factories.mjs.map +1 -0
- package/dist/index.js +19 -10099
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +17 -10076
- package/dist/index.mjs.map +1 -1
- package/dist/loaders/admin.d.ts.map +1 -1
- package/dist/loaders/admin.js +27 -0
- package/dist/loaders/admin.js.map +1 -0
- package/dist/loaders/admin.mjs +25 -0
- package/dist/loaders/admin.mjs.map +1 -0
- package/dist/loaders/apis.js +160 -0
- package/dist/loaders/apis.js.map +1 -0
- package/dist/loaders/apis.mjs +158 -0
- package/dist/loaders/apis.mjs.map +1 -0
- package/dist/loaders/components.js +37 -0
- package/dist/loaders/components.js.map +1 -0
- package/dist/loaders/components.mjs +35 -0
- package/dist/loaders/components.mjs.map +1 -0
- package/dist/loaders/index.js +26 -0
- package/dist/loaders/index.js.map +1 -0
- package/dist/loaders/index.mjs +24 -0
- package/dist/loaders/index.mjs.map +1 -0
- package/dist/loaders/middlewares.js +35 -0
- package/dist/loaders/middlewares.js.map +1 -0
- package/dist/loaders/middlewares.mjs +33 -0
- package/dist/loaders/middlewares.mjs.map +1 -0
- package/dist/loaders/plugins/get-enabled-plugins.js +136 -0
- package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -0
- package/dist/loaders/plugins/get-enabled-plugins.mjs +134 -0
- package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -0
- package/dist/loaders/plugins/get-user-plugins-config.js +28 -0
- package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -0
- package/dist/loaders/plugins/get-user-plugins-config.mjs +26 -0
- package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -0
- package/dist/loaders/plugins/index.js +155 -0
- package/dist/loaders/plugins/index.js.map +1 -0
- package/dist/loaders/plugins/index.mjs +134 -0
- package/dist/loaders/plugins/index.mjs.map +1 -0
- package/dist/loaders/policies.js +29 -0
- package/dist/loaders/policies.js.map +1 -0
- package/dist/loaders/policies.mjs +27 -0
- package/dist/loaders/policies.mjs.map +1 -0
- package/dist/loaders/sanitizers.js +12 -0
- package/dist/loaders/sanitizers.js.map +1 -0
- package/dist/loaders/sanitizers.mjs +10 -0
- package/dist/loaders/sanitizers.mjs.map +1 -0
- package/dist/loaders/src-index.js +41 -0
- package/dist/loaders/src-index.js.map +1 -0
- package/dist/loaders/src-index.mjs +39 -0
- package/dist/loaders/src-index.mjs.map +1 -0
- package/dist/loaders/validators.js +11 -0
- package/dist/loaders/validators.js.map +1 -0
- package/dist/loaders/validators.mjs +9 -0
- package/dist/loaders/validators.mjs.map +1 -0
- package/dist/middlewares/body.js +69 -0
- package/dist/middlewares/body.js.map +1 -0
- package/dist/middlewares/body.mjs +67 -0
- package/dist/middlewares/body.mjs.map +1 -0
- package/dist/middlewares/compression.js +8 -0
- package/dist/middlewares/compression.js.map +1 -0
- package/dist/middlewares/compression.mjs +6 -0
- package/dist/middlewares/compression.mjs.map +1 -0
- package/dist/middlewares/cors.d.ts +9 -1
- package/dist/middlewares/cors.d.ts.map +1 -1
- package/dist/middlewares/cors.js +86 -0
- package/dist/middlewares/cors.js.map +1 -0
- package/dist/middlewares/cors.mjs +83 -0
- package/dist/middlewares/cors.mjs.map +1 -0
- package/dist/middlewares/errors.js +35 -0
- package/dist/middlewares/errors.js.map +1 -0
- package/dist/middlewares/errors.mjs +33 -0
- package/dist/middlewares/errors.mjs.map +1 -0
- package/dist/middlewares/favicon.js +32 -0
- package/dist/middlewares/favicon.js.map +1 -0
- package/dist/middlewares/favicon.mjs +30 -0
- package/dist/middlewares/favicon.mjs.map +1 -0
- package/dist/middlewares/index.js +36 -0
- package/dist/middlewares/index.js.map +1 -0
- package/dist/middlewares/index.mjs +34 -0
- package/dist/middlewares/index.mjs.map +1 -0
- package/dist/middlewares/ip.js +8 -0
- package/dist/middlewares/ip.js.map +1 -0
- package/dist/middlewares/ip.mjs +6 -0
- package/dist/middlewares/ip.mjs.map +1 -0
- package/dist/middlewares/logger.js +13 -0
- package/dist/middlewares/logger.js.map +1 -0
- package/dist/middlewares/logger.mjs +11 -0
- package/dist/middlewares/logger.mjs.map +1 -0
- package/dist/middlewares/powered-by.js +18 -0
- package/dist/middlewares/powered-by.js.map +1 -0
- package/dist/middlewares/powered-by.mjs +16 -0
- package/dist/middlewares/powered-by.mjs.map +1 -0
- package/dist/middlewares/public.js +38 -0
- package/dist/middlewares/public.js.map +1 -0
- package/dist/middlewares/public.mjs +36 -0
- package/dist/middlewares/public.mjs.map +1 -0
- package/dist/middlewares/query.js +43 -0
- package/dist/middlewares/query.js.map +1 -0
- package/dist/middlewares/query.mjs +41 -0
- package/dist/middlewares/query.mjs.map +1 -0
- package/dist/middlewares/response-time.js +13 -0
- package/dist/middlewares/response-time.js.map +1 -0
- package/dist/middlewares/response-time.mjs +11 -0
- package/dist/middlewares/response-time.mjs.map +1 -0
- package/dist/middlewares/responses.js +17 -0
- package/dist/middlewares/responses.js.map +1 -0
- package/dist/middlewares/responses.mjs +15 -0
- package/dist/middlewares/responses.mjs.map +1 -0
- package/dist/middlewares/security.js +116 -0
- package/dist/middlewares/security.js.map +1 -0
- package/dist/middlewares/security.mjs +114 -0
- package/dist/middlewares/security.mjs.map +1 -0
- package/dist/middlewares/session.js +31 -0
- package/dist/middlewares/session.js.map +1 -0
- package/dist/middlewares/session.mjs +29 -0
- package/dist/middlewares/session.mjs.map +1 -0
- package/dist/migrations/database/5.0.0-discard-drafts.js +168 -0
- package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -0
- package/dist/migrations/database/5.0.0-discard-drafts.mjs +165 -0
- package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -0
- package/dist/migrations/draft-publish.js +69 -0
- package/dist/migrations/draft-publish.js.map +1 -0
- package/dist/migrations/draft-publish.mjs +66 -0
- package/dist/migrations/draft-publish.mjs.map +1 -0
- package/dist/migrations/first-published-at.d.ts +4 -0
- package/dist/migrations/first-published-at.d.ts.map +1 -0
- package/dist/migrations/first-published-at.js +51 -0
- package/dist/migrations/first-published-at.js.map +1 -0
- package/dist/migrations/first-published-at.mjs +49 -0
- package/dist/migrations/first-published-at.mjs.map +1 -0
- package/dist/migrations/i18n.js +71 -0
- package/dist/migrations/i18n.js.map +1 -0
- package/dist/migrations/i18n.mjs +68 -0
- package/dist/migrations/i18n.mjs.map +1 -0
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/index.js +34 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/index.mjs +31 -0
- package/dist/migrations/index.mjs.map +1 -0
- package/dist/package.json.js +186 -0
- package/dist/package.json.js.map +1 -0
- package/dist/package.json.mjs +163 -0
- package/dist/package.json.mjs.map +1 -0
- package/dist/providers/admin.js +30 -0
- package/dist/providers/admin.js.map +1 -0
- package/dist/providers/admin.mjs +28 -0
- package/dist/providers/admin.mjs.map +1 -0
- package/dist/providers/coreStore.js +16 -0
- package/dist/providers/coreStore.js.map +1 -0
- package/dist/providers/coreStore.mjs +14 -0
- package/dist/providers/coreStore.mjs.map +1 -0
- package/dist/providers/cron.js +23 -0
- package/dist/providers/cron.js.map +1 -0
- package/dist/providers/cron.mjs +21 -0
- package/dist/providers/cron.mjs.map +1 -0
- package/dist/providers/index.js +20 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/index.mjs +18 -0
- package/dist/providers/index.mjs.map +1 -0
- package/dist/providers/provider.js +6 -0
- package/dist/providers/provider.js.map +1 -0
- package/dist/providers/provider.mjs +4 -0
- package/dist/providers/provider.mjs.map +1 -0
- package/dist/providers/registries.js +40 -0
- package/dist/providers/registries.js.map +1 -0
- package/dist/providers/registries.mjs +38 -0
- package/dist/providers/registries.mjs.map +1 -0
- package/dist/providers/telemetry.js +22 -0
- package/dist/providers/telemetry.js.map +1 -0
- package/dist/providers/telemetry.mjs +20 -0
- package/dist/providers/telemetry.mjs.map +1 -0
- package/dist/providers/webhooks.js +32 -0
- package/dist/providers/webhooks.js.map +1 -0
- package/dist/providers/webhooks.mjs +30 -0
- package/dist/providers/webhooks.mjs.map +1 -0
- package/dist/registries/apis.js +26 -0
- package/dist/registries/apis.js.map +1 -0
- package/dist/registries/apis.mjs +24 -0
- package/dist/registries/apis.mjs.map +1 -0
- package/dist/registries/components.js +43 -0
- package/dist/registries/components.js.map +1 -0
- package/dist/registries/components.mjs +41 -0
- package/dist/registries/components.mjs.map +1 -0
- package/dist/registries/content-types.js +65 -0
- package/dist/registries/content-types.js.map +1 -0
- package/dist/registries/content-types.mjs +63 -0
- package/dist/registries/content-types.mjs.map +1 -0
- package/dist/registries/controllers.js +79 -0
- package/dist/registries/controllers.js.map +1 -0
- package/dist/registries/controllers.mjs +77 -0
- package/dist/registries/controllers.mjs.map +1 -0
- package/dist/registries/custom-fields.js +81 -0
- package/dist/registries/custom-fields.js.map +1 -0
- package/dist/registries/custom-fields.mjs +79 -0
- package/dist/registries/custom-fields.mjs.map +1 -0
- package/dist/registries/hooks.js +55 -0
- package/dist/registries/hooks.js.map +1 -0
- package/dist/registries/hooks.mjs +53 -0
- package/dist/registries/hooks.mjs.map +1 -0
- package/dist/registries/middlewares.js +58 -0
- package/dist/registries/middlewares.js.map +1 -0
- package/dist/registries/middlewares.mjs +56 -0
- package/dist/registries/middlewares.mjs.map +1 -0
- package/dist/registries/models.js +17 -0
- package/dist/registries/models.js.map +1 -0
- package/dist/registries/models.mjs +15 -0
- package/dist/registries/models.mjs.map +1 -0
- package/dist/registries/modules.js +42 -0
- package/dist/registries/modules.js.map +1 -0
- package/dist/registries/modules.mjs +40 -0
- package/dist/registries/modules.mjs.map +1 -0
- package/dist/registries/namespace.js +28 -0
- package/dist/registries/namespace.js.map +1 -0
- package/dist/registries/namespace.mjs +24 -0
- package/dist/registries/namespace.mjs.map +1 -0
- package/dist/registries/plugins.js +26 -0
- package/dist/registries/plugins.js.map +1 -0
- package/dist/registries/plugins.mjs +24 -0
- package/dist/registries/plugins.mjs.map +1 -0
- package/dist/registries/policies.js +115 -0
- package/dist/registries/policies.js.map +1 -0
- package/dist/registries/policies.mjs +113 -0
- package/dist/registries/policies.mjs.map +1 -0
- package/dist/registries/sanitizers.js +26 -0
- package/dist/registries/sanitizers.js.map +1 -0
- package/dist/registries/sanitizers.mjs +24 -0
- package/dist/registries/sanitizers.mjs.map +1 -0
- package/dist/registries/services.js +80 -0
- package/dist/registries/services.js.map +1 -0
- package/dist/registries/services.mjs +78 -0
- package/dist/registries/services.mjs.map +1 -0
- package/dist/registries/validators.js +26 -0
- package/dist/registries/validators.js.map +1 -0
- package/dist/registries/validators.mjs +24 -0
- package/dist/registries/validators.mjs.map +1 -0
- package/dist/services/auth/index.js +81 -0
- package/dist/services/auth/index.js.map +1 -0
- package/dist/services/auth/index.mjs +79 -0
- package/dist/services/auth/index.mjs.map +1 -0
- package/dist/services/config.js +51 -0
- package/dist/services/config.js.map +1 -0
- package/dist/services/config.mjs +49 -0
- package/dist/services/config.mjs.map +1 -0
- package/dist/services/content-api/index.d.ts +1 -1
- package/dist/services/content-api/index.d.ts.map +1 -1
- package/dist/services/content-api/index.js +86 -0
- package/dist/services/content-api/index.js.map +1 -0
- package/dist/services/content-api/index.mjs +84 -0
- package/dist/services/content-api/index.mjs.map +1 -0
- package/dist/services/content-api/permissions/engine.js +10 -0
- package/dist/services/content-api/permissions/engine.js.map +1 -0
- package/dist/services/content-api/permissions/engine.mjs +8 -0
- package/dist/services/content-api/permissions/engine.mjs.map +1 -0
- package/dist/services/content-api/permissions/index.js +107 -0
- package/dist/services/content-api/permissions/index.js.map +1 -0
- package/dist/services/content-api/permissions/index.mjs +105 -0
- package/dist/services/content-api/permissions/index.mjs.map +1 -0
- package/dist/services/content-api/permissions/providers/action.js +19 -0
- package/dist/services/content-api/permissions/providers/action.js.map +1 -0
- package/dist/services/content-api/permissions/providers/action.mjs +17 -0
- package/dist/services/content-api/permissions/providers/action.mjs.map +1 -0
- package/dist/services/content-api/permissions/providers/condition.js +19 -0
- package/dist/services/content-api/permissions/providers/condition.js.map +1 -0
- package/dist/services/content-api/permissions/providers/condition.mjs +17 -0
- package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -0
- package/dist/services/content-source-maps.d.ts +13 -0
- package/dist/services/content-source-maps.d.ts.map +1 -0
- package/dist/services/content-source-maps.js +107 -0
- package/dist/services/content-source-maps.js.map +1 -0
- package/dist/services/content-source-maps.mjs +105 -0
- package/dist/services/content-source-maps.mjs.map +1 -0
- package/dist/services/core-store.d.ts +2 -2
- package/dist/services/core-store.d.ts.map +1 -1
- package/dist/services/core-store.js +127 -0
- package/dist/services/core-store.js.map +1 -0
- package/dist/services/core-store.mjs +124 -0
- package/dist/services/core-store.mjs.map +1 -0
- package/dist/services/cron.js +77 -0
- package/dist/services/cron.js.map +1 -0
- package/dist/services/cron.mjs +75 -0
- package/dist/services/cron.mjs.map +1 -0
- package/dist/services/custom-fields.js +12 -0
- package/dist/services/custom-fields.js.map +1 -0
- package/dist/services/custom-fields.mjs +10 -0
- package/dist/services/custom-fields.mjs.map +1 -0
- package/dist/services/document-service/attributes/index.js +27 -0
- package/dist/services/document-service/attributes/index.js.map +1 -0
- package/dist/services/document-service/attributes/index.mjs +25 -0
- package/dist/services/document-service/attributes/index.mjs.map +1 -0
- package/dist/services/document-service/attributes/transforms.js +21 -0
- package/dist/services/document-service/attributes/transforms.js.map +1 -0
- package/dist/services/document-service/attributes/transforms.mjs +19 -0
- package/dist/services/document-service/attributes/transforms.mjs.map +1 -0
- package/dist/services/document-service/common.js +8 -0
- package/dist/services/document-service/common.js.map +1 -0
- package/dist/services/document-service/common.mjs +6 -0
- package/dist/services/document-service/common.mjs.map +1 -0
- package/dist/services/document-service/components.js +286 -0
- package/dist/services/document-service/components.js.map +1 -0
- package/dist/services/document-service/components.mjs +278 -0
- package/dist/services/document-service/components.mjs.map +1 -0
- package/dist/services/document-service/draft-and-publish.js +109 -0
- package/dist/services/document-service/draft-and-publish.js.map +1 -0
- package/dist/services/document-service/draft-and-publish.mjs +102 -0
- package/dist/services/document-service/draft-and-publish.mjs.map +1 -0
- package/dist/services/document-service/entries.d.ts.map +1 -1
- package/dist/services/document-service/entries.js +155 -0
- package/dist/services/document-service/entries.js.map +1 -0
- package/dist/services/document-service/entries.mjs +153 -0
- package/dist/services/document-service/entries.mjs.map +1 -0
- package/dist/services/document-service/events.js +59 -0
- package/dist/services/document-service/events.js.map +1 -0
- package/dist/services/document-service/events.mjs +57 -0
- package/dist/services/document-service/events.mjs.map +1 -0
- package/dist/services/document-service/first-published-at.d.ts +7 -0
- package/dist/services/document-service/first-published-at.d.ts.map +1 -0
- package/dist/services/document-service/first-published-at.js +31 -0
- package/dist/services/document-service/first-published-at.js.map +1 -0
- package/dist/services/document-service/first-published-at.mjs +28 -0
- package/dist/services/document-service/first-published-at.mjs.map +1 -0
- package/dist/services/document-service/index.js +56 -0
- package/dist/services/document-service/index.js.map +1 -0
- package/dist/services/document-service/index.mjs +54 -0
- package/dist/services/document-service/index.mjs.map +1 -0
- package/dist/services/document-service/internationalization.d.ts +6 -1
- package/dist/services/document-service/internationalization.d.ts.map +1 -1
- package/dist/services/document-service/internationalization.js +111 -0
- package/dist/services/document-service/internationalization.js.map +1 -0
- package/dist/services/document-service/internationalization.mjs +105 -0
- package/dist/services/document-service/internationalization.mjs.map +1 -0
- package/dist/services/document-service/middlewares/errors.js +29 -0
- package/dist/services/document-service/middlewares/errors.js.map +1 -0
- package/dist/services/document-service/middlewares/errors.mjs +27 -0
- package/dist/services/document-service/middlewares/errors.mjs.map +1 -0
- package/dist/services/document-service/middlewares/middleware-manager.js +51 -0
- package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -0
- package/dist/services/document-service/middlewares/middleware-manager.mjs +49 -0
- package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -0
- package/dist/services/document-service/params.js +14 -0
- package/dist/services/document-service/params.js.map +1 -0
- package/dist/services/document-service/params.mjs +12 -0
- package/dist/services/document-service/params.mjs.map +1 -0
- package/dist/services/document-service/repository.d.ts.map +1 -1
- package/dist/services/document-service/repository.js +368 -0
- package/dist/services/document-service/repository.js.map +1 -0
- package/dist/services/document-service/repository.mjs +366 -0
- package/dist/services/document-service/repository.mjs.map +1 -0
- package/dist/services/document-service/transform/data.js +25 -0
- package/dist/services/document-service/transform/data.js.map +1 -0
- package/dist/services/document-service/transform/data.mjs +23 -0
- package/dist/services/document-service/transform/data.mjs.map +1 -0
- package/dist/services/document-service/transform/fields.js +33 -0
- package/dist/services/document-service/transform/fields.js.map +1 -0
- package/dist/services/document-service/transform/fields.mjs +31 -0
- package/dist/services/document-service/transform/fields.mjs.map +1 -0
- package/dist/services/document-service/transform/id-map.js +125 -0
- package/dist/services/document-service/transform/id-map.js.map +1 -0
- package/dist/services/document-service/transform/id-map.mjs +123 -0
- package/dist/services/document-service/transform/id-map.mjs.map +1 -0
- package/dist/services/document-service/transform/id-transform.js +41 -0
- package/dist/services/document-service/transform/id-transform.js.map +1 -0
- package/dist/services/document-service/transform/id-transform.mjs +39 -0
- package/dist/services/document-service/transform/id-transform.mjs.map +1 -0
- package/dist/services/document-service/transform/populate.js +26 -0
- package/dist/services/document-service/transform/populate.js.map +1 -0
- package/dist/services/document-service/transform/populate.mjs +24 -0
- package/dist/services/document-service/transform/populate.mjs.map +1 -0
- package/dist/services/document-service/transform/query.js +14 -0
- package/dist/services/document-service/transform/query.js.map +1 -0
- package/dist/services/document-service/transform/query.mjs +12 -0
- package/dist/services/document-service/transform/query.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.js +80 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.mjs +78 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.js +110 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.mjs +108 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/transform/default-locale.js +50 -0
- package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -0
- package/dist/services/document-service/transform/relations/transform/default-locale.mjs +48 -0
- package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/utils/dp.js +56 -0
- package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -0
- package/dist/services/document-service/transform/relations/utils/dp.mjs +54 -0
- package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/utils/i18n.js +27 -0
- package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -0
- package/dist/services/document-service/transform/relations/utils/i18n.mjs +23 -0
- package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/utils/map-relation.js +130 -0
- package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -0
- package/dist/services/document-service/transform/relations/utils/map-relation.mjs +127 -0
- package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -0
- package/dist/services/document-service/utils/bidirectional-relations.js +148 -0
- package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -0
- package/dist/services/document-service/utils/bidirectional-relations.mjs +145 -0
- package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -0
- package/dist/services/document-service/utils/populate.js +71 -0
- package/dist/services/document-service/utils/populate.js.map +1 -0
- package/dist/services/document-service/utils/populate.mjs +69 -0
- package/dist/services/document-service/utils/populate.mjs.map +1 -0
- package/dist/services/document-service/utils/unidirectional-relations.js +116 -0
- package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -0
- package/dist/services/document-service/utils/unidirectional-relations.mjs +113 -0
- package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -0
- package/dist/services/entity-service/index.js +238 -0
- package/dist/services/entity-service/index.js.map +1 -0
- package/dist/services/entity-service/index.mjs +236 -0
- package/dist/services/entity-service/index.mjs.map +1 -0
- package/dist/services/entity-validator/blocks-validator.js +160 -0
- package/dist/services/entity-validator/blocks-validator.js.map +1 -0
- package/dist/services/entity-validator/blocks-validator.mjs +158 -0
- package/dist/services/entity-validator/blocks-validator.mjs.map +1 -0
- package/dist/services/entity-validator/index.d.ts.map +1 -1
- package/dist/services/entity-validator/index.js +393 -0
- package/dist/services/entity-validator/index.js.map +1 -0
- package/dist/services/entity-validator/index.mjs +391 -0
- package/dist/services/entity-validator/index.mjs.map +1 -0
- package/dist/services/entity-validator/validators.d.ts +1 -0
- package/dist/services/entity-validator/validators.d.ts.map +1 -1
- package/dist/services/entity-validator/validators.js +302 -0
- package/dist/services/entity-validator/validators.js.map +1 -0
- package/dist/services/entity-validator/validators.mjs +293 -0
- package/dist/services/entity-validator/validators.mjs.map +1 -0
- package/dist/services/errors.js +76 -0
- package/dist/services/errors.js.map +1 -0
- package/dist/services/errors.mjs +72 -0
- package/dist/services/errors.mjs.map +1 -0
- package/dist/services/event-hub.js +85 -0
- package/dist/services/event-hub.js.map +1 -0
- package/dist/services/event-hub.mjs +83 -0
- package/dist/services/event-hub.mjs.map +1 -0
- package/dist/services/features.js +22 -0
- package/dist/services/features.js.map +1 -0
- package/dist/services/features.mjs +20 -0
- package/dist/services/features.mjs.map +1 -0
- package/dist/services/fs.js +52 -0
- package/dist/services/fs.js.map +1 -0
- package/dist/services/fs.mjs +50 -0
- package/dist/services/fs.mjs.map +1 -0
- package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
- package/dist/services/metrics/admin-user-hash.js +16 -0
- package/dist/services/metrics/admin-user-hash.js.map +1 -0
- package/dist/services/metrics/admin-user-hash.mjs +14 -0
- package/dist/services/metrics/admin-user-hash.mjs.map +1 -0
- package/dist/services/metrics/index.d.ts +1 -1
- package/dist/services/metrics/index.d.ts.map +1 -1
- package/dist/services/metrics/index.js +52 -0
- package/dist/services/metrics/index.js.map +1 -0
- package/dist/services/metrics/index.mjs +50 -0
- package/dist/services/metrics/index.mjs.map +1 -0
- package/dist/services/metrics/is-truthy.js +16 -0
- package/dist/services/metrics/is-truthy.js.map +1 -0
- package/dist/services/metrics/is-truthy.mjs +14 -0
- package/dist/services/metrics/is-truthy.mjs.map +1 -0
- package/dist/services/metrics/middleware.js +40 -0
- package/dist/services/metrics/middleware.js.map +1 -0
- package/dist/services/metrics/middleware.mjs +38 -0
- package/dist/services/metrics/middleware.mjs.map +1 -0
- package/dist/services/metrics/rate-limiter.js +26 -0
- package/dist/services/metrics/rate-limiter.js.map +1 -0
- package/dist/services/metrics/rate-limiter.mjs +24 -0
- package/dist/services/metrics/rate-limiter.mjs.map +1 -0
- package/dist/services/metrics/sender.d.ts.map +1 -1
- package/dist/services/metrics/sender.js +85 -0
- package/dist/services/metrics/sender.js.map +1 -0
- package/dist/services/metrics/sender.mjs +83 -0
- package/dist/services/metrics/sender.mjs.map +1 -0
- package/dist/services/query-params.js +15 -0
- package/dist/services/query-params.js.map +1 -0
- package/dist/services/query-params.mjs +13 -0
- package/dist/services/query-params.mjs.map +1 -0
- package/dist/services/reloader.js +39 -0
- package/dist/services/reloader.js.map +1 -0
- package/dist/services/reloader.mjs +37 -0
- package/dist/services/reloader.mjs.map +1 -0
- package/dist/services/request-context.js +16 -0
- package/dist/services/request-context.js.map +1 -0
- package/dist/services/request-context.mjs +14 -0
- package/dist/services/request-context.mjs.map +1 -0
- package/dist/services/server/admin-api.js +14 -0
- package/dist/services/server/admin-api.js.map +1 -0
- package/dist/services/server/admin-api.mjs +12 -0
- package/dist/services/server/admin-api.mjs.map +1 -0
- package/dist/services/server/api.js +36 -0
- package/dist/services/server/api.js.map +1 -0
- package/dist/services/server/api.mjs +34 -0
- package/dist/services/server/api.mjs.map +1 -0
- package/dist/services/server/compose-endpoint.js +128 -0
- package/dist/services/server/compose-endpoint.js.map +1 -0
- package/dist/services/server/compose-endpoint.mjs +126 -0
- package/dist/services/server/compose-endpoint.mjs.map +1 -0
- package/dist/services/server/content-api.js +14 -0
- package/dist/services/server/content-api.js.map +1 -0
- package/dist/services/server/content-api.mjs +12 -0
- package/dist/services/server/content-api.mjs.map +1 -0
- package/dist/services/server/http-server.js +54 -0
- package/dist/services/server/http-server.js.map +1 -0
- package/dist/services/server/http-server.mjs +52 -0
- package/dist/services/server/http-server.mjs.map +1 -0
- package/dist/services/server/index.js +90 -0
- package/dist/services/server/index.js.map +1 -0
- package/dist/services/server/index.mjs +88 -0
- package/dist/services/server/index.mjs.map +1 -0
- package/dist/services/server/koa.js +54 -0
- package/dist/services/server/koa.js.map +1 -0
- package/dist/services/server/koa.mjs +52 -0
- package/dist/services/server/koa.mjs.map +1 -0
- package/dist/services/server/middleware.js +96 -0
- package/dist/services/server/middleware.js.map +1 -0
- package/dist/services/server/middleware.mjs +93 -0
- package/dist/services/server/middleware.mjs.map +1 -0
- package/dist/services/server/policy.js +27 -0
- package/dist/services/server/policy.js.map +1 -0
- package/dist/services/server/policy.mjs +25 -0
- package/dist/services/server/policy.mjs.map +1 -0
- package/dist/services/server/register-middlewares.js +79 -0
- package/dist/services/server/register-middlewares.js.map +1 -0
- package/dist/services/server/register-middlewares.mjs +77 -0
- package/dist/services/server/register-middlewares.mjs.map +1 -0
- package/dist/services/server/register-routes.js +119 -0
- package/dist/services/server/register-routes.js.map +1 -0
- package/dist/services/server/register-routes.mjs +117 -0
- package/dist/services/server/register-routes.mjs.map +1 -0
- package/dist/services/server/routing.d.ts +10 -0
- package/dist/services/server/routing.d.ts.map +1 -1
- package/dist/services/server/routing.js +110 -0
- package/dist/services/server/routing.js.map +1 -0
- package/dist/services/server/routing.mjs +107 -0
- package/dist/services/server/routing.mjs.map +1 -0
- package/dist/services/utils/conditional-fields.d.ts +3 -0
- package/dist/services/utils/conditional-fields.d.ts.map +1 -0
- package/dist/services/utils/conditional-fields.js +22 -0
- package/dist/services/utils/conditional-fields.js.map +1 -0
- package/dist/services/utils/conditional-fields.mjs +20 -0
- package/dist/services/utils/conditional-fields.mjs.map +1 -0
- package/dist/services/utils/dynamic-zones.js +16 -0
- package/dist/services/utils/dynamic-zones.js.map +1 -0
- package/dist/services/utils/dynamic-zones.mjs +14 -0
- package/dist/services/utils/dynamic-zones.mjs.map +1 -0
- package/dist/services/webhook-runner.js +135 -0
- package/dist/services/webhook-runner.js.map +1 -0
- package/dist/services/webhook-runner.mjs +133 -0
- package/dist/services/webhook-runner.mjs.map +1 -0
- package/dist/services/webhook-store.js +143 -0
- package/dist/services/webhook-store.js.map +1 -0
- package/dist/services/webhook-store.mjs +140 -0
- package/dist/services/webhook-store.mjs.map +1 -0
- package/dist/services/worker-queue.js +51 -0
- package/dist/services/worker-queue.js.map +1 -0
- package/dist/services/worker-queue.mjs +49 -0
- package/dist/services/worker-queue.mjs.map +1 -0
- package/dist/utils/convert-custom-field-type.js +21 -0
- package/dist/utils/convert-custom-field-type.js.map +1 -0
- package/dist/utils/convert-custom-field-type.mjs +19 -0
- package/dist/utils/convert-custom-field-type.mjs.map +1 -0
- package/dist/utils/cron.js +72 -0
- package/dist/utils/cron.js.map +1 -0
- package/dist/utils/cron.mjs +70 -0
- package/dist/utils/cron.mjs.map +1 -0
- package/dist/utils/fetch.d.ts +5 -1
- package/dist/utils/fetch.d.ts.map +1 -1
- package/dist/utils/fetch.js +31 -0
- package/dist/utils/fetch.js.map +1 -0
- package/dist/utils/fetch.mjs +29 -0
- package/dist/utils/fetch.mjs.map +1 -0
- package/dist/utils/filepath-to-prop-path.js +25 -0
- package/dist/utils/filepath-to-prop-path.js.map +1 -0
- package/dist/utils/filepath-to-prop-path.mjs +23 -0
- package/dist/utils/filepath-to-prop-path.mjs.map +1 -0
- package/dist/utils/is-initialized.js +25 -0
- package/dist/utils/is-initialized.js.map +1 -0
- package/dist/utils/is-initialized.mjs +23 -0
- package/dist/utils/is-initialized.mjs.map +1 -0
- package/dist/utils/lifecycles.js +10 -0
- package/dist/utils/lifecycles.js.map +1 -0
- package/dist/utils/lifecycles.mjs +8 -0
- package/dist/utils/lifecycles.mjs.map +1 -0
- package/dist/utils/load-config-file.js +47 -0
- package/dist/utils/load-config-file.js.map +1 -0
- package/dist/utils/load-config-file.mjs +45 -0
- package/dist/utils/load-config-file.mjs.map +1 -0
- package/dist/utils/load-files.js +44 -0
- package/dist/utils/load-files.js.map +1 -0
- package/dist/utils/load-files.mjs +42 -0
- package/dist/utils/load-files.mjs.map +1 -0
- package/dist/utils/open-browser.js +11 -0
- package/dist/utils/open-browser.js.map +1 -0
- package/dist/utils/open-browser.mjs +9 -0
- package/dist/utils/open-browser.mjs.map +1 -0
- package/dist/utils/resolve-working-dirs.js +26 -0
- package/dist/utils/resolve-working-dirs.js.map +1 -0
- package/dist/utils/resolve-working-dirs.mjs +24 -0
- package/dist/utils/resolve-working-dirs.mjs.map +1 -0
- package/dist/utils/signals.js +23 -0
- package/dist/utils/signals.js.map +1 -0
- package/dist/utils/signals.mjs +21 -0
- package/dist/utils/signals.mjs.map +1 -0
- package/dist/utils/startup-logger.js +110 -0
- package/dist/utils/startup-logger.js.map +1 -0
- package/dist/utils/startup-logger.mjs +108 -0
- package/dist/utils/startup-logger.mjs.map +1 -0
- package/dist/utils/transform-content-types-to-models.d.ts +197 -0
- package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
- package/dist/utils/transform-content-types-to-models.js +377 -0
- package/dist/utils/transform-content-types-to-models.js.map +1 -0
- package/dist/utils/transform-content-types-to-models.mjs +365 -0
- package/dist/utils/transform-content-types-to-models.mjs.map +1 -0
- package/dist/utils/update-notifier/index.js +80 -0
- package/dist/utils/update-notifier/index.js.map +1 -0
- package/dist/utils/update-notifier/index.mjs +78 -0
- package/dist/utils/update-notifier/index.mjs.map +1 -0
- package/package.json +18 -14
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var strapiUtils = require('@strapi/utils');
|
|
4
|
+
var z = require('zod/v4');
|
|
5
|
+
|
|
6
|
+
function _interopNamespaceDefault(e) {
|
|
7
|
+
var n = Object.create(null);
|
|
8
|
+
if (e) {
|
|
9
|
+
Object.keys(e).forEach(function (k) {
|
|
10
|
+
if (k !== 'default') {
|
|
11
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
12
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () { return e[k]; }
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
n.default = e;
|
|
20
|
+
return Object.freeze(n);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
var z__namespace = /*#__PURE__*/_interopNamespaceDefault(z);
|
|
24
|
+
|
|
25
|
+
// Schema generation happens on-demand when schemas don't exist in the registry
|
|
26
|
+
/**
|
|
27
|
+
* Safely adds or updates a schema in Zod's global registry.
|
|
28
|
+
*
|
|
29
|
+
* If a schema with the given `id` already exists, it will be removed before adding the new one.
|
|
30
|
+
*
|
|
31
|
+
* This is useful for hot-reloading or preventing issues with cyclical dependencies.
|
|
32
|
+
*
|
|
33
|
+
* @param id - The unique identifier for the schema in the global registry.
|
|
34
|
+
* @param schema - The Zod schema to register.
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* safeGlobalRegistrySet("mySchema", z.object({ name: z.string() }));
|
|
38
|
+
* ```
|
|
39
|
+
*/ const safeGlobalRegistrySet = (id, schema)=>{
|
|
40
|
+
try {
|
|
41
|
+
const { _idmap: idMap } = z__namespace.globalRegistry;
|
|
42
|
+
const transformedId = strapiUtils.transformUidToValidOpenApiName(id);
|
|
43
|
+
const isReplacing = idMap.has(transformedId);
|
|
44
|
+
if (isReplacing) {
|
|
45
|
+
// Remove existing schema to prevent conflicts
|
|
46
|
+
idMap.delete(transformedId);
|
|
47
|
+
}
|
|
48
|
+
// Register the new schema with the transformed ID
|
|
49
|
+
strapi.log.debug(`${isReplacing ? 'Replacing' : 'Registering'} schema ${transformedId} in global registry`);
|
|
50
|
+
z__namespace.globalRegistry.add(schema, {
|
|
51
|
+
id: transformedId
|
|
52
|
+
});
|
|
53
|
+
} catch (error) {
|
|
54
|
+
strapi.log.error(`Schema registration failed: Failed to register schema ${id} in global registry`);
|
|
55
|
+
throw error;
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Safely creates and registers a Zod schema in the global registry, particularly useful for handling cyclical data structures.
|
|
60
|
+
*
|
|
61
|
+
* If a schema with the given `id` already exists in the global registry, it returns the existing schema.
|
|
62
|
+
*
|
|
63
|
+
* Otherwise, it registers a temporary `z.any()` schema, calls the provided `callback` to create the actual schema,
|
|
64
|
+
* and then replaces the temporary schema with the actual one in the registry.
|
|
65
|
+
*
|
|
66
|
+
* This prevents infinite loops in cases of cyclical dependencies.
|
|
67
|
+
*
|
|
68
|
+
* @param id - The unique identifier for the schema in the global registry.
|
|
69
|
+
* @param callback - A function that returns the Zod schema to be created and registered.
|
|
70
|
+
* @returns The created or retrieved Zod schema.
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* const CategorySchema = safeSchemaCreation("Category", () =>
|
|
74
|
+
* z.object({
|
|
75
|
+
* name: z.string(),
|
|
76
|
+
* products: z.array(safeSchemaCreation("Product", () =>
|
|
77
|
+
* z.object({
|
|
78
|
+
* name: z.string(),
|
|
79
|
+
* category: z.lazy(() => CategorySchema) // Cyclical reference
|
|
80
|
+
* })
|
|
81
|
+
* ))
|
|
82
|
+
* })
|
|
83
|
+
* );
|
|
84
|
+
* ```
|
|
85
|
+
*/ const safeSchemaCreation = (id, callback)=>{
|
|
86
|
+
try {
|
|
87
|
+
const { _idmap: idMap } = z__namespace.globalRegistry;
|
|
88
|
+
const transformedId = strapiUtils.transformUidToValidOpenApiName(id);
|
|
89
|
+
// Return existing schema if already registered
|
|
90
|
+
const mapItem = idMap.get(transformedId);
|
|
91
|
+
if (mapItem) {
|
|
92
|
+
// Schema already exists, return it silently
|
|
93
|
+
return mapItem;
|
|
94
|
+
}
|
|
95
|
+
strapi.log.debug(`Schema ${transformedId} not found in registry, generating new schema`);
|
|
96
|
+
// Determine if this is a built-in schema or user content
|
|
97
|
+
const isBuiltInSchema = id.startsWith('plugin::') || id.startsWith('admin');
|
|
98
|
+
if (isBuiltInSchema) {
|
|
99
|
+
// Built-in schemas keep at debug level to avoid clutter
|
|
100
|
+
strapi.log.debug(`Initializing validation schema for ${transformedId}`);
|
|
101
|
+
} else {
|
|
102
|
+
// User content
|
|
103
|
+
const schemaName = transformedId.replace('Document', '').replace('Entry', '').replace(/([A-Z])/g, ' $1').trim();
|
|
104
|
+
strapi.log.debug(`📝 Generating validation schema for "${schemaName}"`);
|
|
105
|
+
}
|
|
106
|
+
// Temporary any placeholder before replacing with the actual schema type
|
|
107
|
+
// Used to prevent infinite loops in cyclical data structures
|
|
108
|
+
safeGlobalRegistrySet(id, z__namespace.any());
|
|
109
|
+
// Generate the actual schema using the callback
|
|
110
|
+
const schema = callback();
|
|
111
|
+
// Replace the placeholder with the real schema
|
|
112
|
+
safeGlobalRegistrySet(id, schema);
|
|
113
|
+
// Show completion for user content only
|
|
114
|
+
if (!isBuiltInSchema) {
|
|
115
|
+
const fieldCount = Object.keys(schema?._def?.shape || {}).length || 0;
|
|
116
|
+
const schemaName = transformedId.replace('Document', '').replace('Entry', '').replace(/([A-Z])/g, ' $1').trim();
|
|
117
|
+
strapi.log.debug(` ✅ "${schemaName}" schema created with ${fieldCount} fields`);
|
|
118
|
+
}
|
|
119
|
+
return schema;
|
|
120
|
+
} catch (error) {
|
|
121
|
+
strapi.log.error(`Schema creation failed: Failed to create schema ${id}`);
|
|
122
|
+
throw error;
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
exports.safeGlobalRegistrySet = safeGlobalRegistrySet;
|
|
127
|
+
exports.safeSchemaCreation = safeSchemaCreation;
|
|
128
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../src/core-api/routes/validation/utils.ts"],"sourcesContent":["import { transformUidToValidOpenApiName } from '@strapi/utils';\nimport type { Internal } from '@strapi/types';\nimport * as z from 'zod/v4';\n\n// Schema generation happens on-demand when schemas don't exist in the registry\n\n/**\n * Safely adds or updates a schema in Zod's global registry.\n *\n * If a schema with the given `id` already exists, it will be removed before adding the new one.\n *\n * This is useful for hot-reloading or preventing issues with cyclical dependencies.\n *\n * @param id - The unique identifier for the schema in the global registry.\n * @param schema - The Zod schema to register.\n * @example\n * ```typescript\n * safeGlobalRegistrySet(\"mySchema\", z.object({ name: z.string() }));\n * ```\n */\nexport const safeGlobalRegistrySet = (id: Internal.UID.Schema, schema: z.ZodType) => {\n try {\n const { _idmap: idMap } = z.globalRegistry;\n\n const transformedId = transformUidToValidOpenApiName(id);\n\n const isReplacing = idMap.has(transformedId);\n\n if (isReplacing) {\n // Remove existing schema to prevent conflicts\n idMap.delete(transformedId);\n }\n\n // Register the new schema with the transformed ID\n strapi.log.debug(\n `${isReplacing ? 'Replacing' : 'Registering'} schema ${transformedId} in global registry`\n );\n z.globalRegistry.add(schema, { id: transformedId });\n } catch (error) {\n strapi.log.error(\n `Schema registration failed: Failed to register schema ${id} in global registry`\n );\n\n throw error;\n }\n};\n\n/**\n * Safely creates and registers a Zod schema in the global registry, particularly useful for handling cyclical data structures.\n *\n * If a schema with the given `id` already exists in the global registry, it returns the existing schema.\n *\n * Otherwise, it registers a temporary `z.any()` schema, calls the provided `callback` to create the actual schema,\n * and then replaces the temporary schema with the actual one in the registry.\n *\n * This prevents infinite loops in cases of cyclical dependencies.\n *\n * @param id - The unique identifier for the schema in the global registry.\n * @param callback - A function that returns the Zod schema to be created and registered.\n * @returns The created or retrieved Zod schema.\n * @example\n * ```typescript\n * const CategorySchema = safeSchemaCreation(\"Category\", () =>\n * z.object({\n * name: z.string(),\n * products: z.array(safeSchemaCreation(\"Product\", () =>\n * z.object({\n * name: z.string(),\n * category: z.lazy(() => CategorySchema) // Cyclical reference\n * })\n * ))\n * })\n * );\n * ```\n */\nexport const safeSchemaCreation = (id: Internal.UID.Schema, callback: () => z.ZodType) => {\n try {\n const { _idmap: idMap } = z.globalRegistry;\n\n const transformedId = transformUidToValidOpenApiName(id);\n\n // Return existing schema if already registered\n const mapItem = idMap.get(transformedId);\n if (mapItem) {\n // Schema already exists, return it silently\n return mapItem;\n }\n\n strapi.log.debug(`Schema ${transformedId} not found in registry, generating new schema`);\n\n // Determine if this is a built-in schema or user content\n const isBuiltInSchema = id.startsWith('plugin::') || id.startsWith('admin');\n\n if (isBuiltInSchema) {\n // Built-in schemas keep at debug level to avoid clutter\n strapi.log.debug(`Initializing validation schema for ${transformedId}`);\n } else {\n // User content\n const schemaName = transformedId\n .replace('Document', '')\n .replace('Entry', '')\n .replace(/([A-Z])/g, ' $1')\n .trim();\n strapi.log.debug(`📝 Generating validation schema for \"${schemaName}\"`);\n }\n\n // Temporary any placeholder before replacing with the actual schema type\n // Used to prevent infinite loops in cyclical data structures\n safeGlobalRegistrySet(id, z.any());\n\n // Generate the actual schema using the callback\n const schema = callback();\n\n // Replace the placeholder with the real schema\n safeGlobalRegistrySet(id, schema);\n\n // Show completion for user content only\n if (!isBuiltInSchema) {\n const fieldCount = Object.keys((schema as any)?._def?.shape || {}).length || 0;\n const schemaName = transformedId\n .replace('Document', '')\n .replace('Entry', '')\n .replace(/([A-Z])/g, ' $1')\n .trim();\n strapi.log.debug(` ✅ \"${schemaName}\" schema created with ${fieldCount} fields`);\n }\n\n return schema;\n } catch (error) {\n strapi.log.error(`Schema creation failed: Failed to create schema ${id}`);\n\n throw error;\n }\n};\n"],"names":["safeGlobalRegistrySet","id","schema","_idmap","idMap","z","globalRegistry","transformedId","transformUidToValidOpenApiName","isReplacing","has","delete","strapi","log","debug","add","error","safeSchemaCreation","callback","mapItem","get","isBuiltInSchema","startsWith","schemaName","replace","trim","any","fieldCount","Object","keys","_def","shape","length"],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { transformUidToValidOpenApiName } from '@strapi/utils';
|
|
2
|
+
import * as z from 'zod/v4';
|
|
3
|
+
|
|
4
|
+
// Schema generation happens on-demand when schemas don't exist in the registry
|
|
5
|
+
/**
|
|
6
|
+
* Safely adds or updates a schema in Zod's global registry.
|
|
7
|
+
*
|
|
8
|
+
* If a schema with the given `id` already exists, it will be removed before adding the new one.
|
|
9
|
+
*
|
|
10
|
+
* This is useful for hot-reloading or preventing issues with cyclical dependencies.
|
|
11
|
+
*
|
|
12
|
+
* @param id - The unique identifier for the schema in the global registry.
|
|
13
|
+
* @param schema - The Zod schema to register.
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* safeGlobalRegistrySet("mySchema", z.object({ name: z.string() }));
|
|
17
|
+
* ```
|
|
18
|
+
*/ const safeGlobalRegistrySet = (id, schema)=>{
|
|
19
|
+
try {
|
|
20
|
+
const { _idmap: idMap } = z.globalRegistry;
|
|
21
|
+
const transformedId = transformUidToValidOpenApiName(id);
|
|
22
|
+
const isReplacing = idMap.has(transformedId);
|
|
23
|
+
if (isReplacing) {
|
|
24
|
+
// Remove existing schema to prevent conflicts
|
|
25
|
+
idMap.delete(transformedId);
|
|
26
|
+
}
|
|
27
|
+
// Register the new schema with the transformed ID
|
|
28
|
+
strapi.log.debug(`${isReplacing ? 'Replacing' : 'Registering'} schema ${transformedId} in global registry`);
|
|
29
|
+
z.globalRegistry.add(schema, {
|
|
30
|
+
id: transformedId
|
|
31
|
+
});
|
|
32
|
+
} catch (error) {
|
|
33
|
+
strapi.log.error(`Schema registration failed: Failed to register schema ${id} in global registry`);
|
|
34
|
+
throw error;
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Safely creates and registers a Zod schema in the global registry, particularly useful for handling cyclical data structures.
|
|
39
|
+
*
|
|
40
|
+
* If a schema with the given `id` already exists in the global registry, it returns the existing schema.
|
|
41
|
+
*
|
|
42
|
+
* Otherwise, it registers a temporary `z.any()` schema, calls the provided `callback` to create the actual schema,
|
|
43
|
+
* and then replaces the temporary schema with the actual one in the registry.
|
|
44
|
+
*
|
|
45
|
+
* This prevents infinite loops in cases of cyclical dependencies.
|
|
46
|
+
*
|
|
47
|
+
* @param id - The unique identifier for the schema in the global registry.
|
|
48
|
+
* @param callback - A function that returns the Zod schema to be created and registered.
|
|
49
|
+
* @returns The created or retrieved Zod schema.
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* const CategorySchema = safeSchemaCreation("Category", () =>
|
|
53
|
+
* z.object({
|
|
54
|
+
* name: z.string(),
|
|
55
|
+
* products: z.array(safeSchemaCreation("Product", () =>
|
|
56
|
+
* z.object({
|
|
57
|
+
* name: z.string(),
|
|
58
|
+
* category: z.lazy(() => CategorySchema) // Cyclical reference
|
|
59
|
+
* })
|
|
60
|
+
* ))
|
|
61
|
+
* })
|
|
62
|
+
* );
|
|
63
|
+
* ```
|
|
64
|
+
*/ const safeSchemaCreation = (id, callback)=>{
|
|
65
|
+
try {
|
|
66
|
+
const { _idmap: idMap } = z.globalRegistry;
|
|
67
|
+
const transformedId = transformUidToValidOpenApiName(id);
|
|
68
|
+
// Return existing schema if already registered
|
|
69
|
+
const mapItem = idMap.get(transformedId);
|
|
70
|
+
if (mapItem) {
|
|
71
|
+
// Schema already exists, return it silently
|
|
72
|
+
return mapItem;
|
|
73
|
+
}
|
|
74
|
+
strapi.log.debug(`Schema ${transformedId} not found in registry, generating new schema`);
|
|
75
|
+
// Determine if this is a built-in schema or user content
|
|
76
|
+
const isBuiltInSchema = id.startsWith('plugin::') || id.startsWith('admin');
|
|
77
|
+
if (isBuiltInSchema) {
|
|
78
|
+
// Built-in schemas keep at debug level to avoid clutter
|
|
79
|
+
strapi.log.debug(`Initializing validation schema for ${transformedId}`);
|
|
80
|
+
} else {
|
|
81
|
+
// User content
|
|
82
|
+
const schemaName = transformedId.replace('Document', '').replace('Entry', '').replace(/([A-Z])/g, ' $1').trim();
|
|
83
|
+
strapi.log.debug(`📝 Generating validation schema for "${schemaName}"`);
|
|
84
|
+
}
|
|
85
|
+
// Temporary any placeholder before replacing with the actual schema type
|
|
86
|
+
// Used to prevent infinite loops in cyclical data structures
|
|
87
|
+
safeGlobalRegistrySet(id, z.any());
|
|
88
|
+
// Generate the actual schema using the callback
|
|
89
|
+
const schema = callback();
|
|
90
|
+
// Replace the placeholder with the real schema
|
|
91
|
+
safeGlobalRegistrySet(id, schema);
|
|
92
|
+
// Show completion for user content only
|
|
93
|
+
if (!isBuiltInSchema) {
|
|
94
|
+
const fieldCount = Object.keys(schema?._def?.shape || {}).length || 0;
|
|
95
|
+
const schemaName = transformedId.replace('Document', '').replace('Entry', '').replace(/([A-Z])/g, ' $1').trim();
|
|
96
|
+
strapi.log.debug(` ✅ "${schemaName}" schema created with ${fieldCount} fields`);
|
|
97
|
+
}
|
|
98
|
+
return schema;
|
|
99
|
+
} catch (error) {
|
|
100
|
+
strapi.log.error(`Schema creation failed: Failed to create schema ${id}`);
|
|
101
|
+
throw error;
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
export { safeGlobalRegistrySet, safeSchemaCreation };
|
|
106
|
+
//# sourceMappingURL=utils.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.mjs","sources":["../../../../src/core-api/routes/validation/utils.ts"],"sourcesContent":["import { transformUidToValidOpenApiName } from '@strapi/utils';\nimport type { Internal } from '@strapi/types';\nimport * as z from 'zod/v4';\n\n// Schema generation happens on-demand when schemas don't exist in the registry\n\n/**\n * Safely adds or updates a schema in Zod's global registry.\n *\n * If a schema with the given `id` already exists, it will be removed before adding the new one.\n *\n * This is useful for hot-reloading or preventing issues with cyclical dependencies.\n *\n * @param id - The unique identifier for the schema in the global registry.\n * @param schema - The Zod schema to register.\n * @example\n * ```typescript\n * safeGlobalRegistrySet(\"mySchema\", z.object({ name: z.string() }));\n * ```\n */\nexport const safeGlobalRegistrySet = (id: Internal.UID.Schema, schema: z.ZodType) => {\n try {\n const { _idmap: idMap } = z.globalRegistry;\n\n const transformedId = transformUidToValidOpenApiName(id);\n\n const isReplacing = idMap.has(transformedId);\n\n if (isReplacing) {\n // Remove existing schema to prevent conflicts\n idMap.delete(transformedId);\n }\n\n // Register the new schema with the transformed ID\n strapi.log.debug(\n `${isReplacing ? 'Replacing' : 'Registering'} schema ${transformedId} in global registry`\n );\n z.globalRegistry.add(schema, { id: transformedId });\n } catch (error) {\n strapi.log.error(\n `Schema registration failed: Failed to register schema ${id} in global registry`\n );\n\n throw error;\n }\n};\n\n/**\n * Safely creates and registers a Zod schema in the global registry, particularly useful for handling cyclical data structures.\n *\n * If a schema with the given `id` already exists in the global registry, it returns the existing schema.\n *\n * Otherwise, it registers a temporary `z.any()` schema, calls the provided `callback` to create the actual schema,\n * and then replaces the temporary schema with the actual one in the registry.\n *\n * This prevents infinite loops in cases of cyclical dependencies.\n *\n * @param id - The unique identifier for the schema in the global registry.\n * @param callback - A function that returns the Zod schema to be created and registered.\n * @returns The created or retrieved Zod schema.\n * @example\n * ```typescript\n * const CategorySchema = safeSchemaCreation(\"Category\", () =>\n * z.object({\n * name: z.string(),\n * products: z.array(safeSchemaCreation(\"Product\", () =>\n * z.object({\n * name: z.string(),\n * category: z.lazy(() => CategorySchema) // Cyclical reference\n * })\n * ))\n * })\n * );\n * ```\n */\nexport const safeSchemaCreation = (id: Internal.UID.Schema, callback: () => z.ZodType) => {\n try {\n const { _idmap: idMap } = z.globalRegistry;\n\n const transformedId = transformUidToValidOpenApiName(id);\n\n // Return existing schema if already registered\n const mapItem = idMap.get(transformedId);\n if (mapItem) {\n // Schema already exists, return it silently\n return mapItem;\n }\n\n strapi.log.debug(`Schema ${transformedId} not found in registry, generating new schema`);\n\n // Determine if this is a built-in schema or user content\n const isBuiltInSchema = id.startsWith('plugin::') || id.startsWith('admin');\n\n if (isBuiltInSchema) {\n // Built-in schemas keep at debug level to avoid clutter\n strapi.log.debug(`Initializing validation schema for ${transformedId}`);\n } else {\n // User content\n const schemaName = transformedId\n .replace('Document', '')\n .replace('Entry', '')\n .replace(/([A-Z])/g, ' $1')\n .trim();\n strapi.log.debug(`📝 Generating validation schema for \"${schemaName}\"`);\n }\n\n // Temporary any placeholder before replacing with the actual schema type\n // Used to prevent infinite loops in cyclical data structures\n safeGlobalRegistrySet(id, z.any());\n\n // Generate the actual schema using the callback\n const schema = callback();\n\n // Replace the placeholder with the real schema\n safeGlobalRegistrySet(id, schema);\n\n // Show completion for user content only\n if (!isBuiltInSchema) {\n const fieldCount = Object.keys((schema as any)?._def?.shape || {}).length || 0;\n const schemaName = transformedId\n .replace('Document', '')\n .replace('Entry', '')\n .replace(/([A-Z])/g, ' $1')\n .trim();\n strapi.log.debug(` ✅ \"${schemaName}\" schema created with ${fieldCount} fields`);\n }\n\n return schema;\n } catch (error) {\n strapi.log.error(`Schema creation failed: Failed to create schema ${id}`);\n\n throw error;\n }\n};\n"],"names":["safeGlobalRegistrySet","id","schema","_idmap","idMap","z","globalRegistry","transformedId","transformUidToValidOpenApiName","isReplacing","has","delete","strapi","log","debug","add","error","safeSchemaCreation","callback","mapItem","get","isBuiltInSchema","startsWith","schemaName","replace","trim","any","fieldCount","Object","keys","_def","shape","length"],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var pagination = require('./pagination.js');
|
|
4
|
+
var coreService = require('./core-service.js');
|
|
5
|
+
|
|
6
|
+
class CollectionTypeService extends coreService.CoreService {
|
|
7
|
+
async find(params = {}) {
|
|
8
|
+
const { uid } = this.contentType;
|
|
9
|
+
const fetchParams = this.getFetchParams(params);
|
|
10
|
+
const paginationInfo = pagination.getPaginationInfo(fetchParams);
|
|
11
|
+
const isPaged = pagination.isPagedPagination(fetchParams.pagination);
|
|
12
|
+
const results = await strapi.documents(uid).findMany({
|
|
13
|
+
...fetchParams,
|
|
14
|
+
...paginationInfo
|
|
15
|
+
});
|
|
16
|
+
if (pagination.shouldCount(fetchParams)) {
|
|
17
|
+
const count = await strapi.documents(uid).count({
|
|
18
|
+
...fetchParams,
|
|
19
|
+
...paginationInfo
|
|
20
|
+
});
|
|
21
|
+
if (typeof count !== 'number') {
|
|
22
|
+
throw new Error('Count should be a number');
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
results,
|
|
26
|
+
pagination: pagination.transformPaginationResponse(paginationInfo, count, isPaged)
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
results,
|
|
31
|
+
pagination: pagination.transformPaginationResponse(paginationInfo, undefined, isPaged)
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
findOne(documentId, params = {}) {
|
|
35
|
+
const { uid } = this.contentType;
|
|
36
|
+
return strapi.documents(uid).findOne({
|
|
37
|
+
...this.getFetchParams(params),
|
|
38
|
+
documentId
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
async create(params = {
|
|
42
|
+
data: {}
|
|
43
|
+
}) {
|
|
44
|
+
const { uid } = this.contentType;
|
|
45
|
+
return strapi.documents(uid).create(this.getFetchParams(params));
|
|
46
|
+
}
|
|
47
|
+
update(documentId, params = {
|
|
48
|
+
data: {}
|
|
49
|
+
}) {
|
|
50
|
+
const { uid } = this.contentType;
|
|
51
|
+
return strapi.documents(uid).update({
|
|
52
|
+
...this.getFetchParams(params),
|
|
53
|
+
documentId
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
async delete(documentId, params = {}) {
|
|
57
|
+
const { uid } = this.contentType;
|
|
58
|
+
const { entries } = await strapi.documents(uid).delete({
|
|
59
|
+
...this.getFetchParams(params),
|
|
60
|
+
documentId
|
|
61
|
+
});
|
|
62
|
+
return {
|
|
63
|
+
deletedEntries: entries.length
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
constructor(contentType){
|
|
67
|
+
super();
|
|
68
|
+
this.contentType = contentType;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
*
|
|
73
|
+
* Returns a collection type service to handle default core-api actions
|
|
74
|
+
*/ const createCollectionTypeService = (contentType)=>{
|
|
75
|
+
return new CollectionTypeService(contentType);
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
exports.CollectionTypeService = CollectionTypeService;
|
|
79
|
+
exports.createCollectionTypeService = createCollectionTypeService;
|
|
80
|
+
//# sourceMappingURL=collection-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection-type.js","sources":["../../../src/core-api/service/collection-type.ts"],"sourcesContent":["import type { Core, Struct, Modules } from '@strapi/types';\n\nimport {\n getPaginationInfo,\n shouldCount,\n isPagedPagination,\n transformPaginationResponse,\n} from './pagination';\n\nimport { CoreService } from './core-service';\n\nexport class CollectionTypeService\n extends CoreService\n implements Core.CoreAPI.Service.CollectionType\n{\n private contentType: Struct.CollectionTypeSchema;\n\n constructor(contentType: Struct.CollectionTypeSchema) {\n super();\n\n this.contentType = contentType;\n }\n\n async find(params = {}) {\n const { uid } = this.contentType;\n\n const fetchParams = this.getFetchParams(params);\n\n const paginationInfo = getPaginationInfo(fetchParams);\n const isPaged = isPagedPagination(fetchParams.pagination);\n\n const results = await strapi.documents(uid).findMany({\n ...fetchParams,\n ...paginationInfo,\n });\n\n if (shouldCount(fetchParams)) {\n const count = await strapi.documents(uid).count({ ...fetchParams, ...paginationInfo });\n\n if (typeof count !== 'number') {\n throw new Error('Count should be a number');\n }\n\n return {\n results,\n pagination: transformPaginationResponse(paginationInfo, count, isPaged),\n };\n }\n\n return {\n results,\n pagination: transformPaginationResponse(paginationInfo, undefined, isPaged),\n };\n }\n\n findOne(documentId: Modules.Documents.ID, params = {}) {\n const { uid } = this.contentType;\n\n return strapi.documents(uid).findOne({\n ...this.getFetchParams(params),\n documentId,\n });\n }\n\n async create(params = { data: {} }) {\n const { uid } = this.contentType;\n\n return strapi.documents(uid).create(this.getFetchParams(params));\n }\n\n update(documentId: Modules.Documents.ID, params = { data: {} }) {\n const { uid } = this.contentType;\n\n return strapi.documents(uid).update({\n ...this.getFetchParams(params),\n documentId,\n });\n }\n\n async delete(documentId: Modules.Documents.ID, params = {}) {\n const { uid } = this.contentType;\n\n const { entries } = await strapi.documents(uid).delete({\n ...this.getFetchParams(params),\n documentId,\n });\n\n return { deletedEntries: entries.length };\n }\n}\n\n/**\n *\n * Returns a collection type service to handle default core-api actions\n */\n\nconst createCollectionTypeService = (\n contentType: Struct.CollectionTypeSchema\n): Core.CoreAPI.Service.CollectionType => {\n return new CollectionTypeService(contentType);\n};\n\nexport { createCollectionTypeService };\n"],"names":["CollectionTypeService","CoreService","find","params","uid","contentType","fetchParams","getFetchParams","paginationInfo","getPaginationInfo","isPaged","isPagedPagination","pagination","results","strapi","documents","findMany","shouldCount","count","Error","transformPaginationResponse","undefined","findOne","documentId","create","data","update","delete","entries","deletedEntries","length","constructor","createCollectionTypeService"],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { getPaginationInfo, isPagedPagination, shouldCount, transformPaginationResponse } from './pagination.mjs';
|
|
2
|
+
import { CoreService } from './core-service.mjs';
|
|
3
|
+
|
|
4
|
+
class CollectionTypeService extends CoreService {
|
|
5
|
+
async find(params = {}) {
|
|
6
|
+
const { uid } = this.contentType;
|
|
7
|
+
const fetchParams = this.getFetchParams(params);
|
|
8
|
+
const paginationInfo = getPaginationInfo(fetchParams);
|
|
9
|
+
const isPaged = isPagedPagination(fetchParams.pagination);
|
|
10
|
+
const results = await strapi.documents(uid).findMany({
|
|
11
|
+
...fetchParams,
|
|
12
|
+
...paginationInfo
|
|
13
|
+
});
|
|
14
|
+
if (shouldCount(fetchParams)) {
|
|
15
|
+
const count = await strapi.documents(uid).count({
|
|
16
|
+
...fetchParams,
|
|
17
|
+
...paginationInfo
|
|
18
|
+
});
|
|
19
|
+
if (typeof count !== 'number') {
|
|
20
|
+
throw new Error('Count should be a number');
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
results,
|
|
24
|
+
pagination: transformPaginationResponse(paginationInfo, count, isPaged)
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
results,
|
|
29
|
+
pagination: transformPaginationResponse(paginationInfo, undefined, isPaged)
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
findOne(documentId, params = {}) {
|
|
33
|
+
const { uid } = this.contentType;
|
|
34
|
+
return strapi.documents(uid).findOne({
|
|
35
|
+
...this.getFetchParams(params),
|
|
36
|
+
documentId
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
async create(params = {
|
|
40
|
+
data: {}
|
|
41
|
+
}) {
|
|
42
|
+
const { uid } = this.contentType;
|
|
43
|
+
return strapi.documents(uid).create(this.getFetchParams(params));
|
|
44
|
+
}
|
|
45
|
+
update(documentId, params = {
|
|
46
|
+
data: {}
|
|
47
|
+
}) {
|
|
48
|
+
const { uid } = this.contentType;
|
|
49
|
+
return strapi.documents(uid).update({
|
|
50
|
+
...this.getFetchParams(params),
|
|
51
|
+
documentId
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
async delete(documentId, params = {}) {
|
|
55
|
+
const { uid } = this.contentType;
|
|
56
|
+
const { entries } = await strapi.documents(uid).delete({
|
|
57
|
+
...this.getFetchParams(params),
|
|
58
|
+
documentId
|
|
59
|
+
});
|
|
60
|
+
return {
|
|
61
|
+
deletedEntries: entries.length
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
constructor(contentType){
|
|
65
|
+
super();
|
|
66
|
+
this.contentType = contentType;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
*
|
|
71
|
+
* Returns a collection type service to handle default core-api actions
|
|
72
|
+
*/ const createCollectionTypeService = (contentType)=>{
|
|
73
|
+
return new CollectionTypeService(contentType);
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
export { CollectionTypeService, createCollectionTypeService };
|
|
77
|
+
//# sourceMappingURL=collection-type.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection-type.mjs","sources":["../../../src/core-api/service/collection-type.ts"],"sourcesContent":["import type { Core, Struct, Modules } from '@strapi/types';\n\nimport {\n getPaginationInfo,\n shouldCount,\n isPagedPagination,\n transformPaginationResponse,\n} from './pagination';\n\nimport { CoreService } from './core-service';\n\nexport class CollectionTypeService\n extends CoreService\n implements Core.CoreAPI.Service.CollectionType\n{\n private contentType: Struct.CollectionTypeSchema;\n\n constructor(contentType: Struct.CollectionTypeSchema) {\n super();\n\n this.contentType = contentType;\n }\n\n async find(params = {}) {\n const { uid } = this.contentType;\n\n const fetchParams = this.getFetchParams(params);\n\n const paginationInfo = getPaginationInfo(fetchParams);\n const isPaged = isPagedPagination(fetchParams.pagination);\n\n const results = await strapi.documents(uid).findMany({\n ...fetchParams,\n ...paginationInfo,\n });\n\n if (shouldCount(fetchParams)) {\n const count = await strapi.documents(uid).count({ ...fetchParams, ...paginationInfo });\n\n if (typeof count !== 'number') {\n throw new Error('Count should be a number');\n }\n\n return {\n results,\n pagination: transformPaginationResponse(paginationInfo, count, isPaged),\n };\n }\n\n return {\n results,\n pagination: transformPaginationResponse(paginationInfo, undefined, isPaged),\n };\n }\n\n findOne(documentId: Modules.Documents.ID, params = {}) {\n const { uid } = this.contentType;\n\n return strapi.documents(uid).findOne({\n ...this.getFetchParams(params),\n documentId,\n });\n }\n\n async create(params = { data: {} }) {\n const { uid } = this.contentType;\n\n return strapi.documents(uid).create(this.getFetchParams(params));\n }\n\n update(documentId: Modules.Documents.ID, params = { data: {} }) {\n const { uid } = this.contentType;\n\n return strapi.documents(uid).update({\n ...this.getFetchParams(params),\n documentId,\n });\n }\n\n async delete(documentId: Modules.Documents.ID, params = {}) {\n const { uid } = this.contentType;\n\n const { entries } = await strapi.documents(uid).delete({\n ...this.getFetchParams(params),\n documentId,\n });\n\n return { deletedEntries: entries.length };\n }\n}\n\n/**\n *\n * Returns a collection type service to handle default core-api actions\n */\n\nconst createCollectionTypeService = (\n contentType: Struct.CollectionTypeSchema\n): Core.CoreAPI.Service.CollectionType => {\n return new CollectionTypeService(contentType);\n};\n\nexport { createCollectionTypeService };\n"],"names":["CollectionTypeService","CoreService","find","params","uid","contentType","fetchParams","getFetchParams","paginationInfo","getPaginationInfo","isPaged","isPagedPagination","pagination","results","strapi","documents","findMany","shouldCount","count","Error","transformPaginationResponse","undefined","findOne","documentId","create","data","update","delete","entries","deletedEntries","length","constructor","createCollectionTypeService"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-service.js","sources":["../../../src/core-api/service/core-service.ts"],"sourcesContent":["export abstract class CoreService {\n getFetchParams(params = {}): any {\n return {\n status: 'published',\n ...params,\n };\n }\n}\n"],"names":["CoreService","getFetchParams","params","status"],"mappings":";;AAAO,MAAeA,WAAAA,CAAAA;IACpBC,cAAeC,CAAAA,MAAAA,GAAS,EAAE,EAAO;QAC/B,OAAO;YACLC,MAAQ,EAAA,WAAA;AACR,YAAA,GAAGD;AACL,SAAA;AACF;AACF;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-service.mjs","sources":["../../../src/core-api/service/core-service.ts"],"sourcesContent":["export abstract class CoreService {\n getFetchParams(params = {}): any {\n return {\n status: 'published',\n ...params,\n };\n }\n}\n"],"names":["CoreService","getFetchParams","params","status"],"mappings":"AAAO,MAAeA,WAAAA,CAAAA;IACpBC,cAAeC,CAAAA,MAAAA,GAAS,EAAE,EAAO;QAC/B,OAAO;YACLC,MAAQ,EAAA,WAAA;AACR,YAAA,GAAGD;AACL,SAAA;AACF;AACF;;;;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var strapiUtils = require('@strapi/utils');
|
|
4
|
+
var singleType = require('./single-type.js');
|
|
5
|
+
var collectionType = require('./collection-type.js');
|
|
6
|
+
|
|
7
|
+
const isSingleType = (contentType)=>strapiUtils.contentTypes.isSingleType(contentType);
|
|
8
|
+
function createService({ contentType }) {
|
|
9
|
+
if (isSingleType(contentType)) {
|
|
10
|
+
return singleType.createSingleTypeService(contentType);
|
|
11
|
+
}
|
|
12
|
+
return collectionType.createCollectionTypeService(contentType);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
exports.createService = createService;
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/core-api/service/index.ts"],"sourcesContent":["import { contentTypes as contentTypeUtils } from '@strapi/utils';\nimport type { Core, Struct } from '@strapi/types';\n\nimport { createSingleTypeService } from './single-type';\nimport { createCollectionTypeService } from './collection-type';\n\nconst isSingleType = (\n contentType: Struct.ContentTypeSchema\n): contentType is Struct.SingleTypeSchema => contentTypeUtils.isSingleType(contentType);\n\n/**\n * Returns a core api for the provided model\n */\nfunction createService<T extends Struct.SingleTypeSchema | Struct.CollectionTypeSchema>(opts: {\n contentType: T;\n}): T extends Struct.SingleTypeSchema\n ? Core.CoreAPI.Service.SingleType\n : Core.CoreAPI.Service.CollectionType;\nfunction createService({\n contentType,\n}: {\n contentType: Struct.CollectionTypeSchema | Struct.SingleTypeSchema;\n}): Core.CoreAPI.Service.SingleType | Core.CoreAPI.Service.CollectionType {\n if (isSingleType(contentType)) {\n return createSingleTypeService(contentType);\n }\n\n return createCollectionTypeService(contentType);\n}\n\nexport { createService };\n"],"names":["isSingleType","contentType","contentTypeUtils","createService","createSingleTypeService","createCollectionTypeService"],"mappings":";;;;;;AAMA,MAAMA,YAAe,GAAA,CACnBC,WAC2CC,GAAAA,wBAAAA,CAAiBF,YAAY,CAACC,WAAAA,CAAAA;AAU3E,SAASE,aAAAA,CAAc,EACrBF,WAAW,EAGZ,EAAA;AACC,IAAA,IAAID,aAAaC,WAAc,CAAA,EAAA;AAC7B,QAAA,OAAOG,kCAAwBH,CAAAA,WAAAA,CAAAA;AACjC;AAEA,IAAA,OAAOI,0CAA4BJ,CAAAA,WAAAA,CAAAA;AACrC;;;;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { contentTypes } from '@strapi/utils';
|
|
2
|
+
import { createSingleTypeService } from './single-type.mjs';
|
|
3
|
+
import { createCollectionTypeService } from './collection-type.mjs';
|
|
4
|
+
|
|
5
|
+
const isSingleType = (contentType)=>contentTypes.isSingleType(contentType);
|
|
6
|
+
function createService({ contentType }) {
|
|
7
|
+
if (isSingleType(contentType)) {
|
|
8
|
+
return createSingleTypeService(contentType);
|
|
9
|
+
}
|
|
10
|
+
return createCollectionTypeService(contentType);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { createService };
|
|
14
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../src/core-api/service/index.ts"],"sourcesContent":["import { contentTypes as contentTypeUtils } from '@strapi/utils';\nimport type { Core, Struct } from '@strapi/types';\n\nimport { createSingleTypeService } from './single-type';\nimport { createCollectionTypeService } from './collection-type';\n\nconst isSingleType = (\n contentType: Struct.ContentTypeSchema\n): contentType is Struct.SingleTypeSchema => contentTypeUtils.isSingleType(contentType);\n\n/**\n * Returns a core api for the provided model\n */\nfunction createService<T extends Struct.SingleTypeSchema | Struct.CollectionTypeSchema>(opts: {\n contentType: T;\n}): T extends Struct.SingleTypeSchema\n ? Core.CoreAPI.Service.SingleType\n : Core.CoreAPI.Service.CollectionType;\nfunction createService({\n contentType,\n}: {\n contentType: Struct.CollectionTypeSchema | Struct.SingleTypeSchema;\n}): Core.CoreAPI.Service.SingleType | Core.CoreAPI.Service.CollectionType {\n if (isSingleType(contentType)) {\n return createSingleTypeService(contentType);\n }\n\n return createCollectionTypeService(contentType);\n}\n\nexport { createService };\n"],"names":["isSingleType","contentType","contentTypeUtils","createService","createSingleTypeService","createCollectionTypeService"],"mappings":";;;;AAMA,MAAMA,YAAe,GAAA,CACnBC,WAC2CC,GAAAA,YAAAA,CAAiBF,YAAY,CAACC,WAAAA,CAAAA;AAU3E,SAASE,aAAAA,CAAc,EACrBF,WAAW,EAGZ,EAAA;AACC,IAAA,IAAID,aAAaC,WAAc,CAAA,EAAA;AAC7B,QAAA,OAAOG,uBAAwBH,CAAAA,WAAAA,CAAAA;AACjC;AAEA,IAAA,OAAOI,2BAA4BJ,CAAAA,WAAAA,CAAAA;AACrC;;;;"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var fp = require('lodash/fp');
|
|
4
|
+
var strapiUtils = require('@strapi/utils');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Default limit values from config
|
|
8
|
+
*/ const getLimitConfigDefaults = ()=>({
|
|
9
|
+
defaultLimit: fp.toNumber(strapi.config.get('api.rest.defaultLimit', 25)),
|
|
10
|
+
maxLimit: fp.toNumber(strapi.config.get('api.rest.maxLimit')) || null
|
|
11
|
+
});
|
|
12
|
+
const isOffsetPagination = (pagination)=>fp.has('start', pagination) || fp.has('limit', pagination);
|
|
13
|
+
const isPagedPagination = (pagination)=>fp.has('page', pagination) || fp.has('pageSize', pagination) || !isOffsetPagination(pagination);
|
|
14
|
+
const shouldCount = (params)=>{
|
|
15
|
+
if (fp.has('pagination.withCount', params)) {
|
|
16
|
+
const withCount = params.pagination?.withCount;
|
|
17
|
+
if (typeof withCount === 'boolean') {
|
|
18
|
+
return withCount;
|
|
19
|
+
}
|
|
20
|
+
if (typeof withCount === 'undefined') {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
if ([
|
|
24
|
+
'true',
|
|
25
|
+
't',
|
|
26
|
+
'1',
|
|
27
|
+
1
|
|
28
|
+
].includes(withCount)) {
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
if ([
|
|
32
|
+
'false',
|
|
33
|
+
'f',
|
|
34
|
+
'0',
|
|
35
|
+
0
|
|
36
|
+
].includes(withCount)) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
throw new strapiUtils.errors.ValidationError('Invalid withCount parameter. Expected "t","1","true","false","0","f"');
|
|
40
|
+
}
|
|
41
|
+
return Boolean(strapi.config.get('api.rest.withCount', true));
|
|
42
|
+
};
|
|
43
|
+
const getPaginationInfo = (params)=>{
|
|
44
|
+
const { defaultLimit, maxLimit } = getLimitConfigDefaults();
|
|
45
|
+
const { start, limit } = strapiUtils.pagination.withDefaultPagination(params.pagination || {}, {
|
|
46
|
+
defaults: {
|
|
47
|
+
offset: {
|
|
48
|
+
limit: defaultLimit
|
|
49
|
+
},
|
|
50
|
+
page: {
|
|
51
|
+
pageSize: defaultLimit
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
maxLimit: maxLimit || -1
|
|
55
|
+
});
|
|
56
|
+
return {
|
|
57
|
+
start,
|
|
58
|
+
limit
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
const transformPaginationResponse = (paginationInfo, total, isPaged)=>{
|
|
62
|
+
const transform = isPaged ? strapiUtils.pagination.transformPagedPaginationInfo : strapiUtils.pagination.transformOffsetPaginationInfo;
|
|
63
|
+
const paginationResponse = transform(paginationInfo, total);
|
|
64
|
+
if (fp.isNil(total)) {
|
|
65
|
+
// Ignore total and pageCount if `total` value is not available.
|
|
66
|
+
return fp.omit([
|
|
67
|
+
'total',
|
|
68
|
+
'pageCount'
|
|
69
|
+
], paginationResponse);
|
|
70
|
+
}
|
|
71
|
+
return paginationResponse;
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
exports.getPaginationInfo = getPaginationInfo;
|
|
75
|
+
exports.isPagedPagination = isPagedPagination;
|
|
76
|
+
exports.shouldCount = shouldCount;
|
|
77
|
+
exports.transformPaginationResponse = transformPaginationResponse;
|
|
78
|
+
//# sourceMappingURL=pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.js","sources":["../../../src/core-api/service/pagination.ts"],"sourcesContent":["import { omit, has, toNumber, isNil } from 'lodash/fp';\n\nimport { errors, pagination } 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\nconst isOffsetPagination = (pagination?: PaginationParams): pagination is OffsetPagination =>\n has('start', pagination) || has('limit', pagination);\n\nconst isPagedPagination = (pagination?: PaginationParams): pagination is PagedPagination =>\n has('page', pagination) || has('pageSize', pagination) || !isOffsetPagination(pagination);\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 getPaginationInfo = (params: { pagination?: PaginationParams }): PaginationInfo => {\n const { defaultLimit, maxLimit } = getLimitConfigDefaults();\n\n const { start, limit } = pagination.withDefaultPagination(params.pagination || {}, {\n defaults: { offset: { limit: defaultLimit }, page: { pageSize: defaultLimit } },\n maxLimit: maxLimit || -1,\n });\n\n return { start, limit };\n};\n\nconst transformPaginationResponse = (\n paginationInfo: PaginationInfo,\n total: number | undefined,\n isPaged: boolean\n) => {\n const transform = isPaged\n ? pagination.transformPagedPaginationInfo\n : pagination.transformOffsetPaginationInfo;\n\n const paginationResponse = transform(paginationInfo, total!);\n\n if (isNil(total)) {\n // Ignore total and pageCount if `total` value is not available.\n return omit(['total', 'pageCount'], paginationResponse) as ReturnType<typeof transform>;\n }\n\n return paginationResponse;\n};\n\nexport { isPagedPagination, shouldCount, getPaginationInfo, transformPaginationResponse };\n"],"names":["getLimitConfigDefaults","defaultLimit","toNumber","strapi","config","get","maxLimit","isOffsetPagination","pagination","has","isPagedPagination","shouldCount","params","withCount","includes","errors","ValidationError","Boolean","getPaginationInfo","start","limit","withDefaultPagination","defaults","offset","page","pageSize","transformPaginationResponse","paginationInfo","total","isPaged","transform","transformPagedPaginationInfo","transformOffsetPaginationInfo","paginationResponse","isNil","omit"],"mappings":";;;;;AA8BA;;IAGA,MAAMA,sBAAyB,GAAA,KAAO;AACpCC,QAAAA,YAAAA,EAAcC,YAASC,MAAOC,CAAAA,MAAM,CAACC,GAAG,CAAC,uBAAyB,EAAA,EAAA,CAAA,CAAA;AAClEC,QAAAA,QAAAA,EAAUJ,YAASC,MAAOC,CAAAA,MAAM,CAACC,GAAG,CAAC,mBAAyB,CAAA,CAAA,IAAA;KAChE,CAAA;AAEA,MAAME,qBAAqB,CAACC,UAAAA,GAC1BC,OAAI,OAASD,EAAAA,UAAAA,CAAAA,IAAeC,OAAI,OAASD,EAAAA,UAAAA,CAAAA;AAErCE,MAAAA,iBAAAA,GAAoB,CAACF,UAAAA,GACzBC,MAAI,CAAA,MAAA,EAAQD,eAAeC,MAAI,CAAA,UAAA,EAAYD,UAAe,CAAA,IAAA,CAACD,kBAAmBC,CAAAA,UAAAA;AAEhF,MAAMG,cAAc,CAACC,MAAAA,GAAAA;IACnB,IAAIH,MAAAA,CAAI,wBAAwBG,MAAS,CAAA,EAAA;QACvC,MAAMC,SAAAA,GAAYD,MAAOJ,CAAAA,UAAU,EAAEK,SAAAA;QAErC,IAAI,OAAOA,cAAc,SAAW,EAAA;YAClC,OAAOA,SAAAA;AACT;QAEA,IAAI,OAAOA,cAAc,WAAa,EAAA;YACpC,OAAO,KAAA;AACT;QAEA,IAAI;AAAC,YAAA,MAAA;AAAQ,YAAA,GAAA;AAAK,YAAA,GAAA;AAAK,YAAA;SAAE,CAACC,QAAQ,CAACD,SAAY,CAAA,EAAA;YAC7C,OAAO,IAAA;AACT;QAEA,IAAI;AAAC,YAAA,OAAA;AAAS,YAAA,GAAA;AAAK,YAAA,GAAA;AAAK,YAAA;SAAE,CAACC,QAAQ,CAACD,SAAY,CAAA,EAAA;YAC9C,OAAO,KAAA;AACT;QAEA,MAAM,IAAIE,kBAAOC,CAAAA,eAAe,CAC9B,sEAAA,CAAA;AAEJ;AAEA,IAAA,OAAOC,QAAQd,MAAOC,CAAAA,MAAM,CAACC,GAAG,CAAC,oBAAsB,EAAA,IAAA,CAAA,CAAA;AACzD;AAEA,MAAMa,oBAAoB,CAACN,MAAAA,GAAAA;AACzB,IAAA,MAAM,EAAEX,YAAY,EAAEK,QAAQ,EAAE,GAAGN,sBAAAA,EAAAA;AAEnC,IAAA,MAAM,EAAEmB,KAAK,EAAEC,KAAK,EAAE,GAAGZ,sBAAWa,CAAAA,qBAAqB,CAACT,MAAAA,CAAOJ,UAAU,IAAI,EAAI,EAAA;QACjFc,QAAU,EAAA;YAAEC,MAAQ,EAAA;gBAAEH,KAAOnB,EAAAA;AAAa,aAAA;YAAGuB,IAAM,EAAA;gBAAEC,QAAUxB,EAAAA;AAAa;AAAE,SAAA;AAC9EK,QAAAA,QAAAA,EAAUA,YAAY,CAAC;AACzB,KAAA,CAAA;IAEA,OAAO;AAAEa,QAAAA,KAAAA;AAAOC,QAAAA;AAAM,KAAA;AACxB;AAEMM,MAAAA,2BAAAA,GAA8B,CAClCC,cAAAA,EACAC,KACAC,EAAAA,OAAAA,GAAAA;AAEA,IAAA,MAAMC,YAAYD,OACdrB,GAAAA,sBAAAA,CAAWuB,4BAA4B,GACvCvB,uBAAWwB,6BAA6B;IAE5C,MAAMC,kBAAAA,GAAqBH,UAAUH,cAAgBC,EAAAA,KAAAA,CAAAA;AAErD,IAAA,IAAIM,SAAMN,KAAQ,CAAA,EAAA;;AAEhB,QAAA,OAAOO,OAAK,CAAA;AAAC,YAAA,OAAA;AAAS,YAAA;SAAY,EAAEF,kBAAAA,CAAAA;AACtC;IAEA,OAAOA,kBAAAA;AACT;;;;;;;"}
|