@strapi/core 0.0.0-experimental.a407f3bc8fb79a53cf7975140864526b6ddbac4b → 0.0.0-experimental.a43f40178ac76e3f2bd6860c987e0197be9da379
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +18 -3
- package/dist/Strapi.d.ts +52 -59
- package/dist/Strapi.d.ts.map +1 -1
- package/dist/Strapi.js +438 -428
- package/dist/Strapi.js.map +1 -1
- package/dist/Strapi.mjs +429 -439
- package/dist/Strapi.mjs.map +1 -1
- package/dist/compile.js +23 -14
- package/dist/compile.js.map +1 -1
- package/dist/compile.mjs +22 -14
- package/dist/compile.mjs.map +1 -1
- package/dist/configuration/config-loader.d.ts.map +1 -1
- package/dist/configuration/config-loader.js +110 -93
- package/dist/configuration/config-loader.js.map +1 -1
- package/dist/configuration/config-loader.mjs +109 -92
- package/dist/configuration/config-loader.mjs.map +1 -1
- package/dist/configuration/get-dirs.d.ts +10 -0
- package/dist/configuration/get-dirs.d.ts.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 +5 -7
- package/dist/configuration/index.d.ts.map +1 -1
- package/dist/configuration/index.js +86 -72
- package/dist/configuration/index.js.map +1 -1
- package/dist/configuration/index.mjs +84 -68
- package/dist/configuration/index.mjs.map +1 -1
- package/dist/configuration/urls.d.ts +8 -0
- package/dist/configuration/urls.d.ts.map +1 -0
- 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.d.ts +2 -2
- package/dist/container.d.ts.map +1 -1
- package/dist/container.js +27 -23
- package/dist/container.js.map +1 -1
- package/dist/container.mjs +26 -24
- package/dist/container.mjs.map +1 -1
- package/dist/core-api/controller/collection-type.d.ts +3 -3
- package/dist/core-api/controller/collection-type.d.ts.map +1 -1
- package/dist/core-api/controller/collection-type.js +77 -73
- package/dist/core-api/controller/collection-type.js.map +1 -1
- package/dist/core-api/controller/collection-type.mjs +76 -74
- package/dist/core-api/controller/collection-type.mjs.map +1 -1
- package/dist/core-api/controller/index.d.ts +3 -3
- package/dist/core-api/controller/index.d.ts.map +1 -1
- package/dist/core-api/controller/index.js +63 -43
- package/dist/core-api/controller/index.js.map +1 -1
- package/dist/core-api/controller/index.mjs +62 -44
- package/dist/core-api/controller/index.mjs.map +1 -1
- package/dist/core-api/controller/single-type.d.ts +3 -3
- package/dist/core-api/controller/single-type.d.ts.map +1 -1
- package/dist/core-api/controller/single-type.js +41 -39
- package/dist/core-api/controller/single-type.js.map +1 -1
- package/dist/core-api/controller/single-type.mjs +40 -40
- package/dist/core-api/controller/single-type.mjs.map +1 -1
- package/dist/core-api/controller/transform.d.ts +10 -9
- package/dist/core-api/controller/transform.d.ts.map +1 -1
- package/dist/core-api/controller/transform.js +73 -58
- package/dist/core-api/controller/transform.js.map +1 -1
- package/dist/core-api/controller/transform.mjs +72 -59
- package/dist/core-api/controller/transform.mjs.map +1 -1
- package/dist/core-api/routes/index.d.ts.map +1 -1
- package/dist/core-api/routes/index.js +64 -62
- package/dist/core-api/routes/index.js.map +1 -1
- package/dist/core-api/routes/index.mjs +62 -62
- package/dist/core-api/routes/index.mjs.map +1 -1
- package/dist/core-api/service/collection-type.d.ts +11 -17
- package/dist/core-api/service/collection-type.d.ts.map +1 -1
- package/dist/core-api/service/collection-type.js +73 -49
- package/dist/core-api/service/collection-type.js.map +1 -1
- package/dist/core-api/service/collection-type.mjs +72 -51
- package/dist/core-api/service/collection-type.mjs.map +1 -1
- package/dist/core-api/service/core-service.js +9 -8
- package/dist/core-api/service/core-service.js.map +1 -1
- package/dist/core-api/service/core-service.mjs +8 -9
- package/dist/core-api/service/core-service.mjs.map +1 -1
- package/dist/core-api/service/index.d.ts +3 -3
- package/dist/core-api/service/index.d.ts.map +1 -1
- package/dist/core-api/service/index.js +13 -13
- package/dist/core-api/service/index.js.map +1 -1
- package/dist/core-api/service/index.mjs +12 -14
- package/dist/core-api/service/index.mjs.map +1 -1
- package/dist/core-api/service/pagination.d.ts +4 -11
- package/dist/core-api/service/pagination.d.ts.map +1 -1
- package/dist/core-api/service/pagination.js +68 -68
- package/dist/core-api/service/pagination.js.map +1 -1
- package/dist/core-api/service/pagination.mjs +66 -71
- package/dist/core-api/service/pagination.mjs.map +1 -1
- package/dist/core-api/service/single-type.d.ts +5 -5
- package/dist/core-api/service/single-type.d.ts.map +1 -1
- package/dist/core-api/service/single-type.js +43 -33
- package/dist/core-api/service/single-type.js.map +1 -1
- package/dist/core-api/service/single-type.mjs +42 -35
- package/dist/core-api/service/single-type.mjs.map +1 -1
- package/dist/domain/content-type/index.d.ts +1 -1
- package/dist/domain/content-type/index.d.ts.map +1 -1
- package/dist/domain/content-type/index.js +95 -97
- package/dist/domain/content-type/index.js.map +1 -1
- package/dist/domain/content-type/index.mjs +94 -97
- package/dist/domain/content-type/index.mjs.map +1 -1
- package/dist/domain/content-type/validator.d.ts.map +1 -1
- package/dist/domain/content-type/validator.js +84 -69
- package/dist/domain/content-type/validator.js.map +1 -1
- package/dist/domain/content-type/validator.mjs +83 -68
- package/dist/domain/content-type/validator.mjs.map +1 -1
- package/dist/domain/module/index.d.ts +24 -23
- package/dist/domain/module/index.d.ts.map +1 -1
- package/dist/domain/module/index.js +109 -100
- package/dist/domain/module/index.js.map +1 -1
- package/dist/domain/module/index.mjs +108 -99
- package/dist/domain/module/index.mjs.map +1 -1
- package/dist/domain/module/validation.js +25 -20
- package/dist/domain/module/validation.js.map +1 -1
- package/dist/domain/module/validation.mjs +24 -21
- package/dist/domain/module/validation.mjs.map +1 -1
- package/dist/ee/index.d.ts +11 -2
- package/dist/ee/index.d.ts.map +1 -1
- package/dist/ee/index.js +197 -132
- package/dist/ee/index.js.map +1 -1
- package/dist/ee/index.mjs +196 -134
- package/dist/ee/index.mjs.map +1 -1
- package/dist/ee/license.d.ts +5 -3
- package/dist/ee/license.d.ts.map +1 -1
- package/dist/ee/license.js +105 -74
- package/dist/ee/license.js.map +1 -1
- package/dist/ee/license.mjs +103 -75
- package/dist/ee/license.mjs.map +1 -1
- package/dist/factories.d.ts +10 -10
- package/dist/factories.d.ts.map +1 -1
- package/dist/factories.js +72 -63
- package/dist/factories.js.map +1 -1
- package/dist/factories.mjs +71 -67
- package/dist/factories.mjs.map +1 -1
- package/dist/index.d.ts +18 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -5
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +29 -5
- package/dist/index.mjs.map +1 -1
- package/dist/loaders/admin.d.ts +2 -2
- package/dist/loaders/admin.d.ts.map +1 -1
- package/dist/loaders/admin.js +21 -21
- package/dist/loaders/admin.js.map +1 -1
- package/dist/loaders/admin.mjs +20 -21
- package/dist/loaders/admin.mjs.map +1 -1
- package/dist/loaders/apis.d.ts +2 -2
- package/dist/loaders/apis.d.ts.map +1 -1
- package/dist/loaders/apis.js +143 -120
- package/dist/loaders/apis.js.map +1 -1
- package/dist/loaders/apis.mjs +142 -119
- package/dist/loaders/apis.mjs.map +1 -1
- package/dist/loaders/components.d.ts +2 -2
- package/dist/loaders/components.d.ts.map +1 -1
- package/dist/loaders/components.js +33 -34
- package/dist/loaders/components.js.map +1 -1
- package/dist/loaders/components.mjs +32 -34
- package/dist/loaders/components.mjs.map +1 -1
- package/dist/loaders/index.d.ts +2 -2
- package/dist/loaders/index.d.ts.map +1 -1
- package/dist/loaders/index.js +22 -22
- package/dist/loaders/index.js.map +1 -1
- package/dist/loaders/index.mjs +21 -23
- package/dist/loaders/index.mjs.map +1 -1
- package/dist/loaders/middlewares.d.ts +2 -2
- package/dist/loaders/middlewares.d.ts.map +1 -1
- package/dist/loaders/middlewares.js +29 -25
- package/dist/loaders/middlewares.js.map +1 -1
- package/dist/loaders/middlewares.mjs +28 -25
- package/dist/loaders/middlewares.mjs.map +1 -1
- package/dist/loaders/plugins/get-enabled-plugins.d.ts +2 -2
- package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
- package/dist/loaders/plugins/get-enabled-plugins.js +125 -100
- package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
- package/dist/loaders/plugins/get-enabled-plugins.mjs +124 -99
- package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
- package/dist/loaders/plugins/get-user-plugins-config.js +25 -24
- package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
- package/dist/loaders/plugins/get-user-plugins-config.mjs +24 -23
- package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -1
- package/dist/loaders/plugins/index.d.ts +2 -2
- package/dist/loaders/plugins/index.d.ts.map +1 -1
- package/dist/loaders/plugins/index.js +141 -104
- package/dist/loaders/plugins/index.js.map +1 -1
- package/dist/loaders/plugins/index.mjs +121 -104
- package/dist/loaders/plugins/index.mjs.map +1 -1
- package/dist/loaders/policies.d.ts +2 -2
- package/dist/loaders/policies.d.ts.map +1 -1
- package/dist/loaders/policies.js +24 -20
- package/dist/loaders/policies.js.map +1 -1
- package/dist/loaders/policies.mjs +23 -20
- package/dist/loaders/policies.mjs.map +1 -1
- package/dist/loaders/sanitizers.d.ts +2 -2
- package/dist/loaders/sanitizers.d.ts.map +1 -1
- package/dist/loaders/sanitizers.js +10 -4
- package/dist/loaders/sanitizers.js.map +1 -1
- package/dist/loaders/sanitizers.mjs +9 -6
- package/dist/loaders/sanitizers.mjs.map +1 -1
- package/dist/loaders/src-index.d.ts +2 -2
- package/dist/loaders/src-index.d.ts.map +1 -1
- package/dist/loaders/src-index.js +35 -27
- package/dist/loaders/src-index.js.map +1 -1
- package/dist/loaders/src-index.mjs +34 -29
- package/dist/loaders/src-index.mjs.map +1 -1
- package/dist/loaders/validators.d.ts +2 -2
- package/dist/loaders/validators.d.ts.map +1 -1
- package/dist/loaders/validators.js +9 -4
- package/dist/loaders/validators.js.map +1 -1
- package/dist/loaders/validators.mjs +8 -6
- package/dist/loaders/validators.mjs.map +1 -1
- package/dist/middlewares/body.d.ts +4 -4
- package/dist/middlewares/body.d.ts.map +1 -1
- package/dist/middlewares/body.js +58 -54
- package/dist/middlewares/body.js.map +1 -1
- package/dist/middlewares/body.mjs +57 -51
- package/dist/middlewares/body.mjs.map +1 -1
- package/dist/middlewares/compression.d.ts +2 -2
- package/dist/middlewares/compression.d.ts.map +1 -1
- package/dist/middlewares/compression.js +6 -6
- package/dist/middlewares/compression.js.map +1 -1
- package/dist/middlewares/compression.mjs +5 -5
- package/dist/middlewares/compression.mjs.map +1 -1
- package/dist/middlewares/cors.d.ts +2 -2
- package/dist/middlewares/cors.d.ts.map +1 -1
- package/dist/middlewares/cors.js +59 -46
- package/dist/middlewares/cors.js.map +1 -1
- package/dist/middlewares/cors.mjs +58 -45
- package/dist/middlewares/cors.mjs.map +1 -1
- package/dist/middlewares/errors.d.ts +2 -2
- package/dist/middlewares/errors.d.ts.map +1 -1
- package/dist/middlewares/errors.js +32 -30
- package/dist/middlewares/errors.js.map +1 -1
- package/dist/middlewares/errors.mjs +31 -31
- package/dist/middlewares/errors.mjs.map +1 -1
- package/dist/middlewares/favicon.d.ts +2 -2
- package/dist/middlewares/favicon.d.ts.map +1 -1
- package/dist/middlewares/favicon.js +27 -17
- package/dist/middlewares/favicon.js.map +1 -1
- package/dist/middlewares/favicon.mjs +26 -16
- package/dist/middlewares/favicon.mjs.map +1 -1
- package/dist/middlewares/index.d.ts +2 -2
- package/dist/middlewares/index.d.ts.map +1 -1
- package/dist/middlewares/index.js +32 -30
- package/dist/middlewares/index.js.map +1 -1
- package/dist/middlewares/index.mjs +31 -31
- package/dist/middlewares/index.mjs.map +1 -1
- package/dist/middlewares/ip.d.ts +2 -2
- package/dist/middlewares/ip.d.ts.map +1 -1
- package/dist/middlewares/ip.js +6 -6
- package/dist/middlewares/ip.js.map +1 -1
- package/dist/middlewares/ip.mjs +5 -5
- package/dist/middlewares/ip.mjs.map +1 -1
- package/dist/middlewares/logger.d.ts +2 -2
- package/dist/middlewares/logger.d.ts.map +1 -1
- package/dist/middlewares/logger.js +10 -9
- package/dist/middlewares/logger.js.map +1 -1
- package/dist/middlewares/logger.mjs +9 -10
- package/dist/middlewares/logger.mjs.map +1 -1
- package/dist/middlewares/powered-by.d.ts +2 -2
- package/dist/middlewares/powered-by.d.ts.map +1 -1
- package/dist/middlewares/powered-by.js +13 -9
- package/dist/middlewares/powered-by.js.map +1 -1
- package/dist/middlewares/powered-by.mjs +12 -10
- package/dist/middlewares/powered-by.mjs.map +1 -1
- package/dist/middlewares/public.d.ts +2 -2
- package/dist/middlewares/public.d.ts.map +1 -1
- package/dist/middlewares/public.js +33 -29
- package/dist/middlewares/public.js.map +1 -1
- package/dist/middlewares/public.mjs +32 -28
- package/dist/middlewares/public.mjs.map +1 -1
- package/dist/middlewares/query.d.ts +2 -2
- package/dist/middlewares/query.d.ts.map +1 -1
- package/dist/middlewares/query.js +35 -32
- package/dist/middlewares/query.js.map +1 -1
- package/dist/middlewares/query.mjs +34 -31
- package/dist/middlewares/query.mjs.map +1 -1
- package/dist/middlewares/response-time.d.ts +2 -2
- package/dist/middlewares/response-time.d.ts.map +1 -1
- package/dist/middlewares/response-time.js +10 -9
- package/dist/middlewares/response-time.js.map +1 -1
- package/dist/middlewares/response-time.mjs +9 -10
- package/dist/middlewares/response-time.mjs.map +1 -1
- package/dist/middlewares/responses.d.ts +3 -3
- package/dist/middlewares/responses.d.ts.map +1 -1
- package/dist/middlewares/responses.js +14 -12
- package/dist/middlewares/responses.js.map +1 -1
- package/dist/middlewares/responses.mjs +13 -13
- package/dist/middlewares/responses.mjs.map +1 -1
- package/dist/middlewares/security.d.ts +2 -2
- package/dist/middlewares/security.d.ts.map +1 -1
- package/dist/middlewares/security.js +110 -65
- package/dist/middlewares/security.js.map +1 -1
- package/dist/middlewares/security.mjs +108 -63
- package/dist/middlewares/security.mjs.map +1 -1
- package/dist/middlewares/session.d.ts +2 -2
- package/dist/middlewares/session.d.ts.map +1 -1
- package/dist/middlewares/session.js +26 -25
- package/dist/middlewares/session.js.map +1 -1
- package/dist/middlewares/session.mjs +25 -24
- package/dist/middlewares/session.mjs.map +1 -1
- package/dist/migrations/database/5.0.0-discard-drafts.d.ts +33 -0
- package/dist/migrations/database/5.0.0-discard-drafts.d.ts.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.d.ts +17 -0
- package/dist/migrations/draft-publish.d.ts.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.d.ts +5 -0
- package/dist/migrations/i18n.d.ts.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 +5 -0
- package/dist/migrations/index.d.ts.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 +184 -0
- package/dist/package.json.js.map +1 -0
- package/dist/package.json.mjs +161 -0
- package/dist/package.json.mjs.map +1 -0
- package/dist/providers/admin.d.ts +3 -0
- package/dist/providers/admin.d.ts.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.d.ts +3 -0
- package/dist/providers/coreStore.d.ts.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.d.ts +3 -0
- package/dist/providers/cron.d.ts.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.d.ts +3 -0
- package/dist/providers/index.d.ts.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.d.ts +9 -0
- package/dist/providers/provider.d.ts.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.d.ts +3 -0
- package/dist/providers/registries.d.ts.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.d.ts +3 -0
- package/dist/providers/telemetry.d.ts.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.d.ts +3 -0
- package/dist/providers/webhooks.d.ts.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.d.ts +2 -2
- package/dist/registries/apis.d.ts.map +1 -1
- package/dist/registries/apis.js +23 -20
- package/dist/registries/apis.js.map +1 -1
- package/dist/registries/apis.mjs +22 -22
- package/dist/registries/apis.mjs.map +1 -1
- package/dist/registries/components.d.ts +6 -6
- package/dist/registries/components.d.ts.map +1 -1
- package/dist/registries/components.js +35 -37
- package/dist/registries/components.js.map +1 -1
- package/dist/registries/components.mjs +34 -39
- package/dist/registries/components.mjs.map +1 -1
- package/dist/registries/content-types.d.ts +5 -5
- package/dist/registries/content-types.d.ts.map +1 -1
- package/dist/registries/content-types.js +54 -59
- package/dist/registries/content-types.js.map +1 -1
- package/dist/registries/content-types.mjs +53 -61
- package/dist/registries/content-types.mjs.map +1 -1
- package/dist/registries/controllers.d.ts +10 -10
- package/dist/registries/controllers.d.ts.map +1 -1
- package/dist/registries/controllers.js +70 -71
- package/dist/registries/controllers.js.map +1 -1
- package/dist/registries/controllers.mjs +69 -73
- package/dist/registries/controllers.mjs.map +1 -1
- package/dist/registries/custom-fields.d.ts +3 -3
- package/dist/registries/custom-fields.d.ts.map +1 -1
- package/dist/registries/custom-fields.js +75 -65
- package/dist/registries/custom-fields.js.map +1 -1
- package/dist/registries/custom-fields.mjs +74 -67
- package/dist/registries/custom-fields.mjs.map +1 -1
- package/dist/registries/hooks.js +46 -49
- package/dist/registries/hooks.js.map +1 -1
- package/dist/registries/hooks.mjs +45 -51
- package/dist/registries/hooks.mjs.map +1 -1
- package/dist/registries/index.d.ts +0 -1
- package/dist/registries/index.d.ts.map +1 -1
- package/dist/registries/middlewares.d.ts +6 -6
- package/dist/registries/middlewares.d.ts.map +1 -1
- package/dist/registries/middlewares.js +49 -51
- package/dist/registries/middlewares.js.map +1 -1
- package/dist/registries/middlewares.mjs +48 -53
- package/dist/registries/middlewares.mjs.map +1 -1
- package/dist/registries/models.js +14 -13
- package/dist/registries/models.js.map +1 -1
- package/dist/registries/models.mjs +13 -14
- package/dist/registries/models.mjs.map +1 -1
- package/dist/registries/modules.d.ts +2 -2
- package/dist/registries/modules.d.ts.map +1 -1
- package/dist/registries/modules.js +39 -36
- package/dist/registries/modules.js.map +1 -1
- package/dist/registries/modules.mjs +38 -38
- package/dist/registries/modules.mjs.map +1 -1
- package/dist/registries/namespace.js +21 -20
- package/dist/registries/namespace.js.map +1 -1
- package/dist/registries/namespace.mjs +20 -23
- package/dist/registries/namespace.mjs.map +1 -1
- package/dist/registries/plugins.d.ts +5 -5
- package/dist/registries/plugins.d.ts.map +1 -1
- package/dist/registries/plugins.js +23 -20
- package/dist/registries/plugins.js.map +1 -1
- package/dist/registries/plugins.mjs +22 -22
- package/dist/registries/plugins.mjs.map +1 -1
- package/dist/registries/policies.d.ts +22 -10
- package/dist/registries/policies.d.ts.map +1 -1
- package/dist/registries/policies.js +107 -54
- package/dist/registries/policies.js.map +1 -1
- package/dist/registries/policies.mjs +106 -56
- package/dist/registries/policies.mjs.map +1 -1
- package/dist/registries/sanitizers.js +23 -22
- package/dist/registries/sanitizers.js.map +1 -1
- package/dist/registries/sanitizers.mjs +22 -22
- package/dist/registries/sanitizers.mjs.map +1 -1
- package/dist/registries/services.d.ts +8 -8
- package/dist/registries/services.d.ts.map +1 -1
- package/dist/registries/services.js +71 -71
- package/dist/registries/services.js.map +1 -1
- package/dist/registries/services.mjs +70 -73
- package/dist/registries/services.mjs.map +1 -1
- package/dist/registries/validators.js +23 -22
- package/dist/registries/validators.js.map +1 -1
- package/dist/registries/validators.mjs +22 -22
- package/dist/registries/validators.mjs.map +1 -1
- package/dist/services/auth/index.d.ts +4 -4
- package/dist/services/auth/index.d.ts.map +1 -1
- package/dist/services/auth/index.js +74 -74
- package/dist/services/auth/index.js.map +1 -1
- package/dist/services/auth/index.mjs +73 -74
- package/dist/services/auth/index.mjs.map +1 -1
- package/dist/services/config.d.ts +3 -0
- package/dist/services/config.d.ts.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 +31 -15
- package/dist/services/content-api/index.d.ts.map +1 -1
- package/dist/services/content-api/index.js +80 -53
- package/dist/services/content-api/index.js.map +1 -1
- package/dist/services/content-api/index.mjs +79 -53
- package/dist/services/content-api/index.mjs.map +1 -1
- package/dist/services/content-api/permissions/engine.js +8 -5
- package/dist/services/content-api/permissions/engine.js.map +1 -1
- package/dist/services/content-api/permissions/engine.mjs +7 -5
- package/dist/services/content-api/permissions/engine.mjs.map +1 -1
- package/dist/services/content-api/permissions/index.d.ts +13 -15
- package/dist/services/content-api/permissions/index.d.ts.map +1 -1
- package/dist/services/content-api/permissions/index.js +101 -81
- package/dist/services/content-api/permissions/index.js.map +1 -1
- package/dist/services/content-api/permissions/index.mjs +100 -81
- package/dist/services/content-api/permissions/index.mjs.map +1 -1
- package/dist/services/content-api/permissions/providers/action.d.ts +5 -6
- package/dist/services/content-api/permissions/providers/action.d.ts.map +1 -1
- package/dist/services/content-api/permissions/providers/action.js +17 -14
- package/dist/services/content-api/permissions/providers/action.js.map +1 -1
- package/dist/services/content-api/permissions/providers/action.mjs +16 -16
- package/dist/services/content-api/permissions/providers/action.mjs.map +1 -1
- package/dist/services/content-api/permissions/providers/condition.d.ts +5 -6
- package/dist/services/content-api/permissions/providers/condition.d.ts.map +1 -1
- package/dist/services/content-api/permissions/providers/condition.js +17 -14
- package/dist/services/content-api/permissions/providers/condition.js.map +1 -1
- package/dist/services/content-api/permissions/providers/condition.mjs +16 -16
- package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -1
- 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 +115 -95
- package/dist/services/core-store.js.map +1 -1
- package/dist/services/core-store.mjs +114 -97
- package/dist/services/core-store.mjs.map +1 -1
- package/dist/services/cron.d.ts +5 -5
- package/dist/services/cron.d.ts.map +1 -1
- package/dist/services/cron.js +74 -60
- package/dist/services/cron.js.map +1 -1
- package/dist/services/cron.mjs +73 -62
- package/dist/services/cron.mjs.map +1 -1
- package/dist/services/custom-fields.d.ts +2 -2
- package/dist/services/custom-fields.d.ts.map +1 -1
- package/dist/services/custom-fields.js +9 -7
- package/dist/services/custom-fields.js.map +1 -1
- package/dist/services/custom-fields.mjs +8 -9
- package/dist/services/custom-fields.mjs.map +1 -1
- package/dist/services/document-service/attributes/index.d.ts +6 -0
- package/dist/services/document-service/attributes/index.d.ts.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.d.ts +10 -0
- package/dist/services/document-service/attributes/transforms.d.ts.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.d.ts +2 -2
- package/dist/services/document-service/common.d.ts.map +1 -1
- package/dist/services/document-service/common.js +5 -4
- package/dist/services/document-service/common.js.map +1 -1
- package/dist/services/document-service/common.mjs +4 -5
- package/dist/services/document-service/common.mjs.map +1 -1
- package/dist/services/document-service/components.d.ts +25 -1
- package/dist/services/document-service/components.d.ts.map +1 -1
- 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.d.ts +9 -23
- package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
- package/dist/services/document-service/draft-and-publish.js +104 -36
- package/dist/services/document-service/draft-and-publish.js.map +1 -1
- package/dist/services/document-service/draft-and-publish.mjs +96 -35
- package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
- package/dist/services/document-service/entries.d.ts +10 -0
- package/dist/services/document-service/entries.d.ts.map +1 -0
- 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.d.ts +25 -0
- package/dist/services/document-service/events.d.ts.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.d.ts +3 -4
- package/dist/services/document-service/index.d.ts.map +1 -1
- package/dist/services/document-service/index.js +53 -19
- package/dist/services/document-service/index.js.map +1 -1
- package/dist/services/document-service/index.mjs +52 -20
- package/dist/services/document-service/index.mjs.map +1 -1
- package/dist/services/document-service/internationalization.d.ts +11 -6
- package/dist/services/document-service/internationalization.d.ts.map +1 -1
- package/dist/services/document-service/internationalization.js +98 -41
- package/dist/services/document-service/internationalization.js.map +1 -1
- package/dist/services/document-service/internationalization.mjs +92 -41
- package/dist/services/document-service/internationalization.mjs.map +1 -1
- package/dist/services/document-service/middlewares/errors.d.ts +6 -0
- package/dist/services/document-service/middlewares/errors.d.ts.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/index.d.ts +3 -0
- package/dist/services/document-service/middlewares/index.d.ts.map +1 -0
- package/dist/services/document-service/middlewares/middleware-manager.d.ts +10 -0
- package/dist/services/document-service/middlewares/middleware-manager.d.ts.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.d.ts +3 -1
- package/dist/services/document-service/params.d.ts.map +1 -1
- 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 +3 -0
- package/dist/services/document-service/repository.d.ts.map +1 -0
- package/dist/services/document-service/repository.js +365 -0
- package/dist/services/document-service/repository.js.map +1 -0
- package/dist/services/document-service/repository.mjs +363 -0
- package/dist/services/document-service/repository.mjs.map +1 -0
- package/dist/services/document-service/transform/data.d.ts.map +1 -1
- package/dist/services/document-service/transform/data.js +22 -10
- package/dist/services/document-service/transform/data.js.map +1 -1
- package/dist/services/document-service/transform/data.mjs +21 -11
- package/dist/services/document-service/transform/data.mjs.map +1 -1
- package/dist/services/document-service/transform/fields.d.ts +2 -2
- package/dist/services/document-service/transform/fields.d.ts.map +1 -1
- package/dist/services/document-service/transform/fields.js +26 -17
- package/dist/services/document-service/transform/fields.js.map +1 -1
- package/dist/services/document-service/transform/fields.mjs +25 -18
- package/dist/services/document-service/transform/fields.mjs.map +1 -1
- package/dist/services/document-service/transform/id-map.d.ts +4 -4
- package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
- package/dist/services/document-service/transform/id-map.js +117 -64
- package/dist/services/document-service/transform/id-map.js.map +1 -1
- package/dist/services/document-service/transform/id-map.mjs +116 -65
- package/dist/services/document-service/transform/id-map.mjs.map +1 -1
- package/dist/services/document-service/transform/id-transform.d.ts +4 -18
- package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
- package/dist/services/document-service/transform/id-transform.js +39 -25
- package/dist/services/document-service/transform/id-transform.js.map +1 -1
- package/dist/services/document-service/transform/id-transform.mjs +37 -25
- package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
- package/dist/services/document-service/transform/populate.d.ts +5 -2
- package/dist/services/document-service/transform/populate.d.ts.map +1 -1
- package/dist/services/document-service/transform/populate.js +23 -18
- package/dist/services/document-service/transform/populate.js.map +1 -1
- package/dist/services/document-service/transform/populate.mjs +22 -19
- package/dist/services/document-service/transform/populate.mjs.map +1 -1
- package/dist/services/document-service/transform/query.d.ts +5 -0
- package/dist/services/document-service/transform/query.d.ts.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.d.ts +8 -7
- package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
- package/dist/services/document-service/transform/relations/extract/data-ids.js +74 -73
- package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
- package/dist/services/document-service/transform/relations/extract/data-ids.mjs +73 -74
- package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
- package/dist/services/document-service/transform/relations/transform/data-ids.d.ts +9 -5
- package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
- package/dist/services/document-service/transform/relations/transform/data-ids.js +105 -112
- package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
- package/dist/services/document-service/transform/relations/transform/data-ids.mjs +104 -113
- package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
- package/dist/services/document-service/transform/relations/transform/default-locale.d.ts +9 -0
- package/dist/services/document-service/transform/relations/transform/default-locale.d.ts.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.d.ts +10 -0
- package/dist/services/document-service/transform/relations/utils/dp.d.ts.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.d.ts +6 -6
- package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
- package/dist/services/document-service/transform/relations/utils/i18n.js +19 -23
- package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
- package/dist/services/document-service/transform/relations/utils/i18n.mjs +18 -26
- package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
- package/dist/services/document-service/transform/relations/utils/map-relation.d.ts +6 -0
- package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.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/transform/relations/utils/types.d.ts +10 -1
- package/dist/services/document-service/transform/relations/utils/types.d.ts.map +1 -1
- package/dist/services/document-service/transform/types.d.ts +4 -4
- package/dist/services/document-service/transform/types.d.ts.map +1 -1
- package/dist/services/document-service/utils/bidirectional-relations.d.ts +95 -0
- package/dist/services/document-service/utils/bidirectional-relations.d.ts.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.d.ts +9 -2
- package/dist/services/document-service/utils/populate.d.ts.map +1 -1
- package/dist/services/document-service/utils/populate.js +67 -37
- package/dist/services/document-service/utils/populate.js.map +1 -1
- package/dist/services/document-service/utils/populate.mjs +66 -38
- package/dist/services/document-service/utils/populate.mjs.map +1 -1
- package/dist/services/document-service/utils/unidirectional-relations.d.ts +36 -0
- package/dist/services/document-service/utils/unidirectional-relations.d.ts.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.d.ts +4 -6
- package/dist/services/entity-service/index.d.ts.map +1 -1
- package/dist/services/entity-service/index.js +229 -319
- package/dist/services/entity-service/index.js.map +1 -1
- package/dist/services/entity-service/index.mjs +228 -318
- package/dist/services/entity-service/index.mjs.map +1 -1
- package/dist/services/entity-validator/blocks-validator.d.ts +1 -2
- package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -1
- package/dist/services/entity-validator/blocks-validator.js +137 -104
- package/dist/services/entity-validator/blocks-validator.js.map +1 -1
- package/dist/services/entity-validator/blocks-validator.mjs +135 -105
- package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
- package/dist/services/entity-validator/index.d.ts +16 -2
- package/dist/services/entity-validator/index.d.ts.map +1 -1
- package/dist/services/entity-validator/index.js +371 -300
- package/dist/services/entity-validator/index.js.map +1 -1
- package/dist/services/entity-validator/index.mjs +367 -297
- package/dist/services/entity-validator/index.mjs.map +1 -1
- package/dist/services/entity-validator/validators.d.ts +37 -25
- package/dist/services/entity-validator/validators.d.ts.map +1 -1
- package/dist/services/entity-validator/validators.js +286 -105
- package/dist/services/entity-validator/validators.js.map +1 -1
- package/dist/services/entity-validator/validators.mjs +277 -103
- package/dist/services/entity-validator/validators.mjs.map +1 -1
- package/dist/services/errors.js +65 -65
- package/dist/services/errors.js.map +1 -1
- package/dist/services/errors.mjs +64 -66
- package/dist/services/errors.mjs.map +1 -1
- package/dist/services/event-hub.d.ts +1 -0
- package/dist/services/event-hub.d.ts.map +1 -1
- package/dist/services/event-hub.js +82 -64
- package/dist/services/event-hub.js.map +1 -1
- package/dist/services/event-hub.mjs +81 -66
- package/dist/services/event-hub.mjs.map +1 -1
- package/dist/services/features.d.ts +3 -3
- package/dist/services/features.d.ts.map +1 -1
- package/dist/services/features.js +19 -14
- package/dist/services/features.js.map +1 -1
- package/dist/services/features.mjs +18 -15
- package/dist/services/features.mjs.map +1 -1
- package/dist/services/fs.d.ts +2 -2
- package/dist/services/fs.d.ts.map +1 -1
- package/dist/services/fs.js +41 -40
- package/dist/services/fs.js.map +1 -1
- package/dist/services/fs.mjs +40 -39
- package/dist/services/fs.mjs.map +1 -1
- package/dist/services/metrics/admin-user-hash.d.ts +2 -2
- package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
- package/dist/services/metrics/admin-user-hash.js +13 -11
- package/dist/services/metrics/admin-user-hash.js.map +1 -1
- package/dist/services/metrics/admin-user-hash.mjs +12 -10
- package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
- package/dist/services/metrics/index.d.ts +2 -2
- package/dist/services/metrics/index.d.ts.map +1 -1
- package/dist/services/metrics/index.js +46 -40
- package/dist/services/metrics/index.js.map +1 -1
- package/dist/services/metrics/index.mjs +45 -42
- package/dist/services/metrics/index.mjs.map +1 -1
- package/dist/services/metrics/is-truthy.js +13 -6
- package/dist/services/metrics/is-truthy.js.map +1 -1
- package/dist/services/metrics/is-truthy.mjs +12 -6
- package/dist/services/metrics/is-truthy.mjs.map +1 -1
- package/dist/services/metrics/middleware.d.ts +2 -2
- package/dist/services/metrics/middleware.d.ts.map +1 -1
- package/dist/services/metrics/middleware.js +37 -22
- package/dist/services/metrics/middleware.js.map +1 -1
- package/dist/services/metrics/middleware.mjs +36 -24
- package/dist/services/metrics/middleware.mjs.map +1 -1
- package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
- package/dist/services/metrics/rate-limiter.js +24 -19
- package/dist/services/metrics/rate-limiter.js.map +1 -1
- package/dist/services/metrics/rate-limiter.mjs +23 -21
- package/dist/services/metrics/rate-limiter.mjs.map +1 -1
- package/dist/services/metrics/sender.d.ts +3 -3
- package/dist/services/metrics/sender.d.ts.map +1 -1
- package/dist/services/metrics/sender.js +78 -69
- package/dist/services/metrics/sender.js.map +1 -1
- package/dist/services/metrics/sender.mjs +77 -64
- package/dist/services/metrics/sender.mjs.map +1 -1
- package/dist/services/query-params.d.ts +7 -0
- package/dist/services/query-params.d.ts.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.d.ts +7 -0
- package/dist/services/reloader.d.ts.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 +11 -8
- package/dist/services/request-context.js.map +1 -1
- package/dist/services/request-context.mjs +10 -10
- package/dist/services/request-context.mjs.map +1 -1
- package/dist/services/server/admin-api.d.ts +3 -3
- package/dist/services/server/admin-api.d.ts.map +1 -1
- package/dist/services/server/admin-api.js +11 -10
- package/dist/services/server/admin-api.js.map +1 -1
- package/dist/services/server/admin-api.mjs +10 -11
- package/dist/services/server/admin-api.mjs.map +1 -1
- package/dist/services/server/api.d.ts +3 -3
- package/dist/services/server/api.d.ts.map +1 -1
- package/dist/services/server/api.js +33 -27
- package/dist/services/server/api.js.map +1 -1
- package/dist/services/server/api.mjs +32 -26
- package/dist/services/server/api.mjs.map +1 -1
- package/dist/services/server/compose-endpoint.d.ts +2 -2
- package/dist/services/server/compose-endpoint.d.ts.map +1 -1
- package/dist/services/server/compose-endpoint.js +116 -106
- package/dist/services/server/compose-endpoint.js.map +1 -1
- package/dist/services/server/compose-endpoint.mjs +115 -106
- package/dist/services/server/compose-endpoint.mjs.map +1 -1
- package/dist/services/server/content-api.d.ts +3 -3
- package/dist/services/server/content-api.d.ts.map +1 -1
- package/dist/services/server/content-api.js +11 -9
- package/dist/services/server/content-api.js.map +1 -1
- package/dist/services/server/content-api.mjs +10 -10
- package/dist/services/server/content-api.mjs.map +1 -1
- package/dist/services/server/http-server.d.ts +2 -2
- package/dist/services/server/http-server.d.ts.map +1 -1
- package/dist/services/server/http-server.js +48 -44
- package/dist/services/server/http-server.js.map +1 -1
- package/dist/services/server/http-server.mjs +47 -43
- package/dist/services/server/http-server.mjs.map +1 -1
- package/dist/services/server/index.d.ts +2 -2
- package/dist/services/server/index.d.ts.map +1 -1
- package/dist/services/server/index.js +85 -83
- package/dist/services/server/index.js.map +1 -1
- package/dist/services/server/index.mjs +84 -82
- package/dist/services/server/index.mjs.map +1 -1
- package/dist/services/server/koa.d.ts.map +1 -1
- package/dist/services/server/koa.js +49 -47
- package/dist/services/server/koa.js.map +1 -1
- package/dist/services/server/koa.mjs +48 -44
- package/dist/services/server/koa.mjs.map +1 -1
- package/dist/services/server/middleware.d.ts +4 -4
- package/dist/services/server/middleware.d.ts.map +1 -1
- package/dist/services/server/middleware.js +86 -82
- package/dist/services/server/middleware.js.map +1 -1
- package/dist/services/server/middleware.mjs +85 -82
- package/dist/services/server/middleware.mjs.map +1 -1
- package/dist/services/server/policy.d.ts +3 -3
- package/dist/services/server/policy.d.ts.map +1 -1
- package/dist/services/server/policy.js +25 -18
- package/dist/services/server/policy.js.map +1 -1
- package/dist/services/server/policy.mjs +23 -18
- package/dist/services/server/policy.mjs.map +1 -1
- package/dist/services/server/register-middlewares.d.ts +2 -2
- package/dist/services/server/register-middlewares.d.ts.map +1 -1
- package/dist/services/server/register-middlewares.js +68 -61
- package/dist/services/server/register-middlewares.js.map +1 -1
- package/dist/services/server/register-middlewares.mjs +67 -63
- package/dist/services/server/register-middlewares.mjs.map +1 -1
- package/dist/services/server/register-routes.d.ts +2 -2
- package/dist/services/server/register-routes.d.ts.map +1 -1
- package/dist/services/server/register-routes.js +90 -67
- package/dist/services/server/register-routes.js.map +1 -1
- package/dist/services/server/register-routes.mjs +89 -67
- package/dist/services/server/register-routes.mjs.map +1 -1
- package/dist/services/server/routing.d.ts +5 -5
- package/dist/services/server/routing.d.ts.map +1 -1
- package/dist/services/server/routing.js +94 -81
- package/dist/services/server/routing.js.map +1 -1
- package/dist/services/server/routing.mjs +93 -81
- package/dist/services/server/routing.mjs.map +1 -1
- 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.d.ts.map +1 -1
- package/dist/services/utils/dynamic-zones.js +13 -13
- package/dist/services/utils/dynamic-zones.js.map +1 -1
- package/dist/services/utils/dynamic-zones.mjs +12 -15
- package/dist/services/utils/dynamic-zones.mjs.map +1 -1
- package/dist/services/webhook-runner.d.ts +2 -1
- package/dist/services/webhook-runner.d.ts.map +1 -1
- package/dist/services/webhook-runner.js +124 -122
- package/dist/services/webhook-runner.js.map +1 -1
- package/dist/services/webhook-runner.mjs +123 -121
- package/dist/services/webhook-runner.mjs.map +1 -1
- package/dist/services/webhook-store.d.ts +2 -8
- package/dist/services/webhook-store.d.ts.map +1 -1
- package/dist/services/webhook-store.js +132 -93
- package/dist/services/webhook-store.js.map +1 -1
- package/dist/services/webhook-store.mjs +131 -95
- package/dist/services/webhook-store.mjs.map +1 -1
- package/dist/services/worker-queue.js +44 -49
- package/dist/services/worker-queue.js.map +1 -1
- package/dist/services/worker-queue.mjs +43 -49
- package/dist/services/worker-queue.mjs.map +1 -1
- package/dist/utils/convert-custom-field-type.d.ts +2 -2
- package/dist/utils/convert-custom-field-type.d.ts.map +1 -1
- package/dist/utils/convert-custom-field-type.js +17 -20
- package/dist/utils/convert-custom-field-type.js.map +1 -1
- package/dist/utils/convert-custom-field-type.mjs +16 -21
- package/dist/utils/convert-custom-field-type.mjs.map +1 -1
- package/dist/utils/cron.js +64 -30
- package/dist/utils/cron.js.map +1 -1
- package/dist/utils/cron.mjs +63 -31
- package/dist/utils/cron.mjs.map +1 -1
- package/dist/utils/fetch.d.ts +7 -3
- package/dist/utils/fetch.d.ts.map +1 -1
- package/dist/utils/fetch.js +28 -17
- package/dist/utils/fetch.js.map +1 -1
- package/dist/utils/fetch.mjs +27 -18
- package/dist/utils/fetch.mjs.map +1 -1
- package/dist/utils/filepath-to-prop-path.d.ts +1 -1
- package/dist/utils/filepath-to-prop-path.d.ts.map +1 -1
- package/dist/utils/filepath-to-prop-path.js +22 -9
- package/dist/utils/filepath-to-prop-path.js.map +1 -1
- package/dist/utils/filepath-to-prop-path.mjs +20 -7
- package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/is-initialized.d.ts +2 -2
- package/dist/utils/is-initialized.d.ts.map +1 -1
- package/dist/utils/is-initialized.js +21 -12
- package/dist/utils/is-initialized.js.map +1 -1
- package/dist/utils/is-initialized.mjs +20 -13
- package/dist/utils/is-initialized.mjs.map +1 -1
- package/dist/utils/lifecycles.js +6 -5
- package/dist/utils/lifecycles.js.map +1 -1
- package/dist/utils/lifecycles.mjs +5 -6
- package/dist/utils/lifecycles.mjs.map +1 -1
- package/dist/utils/load-config-file.js +40 -38
- package/dist/utils/load-config-file.js.map +1 -1
- package/dist/utils/load-config-file.mjs +39 -36
- package/dist/utils/load-config-file.mjs.map +1 -1
- package/dist/utils/load-files.d.ts.map +1 -1
- package/dist/utils/load-files.js +40 -35
- package/dist/utils/load-files.js.map +1 -1
- package/dist/utils/load-files.mjs +39 -32
- package/dist/utils/load-files.mjs.map +1 -1
- package/dist/utils/open-browser.d.ts +2 -2
- package/dist/utils/open-browser.d.ts.map +1 -1
- package/dist/utils/open-browser.js +8 -8
- package/dist/utils/open-browser.js.map +1 -1
- package/dist/utils/open-browser.mjs +7 -7
- package/dist/utils/open-browser.mjs.map +1 -1
- package/dist/utils/resolve-working-dirs.d.ts +19 -0
- package/dist/utils/resolve-working-dirs.d.ts.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.d.ts +2 -2
- package/dist/utils/signals.d.ts.map +1 -1
- package/dist/utils/signals.js +20 -14
- package/dist/utils/signals.js.map +1 -1
- package/dist/utils/signals.mjs +19 -15
- package/dist/utils/signals.mjs.map +1 -1
- package/dist/utils/startup-logger.d.ts +2 -2
- package/dist/utils/startup-logger.d.ts.map +1 -1
- package/dist/utils/startup-logger.js +107 -78
- package/dist/utils/startup-logger.js.map +1 -1
- package/dist/utils/startup-logger.mjs +106 -75
- package/dist/utils/startup-logger.mjs.map +1 -1
- package/dist/utils/transform-content-types-to-models.d.ts +574 -90
- package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
- package/dist/utils/transform-content-types-to-models.js +357 -217
- package/dist/utils/transform-content-types-to-models.js.map +1 -1
- package/dist/utils/transform-content-types-to-models.mjs +351 -220
- package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
- package/dist/utils/update-notifier/index.d.ts +2 -7
- package/dist/utils/update-notifier/index.d.ts.map +1 -1
- package/dist/utils/update-notifier/index.js +66 -74
- package/dist/utils/update-notifier/index.js.map +1 -1
- package/dist/utils/update-notifier/index.mjs +65 -68
- package/dist/utils/update-notifier/index.mjs.map +1 -1
- package/package.json +45 -40
- package/dist/registries/config.d.ts +0 -4
- package/dist/registries/config.d.ts.map +0 -1
- package/dist/registries/config.js +0 -23
- package/dist/registries/config.js.map +0 -1
- package/dist/registries/config.mjs +0 -22
- package/dist/registries/config.mjs.map +0 -1
- package/dist/services/document-service/document-engine.d.ts +0 -8
- package/dist/services/document-service/document-engine.d.ts.map +0 -1
- package/dist/services/document-service/document-engine.js +0 -241
- package/dist/services/document-service/document-engine.js.map +0 -1
- package/dist/services/document-service/document-engine.mjs +0 -242
- package/dist/services/document-service/document-engine.mjs.map +0 -1
- package/dist/services/document-service/middlewares.d.ts +0 -8
- package/dist/services/document-service/middlewares.d.ts.map +0 -1
- package/dist/services/document-service/middlewares.js +0 -46
- package/dist/services/document-service/middlewares.js.map +0 -1
- package/dist/services/document-service/middlewares.mjs +0 -46
- package/dist/services/document-service/middlewares.mjs.map +0 -1
- package/dist/services/document-service/repositories/content-type.d.ts +0 -3
- package/dist/services/document-service/repositories/content-type.d.ts.map +0 -1
- package/dist/services/document-service/repositories/content-type.js +0 -139
- package/dist/services/document-service/repositories/content-type.js.map +0 -1
- package/dist/services/document-service/repositories/content-type.mjs +0 -139
- package/dist/services/document-service/repositories/content-type.mjs.map +0 -1
- package/dist/services/document-service/transform/filters.d.ts +0 -3
- package/dist/services/document-service/transform/filters.d.ts.map +0 -1
- package/dist/services/document-service/transform/relations/transform/output-ids.d.ts +0 -4
- package/dist/services/document-service/transform/relations/transform/output-ids.d.ts.map +0 -1
- package/dist/services/document-service/transform/relations/utils/data.js +0 -12
- package/dist/services/document-service/transform/relations/utils/data.js.map +0 -1
- package/dist/services/document-service/transform/relations/utils/data.mjs +0 -12
- package/dist/services/document-service/transform/relations/utils/data.mjs.map +0 -1
- package/dist/services/document-service/transform/sort.d.ts +0 -5
- package/dist/services/document-service/transform/sort.d.ts.map +0 -1
- package/dist/services/document-service/transform/utils.d.ts +0 -9
- package/dist/services/document-service/transform/utils.d.ts.map +0 -1
- package/dist/services/entity-service/attributes/index.d.ts +0 -6
- package/dist/services/entity-service/attributes/index.d.ts.map +0 -1
- package/dist/services/entity-service/attributes/index.js +0 -22
- package/dist/services/entity-service/attributes/index.js.map +0 -1
- package/dist/services/entity-service/attributes/index.mjs +0 -22
- package/dist/services/entity-service/attributes/index.mjs.map +0 -1
- package/dist/services/entity-service/attributes/transforms.d.ts +0 -10
- package/dist/services/entity-service/attributes/transforms.d.ts.map +0 -1
- package/dist/services/entity-service/attributes/transforms.js +0 -20
- package/dist/services/entity-service/attributes/transforms.js.map +0 -1
- package/dist/services/entity-service/attributes/transforms.mjs +0 -19
- package/dist/services/entity-service/attributes/transforms.mjs.map +0 -1
- package/dist/services/entity-service/components.d.ts +0 -23
- package/dist/services/entity-service/components.d.ts.map +0 -1
- package/dist/services/entity-service/components.js +0 -384
- package/dist/services/entity-service/components.js.map +0 -1
- package/dist/services/entity-service/components.mjs +0 -382
- package/dist/services/entity-service/components.mjs.map +0 -1
- package/dist/services/entity-service/params.d.ts +0 -8
- package/dist/services/entity-service/params.d.ts.map +0 -1
- package/dist/services/entity-service/params.js +0 -8
- package/dist/services/entity-service/params.js.map +0 -1
- package/dist/services/entity-service/params.mjs +0 -8
- package/dist/services/entity-service/params.mjs.map +0 -1
- package/dist/services/utils/upload-files.d.ts +0 -8
- package/dist/services/utils/upload-files.d.ts.map +0 -1
- package/dist/services/utils/upload-files.js +0 -64
- package/dist/services/utils/upload-files.js.map +0 -1
- package/dist/services/utils/upload-files.mjs +0 -63
- package/dist/services/utils/upload-files.mjs.map +0 -1
- package/dist/utils/get-dirs.d.ts +0 -9
- package/dist/utils/get-dirs.d.ts.map +0 -1
- package/dist/utils/get-dirs.js +0 -30
- package/dist/utils/get-dirs.js.map +0 -1
- package/dist/utils/get-dirs.mjs +0 -30
- package/dist/utils/get-dirs.mjs.map +0 -1
@@ -1,119 +1,293 @@
|
|
1
|
-
import _ from
|
2
|
-
import
|
3
|
-
import blocksValidator from
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
}, { isDraft })
|
8
|
-
|
1
|
+
import _ from 'lodash';
|
2
|
+
import { yup } from '@strapi/utils';
|
3
|
+
import { blocksValidator } from './blocks-validator.mjs';
|
4
|
+
|
5
|
+
/* Validator utils */ /**
|
6
|
+
* Adds minLength validator
|
7
|
+
*/ const addMinLengthValidator = (validator, { attr }, { isDraft })=>{
|
8
|
+
return attr.minLength && _.isInteger(attr.minLength) && !isDraft ? validator.min(attr.minLength) : validator;
|
9
9
|
};
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
10
|
+
/**
|
11
|
+
* Adds maxLength validator
|
12
|
+
* @returns {StringSchema}
|
13
|
+
*/ const addMaxLengthValidator = (validator, { attr })=>{
|
14
|
+
return attr.maxLength && _.isInteger(attr.maxLength) ? validator.max(attr.maxLength) : validator;
|
14
15
|
};
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
const
|
19
|
-
|
20
|
-
|
21
|
-
const
|
22
|
-
|
23
|
-
|
24
|
-
const
|
25
|
-
|
26
|
-
|
27
|
-
const
|
28
|
-
|
29
|
-
|
30
|
-
|
16
|
+
/**
|
17
|
+
* Adds min integer validator
|
18
|
+
* @returns {NumberSchema}
|
19
|
+
*/ const addMinIntegerValidator = (validator, { attr }, { isDraft })=>_.isNumber(attr.min) && !isDraft ? validator.min(_.toInteger(attr.min)) : validator;
|
20
|
+
/**
|
21
|
+
* Adds max integer validator
|
22
|
+
*/ const addMaxIntegerValidator = (validator, { attr })=>_.isNumber(attr.max) ? validator.max(_.toInteger(attr.max)) : validator;
|
23
|
+
/**
|
24
|
+
* Adds min float/decimal validator
|
25
|
+
*/ const addMinFloatValidator = (validator, { attr }, { isDraft })=>_.isNumber(attr.min) && !isDraft ? validator.min(attr.min) : validator;
|
26
|
+
/**
|
27
|
+
* Adds max float/decimal validator
|
28
|
+
*/ const addMaxFloatValidator = (validator, { attr })=>_.isNumber(attr.max) ? validator.max(attr.max) : validator;
|
29
|
+
/**
|
30
|
+
* Adds regex validator
|
31
|
+
*/ const addStringRegexValidator = (validator, { attr }, { isDraft })=>{
|
32
|
+
return 'regex' in attr && !_.isUndefined(attr.regex) && !isDraft ? validator.matches(new RegExp(attr.regex), {
|
33
|
+
excludeEmptyString: !attr.required
|
34
|
+
}) : validator;
|
31
35
|
};
|
32
|
-
const addUniqueValidator = (validator, { attr, model, updatedAttribute, entity }, options)
|
33
|
-
|
34
|
-
|
35
|
-
}
|
36
|
-
return validator.test("unique", "This attribute must be unique", async (value) => {
|
37
|
-
const isPublish = options.isDraft === false;
|
38
|
-
if (_.isNil(value)) {
|
39
|
-
return true;
|
36
|
+
const addUniqueValidator = (validator, { attr, model, updatedAttribute, entity, componentContext }, options)=>{
|
37
|
+
if (attr.type !== 'uid' && !attr.unique) {
|
38
|
+
return validator;
|
40
39
|
}
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
40
|
+
const validateUniqueFieldWithinComponent = async (value)=>{
|
41
|
+
if (!componentContext) {
|
42
|
+
return false;
|
43
|
+
}
|
44
|
+
// If we are validating a unique field within a repeatable component,
|
45
|
+
// we first need to ensure that the repeatable in the current entity is
|
46
|
+
// valid against itself.
|
47
|
+
const hasRepeatableData = componentContext.repeatableData.length > 0;
|
48
|
+
if (hasRepeatableData) {
|
49
|
+
const { name: updatedName, value: updatedValue } = updatedAttribute;
|
50
|
+
// Construct the full path to the unique field within the component.
|
51
|
+
const pathToCheck = [
|
52
|
+
...componentContext.pathToComponent.slice(1),
|
53
|
+
updatedName
|
54
|
+
].join('.');
|
55
|
+
// Extract the values from the repeatable data using the constructed path
|
56
|
+
const values = componentContext.repeatableData.map((item)=>{
|
57
|
+
return pathToCheck.split('.').reduce((acc, key)=>acc[key], item);
|
58
|
+
});
|
59
|
+
// Check if the value is repeated in the current entity
|
60
|
+
const isUpdatedAttributeRepeatedInThisEntity = values.filter((value)=>value === updatedValue).length > 1;
|
61
|
+
if (isUpdatedAttributeRepeatedInThisEntity) {
|
62
|
+
return false;
|
63
|
+
}
|
64
|
+
}
|
65
|
+
/**
|
66
|
+
* When `componentContext` is present it means we are dealing with a unique
|
67
|
+
* field within a component.
|
68
|
+
*
|
69
|
+
* The unique validation must consider the specific context of the
|
70
|
+
* component, which will always be contained within a parent content type
|
71
|
+
* and may also be nested within another component.
|
72
|
+
*
|
73
|
+
* We construct a query that takes into account the parent's model UID,
|
74
|
+
* dimensions (such as draft and publish state/locale) and excludes the current
|
75
|
+
* content type entity by its ID if provided.
|
76
|
+
*/ const { model: parentModel, options: parentOptions, id: excludeId } = componentContext.parentContent;
|
77
|
+
const whereConditions = {};
|
78
|
+
const isParentDraft = parentOptions && parentOptions.isDraft;
|
79
|
+
whereConditions.publishedAt = isParentDraft ? null : {
|
80
|
+
$notNull: true
|
81
|
+
};
|
82
|
+
if (parentOptions?.locale) {
|
83
|
+
whereConditions.locale = parentOptions.locale;
|
84
|
+
}
|
85
|
+
if (excludeId && !Number.isNaN(excludeId)) {
|
86
|
+
whereConditions.id = {
|
87
|
+
$ne: excludeId
|
88
|
+
};
|
89
|
+
}
|
90
|
+
const queryUid = parentModel.uid;
|
91
|
+
const queryWhere = {
|
92
|
+
...componentContext.pathToComponent.reduceRight((acc, key)=>({
|
93
|
+
[key]: acc
|
94
|
+
}), {
|
95
|
+
[updatedAttribute.name]: value
|
96
|
+
}),
|
97
|
+
...whereConditions
|
98
|
+
};
|
99
|
+
// The validation should pass if there is no other record found from the query
|
100
|
+
return !await strapi.db.query(queryUid).findOne({
|
101
|
+
where: queryWhere
|
102
|
+
});
|
103
|
+
};
|
104
|
+
const validateUniqueFieldWithinDynamicZoneComponent = async (startOfPath)=>{
|
105
|
+
if (!componentContext) {
|
106
|
+
return false;
|
107
|
+
}
|
108
|
+
const targetComponentUID = model.uid;
|
109
|
+
// Ensure that the value is unique within the dynamic zone in this entity.
|
110
|
+
const countOfValueInThisEntity = (componentContext?.fullDynamicZoneContent ?? []).reduce((acc, component)=>{
|
111
|
+
if (component.__component !== targetComponentUID) {
|
112
|
+
return acc;
|
113
|
+
}
|
114
|
+
const updatedValue = component[updatedAttribute.name];
|
115
|
+
return updatedValue === updatedAttribute.value ? acc + 1 : acc;
|
116
|
+
}, 0);
|
117
|
+
if (countOfValueInThisEntity > 1) {
|
118
|
+
// If the value is repeated in the current entity, the validation fails.
|
119
|
+
return false;
|
120
|
+
}
|
121
|
+
// Populate the dynamic zone for any components that share the same value
|
122
|
+
// as the updated attribute.
|
123
|
+
const query = {
|
124
|
+
select: [
|
125
|
+
'id'
|
126
|
+
],
|
127
|
+
where: {},
|
128
|
+
populate: {
|
129
|
+
[startOfPath]: {
|
130
|
+
on: {
|
131
|
+
[targetComponentUID]: {
|
132
|
+
select: [
|
133
|
+
'id'
|
134
|
+
],
|
135
|
+
where: {
|
136
|
+
[updatedAttribute.name]: updatedAttribute.value
|
137
|
+
}
|
138
|
+
}
|
139
|
+
}
|
140
|
+
}
|
141
|
+
}
|
142
|
+
};
|
143
|
+
const { options, id } = componentContext.parentContent;
|
144
|
+
if (options?.isDraft !== undefined) {
|
145
|
+
query.where.published_at = options.isDraft ? {
|
146
|
+
$eq: null
|
147
|
+
} : {
|
148
|
+
$ne: null
|
149
|
+
};
|
150
|
+
}
|
151
|
+
if (id) {
|
152
|
+
query.where.id = {
|
153
|
+
$ne: id
|
154
|
+
};
|
155
|
+
}
|
156
|
+
if (options?.locale) {
|
157
|
+
query.where.locale = options.locale;
|
158
|
+
}
|
159
|
+
const parentModelQueryResult = await strapi.db.query(componentContext.parentContent.model.uid).findMany(query);
|
160
|
+
// Filter the results to only include results that have components in the
|
161
|
+
// dynamic zone that match the target component type.
|
162
|
+
const filteredResults = parentModelQueryResult.filter((result)=>Array.isArray(result[startOfPath]) && result[startOfPath].length).flatMap((result)=>result[startOfPath]).filter((dynamicZoneComponent)=>dynamicZoneComponent.__component === targetComponentUID);
|
163
|
+
if (filteredResults.length >= 1) {
|
164
|
+
return false;
|
165
|
+
}
|
166
|
+
return true;
|
167
|
+
};
|
168
|
+
return validator.test('unique', 'This attribute must be unique', async (value)=>{
|
169
|
+
/**
|
170
|
+
* If the attribute value is `null` or an empty string we want to skip the unique validation.
|
171
|
+
* Otherwise it'll only accept a single entry with that value in the database.
|
172
|
+
*/ if (_.isNil(value) || value === '') {
|
173
|
+
return true;
|
174
|
+
}
|
175
|
+
/**
|
176
|
+
* We don't validate any unique constraint for draft entries.
|
177
|
+
*/ if (options.isDraft) {
|
178
|
+
return true;
|
179
|
+
}
|
180
|
+
const hasPathToComponent = componentContext && componentContext.pathToComponent.length > 0;
|
181
|
+
if (hasPathToComponent) {
|
182
|
+
// Detect if we are validating within a dynamiczone by checking if the first
|
183
|
+
// path is a dynamiczone attribute in the parent content type.
|
184
|
+
const startOfPath = componentContext.pathToComponent[0];
|
185
|
+
const testingDZ = componentContext.parentContent.model.attributes[startOfPath].type === 'dynamiczone';
|
186
|
+
if (testingDZ) {
|
187
|
+
return validateUniqueFieldWithinDynamicZoneComponent(startOfPath);
|
188
|
+
}
|
189
|
+
return validateUniqueFieldWithinComponent(value);
|
190
|
+
}
|
191
|
+
/**
|
192
|
+
* Here we are validating a scalar unique field from the content type's schema.
|
193
|
+
* We construct a query to check if the value is unique
|
194
|
+
* considering dimensions (e.g. locale, publication state) and excluding the current entity by its ID if available.
|
195
|
+
*/ const scalarAttributeWhere = {
|
196
|
+
[updatedAttribute.name]: value,
|
197
|
+
publishedAt: {
|
198
|
+
$notNull: true
|
199
|
+
}
|
200
|
+
};
|
201
|
+
if (options?.locale) {
|
202
|
+
scalarAttributeWhere.locale = options.locale;
|
203
|
+
}
|
204
|
+
if (entity?.id) {
|
205
|
+
scalarAttributeWhere.id = {
|
206
|
+
$ne: entity.id
|
207
|
+
};
|
208
|
+
}
|
209
|
+
// The validation should pass if there is no other record found from the query
|
210
|
+
return !await strapi.db.query(model.uid).findOne({
|
211
|
+
where: scalarAttributeWhere,
|
212
|
+
select: [
|
213
|
+
'id'
|
214
|
+
]
|
215
|
+
});
|
51
216
|
});
|
52
|
-
return !record;
|
53
|
-
});
|
54
|
-
};
|
55
|
-
const stringValidator = (metas, options) => {
|
56
|
-
let schema = yup.string().transform((val, originalVal) => originalVal);
|
57
|
-
schema = addMinLengthValidator(schema, metas, options);
|
58
|
-
schema = addMaxLengthValidator(schema, metas);
|
59
|
-
schema = addStringRegexValidator(schema, metas);
|
60
|
-
schema = addUniqueValidator(schema, metas, options);
|
61
|
-
return schema;
|
62
217
|
};
|
63
|
-
const
|
64
|
-
|
65
|
-
|
218
|
+
/* Type validators */ const stringValidator = (metas, options)=>{
|
219
|
+
let schema = yup.string().transform((val, originalVal)=>originalVal);
|
220
|
+
schema = addMinLengthValidator(schema, metas, options);
|
221
|
+
schema = addMaxLengthValidator(schema, metas);
|
222
|
+
schema = addStringRegexValidator(schema, metas, options);
|
223
|
+
schema = addUniqueValidator(schema, metas, options);
|
224
|
+
return schema;
|
66
225
|
};
|
67
|
-
const
|
68
|
-
|
69
|
-
|
226
|
+
const emailValidator = (metas, options)=>{
|
227
|
+
const schema = stringValidator(metas, options);
|
228
|
+
if (options.isDraft) {
|
229
|
+
return schema;
|
230
|
+
}
|
231
|
+
return schema.email().min(1, // eslint-disable-next-line no-template-curly-in-string
|
232
|
+
'${path} cannot be empty');
|
70
233
|
};
|
71
|
-
const
|
72
|
-
|
234
|
+
const uidValidator = (metas, options)=>{
|
235
|
+
const schema = stringValidator(metas, options);
|
236
|
+
if (options.isDraft) {
|
237
|
+
return schema;
|
238
|
+
}
|
239
|
+
if (metas.attr.regex) {
|
240
|
+
return schema.matches(new RegExp(metas.attr.regex));
|
241
|
+
}
|
242
|
+
return schema.matches(/^[A-Za-z0-9-_.~]*$/);
|
73
243
|
};
|
74
|
-
const
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
schema = addUniqueValidator(schema, metas, options);
|
79
|
-
return schema;
|
244
|
+
const enumerationValidator = ({ attr })=>{
|
245
|
+
return yup.string().oneOf((Array.isArray(attr.enum) ? attr.enum : [
|
246
|
+
attr.enum
|
247
|
+
]).concat(null));
|
80
248
|
};
|
81
|
-
const
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
249
|
+
const integerValidator = (metas, options)=>{
|
250
|
+
let schema = yup.number().integer();
|
251
|
+
schema = addMinIntegerValidator(schema, metas, options);
|
252
|
+
schema = addMaxIntegerValidator(schema, metas);
|
253
|
+
schema = addUniqueValidator(schema, metas, options);
|
254
|
+
return schema;
|
87
255
|
};
|
88
|
-
const
|
89
|
-
|
90
|
-
|
256
|
+
const floatValidator = (metas, options)=>{
|
257
|
+
let schema = yup.number();
|
258
|
+
schema = addMinFloatValidator(schema, metas, options);
|
259
|
+
schema = addMaxFloatValidator(schema, metas);
|
260
|
+
schema = addUniqueValidator(schema, metas, options);
|
261
|
+
return schema;
|
91
262
|
};
|
92
|
-
const
|
93
|
-
|
94
|
-
|
263
|
+
const bigintegerValidator = (metas, options)=>{
|
264
|
+
const schema = yup.mixed();
|
265
|
+
return addUniqueValidator(schema, metas, options);
|
95
266
|
};
|
96
|
-
const
|
97
|
-
|
98
|
-
|
99
|
-
richtext: stringValidator,
|
100
|
-
password: stringValidator,
|
101
|
-
email: emailValidator,
|
102
|
-
enumeration: enumerationValidator,
|
103
|
-
boolean: () => yup.boolean(),
|
104
|
-
uid: uidValidator,
|
105
|
-
json: () => yup.mixed(),
|
106
|
-
integer: integerValidator,
|
107
|
-
biginteger: bigintegerValidator,
|
108
|
-
float: floatValidator,
|
109
|
-
decimal: floatValidator,
|
110
|
-
date: datesValidator,
|
111
|
-
time: datesValidator,
|
112
|
-
datetime: datesValidator,
|
113
|
-
timestamp: datesValidator,
|
114
|
-
blocks: blocksValidator
|
267
|
+
const datesValidator = (metas, options)=>{
|
268
|
+
const schema = yup.mixed();
|
269
|
+
return addUniqueValidator(schema, metas, options);
|
115
270
|
};
|
116
|
-
|
117
|
-
|
271
|
+
const Validators = {
|
272
|
+
string: stringValidator,
|
273
|
+
text: stringValidator,
|
274
|
+
richtext: stringValidator,
|
275
|
+
password: stringValidator,
|
276
|
+
email: emailValidator,
|
277
|
+
enumeration: enumerationValidator,
|
278
|
+
boolean: ()=>yup.boolean(),
|
279
|
+
uid: uidValidator,
|
280
|
+
json: ()=>yup.mixed(),
|
281
|
+
integer: integerValidator,
|
282
|
+
biginteger: bigintegerValidator,
|
283
|
+
float: floatValidator,
|
284
|
+
decimal: floatValidator,
|
285
|
+
date: datesValidator,
|
286
|
+
time: datesValidator,
|
287
|
+
datetime: datesValidator,
|
288
|
+
timestamp: datesValidator,
|
289
|
+
blocks: blocksValidator
|
118
290
|
};
|
291
|
+
|
292
|
+
export { Validators, bigintegerValidator, datesValidator, emailValidator, enumerationValidator, floatValidator, integerValidator, uidValidator };
|
119
293
|
//# sourceMappingURL=validators.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"validators.mjs","sources":["../../../src/services/entity-validator/validators.ts"],"sourcesContent":["import _ from 'lodash';\nimport strapiUtils from '@strapi/utils';\nimport type { Attribute, Schema } from '@strapi/types';\nimport blocksValidator from './blocks-validator';\n\nconst { yup } = strapiUtils;\n\ninterface ValidatorMetas<TAttribute extends Attribute.Any> {\n attr: TAttribute;\n model: Schema.ContentType;\n updatedAttribute: { name: string; value: unknown };\n entity: Record<string, unknown> | null;\n}\n\ninterface ValidatorOptions {\n isDraft: boolean;\n locale?: string;\n}\n\n/* Validator utils */\n\n/**\n * Adds minLength validator\n */\nconst addMinLengthValidator = (\n validator: strapiUtils.yup.StringSchema,\n {\n attr,\n }: {\n attr:\n | Attribute.String\n | Attribute.Text\n | Attribute.RichText\n | Attribute.Password\n | Attribute.Email\n | Attribute.UID;\n },\n { isDraft }: ValidatorOptions\n) => {\n return attr.minLength && _.isInteger(attr.minLength) && !isDraft\n ? validator.min(attr.minLength)\n : validator;\n};\n\n/**\n * Adds maxLength validator\n * @returns {StringSchema}\n */\nconst addMaxLengthValidator = (\n validator: strapiUtils.yup.StringSchema,\n {\n attr,\n }: {\n attr:\n | Attribute.String\n | Attribute.Text\n | Attribute.RichText\n | Attribute.Password\n | Attribute.Email\n | Attribute.UID;\n }\n) => {\n return attr.maxLength && _.isInteger(attr.maxLength) ? validator.max(attr.maxLength) : validator;\n};\n\n/**\n * Adds min integer validator\n * @returns {NumberSchema}\n */\nconst addMinIntegerValidator = (\n validator: strapiUtils.yup.NumberSchema,\n {\n attr,\n }: {\n attr: Attribute.Integer | Attribute.BigInteger;\n }\n) => (_.isNumber(attr.min) ? validator.min(_.toInteger(attr.min)) : validator);\n\n/**\n * Adds max integer validator\n */\nconst addMaxIntegerValidator = (\n validator: strapiUtils.yup.NumberSchema,\n {\n attr,\n }: {\n attr: Attribute.Integer | Attribute.BigInteger;\n }\n) => (_.isNumber(attr.max) ? validator.max(_.toInteger(attr.max)) : validator);\n\n/**\n * Adds min float/decimal validator\n */\nconst addMinFloatValidator = (\n validator: strapiUtils.yup.NumberSchema,\n {\n attr,\n }: {\n attr: Attribute.Decimal | Attribute.Float;\n }\n) => (_.isNumber(attr.min) ? validator.min(attr.min) : validator);\n\n/**\n * Adds max float/decimal validator\n */\nconst addMaxFloatValidator = (\n validator: strapiUtils.yup.NumberSchema,\n {\n attr,\n }: {\n attr: Attribute.Decimal | Attribute.Float;\n }\n) => (_.isNumber(attr.max) ? validator.max(attr.max) : validator);\n\n/**\n * Adds regex validator\n */\nconst addStringRegexValidator = (\n validator: strapiUtils.yup.StringSchema,\n {\n attr,\n }: {\n attr:\n | Attribute.String\n | Attribute.Text\n | Attribute.RichText\n | Attribute.Password\n | Attribute.Email\n | Attribute.UID;\n }\n) => {\n return 'regex' in attr && !_.isUndefined(attr.regex)\n ? validator.matches(new RegExp(attr.regex), { excludeEmptyString: !attr.required })\n : validator;\n};\n\n/**\n * Adds unique validator\n */\nconst addUniqueValidator = <T extends strapiUtils.yup.AnySchema>(\n validator: T,\n { attr, model, updatedAttribute, entity }: ValidatorMetas<Attribute.Any & Attribute.UniqueOption>,\n options: ValidatorOptions\n): T => {\n if (attr.type !== 'uid' && !attr.unique) {\n return validator;\n }\n\n return validator.test('unique', 'This attribute must be unique', async (value) => {\n const isPublish = options.isDraft === false;\n\n /**\n * If the attribute value is `null` we want to skip the unique validation.\n * Otherwise it'll only accept a single `null` entry in the database.\n */\n if (_.isNil(value)) {\n return true;\n }\n\n /**\n * If we are updating a draft and the value is unchanged we skip the unique verification. This will\n * prevent the validator to be triggered in case the user activated the\n * unique constraint after already creating multiple entries with\n * the same attribute value for that field.\n */\n if (!isPublish && value === entity?.[updatedAttribute.name]) {\n return true;\n }\n\n /**\n * At this point we know that we are creating a new entry, publishing an entry or that the unique field value has changed\n * We check if there is an entry of this content type in the same locale, publication state and with the same unique field value\n */\n const record = await strapi.db.query(model.uid).findOne({\n where: {\n locale: options.locale,\n publishedAt: options.isDraft ? null : { $notNull: true },\n [updatedAttribute.name]: value,\n ...(entity?.id ? { id: { $ne: entity.id } } : {}),\n },\n });\n\n return !record;\n });\n};\n\n/* Type validators */\n\nconst stringValidator = (\n metas: ValidatorMetas<\n | Attribute.String\n | Attribute.Text\n | Attribute.RichText\n | Attribute.Password\n | Attribute.Email\n | Attribute.UID\n >,\n options: ValidatorOptions\n) => {\n let schema = yup.string().transform((val, originalVal) => originalVal);\n\n schema = addMinLengthValidator(schema, metas, options);\n schema = addMaxLengthValidator(schema, metas);\n schema = addStringRegexValidator(schema, metas);\n schema = addUniqueValidator(schema, metas, options);\n\n return schema;\n};\n\nconst emailValidator = (metas: ValidatorMetas<Attribute.Email>, options: ValidatorOptions) => {\n const schema = stringValidator(metas, options);\n return schema.email().min(1, '${path} cannot be empty');\n};\n\nconst uidValidator = (metas: ValidatorMetas<Attribute.UID>, options: ValidatorOptions) => {\n const schema = stringValidator(metas, options);\n\n return schema.matches(/^[A-Za-z0-9-_.~]*$/);\n};\n\nconst enumerationValidator = ({ attr }: { attr: Attribute.Enumeration }) => {\n return yup\n .string()\n .oneOf((Array.isArray(attr.enum) ? attr.enum : [attr.enum]).concat(null as any));\n};\n\nconst integerValidator = (\n metas: ValidatorMetas<Attribute.Integer | Attribute.BigInteger>,\n options: ValidatorOptions\n) => {\n let schema = yup.number().integer();\n\n schema = addMinIntegerValidator(schema, metas);\n schema = addMaxIntegerValidator(schema, metas);\n schema = addUniqueValidator(schema, metas, options);\n\n return schema;\n};\n\nconst floatValidator = (\n metas: ValidatorMetas<Attribute.Decimal | Attribute.Float>,\n options: ValidatorOptions\n) => {\n let schema = yup.number();\n schema = addMinFloatValidator(schema, metas);\n schema = addMaxFloatValidator(schema, metas);\n schema = addUniqueValidator(schema, metas, options);\n\n return schema;\n};\n\nconst bigintegerValidator = (\n metas: ValidatorMetas<Attribute.BigInteger>,\n options: ValidatorOptions\n) => {\n const schema = yup.mixed();\n return addUniqueValidator(schema, metas, options);\n};\n\nconst datesValidator = (\n metas: ValidatorMetas<Attribute.Date | Attribute.DateTime | Attribute.Time | Attribute.Timestamp>,\n options: ValidatorOptions\n) => {\n const schema = yup.mixed();\n return addUniqueValidator(schema, metas, options);\n};\n\nexport default {\n string: stringValidator,\n text: stringValidator,\n richtext: stringValidator,\n password: stringValidator,\n email: emailValidator,\n enumeration: enumerationValidator,\n boolean: () => yup.boolean(),\n uid: uidValidator,\n json: () => yup.mixed(),\n integer: integerValidator,\n biginteger: bigintegerValidator,\n float: floatValidator,\n decimal: floatValidator,\n date: datesValidator,\n time: datesValidator,\n datetime: datesValidator,\n timestamp: datesValidator,\n blocks: blocksValidator,\n};\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"validators.mjs","sources":["../../../src/services/entity-validator/validators.ts"],"sourcesContent":["/**\n * Validators check if the entry data meets specific criteria before saving or publishing.\n * (e.g., length, range, format).\n *\n * Drafts have limited validations (mainly max constraints),\n * while published content undergoes full validation.\n *\n * The system also takes locales into account when validating data.\n * E.g, unique fields must be unique within the same locale.\n */\nimport _ from 'lodash';\nimport { yup } from '@strapi/utils';\nimport type { Schema, Struct, Modules } from '@strapi/types';\nimport { blocksValidator } from './blocks-validator';\n\nimport type { ComponentContext } from '.';\n\nexport interface ValidatorMetas<\n TAttribute extends Schema.Attribute.AnyAttribute = Schema.Attribute.AnyAttribute,\n TValue extends Schema.Attribute.Value<TAttribute> = Schema.Attribute.Value<TAttribute>,\n> {\n attr: TAttribute;\n model: Struct.Schema;\n updatedAttribute: {\n name: string;\n value: TValue;\n };\n data: Record<string, unknown>;\n componentContext?: ComponentContext;\n entity?: Modules.EntityValidator.Entity;\n}\n\ninterface ValidatorOptions {\n isDraft: boolean;\n locale?: string;\n}\n\n/* Validator utils */\n\n/**\n * Adds minLength validator\n */\nconst addMinLengthValidator = (\n validator: yup.StringSchema,\n {\n attr,\n }: {\n attr:\n | Schema.Attribute.String\n | Schema.Attribute.Text\n | Schema.Attribute.RichText\n | Schema.Attribute.Password\n | Schema.Attribute.Email\n | Schema.Attribute.UID;\n },\n { isDraft }: ValidatorOptions\n) => {\n return attr.minLength && _.isInteger(attr.minLength) && !isDraft\n ? validator.min(attr.minLength)\n : validator;\n};\n\n/**\n * Adds maxLength validator\n * @returns {StringSchema}\n */\nconst addMaxLengthValidator = (\n validator: yup.StringSchema,\n {\n attr,\n }: {\n attr:\n | Schema.Attribute.String\n | Schema.Attribute.Text\n | Schema.Attribute.RichText\n | Schema.Attribute.Password\n | Schema.Attribute.Email\n | Schema.Attribute.UID;\n }\n) => {\n return attr.maxLength && _.isInteger(attr.maxLength) ? validator.max(attr.maxLength) : validator;\n};\n\n/**\n * Adds min integer validator\n * @returns {NumberSchema}\n */\nconst addMinIntegerValidator = (\n validator: yup.NumberSchema,\n {\n attr,\n }: {\n attr: Schema.Attribute.Integer | Schema.Attribute.BigInteger;\n },\n { isDraft }: ValidatorOptions\n) => (_.isNumber(attr.min) && !isDraft ? validator.min(_.toInteger(attr.min)) : validator);\n\n/**\n * Adds max integer validator\n */\nconst addMaxIntegerValidator = (\n validator: yup.NumberSchema,\n {\n attr,\n }: {\n attr: Schema.Attribute.Integer | Schema.Attribute.BigInteger;\n }\n) => (_.isNumber(attr.max) ? validator.max(_.toInteger(attr.max)) : validator);\n\n/**\n * Adds min float/decimal validator\n */\nconst addMinFloatValidator = (\n validator: yup.NumberSchema,\n {\n attr,\n }: {\n attr: Schema.Attribute.Decimal | Schema.Attribute.Float;\n },\n { isDraft }: ValidatorOptions\n) => (_.isNumber(attr.min) && !isDraft ? validator.min(attr.min) : validator);\n\n/**\n * Adds max float/decimal validator\n */\nconst addMaxFloatValidator = (\n validator: yup.NumberSchema,\n {\n attr,\n }: {\n attr: Schema.Attribute.Decimal | Schema.Attribute.Float;\n }\n) => (_.isNumber(attr.max) ? validator.max(attr.max) : validator);\n\n/**\n * Adds regex validator\n */\nconst addStringRegexValidator = (\n validator: yup.StringSchema,\n {\n attr,\n }: {\n attr:\n | Schema.Attribute.String\n | Schema.Attribute.Text\n | Schema.Attribute.RichText\n | Schema.Attribute.Password\n | Schema.Attribute.Email\n | Schema.Attribute.UID;\n },\n { isDraft }: ValidatorOptions\n) => {\n return 'regex' in attr && !_.isUndefined(attr.regex) && !isDraft\n ? validator.matches(new RegExp(attr.regex), { excludeEmptyString: !attr.required })\n : validator;\n};\n\nconst addUniqueValidator = <T extends yup.AnySchema>(\n validator: T,\n {\n attr,\n model,\n updatedAttribute,\n entity,\n componentContext,\n }: ValidatorMetas<Schema.Attribute.AnyAttribute & Schema.Attribute.UniqueOption>,\n options: ValidatorOptions\n): T => {\n if (attr.type !== 'uid' && !attr.unique) {\n return validator;\n }\n\n const validateUniqueFieldWithinComponent = async (value: any): Promise<boolean> => {\n if (!componentContext) {\n return false;\n }\n\n // If we are validating a unique field within a repeatable component,\n // we first need to ensure that the repeatable in the current entity is\n // valid against itself.\n const hasRepeatableData = componentContext.repeatableData.length > 0;\n if (hasRepeatableData) {\n const { name: updatedName, value: updatedValue } = updatedAttribute;\n // Construct the full path to the unique field within the component.\n const pathToCheck = [...componentContext.pathToComponent.slice(1), updatedName].join('.');\n\n // Extract the values from the repeatable data using the constructed path\n const values = componentContext.repeatableData.map((item) => {\n return pathToCheck.split('.').reduce((acc, key) => acc[key], item as any);\n });\n\n // Check if the value is repeated in the current entity\n const isUpdatedAttributeRepeatedInThisEntity =\n values.filter((value) => value === updatedValue).length > 1;\n\n if (isUpdatedAttributeRepeatedInThisEntity) {\n return false;\n }\n }\n\n /**\n * When `componentContext` is present it means we are dealing with a unique\n * field within a component.\n *\n * The unique validation must consider the specific context of the\n * component, which will always be contained within a parent content type\n * and may also be nested within another component.\n *\n * We construct a query that takes into account the parent's model UID,\n * dimensions (such as draft and publish state/locale) and excludes the current\n * content type entity by its ID if provided.\n */\n const {\n model: parentModel,\n options: parentOptions,\n id: excludeId,\n } = componentContext.parentContent;\n\n const whereConditions: Record<string, any> = {};\n const isParentDraft = parentOptions && parentOptions.isDraft;\n\n whereConditions.publishedAt = isParentDraft ? null : { $notNull: true };\n\n if (parentOptions?.locale) {\n whereConditions.locale = parentOptions.locale;\n }\n\n if (excludeId && !Number.isNaN(excludeId)) {\n whereConditions.id = { $ne: excludeId };\n }\n\n const queryUid = parentModel.uid;\n const queryWhere = {\n ...componentContext.pathToComponent.reduceRight((acc, key) => ({ [key]: acc }), {\n [updatedAttribute.name]: value,\n }),\n\n ...whereConditions,\n };\n\n // The validation should pass if there is no other record found from the query\n return !(await strapi.db.query(queryUid).findOne({ where: queryWhere }));\n };\n\n const validateUniqueFieldWithinDynamicZoneComponent = async (\n startOfPath: string\n ): Promise<boolean> => {\n if (!componentContext) {\n return false;\n }\n\n const targetComponentUID = model.uid;\n // Ensure that the value is unique within the dynamic zone in this entity.\n const countOfValueInThisEntity = (componentContext?.fullDynamicZoneContent ?? []).reduce(\n (acc, component) => {\n if (component.__component !== targetComponentUID) {\n return acc;\n }\n\n const updatedValue = component[updatedAttribute.name];\n return updatedValue === updatedAttribute.value ? acc + 1 : acc;\n },\n 0\n );\n\n if (countOfValueInThisEntity > 1) {\n // If the value is repeated in the current entity, the validation fails.\n return false;\n }\n\n // Build a query for the parent content type to find all entities in the\n // same locale and publication state\n type QueryType = {\n select: string[];\n where: {\n published_at?: { $eq: null } | { $ne: null };\n id?: { $ne: number };\n locale?: string;\n };\n populate: {\n [key: string]: {\n on: {\n [key: string]: {\n select: string[];\n where: { [key: string]: string | number | boolean };\n };\n };\n };\n };\n };\n\n // Populate the dynamic zone for any components that share the same value\n // as the updated attribute.\n const query: QueryType = {\n select: ['id'],\n where: {},\n populate: {\n [startOfPath]: {\n on: {\n [targetComponentUID]: {\n select: ['id'],\n where: { [updatedAttribute.name]: updatedAttribute.value },\n },\n },\n },\n },\n };\n\n const { options, id } = componentContext.parentContent;\n\n if (options?.isDraft !== undefined) {\n query.where.published_at = options.isDraft ? { $eq: null } : { $ne: null };\n }\n\n if (id) {\n query.where.id = { $ne: id };\n }\n\n if (options?.locale) {\n query.where.locale = options.locale;\n }\n\n const parentModelQueryResult = await strapi.db\n .query(componentContext.parentContent.model.uid)\n .findMany(query);\n\n // Filter the results to only include results that have components in the\n // dynamic zone that match the target component type.\n const filteredResults = parentModelQueryResult\n .filter((result) => Array.isArray(result[startOfPath]) && result[startOfPath].length)\n .flatMap((result) => result[startOfPath])\n .filter((dynamicZoneComponent) => dynamicZoneComponent.__component === targetComponentUID);\n\n if (filteredResults.length >= 1) {\n return false;\n }\n\n return true;\n };\n\n return validator.test('unique', 'This attribute must be unique', async (value) => {\n /**\n * If the attribute value is `null` or an empty string we want to skip the unique validation.\n * Otherwise it'll only accept a single entry with that value in the database.\n */\n if (_.isNil(value) || value === '') {\n return true;\n }\n\n /**\n * We don't validate any unique constraint for draft entries.\n */\n if (options.isDraft) {\n return true;\n }\n\n const hasPathToComponent = componentContext && componentContext.pathToComponent.length > 0;\n if (hasPathToComponent) {\n // Detect if we are validating within a dynamiczone by checking if the first\n // path is a dynamiczone attribute in the parent content type.\n const startOfPath = componentContext.pathToComponent[0];\n const testingDZ =\n componentContext.parentContent.model.attributes[startOfPath].type === 'dynamiczone';\n\n if (testingDZ) {\n return validateUniqueFieldWithinDynamicZoneComponent(startOfPath);\n }\n\n return validateUniqueFieldWithinComponent(value);\n }\n\n /**\n * Here we are validating a scalar unique field from the content type's schema.\n * We construct a query to check if the value is unique\n * considering dimensions (e.g. locale, publication state) and excluding the current entity by its ID if available.\n */\n const scalarAttributeWhere: Record<string, any> = {\n [updatedAttribute.name]: value,\n publishedAt: { $notNull: true },\n };\n\n if (options?.locale) {\n scalarAttributeWhere.locale = options.locale;\n }\n\n if (entity?.id) {\n scalarAttributeWhere.id = { $ne: entity.id };\n }\n\n // The validation should pass if there is no other record found from the query\n return !(await strapi.db\n .query(model.uid)\n .findOne({ where: scalarAttributeWhere, select: ['id'] }));\n });\n};\n\n/* Type validators */\n\nconst stringValidator = (\n metas: ValidatorMetas<\n | Schema.Attribute.String\n | Schema.Attribute.Text\n | Schema.Attribute.RichText\n | Schema.Attribute.Password\n | Schema.Attribute.Email\n | Schema.Attribute.UID\n >,\n options: ValidatorOptions\n) => {\n let schema = yup.string().transform((val, originalVal) => originalVal);\n\n schema = addMinLengthValidator(schema, metas, options);\n schema = addMaxLengthValidator(schema, metas);\n schema = addStringRegexValidator(schema, metas, options);\n schema = addUniqueValidator(schema, metas, options);\n\n return schema;\n};\n\nexport const emailValidator = (\n metas: ValidatorMetas<Schema.Attribute.Email>,\n options: ValidatorOptions\n) => {\n const schema = stringValidator(metas, options);\n\n if (options.isDraft) {\n return schema;\n }\n\n return schema.email().min(\n 1,\n // eslint-disable-next-line no-template-curly-in-string\n '${path} cannot be empty'\n );\n};\n\nexport const uidValidator = (\n metas: ValidatorMetas<Schema.Attribute.UID>,\n options: ValidatorOptions\n) => {\n const schema = stringValidator(metas, options);\n\n if (options.isDraft) {\n return schema;\n }\n\n if (metas.attr.regex) {\n return schema.matches(new RegExp(metas.attr.regex));\n }\n\n return schema.matches(/^[A-Za-z0-9-_.~]*$/);\n};\n\nexport const enumerationValidator = ({ attr }: { attr: Schema.Attribute.Enumeration }) => {\n return yup\n .string()\n .oneOf((Array.isArray(attr.enum) ? attr.enum : [attr.enum]).concat(null as any));\n};\n\nexport const integerValidator = (\n metas: ValidatorMetas<Schema.Attribute.Integer | Schema.Attribute.BigInteger>,\n options: ValidatorOptions\n) => {\n let schema = yup.number().integer();\n\n schema = addMinIntegerValidator(schema, metas, options);\n schema = addMaxIntegerValidator(schema, metas);\n schema = addUniqueValidator(schema, metas, options);\n\n return schema;\n};\n\nexport const floatValidator = (\n metas: ValidatorMetas<Schema.Attribute.Decimal | Schema.Attribute.Float>,\n options: ValidatorOptions\n) => {\n let schema = yup.number();\n\n schema = addMinFloatValidator(schema, metas, options);\n schema = addMaxFloatValidator(schema, metas);\n schema = addUniqueValidator(schema, metas, options);\n\n return schema;\n};\n\nexport const bigintegerValidator = (\n metas: ValidatorMetas<Schema.Attribute.BigInteger>,\n options: ValidatorOptions\n) => {\n const schema = yup.mixed();\n return addUniqueValidator(schema, metas, options);\n};\n\nexport const datesValidator = (\n metas: ValidatorMetas<\n | Schema.Attribute.Date\n | Schema.Attribute.DateTime\n | Schema.Attribute.Time\n | Schema.Attribute.Timestamp\n >,\n options: ValidatorOptions\n) => {\n const schema = yup.mixed();\n return addUniqueValidator(schema, metas, options);\n};\n\nexport const Validators = {\n string: stringValidator,\n text: stringValidator,\n richtext: stringValidator,\n password: stringValidator,\n email: emailValidator,\n enumeration: enumerationValidator,\n boolean: () => yup.boolean(),\n uid: uidValidator,\n json: () => yup.mixed(),\n integer: integerValidator,\n biginteger: bigintegerValidator,\n float: floatValidator,\n decimal: floatValidator,\n date: datesValidator,\n time: datesValidator,\n datetime: datesValidator,\n timestamp: datesValidator,\n blocks: blocksValidator,\n};\n"],"names":["addMinLengthValidator","validator","attr","isDraft","minLength","_","isInteger","min","addMaxLengthValidator","maxLength","max","addMinIntegerValidator","isNumber","toInteger","addMaxIntegerValidator","addMinFloatValidator","addMaxFloatValidator","addStringRegexValidator","isUndefined","regex","matches","RegExp","excludeEmptyString","required","addUniqueValidator","model","updatedAttribute","entity","componentContext","options","type","unique","validateUniqueFieldWithinComponent","value","hasRepeatableData","repeatableData","length","name","updatedName","updatedValue","pathToCheck","pathToComponent","slice","join","values","map","item","split","reduce","acc","key","isUpdatedAttributeRepeatedInThisEntity","filter","parentModel","parentOptions","id","excludeId","parentContent","whereConditions","isParentDraft","publishedAt","$notNull","locale","Number","isNaN","$ne","queryUid","uid","queryWhere","reduceRight","strapi","db","query","findOne","where","validateUniqueFieldWithinDynamicZoneComponent","startOfPath","targetComponentUID","countOfValueInThisEntity","fullDynamicZoneContent","component","__component","select","populate","on","undefined","published_at","$eq","parentModelQueryResult","findMany","filteredResults","result","Array","isArray","flatMap","dynamicZoneComponent","test","isNil","hasPathToComponent","testingDZ","attributes","scalarAttributeWhere","stringValidator","metas","schema","yup","string","transform","val","originalVal","emailValidator","email","uidValidator","enumerationValidator","oneOf","enum","concat","integerValidator","number","integer","floatValidator","bigintegerValidator","mixed","datesValidator","Validators","text","richtext","password","enumeration","boolean","json","biginteger","float","decimal","date","time","datetime","timestamp","blocks","blocksValidator"],"mappings":"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"}
|
package/dist/services/errors.js
CHANGED
@@ -1,75 +1,75 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
const createError__default = /* @__PURE__ */ _interopDefault(createError);
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var createError = require('http-errors');
|
4
|
+
var strapiUtils = require('@strapi/utils');
|
5
|
+
|
7
6
|
const mapErrorsAndStatus = [
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
7
|
+
{
|
8
|
+
classError: strapiUtils.errors.UnauthorizedError,
|
9
|
+
status: 401
|
10
|
+
},
|
11
|
+
{
|
12
|
+
classError: strapiUtils.errors.ForbiddenError,
|
13
|
+
status: 403
|
14
|
+
},
|
15
|
+
{
|
16
|
+
classError: strapiUtils.errors.NotFoundError,
|
17
|
+
status: 404
|
18
|
+
},
|
19
|
+
{
|
20
|
+
classError: strapiUtils.errors.PayloadTooLargeError,
|
21
|
+
status: 413
|
22
|
+
},
|
23
|
+
{
|
24
|
+
classError: strapiUtils.errors.RateLimitError,
|
25
|
+
status: 429
|
26
|
+
},
|
27
|
+
{
|
28
|
+
classError: strapiUtils.errors.NotImplementedError,
|
29
|
+
status: 501
|
30
|
+
}
|
32
31
|
];
|
33
|
-
const formatApplicationError = (error)
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
status,
|
38
|
-
body: {
|
39
|
-
data: null,
|
40
|
-
error: {
|
32
|
+
const formatApplicationError = (error)=>{
|
33
|
+
const errorAndStatus = mapErrorsAndStatus.find((pair)=>error instanceof pair.classError);
|
34
|
+
const status = errorAndStatus ? errorAndStatus.status : 400;
|
35
|
+
return {
|
41
36
|
status,
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
37
|
+
body: {
|
38
|
+
data: null,
|
39
|
+
error: {
|
40
|
+
status,
|
41
|
+
name: error.name,
|
42
|
+
message: error.message,
|
43
|
+
details: error.details
|
44
|
+
}
|
45
|
+
}
|
46
|
+
};
|
48
47
|
};
|
49
|
-
const formatHttpError = (error)
|
50
|
-
|
51
|
-
status: error.status,
|
52
|
-
body: {
|
53
|
-
data: null,
|
54
|
-
error: {
|
48
|
+
const formatHttpError = (error)=>{
|
49
|
+
return {
|
55
50
|
status: error.status,
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
51
|
+
body: {
|
52
|
+
data: null,
|
53
|
+
error: {
|
54
|
+
status: error.status,
|
55
|
+
name: error.name,
|
56
|
+
message: error.message,
|
57
|
+
details: error.details
|
58
|
+
}
|
59
|
+
}
|
60
|
+
};
|
62
61
|
};
|
63
|
-
const formatInternalError = (error)
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
62
|
+
const formatInternalError = (error)=>{
|
63
|
+
if (!(error instanceof Error)) {
|
64
|
+
return formatHttpError(createError(500));
|
65
|
+
}
|
66
|
+
const httpError = createError(error);
|
67
|
+
if (httpError.expose) {
|
68
|
+
return formatHttpError(httpError);
|
69
|
+
}
|
70
|
+
return formatHttpError(createError(httpError.status || 500));
|
72
71
|
};
|
72
|
+
|
73
73
|
exports.formatApplicationError = formatApplicationError;
|
74
74
|
exports.formatHttpError = formatHttpError;
|
75
75
|
exports.formatInternalError = formatInternalError;
|