@strapi/core 0.0.0-experimental.fc1ac2acd58c8a5a858679956b6d102ac5ee4011 → 0.0.0-experimental.fca58d9b01ba89012d84a58a20556a6fd716cb92
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 +436 -431
- package/dist/Strapi.js.map +1 -1
- package/dist/Strapi.mjs +427 -442
- 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.map +1 -1
- package/dist/configuration/urls.js +74 -61
- package/dist/configuration/urls.js.map +1 -1
- package/dist/configuration/urls.mjs +73 -62
- package/dist/configuration/urls.mjs.map +1 -1
- 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 -48
- package/dist/core-api/controller/index.js.map +1 -1
- package/dist/core-api/controller/index.mjs +62 -49
- 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 +2 -2
- package/dist/core-api/controller/transform.d.ts.map +1 -1
- package/dist/core-api/controller/transform.js +72 -66
- package/dist/core-api/controller/transform.js.map +1 -1
- package/dist/core-api/controller/transform.mjs +71 -67
- 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 +4 -4
- package/dist/core-api/service/single-type.d.ts.map +1 -1
- package/dist/core-api/service/single-type.js +43 -32
- package/dist/core-api/service/single-type.js.map +1 -1
- package/dist/core-api/service/single-type.mjs +42 -34
- 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 -100
- package/dist/domain/content-type/index.js.map +1 -1
- package/dist/domain/content-type/index.mjs +94 -100
- package/dist/domain/content-type/index.mjs.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 -99
- package/dist/domain/module/index.js.map +1 -1
- package/dist/domain/module/index.mjs +108 -98
- 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 +5 -2
- package/dist/ee/index.d.ts.map +1 -1
- package/dist/ee/index.js +171 -132
- package/dist/ee/index.js.map +1 -1
- package/dist/ee/index.mjs +170 -134
- package/dist/ee/index.mjs.map +1 -1
- package/dist/ee/license.d.ts +2 -2
- package/dist/ee/license.d.ts.map +1 -1
- package/dist/ee/license.js +100 -74
- package/dist/ee/license.js.map +1 -1
- package/dist/ee/license.mjs +99 -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 +2 -2
- package/dist/migrations/draft-publish.d.ts.map +1 -1
- package/dist/migrations/draft-publish.js +59 -49
- package/dist/migrations/draft-publish.js.map +1 -1
- package/dist/migrations/draft-publish.mjs +58 -51
- package/dist/migrations/draft-publish.mjs.map +1 -1
- 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 +182 -0
- package/dist/package.json.js.map +1 -0
- package/dist/package.json.mjs +159 -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.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 +7 -7
- package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
- package/dist/services/document-service/draft-and-publish.js +94 -54
- package/dist/services/document-service/draft-and-publish.js.map +1 -1
- package/dist/services/document-service/draft-and-publish.mjs +87 -54
- 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 +113 -0
- package/dist/services/document-service/entries.js.map +1 -0
- package/dist/services/document-service/entries.mjs +111 -0
- package/dist/services/document-service/entries.mjs.map +1 -0
- package/dist/services/document-service/events.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 +5 -5
- package/dist/services/document-service/internationalization.d.ts.map +1 -1
- package/dist/services/document-service/internationalization.js +66 -41
- package/dist/services/document-service/internationalization.js.map +1 -1
- package/dist/services/document-service/internationalization.mjs +61 -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.map +1 -1
- package/dist/services/document-service/repository.js +353 -293
- package/dist/services/document-service/repository.js.map +1 -1
- package/dist/services/document-service/repository.mjs +352 -294
- package/dist/services/document-service/repository.mjs.map +1 -1
- 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 +3 -3
- package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
- package/dist/services/document-service/transform/id-map.js +116 -69
- package/dist/services/document-service/transform/id-map.js.map +1 -1
- package/dist/services/document-service/transform/id-map.mjs +115 -70
- package/dist/services/document-service/transform/id-map.mjs.map +1 -1
- package/dist/services/document-service/transform/id-transform.d.ts +2 -2
- package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
- package/dist/services/document-service/transform/id-transform.js +38 -30
- package/dist/services/document-service/transform/id-transform.js.map +1 -1
- package/dist/services/document-service/transform/id-transform.mjs +36 -30
- package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
- package/dist/services/document-service/transform/populate.d.ts +2 -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 +75 -85
- 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 +74 -86
- 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 +8 -4
- 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 +103 -134
- 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 +102 -135
- 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 +3 -3
- package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
- package/dist/services/document-service/transform/relations/utils/dp.js +53 -22
- package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
- package/dist/services/document-service/transform/relations/utils/dp.mjs +52 -23
- package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -1
- 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 +6 -0
- package/dist/services/document-service/transform/relations/utils/types.d.ts.map +1 -1
- package/dist/services/document-service/transform/types.d.ts +3 -3
- 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 +362 -300
- package/dist/services/entity-validator/index.js.map +1 -1
- package/dist/services/entity-validator/index.mjs +358 -297
- package/dist/services/entity-validator/index.mjs.map +1 -1
- package/dist/services/entity-validator/validators.d.ts +36 -25
- package/dist/services/entity-validator/validators.d.ts.map +1 -1
- package/dist/services/entity-validator/validators.js +283 -105
- package/dist/services/entity-validator/validators.js.map +1 -1
- package/dist/services/entity-validator/validators.mjs +274 -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/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 +3 -3
- package/dist/utils/fetch.d.ts.map +1 -1
- package/dist/utils/fetch.js +24 -17
- package/dist/utils/fetch.js.map +1 -1
- package/dist/utils/fetch.mjs +23 -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 +377 -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 +43 -40
- package/dist/registries/config.d.ts +0 -4
- package/dist/registries/config.d.ts.map +0 -1
- package/dist/registries/config.js +0 -31
- package/dist/registries/config.js.map +0 -1
- package/dist/registries/config.mjs +0 -32
- package/dist/registries/config.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/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,69 +1,114 @@
|
|
1
|
-
import { defaultsDeep,
|
2
|
-
import helmet from
|
1
|
+
import { defaultsDeep, mergeWith } from 'lodash/fp';
|
2
|
+
import helmet from 'koa-helmet';
|
3
|
+
|
3
4
|
const defaults = {
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
directives: {
|
11
|
-
"connect-src": ["'self'", "https:"],
|
12
|
-
"img-src": ["'self'", "data:", "blob:", "https://market-assets.strapi.io"],
|
13
|
-
"media-src": ["'self'", "data:", "blob:"],
|
14
|
-
upgradeInsecureRequests: null
|
15
|
-
}
|
16
|
-
},
|
17
|
-
xssFilter: false,
|
18
|
-
hsts: {
|
19
|
-
maxAge: 31536e3,
|
20
|
-
includeSubDomains: true
|
21
|
-
},
|
22
|
-
frameguard: {
|
23
|
-
action: "sameorigin"
|
24
|
-
}
|
25
|
-
};
|
26
|
-
const security = (config, { strapi }) => (ctx, next) => {
|
27
|
-
let helmetConfig = defaultsDeep(defaults, config);
|
28
|
-
const specialPaths = ["/documentation"];
|
29
|
-
const directives = {
|
30
|
-
"script-src": ["'self'", "'unsafe-inline'", "cdn.jsdelivr.net"],
|
31
|
-
"img-src": ["'self'", "data:", "cdn.jsdelivr.net", "strapi.io"],
|
32
|
-
"manifest-src": [],
|
33
|
-
"frame-src": []
|
34
|
-
};
|
35
|
-
if (strapi.plugin("graphql")?.service("utils").playground.isEnabled()) {
|
36
|
-
const { config: gqlConfig } = strapi.plugin("graphql");
|
37
|
-
specialPaths.push(gqlConfig("endpoint"));
|
38
|
-
directives["script-src"].push(`https: 'unsafe-inline'`);
|
39
|
-
directives["img-src"].push(`'apollo-server-landing-page.cdn.apollographql.com'`);
|
40
|
-
directives["manifest-src"].push(`'self'`);
|
41
|
-
directives["manifest-src"].push("apollo-server-landing-page.cdn.apollographql.com");
|
42
|
-
directives["frame-src"].push(`'self'`);
|
43
|
-
directives["frame-src"].push("sandbox.embed.apollographql.com");
|
44
|
-
}
|
45
|
-
if (ctx.method === "GET" && specialPaths.some((str) => ctx.path.startsWith(str))) {
|
46
|
-
helmetConfig = merge(helmetConfig, {
|
47
|
-
crossOriginEmbedderPolicy: false,
|
48
|
-
// TODO: only use this for graphql playground
|
49
|
-
contentSecurityPolicy: {
|
50
|
-
directives
|
51
|
-
}
|
52
|
-
});
|
53
|
-
}
|
54
|
-
if (ctx.method === "GET" && ["/admin"].some((str) => ctx.path.startsWith(str))) {
|
55
|
-
helmetConfig = merge(helmetConfig, {
|
56
|
-
contentSecurityPolicy: {
|
5
|
+
crossOriginEmbedderPolicy: false,
|
6
|
+
crossOriginOpenerPolicy: false,
|
7
|
+
crossOriginResourcePolicy: false,
|
8
|
+
originAgentCluster: false,
|
9
|
+
contentSecurityPolicy: {
|
10
|
+
useDefaults: true,
|
57
11
|
directives: {
|
58
|
-
|
59
|
-
|
12
|
+
'connect-src': [
|
13
|
+
"'self'",
|
14
|
+
'https:'
|
15
|
+
],
|
16
|
+
'img-src': [
|
17
|
+
"'self'",
|
18
|
+
'data:',
|
19
|
+
'blob:',
|
20
|
+
'https://market-assets.strapi.io'
|
21
|
+
],
|
22
|
+
'media-src': [
|
23
|
+
"'self'",
|
24
|
+
'data:',
|
25
|
+
'blob:'
|
26
|
+
],
|
27
|
+
upgradeInsecureRequests: null
|
60
28
|
}
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
29
|
+
},
|
30
|
+
xssFilter: false,
|
31
|
+
hsts: {
|
32
|
+
maxAge: 31536000,
|
33
|
+
includeSubDomains: true
|
34
|
+
},
|
35
|
+
frameguard: {
|
36
|
+
action: 'sameorigin'
|
37
|
+
}
|
65
38
|
};
|
66
|
-
|
67
|
-
|
39
|
+
const mergeConfig = (existingConfig, newConfig)=>{
|
40
|
+
return mergeWith((obj, src)=>Array.isArray(obj) && Array.isArray(src) ? obj.concat(src) : undefined, existingConfig, newConfig);
|
68
41
|
};
|
42
|
+
const security = (config, { strapi })=>(ctx, next)=>{
|
43
|
+
let helmetConfig = defaultsDeep(defaults, config);
|
44
|
+
const specialPaths = [
|
45
|
+
'/documentation'
|
46
|
+
];
|
47
|
+
const directives = {
|
48
|
+
'script-src': [
|
49
|
+
"'self'",
|
50
|
+
"'unsafe-inline'",
|
51
|
+
'cdn.jsdelivr.net'
|
52
|
+
],
|
53
|
+
'img-src': [
|
54
|
+
"'self'",
|
55
|
+
'data:',
|
56
|
+
'cdn.jsdelivr.net',
|
57
|
+
'strapi.io'
|
58
|
+
],
|
59
|
+
'manifest-src': [],
|
60
|
+
'frame-src': []
|
61
|
+
};
|
62
|
+
// if apollo graphql playground is enabled, add exceptions for it
|
63
|
+
if (strapi.plugin('graphql')?.service('utils').playground.isEnabled()) {
|
64
|
+
const { config: gqlConfig } = strapi.plugin('graphql');
|
65
|
+
specialPaths.push(gqlConfig('endpoint'));
|
66
|
+
directives['script-src'].push(`https: 'unsafe-inline'`);
|
67
|
+
directives['img-src'].push(`'apollo-server-landing-page.cdn.apollographql.com'`);
|
68
|
+
directives['manifest-src'].push(`'self'`);
|
69
|
+
directives['manifest-src'].push('apollo-server-landing-page.cdn.apollographql.com');
|
70
|
+
directives['frame-src'].push(`'self'`);
|
71
|
+
directives['frame-src'].push('sandbox.embed.apollographql.com');
|
72
|
+
}
|
73
|
+
// TODO: we shouldn't combine playground exceptions with documentation for all routes, we should first check the path and then return exceptions specific to that
|
74
|
+
if (ctx.method === 'GET' && specialPaths.some((str)=>ctx.path.startsWith(str))) {
|
75
|
+
helmetConfig = mergeConfig(helmetConfig, {
|
76
|
+
crossOriginEmbedderPolicy: false,
|
77
|
+
contentSecurityPolicy: {
|
78
|
+
directives
|
79
|
+
}
|
80
|
+
});
|
81
|
+
}
|
82
|
+
/**
|
83
|
+
* These are for vite's watch mode so it can accurately
|
84
|
+
* connect to the HMR websocket & reconnect on failure
|
85
|
+
* or when the server restarts.
|
86
|
+
*
|
87
|
+
* It only applies in development, and only on GET requests
|
88
|
+
* that are part of the admin route.
|
89
|
+
*/ if ([
|
90
|
+
'development',
|
91
|
+
'test'
|
92
|
+
].includes(process.env.NODE_ENV ?? '') && ctx.method === 'GET' && ctx.path.startsWith(strapi.config.get('admin.path'))) {
|
93
|
+
helmetConfig = mergeConfig(helmetConfig, {
|
94
|
+
contentSecurityPolicy: {
|
95
|
+
directives: {
|
96
|
+
'script-src': [
|
97
|
+
"'self'",
|
98
|
+
"'unsafe-inline'"
|
99
|
+
],
|
100
|
+
'connect-src': [
|
101
|
+
"'self'",
|
102
|
+
'http:',
|
103
|
+
'https:',
|
104
|
+
'ws:'
|
105
|
+
]
|
106
|
+
}
|
107
|
+
}
|
108
|
+
});
|
109
|
+
}
|
110
|
+
return helmet(helmetConfig)(ctx, next);
|
111
|
+
};
|
112
|
+
|
113
|
+
export { security };
|
69
114
|
//# sourceMappingURL=security.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"security.mjs","sources":["../../src/middlewares/security.ts"],"sourcesContent":["import { defaultsDeep,
|
1
|
+
{"version":3,"file":"security.mjs","sources":["../../src/middlewares/security.ts"],"sourcesContent":["import { defaultsDeep, mergeWith } from 'lodash/fp';\nimport helmet, { KoaHelmet } from 'koa-helmet';\n\nimport type { Core } from '@strapi/types';\n\nexport type Config = NonNullable<Parameters<KoaHelmet>[0]>;\n\nconst defaults: Config = {\n crossOriginEmbedderPolicy: false,\n crossOriginOpenerPolicy: false,\n crossOriginResourcePolicy: false,\n originAgentCluster: false,\n contentSecurityPolicy: {\n useDefaults: true,\n directives: {\n 'connect-src': [\"'self'\", 'https:'],\n 'img-src': [\"'self'\", 'data:', 'blob:', 'https://market-assets.strapi.io'],\n 'media-src': [\"'self'\", 'data:', 'blob:'],\n upgradeInsecureRequests: null,\n },\n },\n xssFilter: false,\n hsts: {\n maxAge: 31536000,\n includeSubDomains: true,\n },\n frameguard: {\n action: 'sameorigin',\n },\n};\n\nconst mergeConfig = (existingConfig: Config, newConfig: Config) => {\n return mergeWith(\n (obj, src) => (Array.isArray(obj) && Array.isArray(src) ? obj.concat(src) : undefined),\n existingConfig,\n newConfig\n );\n};\n\nexport const security: Core.MiddlewareFactory<Config> =\n (config, { strapi }) =>\n (ctx, next) => {\n let helmetConfig: Config = defaultsDeep(defaults, config);\n\n const specialPaths = ['/documentation'];\n\n const directives: {\n 'script-src': string[];\n 'img-src': string[];\n 'manifest-src': string[];\n 'frame-src': string[];\n } = {\n 'script-src': [\"'self'\", \"'unsafe-inline'\", 'cdn.jsdelivr.net'],\n 'img-src': [\"'self'\", 'data:', 'cdn.jsdelivr.net', 'strapi.io'],\n 'manifest-src': [],\n 'frame-src': [],\n };\n\n // if apollo graphql playground is enabled, add exceptions for it\n if (strapi.plugin('graphql')?.service('utils').playground.isEnabled()) {\n const { config: gqlConfig } = strapi.plugin('graphql');\n specialPaths.push(gqlConfig('endpoint'));\n\n directives['script-src'].push(`https: 'unsafe-inline'`);\n directives['img-src'].push(`'apollo-server-landing-page.cdn.apollographql.com'`);\n directives['manifest-src'].push(`'self'`);\n directives['manifest-src'].push('apollo-server-landing-page.cdn.apollographql.com');\n directives['frame-src'].push(`'self'`);\n directives['frame-src'].push('sandbox.embed.apollographql.com');\n }\n\n // TODO: we shouldn't combine playground exceptions with documentation for all routes, we should first check the path and then return exceptions specific to that\n if (ctx.method === 'GET' && specialPaths.some((str) => ctx.path.startsWith(str))) {\n helmetConfig = mergeConfig(helmetConfig, {\n crossOriginEmbedderPolicy: false, // TODO: only use this for graphql playground\n contentSecurityPolicy: {\n directives,\n },\n });\n }\n\n /**\n * These are for vite's watch mode so it can accurately\n * connect to the HMR websocket & reconnect on failure\n * or when the server restarts.\n *\n * It only applies in development, and only on GET requests\n * that are part of the admin route.\n */\n\n if (\n ['development', 'test'].includes(process.env.NODE_ENV ?? '') &&\n ctx.method === 'GET' &&\n ctx.path.startsWith(strapi.config.get('admin.path'))\n ) {\n helmetConfig = mergeConfig(helmetConfig, {\n contentSecurityPolicy: {\n directives: {\n 'script-src': [\"'self'\", \"'unsafe-inline'\"],\n 'connect-src': [\"'self'\", 'http:', 'https:', 'ws:'],\n },\n },\n });\n }\n\n return helmet(helmetConfig)(ctx, next);\n };\n"],"names":["defaults","crossOriginEmbedderPolicy","crossOriginOpenerPolicy","crossOriginResourcePolicy","originAgentCluster","contentSecurityPolicy","useDefaults","directives","upgradeInsecureRequests","xssFilter","hsts","maxAge","includeSubDomains","frameguard","action","mergeConfig","existingConfig","newConfig","mergeWith","obj","src","Array","isArray","concat","undefined","security","config","strapi","ctx","next","helmetConfig","defaultsDeep","specialPaths","plugin","service","playground","isEnabled","gqlConfig","push","method","some","str","path","startsWith","includes","process","env","NODE_ENV","get","helmet"],"mappings":"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"}
|
@@ -1,4 +1,4 @@
|
|
1
1
|
import koaSession from 'koa-session';
|
2
|
-
import type {
|
3
|
-
export declare const session:
|
2
|
+
import type { Core } from '@strapi/types';
|
3
|
+
export declare const session: Core.MiddlewareFactory<Partial<koaSession.opts>>;
|
4
4
|
//# sourceMappingURL=session.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/middlewares/session.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,EAAE,
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/middlewares/session.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAe1C,eAAO,MAAM,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAcpE,CAAC"}
|
@@ -1,30 +1,31 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
const koaSession__default = /* @__PURE__ */ _interopDefault(koaSession);
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var fp = require('lodash/fp');
|
4
|
+
var koaSession = require('koa-session');
|
5
|
+
|
7
6
|
const defaultConfig = {
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
7
|
+
key: 'koa.sess',
|
8
|
+
maxAge: 86400000,
|
9
|
+
autoCommit: true,
|
10
|
+
overwrite: true,
|
11
|
+
httpOnly: true,
|
12
|
+
signed: true,
|
13
|
+
rolling: false,
|
14
|
+
renew: false,
|
15
|
+
secure: process.env.NODE_ENV === 'production',
|
16
|
+
sameSite: undefined
|
18
17
|
};
|
19
|
-
const session = (userConfig, { strapi })
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
18
|
+
const session = (userConfig, { strapi })=>{
|
19
|
+
const { keys } = strapi.server.app;
|
20
|
+
if (!fp.isArray(keys) || fp.isEmpty(keys) || keys.some(fp.isEmpty)) {
|
21
|
+
throw new Error(`App keys are required. Please set app.keys in config/server.js (ex: keys: ['myKeyA', 'myKeyB'])`);
|
22
|
+
}
|
23
|
+
const config = {
|
24
|
+
...defaultConfig,
|
25
|
+
...userConfig
|
26
|
+
};
|
27
|
+
strapi.server.use(koaSession(config, strapi.server.app));
|
28
28
|
};
|
29
|
+
|
29
30
|
exports.session = session;
|
30
31
|
//# sourceMappingURL=session.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"session.js","sources":["../../src/middlewares/session.ts"],"sourcesContent":["import { isEmpty, isArray } from 'lodash/fp';\nimport koaSession from 'koa-session';\nimport type {
|
1
|
+
{"version":3,"file":"session.js","sources":["../../src/middlewares/session.ts"],"sourcesContent":["import { isEmpty, isArray } from 'lodash/fp';\nimport koaSession from 'koa-session';\nimport type { Core } from '@strapi/types';\n\nconst defaultConfig = {\n key: 'koa.sess',\n maxAge: 86400000,\n autoCommit: true,\n overwrite: true,\n httpOnly: true,\n signed: true,\n rolling: false,\n renew: false,\n secure: process.env.NODE_ENV === 'production',\n sameSite: undefined,\n};\n\nexport const session: Core.MiddlewareFactory<Partial<koaSession.opts>> = (\n userConfig,\n { strapi }\n) => {\n const { keys } = strapi.server.app;\n if (!isArray(keys) || isEmpty(keys) || keys.some(isEmpty)) {\n throw new Error(\n `App keys are required. Please set app.keys in config/server.js (ex: keys: ['myKeyA', 'myKeyB'])`\n );\n }\n\n const config: Partial<koaSession.opts> = { ...defaultConfig, ...userConfig };\n\n strapi.server.use(koaSession(config, strapi.server.app));\n};\n"],"names":["defaultConfig","key","maxAge","autoCommit","overwrite","httpOnly","signed","rolling","renew","secure","process","env","NODE_ENV","sameSite","undefined","session","userConfig","strapi","keys","server","app","isArray","isEmpty","some","Error","config","use","koaSession"],"mappings":";;;;;AAIA,MAAMA,aAAgB,GAAA;IACpBC,GAAK,EAAA,UAAA;IACLC,MAAQ,EAAA,QAAA;IACRC,UAAY,EAAA,IAAA;IACZC,SAAW,EAAA,IAAA;IACXC,QAAU,EAAA,IAAA;IACVC,MAAQ,EAAA,IAAA;IACRC,OAAS,EAAA,KAAA;IACTC,KAAO,EAAA,KAAA;AACPC,IAAAA,MAAAA,EAAQC,OAAQC,CAAAA,GAAG,CAACC,QAAQ,KAAK,YAAA;IACjCC,QAAUC,EAAAA;AACZ,CAAA;MAEaC,OAA4D,GAAA,CACvEC,UACA,EAAA,EAAEC,MAAM,EAAE,GAAA;AAEV,IAAA,MAAM,EAAEC,IAAI,EAAE,GAAGD,MAAOE,CAAAA,MAAM,CAACC,GAAG;IAClC,IAAI,CAACC,WAAQH,IAASI,CAAAA,IAAAA,UAAAA,CAAQJ,SAASA,IAAKK,CAAAA,IAAI,CAACD,UAAU,CAAA,EAAA;AACzD,QAAA,MAAM,IAAIE,KAAAA,CACR,CAAC,+FAA+F,CAAC,CAAA;AAErG;AAEA,IAAA,MAAMC,MAAmC,GAAA;AAAE,QAAA,GAAGzB,aAAa;AAAE,QAAA,GAAGgB;AAAW,KAAA;IAE3EC,MAAOE,CAAAA,MAAM,CAACO,GAAG,CAACC,WAAWF,MAAQR,EAAAA,MAAAA,CAAOE,MAAM,CAACC,GAAG,CAAA,CAAA;AACxD;;;;"}
|
@@ -1,28 +1,29 @@
|
|
1
|
-
import { isArray, isEmpty } from
|
2
|
-
import koaSession from
|
1
|
+
import { isArray, isEmpty } from 'lodash/fp';
|
2
|
+
import koaSession from 'koa-session';
|
3
|
+
|
3
4
|
const defaultConfig = {
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
5
|
+
key: 'koa.sess',
|
6
|
+
maxAge: 86400000,
|
7
|
+
autoCommit: true,
|
8
|
+
overwrite: true,
|
9
|
+
httpOnly: true,
|
10
|
+
signed: true,
|
11
|
+
rolling: false,
|
12
|
+
renew: false,
|
13
|
+
secure: process.env.NODE_ENV === 'production',
|
14
|
+
sameSite: undefined
|
14
15
|
};
|
15
|
-
const session = (userConfig, { strapi })
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
export {
|
26
|
-
session
|
16
|
+
const session = (userConfig, { strapi })=>{
|
17
|
+
const { keys } = strapi.server.app;
|
18
|
+
if (!isArray(keys) || isEmpty(keys) || keys.some(isEmpty)) {
|
19
|
+
throw new Error(`App keys are required. Please set app.keys in config/server.js (ex: keys: ['myKeyA', 'myKeyB'])`);
|
20
|
+
}
|
21
|
+
const config = {
|
22
|
+
...defaultConfig,
|
23
|
+
...userConfig
|
24
|
+
};
|
25
|
+
strapi.server.use(koaSession(config, strapi.server.app));
|
27
26
|
};
|
27
|
+
|
28
|
+
export { session };
|
28
29
|
//# sourceMappingURL=session.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"session.mjs","sources":["../../src/middlewares/session.ts"],"sourcesContent":["import { isEmpty, isArray } from 'lodash/fp';\nimport koaSession from 'koa-session';\nimport type {
|
1
|
+
{"version":3,"file":"session.mjs","sources":["../../src/middlewares/session.ts"],"sourcesContent":["import { isEmpty, isArray } from 'lodash/fp';\nimport koaSession from 'koa-session';\nimport type { Core } from '@strapi/types';\n\nconst defaultConfig = {\n key: 'koa.sess',\n maxAge: 86400000,\n autoCommit: true,\n overwrite: true,\n httpOnly: true,\n signed: true,\n rolling: false,\n renew: false,\n secure: process.env.NODE_ENV === 'production',\n sameSite: undefined,\n};\n\nexport const session: Core.MiddlewareFactory<Partial<koaSession.opts>> = (\n userConfig,\n { strapi }\n) => {\n const { keys } = strapi.server.app;\n if (!isArray(keys) || isEmpty(keys) || keys.some(isEmpty)) {\n throw new Error(\n `App keys are required. Please set app.keys in config/server.js (ex: keys: ['myKeyA', 'myKeyB'])`\n );\n }\n\n const config: Partial<koaSession.opts> = { ...defaultConfig, ...userConfig };\n\n strapi.server.use(koaSession(config, strapi.server.app));\n};\n"],"names":["defaultConfig","key","maxAge","autoCommit","overwrite","httpOnly","signed","rolling","renew","secure","process","env","NODE_ENV","sameSite","undefined","session","userConfig","strapi","keys","server","app","isArray","isEmpty","some","Error","config","use","koaSession"],"mappings":";;;AAIA,MAAMA,aAAgB,GAAA;IACpBC,GAAK,EAAA,UAAA;IACLC,MAAQ,EAAA,QAAA;IACRC,UAAY,EAAA,IAAA;IACZC,SAAW,EAAA,IAAA;IACXC,QAAU,EAAA,IAAA;IACVC,MAAQ,EAAA,IAAA;IACRC,OAAS,EAAA,KAAA;IACTC,KAAO,EAAA,KAAA;AACPC,IAAAA,MAAAA,EAAQC,OAAQC,CAAAA,GAAG,CAACC,QAAQ,KAAK,YAAA;IACjCC,QAAUC,EAAAA;AACZ,CAAA;MAEaC,OAA4D,GAAA,CACvEC,UACA,EAAA,EAAEC,MAAM,EAAE,GAAA;AAEV,IAAA,MAAM,EAAEC,IAAI,EAAE,GAAGD,MAAOE,CAAAA,MAAM,CAACC,GAAG;IAClC,IAAI,CAACC,QAAQH,IAASI,CAAAA,IAAAA,OAAAA,CAAQJ,SAASA,IAAKK,CAAAA,IAAI,CAACD,OAAU,CAAA,EAAA;AACzD,QAAA,MAAM,IAAIE,KAAAA,CACR,CAAC,+FAA+F,CAAC,CAAA;AAErG;AAEA,IAAA,MAAMC,MAAmC,GAAA;AAAE,QAAA,GAAGzB,aAAa;AAAE,QAAA,GAAGgB;AAAW,KAAA;IAE3EC,MAAOE,CAAAA,MAAM,CAACO,GAAG,CAACC,WAAWF,MAAQR,EAAAA,MAAAA,CAAOE,MAAM,CAACC,GAAG,CAAA,CAAA;AACxD;;;;"}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
/**
|
2
|
+
* This migration is responsible for creating the draft counterpart for all the entries that were in a published state.
|
3
|
+
*
|
4
|
+
* In v4, entries could either be in a draft or published state, but not both at the same time.
|
5
|
+
* In v5, we introduced the concept of document, and an entry can be in a draft or published state.
|
6
|
+
*
|
7
|
+
* This means the migration needs to create the draft counterpart if an entry was published.
|
8
|
+
*
|
9
|
+
* This migration performs the following steps:
|
10
|
+
* 1. Creates draft entries for all published entries, without it's components, dynamic zones or relations.
|
11
|
+
* 2. Using the document service, discard those same drafts to copy its relations.
|
12
|
+
*/
|
13
|
+
import type { Database, Migration } from '@strapi/database';
|
14
|
+
type DocumentVersion = {
|
15
|
+
documentId: string;
|
16
|
+
locale: string;
|
17
|
+
};
|
18
|
+
type Knex = Parameters<Migration['up']>[0];
|
19
|
+
/**
|
20
|
+
* Load a batch of versions to discard.
|
21
|
+
*
|
22
|
+
* Versions with only a draft version will be ignored.
|
23
|
+
* Only versions with a published version (which always have a draft version) will be discarded.
|
24
|
+
*/
|
25
|
+
export declare function getBatchToDiscard({ db, trx, uid, defaultBatchSize, }: {
|
26
|
+
db: Database;
|
27
|
+
trx: Knex;
|
28
|
+
uid: string;
|
29
|
+
defaultBatchSize?: number;
|
30
|
+
}): AsyncGenerator<DocumentVersion[], void, unknown>;
|
31
|
+
export declare const discardDocumentDrafts: Migration;
|
32
|
+
export {};
|
33
|
+
//# sourceMappingURL=5.0.0-discard-drafts.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"5.0.0-discard-drafts.d.ts","sourceRoot":"","sources":["../../../src/migrations/database/5.0.0-discard-drafts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI5D,KAAK,eAAe,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAC9D,KAAK,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAqF3C;;;;;GAKG;AACH,wBAAuB,iBAAiB,CAAC,EACvC,EAAE,EACF,GAAG,EACH,GAAG,EACH,gBAAuB,GACxB,EAAE;IACD,EAAE,EAAE,QAAQ,CAAC;IACb,GAAG,EAAE,IAAI,CAAC;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,oDAgCA;AA2DD,eAAO,MAAM,qBAAqB,EAAE,SAQnC,CAAC"}
|
@@ -0,0 +1,168 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var strapiUtils = require('@strapi/utils');
|
4
|
+
var index = require('../../services/document-service/index.js');
|
5
|
+
|
6
|
+
/**
|
7
|
+
* Check if the model has draft and publish enabled.
|
8
|
+
*/ const hasDraftAndPublish = async (trx, meta)=>{
|
9
|
+
const hasTable = await trx.schema.hasTable(meta.tableName);
|
10
|
+
if (!hasTable) {
|
11
|
+
return false;
|
12
|
+
}
|
13
|
+
const uid = meta.uid;
|
14
|
+
const model = strapi.getModel(uid);
|
15
|
+
const hasDP = strapiUtils.contentTypes.hasDraftAndPublish(model);
|
16
|
+
if (!hasDP) {
|
17
|
+
return false;
|
18
|
+
}
|
19
|
+
return true;
|
20
|
+
};
|
21
|
+
/**
|
22
|
+
* Copy all the published entries to draft entries, without it's components, dynamic zones or relations.
|
23
|
+
* This ensures all necessary draft's exist before copying it's relations.
|
24
|
+
*/ async function copyPublishedEntriesToDraft({ db, trx, uid }) {
|
25
|
+
// Extract all scalar attributes to use in the insert query
|
26
|
+
const meta = db.metadata.get(uid);
|
27
|
+
// Get scalar attributes that will be copied over the new draft
|
28
|
+
const scalarAttributes = Object.values(meta.attributes).reduce((acc, attribute)=>{
|
29
|
+
if ([
|
30
|
+
'id'
|
31
|
+
].includes(attribute.columnName)) {
|
32
|
+
return acc;
|
33
|
+
}
|
34
|
+
if (strapiUtils.contentTypes.isScalarAttribute(attribute)) {
|
35
|
+
acc.push(attribute.columnName);
|
36
|
+
}
|
37
|
+
return acc;
|
38
|
+
}, []);
|
39
|
+
/**
|
40
|
+
* Query to copy the published entries into draft entries.
|
41
|
+
*
|
42
|
+
* INSERT INTO tableName (columnName1, columnName2, columnName3, ...)
|
43
|
+
* SELECT columnName1, columnName2, columnName3, ...
|
44
|
+
* FROM tableName
|
45
|
+
*/ await trx// INSERT INTO tableName (columnName1, columnName2, columnName3, ...)
|
46
|
+
.into(trx.raw(`?? (${scalarAttributes.map(()=>`??`).join(', ')})`, [
|
47
|
+
meta.tableName,
|
48
|
+
...scalarAttributes
|
49
|
+
])).insert((subQb)=>{
|
50
|
+
// SELECT columnName1, columnName2, columnName3, ...
|
51
|
+
subQb.select(...scalarAttributes.map((att)=>{
|
52
|
+
// Override 'publishedAt' and 'updatedAt' attributes
|
53
|
+
if (att === 'published_at') {
|
54
|
+
return trx.raw('NULL as ??', 'published_at');
|
55
|
+
}
|
56
|
+
return att;
|
57
|
+
})).from(meta.tableName)// Only select entries that were published
|
58
|
+
.whereNotNull('published_at');
|
59
|
+
});
|
60
|
+
}
|
61
|
+
/**
|
62
|
+
* Load a batch of versions to discard.
|
63
|
+
*
|
64
|
+
* Versions with only a draft version will be ignored.
|
65
|
+
* Only versions with a published version (which always have a draft version) will be discarded.
|
66
|
+
*/ async function* getBatchToDiscard({ db, trx, uid, defaultBatchSize = 1000 }) {
|
67
|
+
const client = db.config.connection.client;
|
68
|
+
const isSQLite = typeof client === 'string' && [
|
69
|
+
'sqlite',
|
70
|
+
'sqlite3',
|
71
|
+
'better-sqlite3'
|
72
|
+
].includes(client);
|
73
|
+
// The SQLite documentation states that the maximum number of terms in a
|
74
|
+
// compound SELECT statement is 500 by default.
|
75
|
+
// See: https://www.sqlite.org/limits.html
|
76
|
+
// To ensure a successful migration, we limit the batch size to 500 for SQLite.
|
77
|
+
const batchSize = isSQLite ? Math.min(defaultBatchSize, 500) : defaultBatchSize;
|
78
|
+
let offset = 0;
|
79
|
+
let hasMore = true;
|
80
|
+
while(hasMore){
|
81
|
+
// Look for the published entries to discard
|
82
|
+
const batch = await db.queryBuilder(uid).select([
|
83
|
+
'id',
|
84
|
+
'documentId',
|
85
|
+
'locale'
|
86
|
+
]).where({
|
87
|
+
publishedAt: {
|
88
|
+
$ne: null
|
89
|
+
}
|
90
|
+
}).limit(batchSize).offset(offset).orderBy('id').transacting(trx).execute();
|
91
|
+
if (batch.length < batchSize) {
|
92
|
+
hasMore = false;
|
93
|
+
}
|
94
|
+
offset += batchSize;
|
95
|
+
yield batch;
|
96
|
+
}
|
97
|
+
}
|
98
|
+
/**
|
99
|
+
* 2 pass migration to create the draft entries for all the published entries.
|
100
|
+
* And then discard the drafts to copy the relations.
|
101
|
+
*/ const migrateUp = async (trx, db)=>{
|
102
|
+
const dpModels = [];
|
103
|
+
for (const meta of db.metadata.values()){
|
104
|
+
const hasDP = await hasDraftAndPublish(trx, meta);
|
105
|
+
if (hasDP) {
|
106
|
+
dpModels.push(meta);
|
107
|
+
}
|
108
|
+
}
|
109
|
+
/**
|
110
|
+
* Create plain draft entries for all the entries that were published.
|
111
|
+
*/ for (const model of dpModels){
|
112
|
+
await copyPublishedEntriesToDraft({
|
113
|
+
db,
|
114
|
+
trx,
|
115
|
+
uid: model.uid
|
116
|
+
});
|
117
|
+
}
|
118
|
+
/**
|
119
|
+
* Discard the drafts will copy the relations from the published entries to the newly created drafts.
|
120
|
+
*
|
121
|
+
* Load a batch of entries (batched to prevent loading millions of rows at once ),
|
122
|
+
* and discard them using the document service.
|
123
|
+
*
|
124
|
+
* NOTE: This is using a custom document service without any validations,
|
125
|
+
* to prevent the migration from failing if users already had invalid data in V4.
|
126
|
+
* E.g. @see https://github.com/strapi/strapi/issues/21583
|
127
|
+
*/ const documentService = index.createDocumentService(strapi, {
|
128
|
+
async validateEntityCreation (_, data) {
|
129
|
+
return data;
|
130
|
+
},
|
131
|
+
async validateEntityUpdate (_, data) {
|
132
|
+
// Data can be partially empty on partial updates
|
133
|
+
// This migration doesn't trigger any update (or partial update),
|
134
|
+
// so it's safe to return the data as is.
|
135
|
+
return data;
|
136
|
+
}
|
137
|
+
});
|
138
|
+
for (const model of dpModels){
|
139
|
+
const discardDraft = async (entry)=>documentService(model.uid).discardDraft({
|
140
|
+
documentId: entry.documentId,
|
141
|
+
locale: entry.locale
|
142
|
+
});
|
143
|
+
for await (const batch of getBatchToDiscard({
|
144
|
+
db,
|
145
|
+
trx,
|
146
|
+
uid: model.uid
|
147
|
+
})){
|
148
|
+
// NOTE: concurrency had to be disabled to prevent a race condition with self-references
|
149
|
+
// TODO: improve performance in a safe way
|
150
|
+
await strapiUtils.async.map(batch, discardDraft, {
|
151
|
+
concurrency: 1
|
152
|
+
});
|
153
|
+
}
|
154
|
+
}
|
155
|
+
};
|
156
|
+
const discardDocumentDrafts = {
|
157
|
+
name: 'core::5.0.0-discard-drafts',
|
158
|
+
async up (trx, db) {
|
159
|
+
await migrateUp(trx, db);
|
160
|
+
},
|
161
|
+
async down () {
|
162
|
+
throw new Error('not implemented');
|
163
|
+
}
|
164
|
+
};
|
165
|
+
|
166
|
+
exports.discardDocumentDrafts = discardDocumentDrafts;
|
167
|
+
exports.getBatchToDiscard = getBatchToDiscard;
|
168
|
+
//# sourceMappingURL=5.0.0-discard-drafts.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"5.0.0-discard-drafts.js","sources":["../../../src/migrations/database/5.0.0-discard-drafts.ts"],"sourcesContent":["/**\n * This migration is responsible for creating the draft counterpart for all the entries that were in a published state.\n *\n * In v4, entries could either be in a draft or published state, but not both at the same time.\n * In v5, we introduced the concept of document, and an entry can be in a draft or published state.\n *\n * This means the migration needs to create the draft counterpart if an entry was published.\n *\n * This migration performs the following steps:\n * 1. Creates draft entries for all published entries, without it's components, dynamic zones or relations.\n * 2. Using the document service, discard those same drafts to copy its relations.\n */\n\n/* eslint-disable no-continue */\nimport type { UID } from '@strapi/types';\nimport type { Database, Migration } from '@strapi/database';\nimport { async, contentTypes } from '@strapi/utils';\nimport { createDocumentService } from '../../services/document-service';\n\ntype DocumentVersion = { documentId: string; locale: string };\ntype Knex = Parameters<Migration['up']>[0];\n\n/**\n * Check if the model has draft and publish enabled.\n */\nconst hasDraftAndPublish = async (trx: Knex, meta: any) => {\n const hasTable = await trx.schema.hasTable(meta.tableName);\n\n if (!hasTable) {\n return false;\n }\n\n const uid = meta.uid as UID.ContentType;\n const model = strapi.getModel(uid);\n const hasDP = contentTypes.hasDraftAndPublish(model);\n if (!hasDP) {\n return false;\n }\n\n return true;\n};\n\n/**\n * Copy all the published entries to draft entries, without it's components, dynamic zones or relations.\n * This ensures all necessary draft's exist before copying it's relations.\n */\nasync function copyPublishedEntriesToDraft({\n db,\n trx,\n uid,\n}: {\n db: Database;\n trx: Knex;\n uid: string;\n}) {\n // Extract all scalar attributes to use in the insert query\n const meta = db.metadata.get(uid);\n\n // Get scalar attributes that will be copied over the new draft\n const scalarAttributes = Object.values(meta.attributes).reduce((acc, attribute: any) => {\n if (['id'].includes(attribute.columnName)) {\n return acc;\n }\n\n if (contentTypes.isScalarAttribute(attribute)) {\n acc.push(attribute.columnName);\n }\n\n return acc;\n }, [] as string[]);\n\n /**\n * Query to copy the published entries into draft entries.\n *\n * INSERT INTO tableName (columnName1, columnName2, columnName3, ...)\n * SELECT columnName1, columnName2, columnName3, ...\n * FROM tableName\n */\n await trx\n // INSERT INTO tableName (columnName1, columnName2, columnName3, ...)\n .into(\n trx.raw(`?? (${scalarAttributes.map(() => `??`).join(', ')})`, [\n meta.tableName,\n ...scalarAttributes,\n ])\n )\n .insert((subQb: typeof trx) => {\n // SELECT columnName1, columnName2, columnName3, ...\n subQb\n .select(\n ...scalarAttributes.map((att: string) => {\n // Override 'publishedAt' and 'updatedAt' attributes\n if (att === 'published_at') {\n return trx.raw('NULL as ??', 'published_at');\n }\n\n return att;\n })\n )\n .from(meta.tableName)\n // Only select entries that were published\n .whereNotNull('published_at');\n });\n}\n\n/**\n * Load a batch of versions to discard.\n *\n * Versions with only a draft version will be ignored.\n * Only versions with a published version (which always have a draft version) will be discarded.\n */\nexport async function* getBatchToDiscard({\n db,\n trx,\n uid,\n defaultBatchSize = 1000,\n}: {\n db: Database;\n trx: Knex;\n uid: string;\n defaultBatchSize?: number;\n}) {\n const client = db.config.connection.client;\n const isSQLite =\n typeof client === 'string' && ['sqlite', 'sqlite3', 'better-sqlite3'].includes(client);\n\n // The SQLite documentation states that the maximum number of terms in a\n // compound SELECT statement is 500 by default.\n // See: https://www.sqlite.org/limits.html\n // To ensure a successful migration, we limit the batch size to 500 for SQLite.\n const batchSize = isSQLite ? Math.min(defaultBatchSize, 500) : defaultBatchSize;\n let offset = 0;\n let hasMore = true;\n\n while (hasMore) {\n // Look for the published entries to discard\n const batch: DocumentVersion[] = await db\n .queryBuilder(uid)\n .select(['id', 'documentId', 'locale'])\n .where({ publishedAt: { $ne: null } })\n .limit(batchSize)\n .offset(offset)\n .orderBy('id')\n .transacting(trx)\n .execute();\n\n if (batch.length < batchSize) {\n hasMore = false;\n }\n\n offset += batchSize;\n yield batch;\n }\n}\n\n/**\n * 2 pass migration to create the draft entries for all the published entries.\n * And then discard the drafts to copy the relations.\n */\nconst migrateUp = async (trx: Knex, db: Database) => {\n const dpModels = [];\n for (const meta of db.metadata.values()) {\n const hasDP = await hasDraftAndPublish(trx, meta);\n if (hasDP) {\n dpModels.push(meta);\n }\n }\n\n /**\n * Create plain draft entries for all the entries that were published.\n */\n for (const model of dpModels) {\n await copyPublishedEntriesToDraft({ db, trx, uid: model.uid });\n }\n\n /**\n * Discard the drafts will copy the relations from the published entries to the newly created drafts.\n *\n * Load a batch of entries (batched to prevent loading millions of rows at once ),\n * and discard them using the document service.\n *\n * NOTE: This is using a custom document service without any validations,\n * to prevent the migration from failing if users already had invalid data in V4.\n * E.g. @see https://github.com/strapi/strapi/issues/21583\n */\n const documentService = createDocumentService(strapi, {\n async validateEntityCreation(_, data) {\n return data;\n },\n async validateEntityUpdate(_, data) {\n // Data can be partially empty on partial updates\n // This migration doesn't trigger any update (or partial update),\n // so it's safe to return the data as is.\n return data as any;\n },\n });\n\n for (const model of dpModels) {\n const discardDraft = async (entry: DocumentVersion) =>\n documentService(model.uid as UID.ContentType).discardDraft({\n documentId: entry.documentId,\n locale: entry.locale,\n });\n\n for await (const batch of getBatchToDiscard({ db, trx, uid: model.uid })) {\n // NOTE: concurrency had to be disabled to prevent a race condition with self-references\n // TODO: improve performance in a safe way\n await async.map(batch, discardDraft, { concurrency: 1 });\n }\n }\n};\n\nexport const discardDocumentDrafts: Migration = {\n name: 'core::5.0.0-discard-drafts',\n async up(trx, db) {\n await migrateUp(trx, db);\n },\n async down() {\n throw new Error('not implemented');\n },\n};\n"],"names":["hasDraftAndPublish","trx","meta","hasTable","schema","tableName","uid","model","strapi","getModel","hasDP","contentTypes","copyPublishedEntriesToDraft","db","metadata","get","scalarAttributes","Object","values","attributes","reduce","acc","attribute","includes","columnName","isScalarAttribute","push","into","raw","map","join","insert","subQb","select","att","from","whereNotNull","getBatchToDiscard","defaultBatchSize","client","config","connection","isSQLite","batchSize","Math","min","offset","hasMore","batch","queryBuilder","where","publishedAt","$ne","limit","orderBy","transacting","execute","length","migrateUp","dpModels","documentService","createDocumentService","validateEntityCreation","_","data","validateEntityUpdate","discardDraft","entry","documentId","locale","async","concurrency","discardDocumentDrafts","name","up","down","Error"],"mappings":"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"}
|