@strapi/core 0.0.0-experimental.1a574eb92501bf5230c6126b73f8e992690d8da1 → 0.0.0-experimental.1e4c115f717b021ca11c139584d4519db28ba786
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.js +455 -0
- package/dist/Strapi.js.map +1 -0
- package/dist/Strapi.mjs +434 -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.js +67 -0
- package/dist/core-api/controller/index.js.map +1 -0
- package/dist/core-api/controller/index.mjs +65 -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.js +85 -0
- package/dist/core-api/controller/transform.js.map +1 -0
- package/dist/core-api/controller/transform.mjs +83 -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 +192 -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 +91 -0
- package/dist/core-api/routes/validation/attributes.d.ts.map +1 -0
- package/dist/core-api/routes/validation/attributes.js +583 -0
- package/dist/core-api/routes/validation/attributes.js.map +1 -0
- package/dist/core-api/routes/validation/attributes.mjs +580 -0
- package/dist/core-api/routes/validation/attributes.mjs.map +1 -0
- package/dist/core-api/routes/validation/common.d.ts +103 -0
- package/dist/core-api/routes/validation/common.d.ts.map +1 -0
- package/dist/core-api/routes/validation/common.js +95 -0
- package/dist/core-api/routes/validation/common.js.map +1 -0
- package/dist/core-api/routes/validation/common.mjs +93 -0
- package/dist/core-api/routes/validation/common.mjs.map +1 -0
- package/dist/core-api/routes/validation/component.d.ts +42 -0
- package/dist/core-api/routes/validation/component.d.ts.map +1 -0
- package/dist/core-api/routes/validation/component.js +59 -0
- package/dist/core-api/routes/validation/component.js.map +1 -0
- package/dist/core-api/routes/validation/component.mjs +57 -0
- package/dist/core-api/routes/validation/component.mjs.map +1 -0
- package/dist/core-api/routes/validation/constants.d.ts +2 -0
- package/dist/core-api/routes/validation/constants.d.ts.map +1 -0
- package/dist/core-api/routes/validation/constants.js +13 -0
- package/dist/core-api/routes/validation/constants.js.map +1 -0
- package/dist/core-api/routes/validation/constants.mjs +11 -0
- package/dist/core-api/routes/validation/constants.mjs.map +1 -0
- package/dist/core-api/routes/validation/content-type.d.ts +171 -0
- package/dist/core-api/routes/validation/content-type.d.ts.map +1 -0
- package/dist/core-api/routes/validation/content-type.js +246 -0
- package/dist/core-api/routes/validation/content-type.js.map +1 -0
- package/dist/core-api/routes/validation/content-type.mjs +244 -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/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.js +106 -0
- package/dist/domain/content-type/index.js.map +1 -0
- package/dist/domain/content-type/index.mjs +103 -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 +1 -0
- package/dist/ee/index.d.ts.map +1 -1
- package/dist/ee/index.js +192 -0
- package/dist/ee/index.js.map +1 -0
- package/dist/ee/index.mjs +190 -0
- package/dist/ee/index.mjs.map +1 -0
- package/dist/ee/license.d.ts.map +1 -1
- package/dist/ee/license.js +116 -0
- package/dist/ee/license.js.map +1 -0
- package/dist/ee/license.mjs +111 -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.js +64 -0
- package/dist/middlewares/cors.js.map +1 -0
- package/dist/middlewares/cors.mjs +62 -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/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.js +29 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/index.mjs +26 -0
- package/dist/migrations/index.mjs.map +1 -0
- package/dist/package.json.js +183 -0
- package/dist/package.json.js.map +1 -0
- package/dist/package.json.mjs +160 -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.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/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.js +113 -0
- package/dist/services/document-service/entries.js.map +1 -0
- package/dist/services/document-service/entries.mjs +111 -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/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.js +79 -0
- package/dist/services/document-service/internationalization.js.map +1 -0
- package/dist/services/document-service/internationalization.mjs +74 -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.js +364 -0
- package/dist/services/document-service/repository.js.map +1 -0
- package/dist/services/document-service/repository.mjs +362 -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.js +384 -0
- package/dist/services/entity-validator/index.js.map +1 -0
- package/dist/services/entity-validator/index.mjs +382 -0
- package/dist/services/entity-validator/index.mjs.map +1 -0
- package/dist/services/entity-validator/validators.js +299 -0
- package/dist/services/entity-validator/validators.js.map +1 -0
- package/dist/services/entity-validator/validators.mjs +290 -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.js +51 -0
- package/dist/services/metrics/index.js.map +1 -0
- package/dist/services/metrics/index.mjs +49 -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/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.js +27 -0
- package/dist/utils/fetch.js.map +1 -0
- package/dist/utils/fetch.mjs +25 -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.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 +14 -13
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
import { contentTypes } from '@strapi/utils';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { mapAttributeToSchema, mapAttributeToInputSchema } from './attributes.mjs';
|
|
4
|
+
import { AbstractCoreRouteValidator } from './common.mjs';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* A validator for core content-type routes.
|
|
8
|
+
*
|
|
9
|
+
* Provides validation schemas and utilities for handling content-type-specific route validation.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* const strapi = // ... strapi instance
|
|
14
|
+
* const uid = 'api::article.article'
|
|
15
|
+
* const validator = new CoreContentTypeRouteValidator(strapi, uid);
|
|
16
|
+
*
|
|
17
|
+
* // Get validation schema for document
|
|
18
|
+
* const documentSchema = validator.document;
|
|
19
|
+
*
|
|
20
|
+
* // Validate query parameters
|
|
21
|
+
* const querySchema = validator.query(['fields', 'populate', 'sort']);
|
|
22
|
+
* ```
|
|
23
|
+
*/ class CoreContentTypeRouteValidator extends AbstractCoreRouteValidator {
|
|
24
|
+
/**
|
|
25
|
+
* Generates a validation schema for document IDs
|
|
26
|
+
*
|
|
27
|
+
* @returns A schema that validates UUIDs
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* const validator = new CoreContentTypeRouteValidator(strapi, uid);
|
|
32
|
+
* const idSchema = validator.documentID;
|
|
33
|
+
* ```
|
|
34
|
+
*/ get documentID() {
|
|
35
|
+
return z.uuid().describe('The document ID, represented by a UUID');
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Generates a comprehensive validation schema for a single document.
|
|
39
|
+
*
|
|
40
|
+
* Combines scalar fields and populatable fields into a single schema.
|
|
41
|
+
*
|
|
42
|
+
* @returns A schema for validating complete documents
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* const validator = new CoreContentTypeRouteValidator(strapi, uid);
|
|
47
|
+
* const docSchema = validator.document;
|
|
48
|
+
* ```
|
|
49
|
+
*/ get document() {
|
|
50
|
+
const { _scalarFields, _populatableFields } = this;
|
|
51
|
+
const entries = Object.entries({
|
|
52
|
+
..._scalarFields,
|
|
53
|
+
..._populatableFields
|
|
54
|
+
});
|
|
55
|
+
const attributesSchema = entries// Remove passwords from the attribute list
|
|
56
|
+
// TODO: Make sure we're not leaking other fields like that
|
|
57
|
+
.filter(([, attribute])=>![
|
|
58
|
+
'password'
|
|
59
|
+
].includes(attribute.type))// Merge all attributes into a single schema
|
|
60
|
+
.reduce((acc, [attributeName, attribute])=>{
|
|
61
|
+
return acc.extend({
|
|
62
|
+
get [attributeName] () {
|
|
63
|
+
return mapAttributeToSchema(attribute);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}, z.object({}));
|
|
67
|
+
return attributesSchema.extend({
|
|
68
|
+
documentId: this.documentID,
|
|
69
|
+
id: z.number()
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Generates a validation schema for an array of documents
|
|
74
|
+
*
|
|
75
|
+
* @returns A schema for validating arrays of documents
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* ```ts
|
|
79
|
+
* const validator = new CoreContentTypeRouteValidator(strapi, uid);
|
|
80
|
+
* const docsSchema = validator.documents;
|
|
81
|
+
* ```
|
|
82
|
+
*/ get documents() {
|
|
83
|
+
return z.array(this.document);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Generates a validation schema for field selection in queries
|
|
87
|
+
*
|
|
88
|
+
* @returns A schema for validating field selection
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```ts
|
|
92
|
+
* const validator = new CoreContentTypeRouteValidator(strapi, uid);
|
|
93
|
+
* const fieldsSchema = validator.queryFields;
|
|
94
|
+
* ```
|
|
95
|
+
*/ get queryFields() {
|
|
96
|
+
return this.scalarFieldsArray.readonly().describe(`The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones`);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Generates a validation schema for populate operations.
|
|
100
|
+
*
|
|
101
|
+
* Allows wildcard (*), single field, and multiple field population.
|
|
102
|
+
*
|
|
103
|
+
* @returns A schema for validating populate parameters
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```ts
|
|
107
|
+
* const validator = new CoreContentTypeRouteValidator(strapi, uid);
|
|
108
|
+
* const populateSchema = validator.queryPopulate;
|
|
109
|
+
* ```
|
|
110
|
+
*/ get queryPopulate() {
|
|
111
|
+
const wildcardPopulate = z.literal('*').readonly().describe('Populate all the first level relations, components, files, and dynamic zones for the entry');
|
|
112
|
+
const singleFieldPopulate = this.populatableFieldsEnum.readonly().describe('Populate a single relation, component, file, or dynamic zone');
|
|
113
|
+
const multiPopulate = this.populatableFieldsArray.describe('Populate a selection of multiple relations, components, files, or dynamic zones');
|
|
114
|
+
return z.union([
|
|
115
|
+
wildcardPopulate,
|
|
116
|
+
singleFieldPopulate,
|
|
117
|
+
multiPopulate
|
|
118
|
+
]);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Generates a validation schema for sorting parameters.
|
|
122
|
+
*
|
|
123
|
+
* Allows various sorting formats including single field, multiple fields, and direction specifications
|
|
124
|
+
*
|
|
125
|
+
* @returns A schema for validating sort parameters
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```ts
|
|
129
|
+
* const validator = new CoreContentTypeRouteValidator(strapi, uid);
|
|
130
|
+
* const sortSchema = validator.querySort;
|
|
131
|
+
* ```
|
|
132
|
+
*
|
|
133
|
+
* @remarks
|
|
134
|
+
* - Nested sorts are currently not supported
|
|
135
|
+
*/ get querySort() {
|
|
136
|
+
const orderDirection = z.enum([
|
|
137
|
+
'asc',
|
|
138
|
+
'desc'
|
|
139
|
+
]);
|
|
140
|
+
// TODO: Handle nested sorts but very low priority, very little usage
|
|
141
|
+
return z.union([
|
|
142
|
+
this.scalarFieldsEnum,
|
|
143
|
+
this.scalarFieldsArray,
|
|
144
|
+
this.fieldRecord(orderDirection),
|
|
145
|
+
z.array(this.fieldRecord(orderDirection))
|
|
146
|
+
]).describe('Sort the result');
|
|
147
|
+
}
|
|
148
|
+
get locale() {
|
|
149
|
+
return z.string().optional().describe('Select a locale');
|
|
150
|
+
}
|
|
151
|
+
get status() {
|
|
152
|
+
return z.enum([
|
|
153
|
+
'draft',
|
|
154
|
+
'published'
|
|
155
|
+
]).describe('Fetch documents based on their status. Default to "published" if not specified.');
|
|
156
|
+
}
|
|
157
|
+
get pagination() {
|
|
158
|
+
return z.intersection(z.object({
|
|
159
|
+
withCount: z.boolean().optional()
|
|
160
|
+
}), z.union([
|
|
161
|
+
z.object({
|
|
162
|
+
page: z.number(),
|
|
163
|
+
pageSize: z.number()
|
|
164
|
+
}).describe('Specify a page number and the number of entries per page'),
|
|
165
|
+
z.object({
|
|
166
|
+
start: z.number(),
|
|
167
|
+
limit: z.number()
|
|
168
|
+
}).describe('Specify how many entries to skip and to return')
|
|
169
|
+
])).describe('Pagination parameters');
|
|
170
|
+
}
|
|
171
|
+
get filters() {
|
|
172
|
+
return z.record(this.scalarFieldsEnum, z.any()).describe('Filters to apply to the query');
|
|
173
|
+
}
|
|
174
|
+
get data() {
|
|
175
|
+
const { _scalarFields, _populatableFields, _schema } = this;
|
|
176
|
+
const isWritableAttribute = ([attributeName])=>{
|
|
177
|
+
return contentTypes.isWritableAttribute(_schema, attributeName);
|
|
178
|
+
};
|
|
179
|
+
const entries = Object.entries({
|
|
180
|
+
..._scalarFields,
|
|
181
|
+
..._populatableFields
|
|
182
|
+
});
|
|
183
|
+
return entries// Remove non-writable attributes
|
|
184
|
+
.filter(isWritableAttribute)// Combine schemas
|
|
185
|
+
.reduce((acc, [attributeName, attribute])=>{
|
|
186
|
+
return acc.extend({
|
|
187
|
+
get [attributeName] () {
|
|
188
|
+
return mapAttributeToInputSchema(attribute);
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
}, z.object());
|
|
192
|
+
}
|
|
193
|
+
get query() {
|
|
194
|
+
return z.string();
|
|
195
|
+
}
|
|
196
|
+
get body() {
|
|
197
|
+
return z.object({
|
|
198
|
+
data: this.data
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
get partialBody() {
|
|
202
|
+
return z.object({
|
|
203
|
+
data: this.data.partial()
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Creates validation schemas for query parameters
|
|
208
|
+
*
|
|
209
|
+
* @param params - Array of query parameters to validate ('fields', 'populate', 'sort', ...)
|
|
210
|
+
* @returns Object containing validation schemas for requested parameters
|
|
211
|
+
*
|
|
212
|
+
* @example
|
|
213
|
+
* ```ts
|
|
214
|
+
* const validator = new CoreContentTypeRouteValidator(strapi, uid);
|
|
215
|
+
* const querySchemas = validator.query(['fields', 'populate']);
|
|
216
|
+
* ```
|
|
217
|
+
*/ queryParams(params) {
|
|
218
|
+
const map = {
|
|
219
|
+
fields: ()=>this.queryFields.optional(),
|
|
220
|
+
populate: ()=>this.queryPopulate.optional(),
|
|
221
|
+
sort: ()=>this.querySort.optional(),
|
|
222
|
+
filters: ()=>this.filters.optional(),
|
|
223
|
+
locale: ()=>this.locale.optional(),
|
|
224
|
+
pagination: ()=>this.pagination.optional(),
|
|
225
|
+
status: ()=>this.status.optional(),
|
|
226
|
+
_q: ()=>this.query.optional()
|
|
227
|
+
};
|
|
228
|
+
return params.reduce((acc, param)=>({
|
|
229
|
+
...acc,
|
|
230
|
+
[param]: map[param]()
|
|
231
|
+
}), {});
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Creates a new instance of CoreContentTypeRouteValidator
|
|
235
|
+
*
|
|
236
|
+
* @param strapi - The Strapi instance
|
|
237
|
+
* @param uid - The content-type's unique identifier
|
|
238
|
+
*/ constructor(strapi, uid){
|
|
239
|
+
super(strapi, uid);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
export { CoreContentTypeRouteValidator };
|
|
244
|
+
//# sourceMappingURL=content-type.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-type.mjs","sources":["../../../../src/core-api/routes/validation/content-type.ts"],"sourcesContent":["import type { Core, Schema, UID } from '@strapi/types';\n\nimport { contentTypes } from '@strapi/utils';\nimport { z } from 'zod';\n\nimport { mapAttributeToInputSchema, mapAttributeToSchema } from './attributes';\nimport { AbstractCoreRouteValidator } from './common';\n\nexport type QueryParam =\n | 'fields'\n | 'populate'\n | 'sort'\n | 'status'\n | 'locale'\n | 'pagination'\n | 'filters'\n | '_q';\n\n/**\n * A validator for core content-type routes.\n *\n * Provides validation schemas and utilities for handling content-type-specific route validation.\n *\n * @example\n * ```ts\n * const strapi = // ... strapi instance\n * const uid = 'api::article.article'\n * const validator = new CoreContentTypeRouteValidator(strapi, uid);\n *\n * // Get validation schema for document\n * const documentSchema = validator.document;\n *\n * // Validate query parameters\n * const querySchema = validator.query(['fields', 'populate', 'sort']);\n * ```\n */\nexport class CoreContentTypeRouteValidator extends AbstractCoreRouteValidator<UID.ContentType> {\n /**\n * Creates a new instance of CoreContentTypeRouteValidator\n *\n * @param strapi - The Strapi instance\n * @param uid - The content-type's unique identifier\n */\n constructor(strapi: Core.Strapi, uid: UID.ContentType) {\n super(strapi, uid);\n }\n\n /**\n * Generates a validation schema for document IDs\n *\n * @returns A schema that validates UUIDs\n *\n * @example\n * ```ts\n * const validator = new CoreContentTypeRouteValidator(strapi, uid);\n * const idSchema = validator.documentID;\n * ```\n */\n get documentID() {\n return z.uuid().describe('The document ID, represented by a UUID');\n }\n\n /**\n * Generates a comprehensive validation schema for a single document.\n *\n * Combines scalar fields and populatable fields into a single schema.\n *\n * @returns A schema for validating complete documents\n *\n * @example\n * ```ts\n * const validator = new CoreContentTypeRouteValidator(strapi, uid);\n * const docSchema = validator.document;\n * ```\n */\n get document() {\n const { _scalarFields, _populatableFields } = this;\n\n const entries = Object.entries({ ..._scalarFields, ..._populatableFields });\n\n const attributesSchema = entries\n // Remove passwords from the attribute list\n // TODO: Make sure we're not leaking other fields like that\n .filter(([, attribute]) => !['password'].includes(attribute.type))\n // Merge all attributes into a single schema\n .reduce((acc, [attributeName, attribute]) => {\n return acc.extend({\n get [attributeName]() {\n return mapAttributeToSchema(attribute);\n },\n });\n }, z.object({}));\n\n return attributesSchema.extend({\n documentId: this.documentID,\n id: z.number(),\n });\n }\n\n /**\n * Generates a validation schema for an array of documents\n *\n * @returns A schema for validating arrays of documents\n *\n * @example\n * ```ts\n * const validator = new CoreContentTypeRouteValidator(strapi, uid);\n * const docsSchema = validator.documents;\n * ```\n */\n get documents() {\n return z.array(this.document);\n }\n\n /**\n * Generates a validation schema for field selection in queries\n *\n * @returns A schema for validating field selection\n *\n * @example\n * ```ts\n * const validator = new CoreContentTypeRouteValidator(strapi, uid);\n * const fieldsSchema = validator.queryFields;\n * ```\n */\n get queryFields() {\n return this.scalarFieldsArray\n .readonly()\n .describe(\n `The fields to return, this doesn't include populatable fields like relations, components, files, or dynamic zones`\n );\n }\n\n /**\n * Generates a validation schema for populate operations.\n *\n * Allows wildcard (*), single field, and multiple field population.\n *\n * @returns A schema for validating populate parameters\n *\n * @example\n * ```ts\n * const validator = new CoreContentTypeRouteValidator(strapi, uid);\n * const populateSchema = validator.queryPopulate;\n * ```\n */\n get queryPopulate() {\n const wildcardPopulate = z\n .literal('*')\n .readonly()\n .describe(\n 'Populate all the first level relations, components, files, and dynamic zones for the entry'\n );\n\n const singleFieldPopulate = this.populatableFieldsEnum\n .readonly()\n .describe('Populate a single relation, component, file, or dynamic zone');\n\n const multiPopulate = this.populatableFieldsArray.describe(\n 'Populate a selection of multiple relations, components, files, or dynamic zones'\n );\n\n return z.union([wildcardPopulate, singleFieldPopulate, multiPopulate]);\n }\n\n /**\n * Generates a validation schema for sorting parameters.\n *\n * Allows various sorting formats including single field, multiple fields, and direction specifications\n *\n * @returns A schema for validating sort parameters\n *\n * @example\n * ```ts\n * const validator = new CoreContentTypeRouteValidator(strapi, uid);\n * const sortSchema = validator.querySort;\n * ```\n *\n * @remarks\n * - Nested sorts are currently not supported\n */\n get querySort() {\n const orderDirection = z.enum(['asc', 'desc']);\n\n // TODO: Handle nested sorts but very low priority, very little usage\n return z\n .union([\n this.scalarFieldsEnum, // 'name' | 'title'\n this.scalarFieldsArray, // ['name', 'title']\n this.fieldRecord(orderDirection), // { name: 'desc' } | { title: 'asc' }\n z.array(this.fieldRecord(orderDirection)), // [{ name: 'desc'}, { title: 'asc' }]\n ])\n .describe('Sort the result');\n }\n\n get locale() {\n return z.string().optional().describe('Select a locale');\n }\n\n get status() {\n return z\n .enum(['draft', 'published'])\n .describe('Fetch documents based on their status. Default to \"published\" if not specified.');\n }\n\n get pagination() {\n return z\n .intersection(\n z.object({ withCount: z.boolean().optional() }),\n z.union([\n z\n .object({ page: z.number(), pageSize: z.number() })\n .describe('Specify a page number and the number of entries per page'),\n z\n .object({ start: z.number(), limit: z.number() })\n .describe('Specify how many entries to skip and to return'),\n ])\n )\n .describe('Pagination parameters');\n }\n\n get filters() {\n return z.record(this.scalarFieldsEnum, z.any()).describe('Filters to apply to the query');\n }\n\n get data() {\n const { _scalarFields, _populatableFields, _schema } = this;\n\n const isWritableAttribute = ([attributeName]: [string, Schema.Attribute.AnyAttribute]) => {\n return contentTypes.isWritableAttribute(_schema, attributeName);\n };\n\n const entries = Object.entries({ ..._scalarFields, ..._populatableFields });\n\n return (\n entries\n // Remove non-writable attributes\n .filter(isWritableAttribute)\n // Combine schemas\n .reduce((acc, [attributeName, attribute]) => {\n return acc.extend({\n get [attributeName]() {\n return mapAttributeToInputSchema(attribute);\n },\n });\n }, z.object())\n );\n }\n\n get query() {\n return z.string();\n }\n\n get body() {\n return z.object({ data: this.data });\n }\n\n get partialBody() {\n return z.object({ data: this.data.partial() });\n }\n\n /**\n * Creates validation schemas for query parameters\n *\n * @param params - Array of query parameters to validate ('fields', 'populate', 'sort', ...)\n * @returns Object containing validation schemas for requested parameters\n *\n * @example\n * ```ts\n * const validator = new CoreContentTypeRouteValidator(strapi, uid);\n * const querySchemas = validator.query(['fields', 'populate']);\n * ```\n */\n queryParams(params: QueryParam[]): Partial<Record<QueryParam, z.Schema>> {\n const map: Record<QueryParam, () => z.Schema> = {\n fields: () => this.queryFields.optional(),\n populate: () => this.queryPopulate.optional(),\n sort: () => this.querySort.optional(),\n filters: () => this.filters.optional(),\n locale: () => this.locale.optional(),\n pagination: () => this.pagination.optional(),\n status: () => this.status.optional(),\n _q: () => this.query.optional(),\n } as const;\n\n return params.reduce(\n (acc, param) => ({ ...acc, [param]: map[param]() }),\n {} as Partial<Record<QueryParam, z.Schema>>\n );\n }\n}\n"],"names":["CoreContentTypeRouteValidator","AbstractCoreRouteValidator","documentID","z","uuid","describe","document","_scalarFields","_populatableFields","entries","Object","attributesSchema","filter","attribute","includes","type","reduce","acc","attributeName","extend","mapAttributeToSchema","object","documentId","id","number","documents","array","queryFields","scalarFieldsArray","readonly","queryPopulate","wildcardPopulate","literal","singleFieldPopulate","populatableFieldsEnum","multiPopulate","populatableFieldsArray","union","querySort","orderDirection","enum","scalarFieldsEnum","fieldRecord","locale","string","optional","status","pagination","intersection","withCount","boolean","page","pageSize","start","limit","filters","record","any","data","_schema","isWritableAttribute","contentTypes","mapAttributeToInputSchema","query","body","partialBody","partial","queryParams","params","map","fields","populate","sort","_q","param","constructor","strapi","uid"],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { AbstractCoreRouteValidator } from './common';
|
|
2
|
+
export { CoreContentTypeRouteValidator } from './content-type';
|
|
3
|
+
export { CoreComponentRouteValidator } from './component';
|
|
4
|
+
export { mapAttributeToSchema, mapAttributeToInputSchema } from './attributes';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core-api/routes/validation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -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;;;;;;;"}
|