@strapi/core 5.12.0 → 5.12.2
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/dist/Strapi.js +455 -0
- package/dist/Strapi.js.map +1 -0
- package/dist/Strapi.mjs +434 -0
- package/dist/Strapi.mjs.map +1 -0
- package/dist/compile.js +27 -0
- package/dist/compile.js.map +1 -0
- package/dist/compile.mjs +25 -0
- package/dist/compile.mjs.map +1 -0
- package/dist/configuration/config-loader.js +119 -0
- package/dist/configuration/config-loader.js.map +1 -0
- package/dist/configuration/config-loader.mjs +117 -0
- package/dist/configuration/config-loader.mjs.map +1 -0
- package/dist/configuration/get-dirs.js +33 -0
- package/dist/configuration/get-dirs.js.map +1 -0
- package/dist/configuration/get-dirs.mjs +31 -0
- package/dist/configuration/get-dirs.mjs.map +1 -0
- package/dist/configuration/index.js +91 -0
- package/dist/configuration/index.js.map +1 -0
- package/dist/configuration/index.mjs +89 -0
- package/dist/configuration/index.mjs.map +1 -0
- package/dist/configuration/urls.js +72 -0
- package/dist/configuration/urls.js.map +1 -0
- package/dist/configuration/urls.mjs +68 -0
- package/dist/configuration/urls.mjs.map +1 -0
- package/dist/container.js +34 -0
- package/dist/container.js.map +1 -0
- package/dist/container.mjs +32 -0
- package/dist/container.mjs.map +1 -0
- package/dist/core-api/controller/collection-type.js +85 -0
- package/dist/core-api/controller/collection-type.js.map +1 -0
- package/dist/core-api/controller/collection-type.mjs +83 -0
- package/dist/core-api/controller/collection-type.mjs.map +1 -0
- package/dist/core-api/controller/index.js +67 -0
- package/dist/core-api/controller/index.js.map +1 -0
- package/dist/core-api/controller/index.mjs +65 -0
- package/dist/core-api/controller/index.mjs.map +1 -0
- package/dist/core-api/controller/single-type.js +47 -0
- package/dist/core-api/controller/single-type.js.map +1 -0
- package/dist/core-api/controller/single-type.mjs +45 -0
- package/dist/core-api/controller/single-type.mjs.map +1 -0
- package/dist/core-api/controller/transform.js +85 -0
- package/dist/core-api/controller/transform.js.map +1 -0
- package/dist/core-api/controller/transform.mjs +83 -0
- package/dist/core-api/controller/transform.mjs.map +1 -0
- package/dist/core-api/routes/index.js +69 -0
- package/dist/core-api/routes/index.js.map +1 -0
- package/dist/core-api/routes/index.mjs +67 -0
- package/dist/core-api/routes/index.mjs.map +1 -0
- package/dist/core-api/service/collection-type.js +80 -0
- package/dist/core-api/service/collection-type.js.map +1 -0
- package/dist/core-api/service/collection-type.mjs +77 -0
- package/dist/core-api/service/collection-type.mjs.map +1 -0
- package/dist/core-api/service/core-service.js +13 -0
- package/dist/core-api/service/core-service.js.map +1 -0
- package/dist/core-api/service/core-service.mjs +11 -0
- package/dist/core-api/service/core-service.mjs.map +1 -0
- package/dist/core-api/service/index.js +16 -0
- package/dist/core-api/service/index.js.map +1 -0
- package/dist/core-api/service/index.mjs +14 -0
- package/dist/core-api/service/index.mjs.map +1 -0
- package/dist/core-api/service/pagination.js +78 -0
- package/dist/core-api/service/pagination.js.map +1 -0
- package/dist/core-api/service/pagination.mjs +73 -0
- package/dist/core-api/service/pagination.mjs.map +1 -0
- package/dist/core-api/service/single-type.js +50 -0
- package/dist/core-api/service/single-type.js.map +1 -0
- package/dist/core-api/service/single-type.mjs +47 -0
- package/dist/core-api/service/single-type.mjs.map +1 -0
- package/dist/domain/content-type/index.js +106 -0
- package/dist/domain/content-type/index.js.map +1 -0
- package/dist/domain/content-type/index.mjs +103 -0
- package/dist/domain/content-type/index.mjs.map +1 -0
- package/dist/domain/content-type/validator.js +92 -0
- package/dist/domain/content-type/validator.js.map +1 -0
- package/dist/domain/content-type/validator.mjs +90 -0
- package/dist/domain/content-type/validator.mjs.map +1 -0
- package/dist/domain/module/index.js +116 -0
- package/dist/domain/module/index.js.map +1 -0
- package/dist/domain/module/index.mjs +114 -0
- package/dist/domain/module/index.mjs.map +1 -0
- package/dist/domain/module/validation.js +30 -0
- package/dist/domain/module/validation.js.map +1 -0
- package/dist/domain/module/validation.mjs +28 -0
- package/dist/domain/module/validation.mjs.map +1 -0
- package/dist/ee/index.js +192 -0
- package/dist/ee/index.js.map +1 -0
- package/dist/ee/index.mjs +190 -0
- package/dist/ee/index.mjs.map +1 -0
- package/dist/ee/license.js +115 -0
- package/dist/ee/license.js.map +1 -0
- package/dist/ee/license.mjs +110 -0
- package/dist/ee/license.mjs.map +1 -0
- package/dist/factories.js +85 -0
- package/dist/factories.js.map +1 -0
- package/dist/factories.mjs +80 -0
- package/dist/factories.mjs.map +1 -0
- package/dist/index.js +19 -10105
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +17 -10082
- package/dist/index.mjs.map +1 -1
- package/dist/loaders/admin.d.ts.map +1 -1
- package/dist/loaders/admin.js +27 -0
- package/dist/loaders/admin.js.map +1 -0
- package/dist/loaders/admin.mjs +25 -0
- package/dist/loaders/admin.mjs.map +1 -0
- package/dist/loaders/apis.js +160 -0
- package/dist/loaders/apis.js.map +1 -0
- package/dist/loaders/apis.mjs +158 -0
- package/dist/loaders/apis.mjs.map +1 -0
- package/dist/loaders/components.js +37 -0
- package/dist/loaders/components.js.map +1 -0
- package/dist/loaders/components.mjs +35 -0
- package/dist/loaders/components.mjs.map +1 -0
- package/dist/loaders/index.js +26 -0
- package/dist/loaders/index.js.map +1 -0
- package/dist/loaders/index.mjs +24 -0
- package/dist/loaders/index.mjs.map +1 -0
- package/dist/loaders/middlewares.js +35 -0
- package/dist/loaders/middlewares.js.map +1 -0
- package/dist/loaders/middlewares.mjs +33 -0
- package/dist/loaders/middlewares.mjs.map +1 -0
- package/dist/loaders/plugins/get-enabled-plugins.js +136 -0
- package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -0
- package/dist/loaders/plugins/get-enabled-plugins.mjs +134 -0
- package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -0
- package/dist/loaders/plugins/get-user-plugins-config.js +28 -0
- package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -0
- package/dist/loaders/plugins/get-user-plugins-config.mjs +26 -0
- package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -0
- package/dist/loaders/plugins/index.js +155 -0
- package/dist/loaders/plugins/index.js.map +1 -0
- package/dist/loaders/plugins/index.mjs +134 -0
- package/dist/loaders/plugins/index.mjs.map +1 -0
- package/dist/loaders/policies.js +29 -0
- package/dist/loaders/policies.js.map +1 -0
- package/dist/loaders/policies.mjs +27 -0
- package/dist/loaders/policies.mjs.map +1 -0
- package/dist/loaders/sanitizers.js +12 -0
- package/dist/loaders/sanitizers.js.map +1 -0
- package/dist/loaders/sanitizers.mjs +10 -0
- package/dist/loaders/sanitizers.mjs.map +1 -0
- package/dist/loaders/src-index.js +41 -0
- package/dist/loaders/src-index.js.map +1 -0
- package/dist/loaders/src-index.mjs +39 -0
- package/dist/loaders/src-index.mjs.map +1 -0
- package/dist/loaders/validators.js +11 -0
- package/dist/loaders/validators.js.map +1 -0
- package/dist/loaders/validators.mjs +9 -0
- package/dist/loaders/validators.mjs.map +1 -0
- package/dist/middlewares/body.js +69 -0
- package/dist/middlewares/body.js.map +1 -0
- package/dist/middlewares/body.mjs +67 -0
- package/dist/middlewares/body.mjs.map +1 -0
- package/dist/middlewares/compression.js +8 -0
- package/dist/middlewares/compression.js.map +1 -0
- package/dist/middlewares/compression.mjs +6 -0
- package/dist/middlewares/compression.mjs.map +1 -0
- package/dist/middlewares/cors.js +64 -0
- package/dist/middlewares/cors.js.map +1 -0
- package/dist/middlewares/cors.mjs +62 -0
- package/dist/middlewares/cors.mjs.map +1 -0
- package/dist/middlewares/errors.js +35 -0
- package/dist/middlewares/errors.js.map +1 -0
- package/dist/middlewares/errors.mjs +33 -0
- package/dist/middlewares/errors.mjs.map +1 -0
- package/dist/middlewares/favicon.js +32 -0
- package/dist/middlewares/favicon.js.map +1 -0
- package/dist/middlewares/favicon.mjs +30 -0
- package/dist/middlewares/favicon.mjs.map +1 -0
- package/dist/middlewares/index.js +36 -0
- package/dist/middlewares/index.js.map +1 -0
- package/dist/middlewares/index.mjs +34 -0
- package/dist/middlewares/index.mjs.map +1 -0
- package/dist/middlewares/ip.js +8 -0
- package/dist/middlewares/ip.js.map +1 -0
- package/dist/middlewares/ip.mjs +6 -0
- package/dist/middlewares/ip.mjs.map +1 -0
- package/dist/middlewares/logger.js +13 -0
- package/dist/middlewares/logger.js.map +1 -0
- package/dist/middlewares/logger.mjs +11 -0
- package/dist/middlewares/logger.mjs.map +1 -0
- package/dist/middlewares/powered-by.js +18 -0
- package/dist/middlewares/powered-by.js.map +1 -0
- package/dist/middlewares/powered-by.mjs +16 -0
- package/dist/middlewares/powered-by.mjs.map +1 -0
- package/dist/middlewares/public.js +38 -0
- package/dist/middlewares/public.js.map +1 -0
- package/dist/middlewares/public.mjs +36 -0
- package/dist/middlewares/public.mjs.map +1 -0
- package/dist/middlewares/query.js +43 -0
- package/dist/middlewares/query.js.map +1 -0
- package/dist/middlewares/query.mjs +41 -0
- package/dist/middlewares/query.mjs.map +1 -0
- package/dist/middlewares/response-time.js +13 -0
- package/dist/middlewares/response-time.js.map +1 -0
- package/dist/middlewares/response-time.mjs +11 -0
- package/dist/middlewares/response-time.mjs.map +1 -0
- package/dist/middlewares/responses.js +17 -0
- package/dist/middlewares/responses.js.map +1 -0
- package/dist/middlewares/responses.mjs +15 -0
- package/dist/middlewares/responses.mjs.map +1 -0
- package/dist/middlewares/security.js +116 -0
- package/dist/middlewares/security.js.map +1 -0
- package/dist/middlewares/security.mjs +114 -0
- package/dist/middlewares/security.mjs.map +1 -0
- package/dist/middlewares/session.js +31 -0
- package/dist/middlewares/session.js.map +1 -0
- package/dist/middlewares/session.mjs +29 -0
- package/dist/middlewares/session.mjs.map +1 -0
- package/dist/migrations/database/5.0.0-discard-drafts.js +168 -0
- package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -0
- package/dist/migrations/database/5.0.0-discard-drafts.mjs +165 -0
- package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -0
- package/dist/migrations/draft-publish.js +69 -0
- package/dist/migrations/draft-publish.js.map +1 -0
- package/dist/migrations/draft-publish.mjs +66 -0
- package/dist/migrations/draft-publish.mjs.map +1 -0
- package/dist/migrations/i18n.js +71 -0
- package/dist/migrations/i18n.js.map +1 -0
- package/dist/migrations/i18n.mjs +68 -0
- package/dist/migrations/i18n.mjs.map +1 -0
- package/dist/migrations/index.js +29 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/index.mjs +26 -0
- package/dist/migrations/index.mjs.map +1 -0
- package/dist/package.json.js +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.js +30 -0
- package/dist/providers/admin.js.map +1 -0
- package/dist/providers/admin.mjs +28 -0
- package/dist/providers/admin.mjs.map +1 -0
- package/dist/providers/coreStore.js +16 -0
- package/dist/providers/coreStore.js.map +1 -0
- package/dist/providers/coreStore.mjs +14 -0
- package/dist/providers/coreStore.mjs.map +1 -0
- package/dist/providers/cron.js +23 -0
- package/dist/providers/cron.js.map +1 -0
- package/dist/providers/cron.mjs +21 -0
- package/dist/providers/cron.mjs.map +1 -0
- package/dist/providers/index.js +20 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/index.mjs +18 -0
- package/dist/providers/index.mjs.map +1 -0
- package/dist/providers/provider.js +6 -0
- package/dist/providers/provider.js.map +1 -0
- package/dist/providers/provider.mjs +4 -0
- package/dist/providers/provider.mjs.map +1 -0
- package/dist/providers/registries.js +40 -0
- package/dist/providers/registries.js.map +1 -0
- package/dist/providers/registries.mjs +38 -0
- package/dist/providers/registries.mjs.map +1 -0
- package/dist/providers/telemetry.js +22 -0
- package/dist/providers/telemetry.js.map +1 -0
- package/dist/providers/telemetry.mjs +20 -0
- package/dist/providers/telemetry.mjs.map +1 -0
- package/dist/providers/webhooks.js +32 -0
- package/dist/providers/webhooks.js.map +1 -0
- package/dist/providers/webhooks.mjs +30 -0
- package/dist/providers/webhooks.mjs.map +1 -0
- package/dist/registries/apis.js +26 -0
- package/dist/registries/apis.js.map +1 -0
- package/dist/registries/apis.mjs +24 -0
- package/dist/registries/apis.mjs.map +1 -0
- package/dist/registries/components.js +43 -0
- package/dist/registries/components.js.map +1 -0
- package/dist/registries/components.mjs +41 -0
- package/dist/registries/components.mjs.map +1 -0
- package/dist/registries/content-types.js +65 -0
- package/dist/registries/content-types.js.map +1 -0
- package/dist/registries/content-types.mjs +63 -0
- package/dist/registries/content-types.mjs.map +1 -0
- package/dist/registries/controllers.js +79 -0
- package/dist/registries/controllers.js.map +1 -0
- package/dist/registries/controllers.mjs +77 -0
- package/dist/registries/controllers.mjs.map +1 -0
- package/dist/registries/custom-fields.js +81 -0
- package/dist/registries/custom-fields.js.map +1 -0
- package/dist/registries/custom-fields.mjs +79 -0
- package/dist/registries/custom-fields.mjs.map +1 -0
- package/dist/registries/hooks.js +55 -0
- package/dist/registries/hooks.js.map +1 -0
- package/dist/registries/hooks.mjs +53 -0
- package/dist/registries/hooks.mjs.map +1 -0
- package/dist/registries/middlewares.js +58 -0
- package/dist/registries/middlewares.js.map +1 -0
- package/dist/registries/middlewares.mjs +56 -0
- package/dist/registries/middlewares.mjs.map +1 -0
- package/dist/registries/models.js +17 -0
- package/dist/registries/models.js.map +1 -0
- package/dist/registries/models.mjs +15 -0
- package/dist/registries/models.mjs.map +1 -0
- package/dist/registries/modules.js +42 -0
- package/dist/registries/modules.js.map +1 -0
- package/dist/registries/modules.mjs +40 -0
- package/dist/registries/modules.mjs.map +1 -0
- package/dist/registries/namespace.js +28 -0
- package/dist/registries/namespace.js.map +1 -0
- package/dist/registries/namespace.mjs +24 -0
- package/dist/registries/namespace.mjs.map +1 -0
- package/dist/registries/plugins.js +26 -0
- package/dist/registries/plugins.js.map +1 -0
- package/dist/registries/plugins.mjs +24 -0
- package/dist/registries/plugins.mjs.map +1 -0
- package/dist/registries/policies.js +115 -0
- package/dist/registries/policies.js.map +1 -0
- package/dist/registries/policies.mjs +113 -0
- package/dist/registries/policies.mjs.map +1 -0
- package/dist/registries/sanitizers.js +26 -0
- package/dist/registries/sanitizers.js.map +1 -0
- package/dist/registries/sanitizers.mjs +24 -0
- package/dist/registries/sanitizers.mjs.map +1 -0
- package/dist/registries/services.js +80 -0
- package/dist/registries/services.js.map +1 -0
- package/dist/registries/services.mjs +78 -0
- package/dist/registries/services.mjs.map +1 -0
- package/dist/registries/validators.js +26 -0
- package/dist/registries/validators.js.map +1 -0
- package/dist/registries/validators.mjs +24 -0
- package/dist/registries/validators.mjs.map +1 -0
- package/dist/services/auth/index.js +81 -0
- package/dist/services/auth/index.js.map +1 -0
- package/dist/services/auth/index.mjs +79 -0
- package/dist/services/auth/index.mjs.map +1 -0
- package/dist/services/config.js +51 -0
- package/dist/services/config.js.map +1 -0
- package/dist/services/config.mjs +49 -0
- package/dist/services/config.mjs.map +1 -0
- package/dist/services/content-api/index.js +86 -0
- package/dist/services/content-api/index.js.map +1 -0
- package/dist/services/content-api/index.mjs +84 -0
- package/dist/services/content-api/index.mjs.map +1 -0
- package/dist/services/content-api/permissions/engine.js +10 -0
- package/dist/services/content-api/permissions/engine.js.map +1 -0
- package/dist/services/content-api/permissions/engine.mjs +8 -0
- package/dist/services/content-api/permissions/engine.mjs.map +1 -0
- package/dist/services/content-api/permissions/index.js +107 -0
- package/dist/services/content-api/permissions/index.js.map +1 -0
- package/dist/services/content-api/permissions/index.mjs +105 -0
- package/dist/services/content-api/permissions/index.mjs.map +1 -0
- package/dist/services/content-api/permissions/providers/action.js +19 -0
- package/dist/services/content-api/permissions/providers/action.js.map +1 -0
- package/dist/services/content-api/permissions/providers/action.mjs +17 -0
- package/dist/services/content-api/permissions/providers/action.mjs.map +1 -0
- package/dist/services/content-api/permissions/providers/condition.js +19 -0
- package/dist/services/content-api/permissions/providers/condition.js.map +1 -0
- package/dist/services/content-api/permissions/providers/condition.mjs +17 -0
- package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -0
- package/dist/services/core-store.js +127 -0
- package/dist/services/core-store.js.map +1 -0
- package/dist/services/core-store.mjs +124 -0
- package/dist/services/core-store.mjs.map +1 -0
- package/dist/services/cron.js +77 -0
- package/dist/services/cron.js.map +1 -0
- package/dist/services/cron.mjs +75 -0
- package/dist/services/cron.mjs.map +1 -0
- package/dist/services/custom-fields.js +12 -0
- package/dist/services/custom-fields.js.map +1 -0
- package/dist/services/custom-fields.mjs +10 -0
- package/dist/services/custom-fields.mjs.map +1 -0
- package/dist/services/document-service/attributes/index.js +27 -0
- package/dist/services/document-service/attributes/index.js.map +1 -0
- package/dist/services/document-service/attributes/index.mjs +25 -0
- package/dist/services/document-service/attributes/index.mjs.map +1 -0
- package/dist/services/document-service/attributes/transforms.js +21 -0
- package/dist/services/document-service/attributes/transforms.js.map +1 -0
- package/dist/services/document-service/attributes/transforms.mjs +19 -0
- package/dist/services/document-service/attributes/transforms.mjs.map +1 -0
- package/dist/services/document-service/common.js +8 -0
- package/dist/services/document-service/common.js.map +1 -0
- package/dist/services/document-service/common.mjs +6 -0
- package/dist/services/document-service/common.mjs.map +1 -0
- package/dist/services/document-service/components.js +286 -0
- package/dist/services/document-service/components.js.map +1 -0
- package/dist/services/document-service/components.mjs +278 -0
- package/dist/services/document-service/components.mjs.map +1 -0
- package/dist/services/document-service/draft-and-publish.js +109 -0
- package/dist/services/document-service/draft-and-publish.js.map +1 -0
- package/dist/services/document-service/draft-and-publish.mjs +102 -0
- package/dist/services/document-service/draft-and-publish.mjs.map +1 -0
- package/dist/services/document-service/entries.js +113 -0
- package/dist/services/document-service/entries.js.map +1 -0
- package/dist/services/document-service/entries.mjs +111 -0
- package/dist/services/document-service/entries.mjs.map +1 -0
- package/dist/services/document-service/events.js +59 -0
- package/dist/services/document-service/events.js.map +1 -0
- package/dist/services/document-service/events.mjs +57 -0
- package/dist/services/document-service/events.mjs.map +1 -0
- package/dist/services/document-service/index.js +56 -0
- package/dist/services/document-service/index.js.map +1 -0
- package/dist/services/document-service/index.mjs +54 -0
- package/dist/services/document-service/index.mjs.map +1 -0
- package/dist/services/document-service/internationalization.js +79 -0
- package/dist/services/document-service/internationalization.js.map +1 -0
- package/dist/services/document-service/internationalization.mjs +74 -0
- package/dist/services/document-service/internationalization.mjs.map +1 -0
- package/dist/services/document-service/middlewares/errors.js +29 -0
- package/dist/services/document-service/middlewares/errors.js.map +1 -0
- package/dist/services/document-service/middlewares/errors.mjs +27 -0
- package/dist/services/document-service/middlewares/errors.mjs.map +1 -0
- package/dist/services/document-service/middlewares/middleware-manager.js +51 -0
- package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -0
- package/dist/services/document-service/middlewares/middleware-manager.mjs +49 -0
- package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -0
- package/dist/services/document-service/params.js +14 -0
- package/dist/services/document-service/params.js.map +1 -0
- package/dist/services/document-service/params.mjs +12 -0
- package/dist/services/document-service/params.mjs.map +1 -0
- package/dist/services/document-service/repository.js +364 -0
- package/dist/services/document-service/repository.js.map +1 -0
- package/dist/services/document-service/repository.mjs +362 -0
- package/dist/services/document-service/repository.mjs.map +1 -0
- package/dist/services/document-service/transform/data.js +25 -0
- package/dist/services/document-service/transform/data.js.map +1 -0
- package/dist/services/document-service/transform/data.mjs +23 -0
- package/dist/services/document-service/transform/data.mjs.map +1 -0
- package/dist/services/document-service/transform/fields.js +33 -0
- package/dist/services/document-service/transform/fields.js.map +1 -0
- package/dist/services/document-service/transform/fields.mjs +31 -0
- package/dist/services/document-service/transform/fields.mjs.map +1 -0
- package/dist/services/document-service/transform/id-map.js +125 -0
- package/dist/services/document-service/transform/id-map.js.map +1 -0
- package/dist/services/document-service/transform/id-map.mjs +123 -0
- package/dist/services/document-service/transform/id-map.mjs.map +1 -0
- package/dist/services/document-service/transform/id-transform.js +41 -0
- package/dist/services/document-service/transform/id-transform.js.map +1 -0
- package/dist/services/document-service/transform/id-transform.mjs +39 -0
- package/dist/services/document-service/transform/id-transform.mjs.map +1 -0
- package/dist/services/document-service/transform/populate.js +26 -0
- package/dist/services/document-service/transform/populate.js.map +1 -0
- package/dist/services/document-service/transform/populate.mjs +24 -0
- package/dist/services/document-service/transform/populate.mjs.map +1 -0
- package/dist/services/document-service/transform/query.js +14 -0
- package/dist/services/document-service/transform/query.js.map +1 -0
- package/dist/services/document-service/transform/query.mjs +12 -0
- package/dist/services/document-service/transform/query.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.js +80 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.mjs +78 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.js +110 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.mjs +108 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/transform/default-locale.js +50 -0
- package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -0
- package/dist/services/document-service/transform/relations/transform/default-locale.mjs +48 -0
- package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/utils/dp.js +56 -0
- package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -0
- package/dist/services/document-service/transform/relations/utils/dp.mjs +54 -0
- package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/utils/i18n.js +27 -0
- package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -0
- package/dist/services/document-service/transform/relations/utils/i18n.mjs +23 -0
- package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/utils/map-relation.js +130 -0
- package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -0
- package/dist/services/document-service/transform/relations/utils/map-relation.mjs +127 -0
- package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -0
- package/dist/services/document-service/utils/bidirectional-relations.js +148 -0
- package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -0
- package/dist/services/document-service/utils/bidirectional-relations.mjs +145 -0
- package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -0
- package/dist/services/document-service/utils/populate.js +71 -0
- package/dist/services/document-service/utils/populate.js.map +1 -0
- package/dist/services/document-service/utils/populate.mjs +69 -0
- package/dist/services/document-service/utils/populate.mjs.map +1 -0
- package/dist/services/document-service/utils/unidirectional-relations.js +116 -0
- package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -0
- package/dist/services/document-service/utils/unidirectional-relations.mjs +113 -0
- package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -0
- package/dist/services/entity-service/index.js +238 -0
- package/dist/services/entity-service/index.js.map +1 -0
- package/dist/services/entity-service/index.mjs +236 -0
- package/dist/services/entity-service/index.mjs.map +1 -0
- package/dist/services/entity-validator/blocks-validator.js +160 -0
- package/dist/services/entity-validator/blocks-validator.js.map +1 -0
- package/dist/services/entity-validator/blocks-validator.mjs +158 -0
- package/dist/services/entity-validator/blocks-validator.mjs.map +1 -0
- package/dist/services/entity-validator/index.js +384 -0
- package/dist/services/entity-validator/index.js.map +1 -0
- package/dist/services/entity-validator/index.mjs +382 -0
- package/dist/services/entity-validator/index.mjs.map +1 -0
- package/dist/services/entity-validator/validators.js +299 -0
- package/dist/services/entity-validator/validators.js.map +1 -0
- package/dist/services/entity-validator/validators.mjs +290 -0
- package/dist/services/entity-validator/validators.mjs.map +1 -0
- package/dist/services/errors.js +76 -0
- package/dist/services/errors.js.map +1 -0
- package/dist/services/errors.mjs +72 -0
- package/dist/services/errors.mjs.map +1 -0
- package/dist/services/event-hub.js +85 -0
- package/dist/services/event-hub.js.map +1 -0
- package/dist/services/event-hub.mjs +83 -0
- package/dist/services/event-hub.mjs.map +1 -0
- package/dist/services/features.js +22 -0
- package/dist/services/features.js.map +1 -0
- package/dist/services/features.mjs +20 -0
- package/dist/services/features.mjs.map +1 -0
- package/dist/services/fs.js +52 -0
- package/dist/services/fs.js.map +1 -0
- package/dist/services/fs.mjs +50 -0
- package/dist/services/fs.mjs.map +1 -0
- package/dist/services/metrics/admin-user-hash.js +16 -0
- package/dist/services/metrics/admin-user-hash.js.map +1 -0
- package/dist/services/metrics/admin-user-hash.mjs +14 -0
- package/dist/services/metrics/admin-user-hash.mjs.map +1 -0
- package/dist/services/metrics/index.js +51 -0
- package/dist/services/metrics/index.js.map +1 -0
- package/dist/services/metrics/index.mjs +49 -0
- package/dist/services/metrics/index.mjs.map +1 -0
- package/dist/services/metrics/is-truthy.js +16 -0
- package/dist/services/metrics/is-truthy.js.map +1 -0
- package/dist/services/metrics/is-truthy.mjs +14 -0
- package/dist/services/metrics/is-truthy.mjs.map +1 -0
- package/dist/services/metrics/middleware.js +40 -0
- package/dist/services/metrics/middleware.js.map +1 -0
- package/dist/services/metrics/middleware.mjs +38 -0
- package/dist/services/metrics/middleware.mjs.map +1 -0
- package/dist/services/metrics/rate-limiter.js +26 -0
- package/dist/services/metrics/rate-limiter.js.map +1 -0
- package/dist/services/metrics/rate-limiter.mjs +24 -0
- package/dist/services/metrics/rate-limiter.mjs.map +1 -0
- package/dist/services/metrics/sender.js +85 -0
- package/dist/services/metrics/sender.js.map +1 -0
- package/dist/services/metrics/sender.mjs +83 -0
- package/dist/services/metrics/sender.mjs.map +1 -0
- package/dist/services/query-params.js +15 -0
- package/dist/services/query-params.js.map +1 -0
- package/dist/services/query-params.mjs +13 -0
- package/dist/services/query-params.mjs.map +1 -0
- package/dist/services/reloader.js +39 -0
- package/dist/services/reloader.js.map +1 -0
- package/dist/services/reloader.mjs +37 -0
- package/dist/services/reloader.mjs.map +1 -0
- package/dist/services/request-context.js +16 -0
- package/dist/services/request-context.js.map +1 -0
- package/dist/services/request-context.mjs +14 -0
- package/dist/services/request-context.mjs.map +1 -0
- package/dist/services/server/admin-api.js +14 -0
- package/dist/services/server/admin-api.js.map +1 -0
- package/dist/services/server/admin-api.mjs +12 -0
- package/dist/services/server/admin-api.mjs.map +1 -0
- package/dist/services/server/api.js +36 -0
- package/dist/services/server/api.js.map +1 -0
- package/dist/services/server/api.mjs +34 -0
- package/dist/services/server/api.mjs.map +1 -0
- package/dist/services/server/compose-endpoint.js +128 -0
- package/dist/services/server/compose-endpoint.js.map +1 -0
- package/dist/services/server/compose-endpoint.mjs +126 -0
- package/dist/services/server/compose-endpoint.mjs.map +1 -0
- package/dist/services/server/content-api.js +14 -0
- package/dist/services/server/content-api.js.map +1 -0
- package/dist/services/server/content-api.mjs +12 -0
- package/dist/services/server/content-api.mjs.map +1 -0
- package/dist/services/server/http-server.js +54 -0
- package/dist/services/server/http-server.js.map +1 -0
- package/dist/services/server/http-server.mjs +52 -0
- package/dist/services/server/http-server.mjs.map +1 -0
- package/dist/services/server/index.js +90 -0
- package/dist/services/server/index.js.map +1 -0
- package/dist/services/server/index.mjs +88 -0
- package/dist/services/server/index.mjs.map +1 -0
- package/dist/services/server/koa.js +54 -0
- package/dist/services/server/koa.js.map +1 -0
- package/dist/services/server/koa.mjs +52 -0
- package/dist/services/server/koa.mjs.map +1 -0
- package/dist/services/server/middleware.js +96 -0
- package/dist/services/server/middleware.js.map +1 -0
- package/dist/services/server/middleware.mjs +93 -0
- package/dist/services/server/middleware.mjs.map +1 -0
- package/dist/services/server/policy.js +27 -0
- package/dist/services/server/policy.js.map +1 -0
- package/dist/services/server/policy.mjs +25 -0
- package/dist/services/server/policy.mjs.map +1 -0
- package/dist/services/server/register-middlewares.js +79 -0
- package/dist/services/server/register-middlewares.js.map +1 -0
- package/dist/services/server/register-middlewares.mjs +77 -0
- package/dist/services/server/register-middlewares.mjs.map +1 -0
- package/dist/services/server/register-routes.js +99 -0
- package/dist/services/server/register-routes.js.map +1 -0
- package/dist/services/server/register-routes.mjs +97 -0
- package/dist/services/server/register-routes.mjs.map +1 -0
- package/dist/services/server/routing.js +104 -0
- package/dist/services/server/routing.js.map +1 -0
- package/dist/services/server/routing.mjs +101 -0
- package/dist/services/server/routing.mjs.map +1 -0
- package/dist/services/utils/dynamic-zones.js +16 -0
- package/dist/services/utils/dynamic-zones.js.map +1 -0
- package/dist/services/utils/dynamic-zones.mjs +14 -0
- package/dist/services/utils/dynamic-zones.mjs.map +1 -0
- package/dist/services/webhook-runner.js +135 -0
- package/dist/services/webhook-runner.js.map +1 -0
- package/dist/services/webhook-runner.mjs +133 -0
- package/dist/services/webhook-runner.mjs.map +1 -0
- package/dist/services/webhook-store.js +143 -0
- package/dist/services/webhook-store.js.map +1 -0
- package/dist/services/webhook-store.mjs +140 -0
- package/dist/services/webhook-store.mjs.map +1 -0
- package/dist/services/worker-queue.js +51 -0
- package/dist/services/worker-queue.js.map +1 -0
- package/dist/services/worker-queue.mjs +49 -0
- package/dist/services/worker-queue.mjs.map +1 -0
- package/dist/utils/convert-custom-field-type.js +21 -0
- package/dist/utils/convert-custom-field-type.js.map +1 -0
- package/dist/utils/convert-custom-field-type.mjs +19 -0
- package/dist/utils/convert-custom-field-type.mjs.map +1 -0
- package/dist/utils/cron.js +72 -0
- package/dist/utils/cron.js.map +1 -0
- package/dist/utils/cron.mjs +70 -0
- package/dist/utils/cron.mjs.map +1 -0
- package/dist/utils/fetch.js +27 -0
- package/dist/utils/fetch.js.map +1 -0
- package/dist/utils/fetch.mjs +25 -0
- package/dist/utils/fetch.mjs.map +1 -0
- package/dist/utils/filepath-to-prop-path.js +25 -0
- package/dist/utils/filepath-to-prop-path.js.map +1 -0
- package/dist/utils/filepath-to-prop-path.mjs +23 -0
- package/dist/utils/filepath-to-prop-path.mjs.map +1 -0
- package/dist/utils/is-initialized.js +25 -0
- package/dist/utils/is-initialized.js.map +1 -0
- package/dist/utils/is-initialized.mjs +23 -0
- package/dist/utils/is-initialized.mjs.map +1 -0
- package/dist/utils/lifecycles.js +10 -0
- package/dist/utils/lifecycles.js.map +1 -0
- package/dist/utils/lifecycles.mjs +8 -0
- package/dist/utils/lifecycles.mjs.map +1 -0
- package/dist/utils/load-config-file.js +47 -0
- package/dist/utils/load-config-file.js.map +1 -0
- package/dist/utils/load-config-file.mjs +45 -0
- package/dist/utils/load-config-file.mjs.map +1 -0
- package/dist/utils/load-files.js +44 -0
- package/dist/utils/load-files.js.map +1 -0
- package/dist/utils/load-files.mjs +42 -0
- package/dist/utils/load-files.mjs.map +1 -0
- package/dist/utils/open-browser.js +11 -0
- package/dist/utils/open-browser.js.map +1 -0
- package/dist/utils/open-browser.mjs +9 -0
- package/dist/utils/open-browser.mjs.map +1 -0
- package/dist/utils/resolve-working-dirs.js +26 -0
- package/dist/utils/resolve-working-dirs.js.map +1 -0
- package/dist/utils/resolve-working-dirs.mjs +24 -0
- package/dist/utils/resolve-working-dirs.mjs.map +1 -0
- package/dist/utils/signals.js +23 -0
- package/dist/utils/signals.js.map +1 -0
- package/dist/utils/signals.mjs +21 -0
- package/dist/utils/signals.mjs.map +1 -0
- package/dist/utils/startup-logger.js +110 -0
- package/dist/utils/startup-logger.js.map +1 -0
- package/dist/utils/startup-logger.mjs +108 -0
- package/dist/utils/startup-logger.mjs.map +1 -0
- package/dist/utils/transform-content-types-to-models.js +377 -0
- package/dist/utils/transform-content-types-to-models.js.map +1 -0
- package/dist/utils/transform-content-types-to-models.mjs +365 -0
- package/dist/utils/transform-content-types-to-models.mjs.map +1 -0
- package/dist/utils/update-notifier/index.js +80 -0
- package/dist/utils/update-notifier/index.js.map +1 -0
- package/dist/utils/update-notifier/index.mjs +78 -0
- package/dist/utils/update-notifier/index.mjs.map +1 -0
- package/package.json +11 -11
@@ -0,0 +1,119 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var path = require('path');
|
4
|
+
var fs = require('fs');
|
5
|
+
var loadConfigFile = require('../utils/load-config-file.js');
|
6
|
+
|
7
|
+
const VALID_EXTENSIONS = [
|
8
|
+
'.js',
|
9
|
+
'.json'
|
10
|
+
];
|
11
|
+
// These filenames are restricted, but will also emit a warning that the filename is probably a mistake
|
12
|
+
const MISTAKEN_FILENAMES = {
|
13
|
+
middleware: 'middlewares',
|
14
|
+
plugin: 'plugins'
|
15
|
+
};
|
16
|
+
// the following are restricted to prevent conflicts with existing STRAPI_* env vars or root level config options
|
17
|
+
// must all be lowercase to match validator
|
18
|
+
const RESTRICTED_FILENAMES = [
|
19
|
+
// existing env vars
|
20
|
+
'uuid',
|
21
|
+
'hosting',
|
22
|
+
'license',
|
23
|
+
'enforce',
|
24
|
+
'disable',
|
25
|
+
'enable',
|
26
|
+
'telemetry',
|
27
|
+
// reserved for future internal use
|
28
|
+
'strapi',
|
29
|
+
'internal',
|
30
|
+
// root level config options
|
31
|
+
// TODO: it would be better to move these out of the root config and allow them to be loaded
|
32
|
+
'launchedAt',
|
33
|
+
'serveAdminPanel',
|
34
|
+
'autoReload',
|
35
|
+
'environment',
|
36
|
+
'packageJsonStrapi',
|
37
|
+
'info',
|
38
|
+
'autoReload',
|
39
|
+
'dirs',
|
40
|
+
// probably mistaken/typo filenames
|
41
|
+
...Object.keys(MISTAKEN_FILENAMES)
|
42
|
+
];
|
43
|
+
// Existing Strapi configuration files
|
44
|
+
const STRAPI_CONFIG_FILENAMES = [
|
45
|
+
'admin',
|
46
|
+
'server',
|
47
|
+
'api',
|
48
|
+
'database',
|
49
|
+
'middlewares',
|
50
|
+
'plugins',
|
51
|
+
'features'
|
52
|
+
];
|
53
|
+
// Note: we don't have access to strapi logger at this point so we can't use it
|
54
|
+
const logWarning = (message)=>{
|
55
|
+
console.warn(message);
|
56
|
+
};
|
57
|
+
var loadConfigDir = ((dir)=>{
|
58
|
+
if (!fs.existsSync(dir)) return {};
|
59
|
+
const allFiles = fs.readdirSync(dir, {
|
60
|
+
withFileTypes: true
|
61
|
+
});
|
62
|
+
const seenFilenames = new Set();
|
63
|
+
const configFiles = allFiles.reduce((acc, file)=>{
|
64
|
+
const baseName = path.basename(file.name, path.extname(file.name));
|
65
|
+
const baseNameLower = baseName.toLowerCase();
|
66
|
+
const extension = path.extname(file.name);
|
67
|
+
const extensionLower = extension.toLowerCase();
|
68
|
+
if (!file.isFile()) {
|
69
|
+
return acc;
|
70
|
+
}
|
71
|
+
if (!VALID_EXTENSIONS.includes(extensionLower)) {
|
72
|
+
logWarning(`Config file not loaded, extension must be one of ${VALID_EXTENSIONS.join(',')}): ${file.name}`);
|
73
|
+
return acc;
|
74
|
+
}
|
75
|
+
if (RESTRICTED_FILENAMES.includes(baseNameLower)) {
|
76
|
+
logWarning(`Config file not loaded, restricted filename: ${file.name}`);
|
77
|
+
// suggest the filename they probably meant
|
78
|
+
if (baseNameLower in MISTAKEN_FILENAMES) {
|
79
|
+
console.log(`Did you mean ${MISTAKEN_FILENAMES[baseNameLower]}]} ?`);
|
80
|
+
}
|
81
|
+
return acc;
|
82
|
+
}
|
83
|
+
// restricted names and Strapi configs are also restricted from being prefixes
|
84
|
+
const restrictedPrefix = [
|
85
|
+
...RESTRICTED_FILENAMES,
|
86
|
+
...STRAPI_CONFIG_FILENAMES
|
87
|
+
].find((restrictedName)=>restrictedName.startsWith(baseNameLower) && restrictedName !== baseNameLower);
|
88
|
+
if (restrictedPrefix) {
|
89
|
+
logWarning(`Config file not loaded, filename cannot start with ${restrictedPrefix}: ${file.name}`);
|
90
|
+
}
|
91
|
+
/**
|
92
|
+
* Note: If user config files contain non-alpha-numeric characters, we won't be able to auto-load env
|
93
|
+
* into them.
|
94
|
+
*
|
95
|
+
* For the initial feature, we will only load our internal configs, but later when we provide a method
|
96
|
+
* to define the shape of custom configs, we will need to warn that those filenames can't be loaded
|
97
|
+
* for technical limitations on env variable names
|
98
|
+
* */ // if (!/^[A-Za-z0-9]+$/.test(baseName)) {
|
99
|
+
// logWarning("Using a non-alphanumeric config file name prevents Strapi from auto-loading it from environment variables.")
|
100
|
+
// }
|
101
|
+
// filter filenames without case-insensitive uniqueness
|
102
|
+
if (seenFilenames.has(baseNameLower)) {
|
103
|
+
logWarning(`Config file not loaded, case-insensitive name matches other config file: ${file.name}`);
|
104
|
+
return acc;
|
105
|
+
}
|
106
|
+
seenFilenames.add(baseNameLower);
|
107
|
+
// If file passes all filters, add it to the accumulator
|
108
|
+
acc.push(file);
|
109
|
+
return acc;
|
110
|
+
}, []);
|
111
|
+
return configFiles.reduce((acc, file)=>{
|
112
|
+
const key = path.basename(file.name, path.extname(file.name));
|
113
|
+
acc[key] = loadConfigFile.loadConfigFile(path.resolve(dir, file.name));
|
114
|
+
return acc;
|
115
|
+
}, {});
|
116
|
+
});
|
117
|
+
|
118
|
+
module.exports = loadConfigDir;
|
119
|
+
//# sourceMappingURL=config-loader.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"config-loader.js","sources":["../../src/configuration/config-loader.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs';\nimport { loadConfigFile } from '../utils/load-config-file';\n\nconst VALID_EXTENSIONS = ['.js', '.json'];\n\n// These filenames are restricted, but will also emit a warning that the filename is probably a mistake\nconst MISTAKEN_FILENAMES = {\n middleware: 'middlewares',\n plugin: 'plugins',\n};\n\n// the following are restricted to prevent conflicts with existing STRAPI_* env vars or root level config options\n// must all be lowercase to match validator\nconst RESTRICTED_FILENAMES = [\n // existing env vars\n 'uuid',\n 'hosting',\n 'license',\n 'enforce',\n 'disable',\n 'enable',\n 'telemetry',\n\n // reserved for future internal use\n 'strapi',\n 'internal',\n\n // root level config options\n // TODO: it would be better to move these out of the root config and allow them to be loaded\n 'launchedAt',\n 'serveAdminPanel',\n 'autoReload',\n 'environment',\n 'packageJsonStrapi',\n 'info',\n 'autoReload',\n 'dirs',\n\n // probably mistaken/typo filenames\n ...Object.keys(MISTAKEN_FILENAMES),\n];\n\n// Existing Strapi configuration files\nconst STRAPI_CONFIG_FILENAMES = [\n 'admin',\n 'server',\n 'api',\n 'database',\n 'middlewares',\n 'plugins',\n 'features',\n];\n\n// Note: we don't have access to strapi logger at this point so we can't use it\nconst logWarning = (message: string) => {\n console.warn(message);\n};\n\nexport default (dir: string) => {\n if (!fs.existsSync(dir)) return {};\n\n const allFiles = fs.readdirSync(dir, { withFileTypes: true });\n const seenFilenames = new Set<string>();\n const configFiles = allFiles.reduce((acc, file) => {\n const baseName = path.basename(file.name, path.extname(file.name));\n const baseNameLower = baseName.toLowerCase();\n const extension = path.extname(file.name);\n const extensionLower = extension.toLowerCase();\n\n if (!file.isFile()) {\n return acc;\n }\n\n if (!VALID_EXTENSIONS.includes(extensionLower)) {\n logWarning(\n `Config file not loaded, extension must be one of ${VALID_EXTENSIONS.join(',')}): ${\n file.name\n }`\n );\n return acc;\n }\n\n if (RESTRICTED_FILENAMES.includes(baseNameLower)) {\n logWarning(`Config file not loaded, restricted filename: ${file.name}`);\n\n // suggest the filename they probably meant\n if (baseNameLower in MISTAKEN_FILENAMES) {\n console.log(\n `Did you mean ${MISTAKEN_FILENAMES[baseNameLower as keyof typeof MISTAKEN_FILENAMES]}]} ?`\n );\n }\n\n return acc;\n }\n\n // restricted names and Strapi configs are also restricted from being prefixes\n const restrictedPrefix = [...RESTRICTED_FILENAMES, ...STRAPI_CONFIG_FILENAMES].find(\n (restrictedName) =>\n restrictedName.startsWith(baseNameLower) && restrictedName !== baseNameLower\n );\n if (restrictedPrefix) {\n logWarning(\n `Config file not loaded, filename cannot start with ${restrictedPrefix}: ${file.name}`\n );\n }\n\n /**\n * Note: If user config files contain non-alpha-numeric characters, we won't be able to auto-load env\n * into them.\n *\n * For the initial feature, we will only load our internal configs, but later when we provide a method\n * to define the shape of custom configs, we will need to warn that those filenames can't be loaded\n * for technical limitations on env variable names\n * */\n // if (!/^[A-Za-z0-9]+$/.test(baseName)) {\n // logWarning(\"Using a non-alphanumeric config file name prevents Strapi from auto-loading it from environment variables.\")\n // }\n\n // filter filenames without case-insensitive uniqueness\n if (seenFilenames.has(baseNameLower)) {\n logWarning(\n `Config file not loaded, case-insensitive name matches other config file: ${file.name}`\n );\n return acc;\n }\n seenFilenames.add(baseNameLower);\n\n // If file passes all filters, add it to the accumulator\n acc.push(file);\n return acc;\n }, [] as fs.Dirent[]);\n\n return configFiles.reduce(\n (acc, file) => {\n const key = path.basename(file.name, path.extname(file.name));\n\n acc[key] = loadConfigFile(path.resolve(dir, file.name));\n\n return acc;\n },\n {} as Record<string, unknown>\n );\n};\n"],"names":["VALID_EXTENSIONS","MISTAKEN_FILENAMES","middleware","plugin","RESTRICTED_FILENAMES","Object","keys","STRAPI_CONFIG_FILENAMES","logWarning","message","console","warn","dir","fs","existsSync","allFiles","readdirSync","withFileTypes","seenFilenames","Set","configFiles","reduce","acc","file","baseName","path","basename","name","extname","baseNameLower","toLowerCase","extension","extensionLower","isFile","includes","join","log","restrictedPrefix","find","restrictedName","startsWith","has","add","push","key","loadConfigFile","resolve"],"mappings":";;;;;;AAIA,MAAMA,gBAAmB,GAAA;AAAC,IAAA,KAAA;AAAO,IAAA;AAAQ,CAAA;AAEzC;AACA,MAAMC,kBAAqB,GAAA;IACzBC,UAAY,EAAA,aAAA;IACZC,MAAQ,EAAA;AACV,CAAA;AAEA;AACA;AACA,MAAMC,oBAAuB,GAAA;;AAE3B,IAAA,MAAA;AACA,IAAA,SAAA;AACA,IAAA,SAAA;AACA,IAAA,SAAA;AACA,IAAA,SAAA;AACA,IAAA,QAAA;AACA,IAAA,WAAA;;AAGA,IAAA,QAAA;AACA,IAAA,UAAA;;;AAIA,IAAA,YAAA;AACA,IAAA,iBAAA;AACA,IAAA,YAAA;AACA,IAAA,aAAA;AACA,IAAA,mBAAA;AACA,IAAA,MAAA;AACA,IAAA,YAAA;AACA,IAAA,MAAA;;AAGGC,IAAAA,GAAAA,MAAAA,CAAOC,IAAI,CAACL,kBAAAA;AAChB,CAAA;AAED;AACA,MAAMM,uBAA0B,GAAA;AAC9B,IAAA,OAAA;AACA,IAAA,QAAA;AACA,IAAA,KAAA;AACA,IAAA,UAAA;AACA,IAAA,aAAA;AACA,IAAA,SAAA;AACA,IAAA;AACD,CAAA;AAED;AACA,MAAMC,aAAa,CAACC,OAAAA,GAAAA;AAClBC,IAAAA,OAAAA,CAAQC,IAAI,CAACF,OAAAA,CAAAA;AACf,CAAA;AAEA,oBAAe,CAAA,CAACG,GAAAA,GAAAA;AACd,IAAA,IAAI,CAACC,EAAGC,CAAAA,UAAU,CAACF,GAAAA,CAAAA,EAAM,OAAO,EAAC;AAEjC,IAAA,MAAMG,QAAWF,GAAAA,EAAAA,CAAGG,WAAW,CAACJ,GAAK,EAAA;QAAEK,aAAe,EAAA;AAAK,KAAA,CAAA;AAC3D,IAAA,MAAMC,gBAAgB,IAAIC,GAAAA,EAAAA;AAC1B,IAAA,MAAMC,WAAcL,GAAAA,QAAAA,CAASM,MAAM,CAAC,CAACC,GAAKC,EAAAA,IAAAA,GAAAA;QACxC,MAAMC,QAAAA,GAAWC,IAAKC,CAAAA,QAAQ,CAACH,IAAAA,CAAKI,IAAI,EAAEF,IAAKG,CAAAA,OAAO,CAACL,IAAAA,CAAKI,IAAI,CAAA,CAAA;QAChE,MAAME,aAAAA,GAAgBL,SAASM,WAAW,EAAA;AAC1C,QAAA,MAAMC,SAAYN,GAAAA,IAAAA,CAAKG,OAAO,CAACL,KAAKI,IAAI,CAAA;QACxC,MAAMK,cAAAA,GAAiBD,UAAUD,WAAW,EAAA;QAE5C,IAAI,CAACP,IAAKU,CAAAA,MAAM,EAAI,EAAA;YAClB,OAAOX,GAAAA;AACT;AAEA,QAAA,IAAI,CAACtB,gBAAAA,CAAiBkC,QAAQ,CAACF,cAAiB,CAAA,EAAA;AAC9CxB,YAAAA,UAAAA,CACE,CAAC,iDAAiD,EAAER,gBAAAA,CAAiBmC,IAAI,CAAC,GAAK,CAAA,CAAA,GAAG,EAChFZ,IAAAA,CAAKI,IAAI,CACV,CAAC,CAAA;YAEJ,OAAOL,GAAAA;AACT;QAEA,IAAIlB,oBAAAA,CAAqB8B,QAAQ,CAACL,aAAgB,CAAA,EAAA;AAChDrB,YAAAA,UAAAA,CAAW,CAAC,6CAA6C,EAAEe,IAAKI,CAAAA,IAAI,CAAC,CAAC,CAAA;;AAGtE,YAAA,IAAIE,iBAAiB5B,kBAAoB,EAAA;gBACvCS,OAAQ0B,CAAAA,GAAG,CACT,CAAC,aAAa,EAAEnC,kBAAkB,CAAC4B,aAAAA,CAAiD,CAAC,IAAI,CAAC,CAAA;AAE9F;YAEA,OAAOP,GAAAA;AACT;;AAGA,QAAA,MAAMe,gBAAmB,GAAA;AAAIjC,YAAAA,GAAAA,oBAAAA;AAAyBG,YAAAA,GAAAA;SAAwB,CAAC+B,IAAI,CACjF,CAACC,cAAAA,GACCA,eAAeC,UAAU,CAACX,kBAAkBU,cAAmBV,KAAAA,aAAAA,CAAAA;AAEnE,QAAA,IAAIQ,gBAAkB,EAAA;YACpB7B,UACE,CAAA,CAAC,mDAAmD,EAAE6B,gBAAAA,CAAiB,EAAE,EAAEd,IAAAA,CAAKI,IAAI,CAAC,CAAC,CAAA;AAE1F;AAEA;;;;;;;AAOI;;;;QAMJ,IAAIT,aAAAA,CAAcuB,GAAG,CAACZ,aAAgB,CAAA,EAAA;AACpCrB,YAAAA,UAAAA,CACE,CAAC,yEAAyE,EAAEe,IAAKI,CAAAA,IAAI,CAAC,CAAC,CAAA;YAEzF,OAAOL,GAAAA;AACT;AACAJ,QAAAA,aAAAA,CAAcwB,GAAG,CAACb,aAAAA,CAAAA;;AAGlBP,QAAAA,GAAAA,CAAIqB,IAAI,CAACpB,IAAAA,CAAAA;QACT,OAAOD,GAAAA;AACT,KAAA,EAAG,EAAE,CAAA;AAEL,IAAA,OAAOF,WAAYC,CAAAA,MAAM,CACvB,CAACC,GAAKC,EAAAA,IAAAA,GAAAA;QACJ,MAAMqB,GAAAA,GAAMnB,IAAKC,CAAAA,QAAQ,CAACH,IAAAA,CAAKI,IAAI,EAAEF,IAAKG,CAAAA,OAAO,CAACL,IAAAA,CAAKI,IAAI,CAAA,CAAA;QAE3DL,GAAG,CAACsB,IAAI,GAAGC,6BAAAA,CAAepB,KAAKqB,OAAO,CAAClC,GAAKW,EAAAA,IAAAA,CAAKI,IAAI,CAAA,CAAA;QAErD,OAAOL,GAAAA;AACT,KAAA,EACA,EAAC,CAAA;AAEL,CAAA;;;;"}
|
@@ -0,0 +1,117 @@
|
|
1
|
+
import path from 'path';
|
2
|
+
import fs from 'fs';
|
3
|
+
import { loadConfigFile } from '../utils/load-config-file.mjs';
|
4
|
+
|
5
|
+
const VALID_EXTENSIONS = [
|
6
|
+
'.js',
|
7
|
+
'.json'
|
8
|
+
];
|
9
|
+
// These filenames are restricted, but will also emit a warning that the filename is probably a mistake
|
10
|
+
const MISTAKEN_FILENAMES = {
|
11
|
+
middleware: 'middlewares',
|
12
|
+
plugin: 'plugins'
|
13
|
+
};
|
14
|
+
// the following are restricted to prevent conflicts with existing STRAPI_* env vars or root level config options
|
15
|
+
// must all be lowercase to match validator
|
16
|
+
const RESTRICTED_FILENAMES = [
|
17
|
+
// existing env vars
|
18
|
+
'uuid',
|
19
|
+
'hosting',
|
20
|
+
'license',
|
21
|
+
'enforce',
|
22
|
+
'disable',
|
23
|
+
'enable',
|
24
|
+
'telemetry',
|
25
|
+
// reserved for future internal use
|
26
|
+
'strapi',
|
27
|
+
'internal',
|
28
|
+
// root level config options
|
29
|
+
// TODO: it would be better to move these out of the root config and allow them to be loaded
|
30
|
+
'launchedAt',
|
31
|
+
'serveAdminPanel',
|
32
|
+
'autoReload',
|
33
|
+
'environment',
|
34
|
+
'packageJsonStrapi',
|
35
|
+
'info',
|
36
|
+
'autoReload',
|
37
|
+
'dirs',
|
38
|
+
// probably mistaken/typo filenames
|
39
|
+
...Object.keys(MISTAKEN_FILENAMES)
|
40
|
+
];
|
41
|
+
// Existing Strapi configuration files
|
42
|
+
const STRAPI_CONFIG_FILENAMES = [
|
43
|
+
'admin',
|
44
|
+
'server',
|
45
|
+
'api',
|
46
|
+
'database',
|
47
|
+
'middlewares',
|
48
|
+
'plugins',
|
49
|
+
'features'
|
50
|
+
];
|
51
|
+
// Note: we don't have access to strapi logger at this point so we can't use it
|
52
|
+
const logWarning = (message)=>{
|
53
|
+
console.warn(message);
|
54
|
+
};
|
55
|
+
var loadConfigDir = ((dir)=>{
|
56
|
+
if (!fs.existsSync(dir)) return {};
|
57
|
+
const allFiles = fs.readdirSync(dir, {
|
58
|
+
withFileTypes: true
|
59
|
+
});
|
60
|
+
const seenFilenames = new Set();
|
61
|
+
const configFiles = allFiles.reduce((acc, file)=>{
|
62
|
+
const baseName = path.basename(file.name, path.extname(file.name));
|
63
|
+
const baseNameLower = baseName.toLowerCase();
|
64
|
+
const extension = path.extname(file.name);
|
65
|
+
const extensionLower = extension.toLowerCase();
|
66
|
+
if (!file.isFile()) {
|
67
|
+
return acc;
|
68
|
+
}
|
69
|
+
if (!VALID_EXTENSIONS.includes(extensionLower)) {
|
70
|
+
logWarning(`Config file not loaded, extension must be one of ${VALID_EXTENSIONS.join(',')}): ${file.name}`);
|
71
|
+
return acc;
|
72
|
+
}
|
73
|
+
if (RESTRICTED_FILENAMES.includes(baseNameLower)) {
|
74
|
+
logWarning(`Config file not loaded, restricted filename: ${file.name}`);
|
75
|
+
// suggest the filename they probably meant
|
76
|
+
if (baseNameLower in MISTAKEN_FILENAMES) {
|
77
|
+
console.log(`Did you mean ${MISTAKEN_FILENAMES[baseNameLower]}]} ?`);
|
78
|
+
}
|
79
|
+
return acc;
|
80
|
+
}
|
81
|
+
// restricted names and Strapi configs are also restricted from being prefixes
|
82
|
+
const restrictedPrefix = [
|
83
|
+
...RESTRICTED_FILENAMES,
|
84
|
+
...STRAPI_CONFIG_FILENAMES
|
85
|
+
].find((restrictedName)=>restrictedName.startsWith(baseNameLower) && restrictedName !== baseNameLower);
|
86
|
+
if (restrictedPrefix) {
|
87
|
+
logWarning(`Config file not loaded, filename cannot start with ${restrictedPrefix}: ${file.name}`);
|
88
|
+
}
|
89
|
+
/**
|
90
|
+
* Note: If user config files contain non-alpha-numeric characters, we won't be able to auto-load env
|
91
|
+
* into them.
|
92
|
+
*
|
93
|
+
* For the initial feature, we will only load our internal configs, but later when we provide a method
|
94
|
+
* to define the shape of custom configs, we will need to warn that those filenames can't be loaded
|
95
|
+
* for technical limitations on env variable names
|
96
|
+
* */ // if (!/^[A-Za-z0-9]+$/.test(baseName)) {
|
97
|
+
// logWarning("Using a non-alphanumeric config file name prevents Strapi from auto-loading it from environment variables.")
|
98
|
+
// }
|
99
|
+
// filter filenames without case-insensitive uniqueness
|
100
|
+
if (seenFilenames.has(baseNameLower)) {
|
101
|
+
logWarning(`Config file not loaded, case-insensitive name matches other config file: ${file.name}`);
|
102
|
+
return acc;
|
103
|
+
}
|
104
|
+
seenFilenames.add(baseNameLower);
|
105
|
+
// If file passes all filters, add it to the accumulator
|
106
|
+
acc.push(file);
|
107
|
+
return acc;
|
108
|
+
}, []);
|
109
|
+
return configFiles.reduce((acc, file)=>{
|
110
|
+
const key = path.basename(file.name, path.extname(file.name));
|
111
|
+
acc[key] = loadConfigFile(path.resolve(dir, file.name));
|
112
|
+
return acc;
|
113
|
+
}, {});
|
114
|
+
});
|
115
|
+
|
116
|
+
export { loadConfigDir as default };
|
117
|
+
//# sourceMappingURL=config-loader.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"config-loader.mjs","sources":["../../src/configuration/config-loader.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs';\nimport { loadConfigFile } from '../utils/load-config-file';\n\nconst VALID_EXTENSIONS = ['.js', '.json'];\n\n// These filenames are restricted, but will also emit a warning that the filename is probably a mistake\nconst MISTAKEN_FILENAMES = {\n middleware: 'middlewares',\n plugin: 'plugins',\n};\n\n// the following are restricted to prevent conflicts with existing STRAPI_* env vars or root level config options\n// must all be lowercase to match validator\nconst RESTRICTED_FILENAMES = [\n // existing env vars\n 'uuid',\n 'hosting',\n 'license',\n 'enforce',\n 'disable',\n 'enable',\n 'telemetry',\n\n // reserved for future internal use\n 'strapi',\n 'internal',\n\n // root level config options\n // TODO: it would be better to move these out of the root config and allow them to be loaded\n 'launchedAt',\n 'serveAdminPanel',\n 'autoReload',\n 'environment',\n 'packageJsonStrapi',\n 'info',\n 'autoReload',\n 'dirs',\n\n // probably mistaken/typo filenames\n ...Object.keys(MISTAKEN_FILENAMES),\n];\n\n// Existing Strapi configuration files\nconst STRAPI_CONFIG_FILENAMES = [\n 'admin',\n 'server',\n 'api',\n 'database',\n 'middlewares',\n 'plugins',\n 'features',\n];\n\n// Note: we don't have access to strapi logger at this point so we can't use it\nconst logWarning = (message: string) => {\n console.warn(message);\n};\n\nexport default (dir: string) => {\n if (!fs.existsSync(dir)) return {};\n\n const allFiles = fs.readdirSync(dir, { withFileTypes: true });\n const seenFilenames = new Set<string>();\n const configFiles = allFiles.reduce((acc, file) => {\n const baseName = path.basename(file.name, path.extname(file.name));\n const baseNameLower = baseName.toLowerCase();\n const extension = path.extname(file.name);\n const extensionLower = extension.toLowerCase();\n\n if (!file.isFile()) {\n return acc;\n }\n\n if (!VALID_EXTENSIONS.includes(extensionLower)) {\n logWarning(\n `Config file not loaded, extension must be one of ${VALID_EXTENSIONS.join(',')}): ${\n file.name\n }`\n );\n return acc;\n }\n\n if (RESTRICTED_FILENAMES.includes(baseNameLower)) {\n logWarning(`Config file not loaded, restricted filename: ${file.name}`);\n\n // suggest the filename they probably meant\n if (baseNameLower in MISTAKEN_FILENAMES) {\n console.log(\n `Did you mean ${MISTAKEN_FILENAMES[baseNameLower as keyof typeof MISTAKEN_FILENAMES]}]} ?`\n );\n }\n\n return acc;\n }\n\n // restricted names and Strapi configs are also restricted from being prefixes\n const restrictedPrefix = [...RESTRICTED_FILENAMES, ...STRAPI_CONFIG_FILENAMES].find(\n (restrictedName) =>\n restrictedName.startsWith(baseNameLower) && restrictedName !== baseNameLower\n );\n if (restrictedPrefix) {\n logWarning(\n `Config file not loaded, filename cannot start with ${restrictedPrefix}: ${file.name}`\n );\n }\n\n /**\n * Note: If user config files contain non-alpha-numeric characters, we won't be able to auto-load env\n * into them.\n *\n * For the initial feature, we will only load our internal configs, but later when we provide a method\n * to define the shape of custom configs, we will need to warn that those filenames can't be loaded\n * for technical limitations on env variable names\n * */\n // if (!/^[A-Za-z0-9]+$/.test(baseName)) {\n // logWarning(\"Using a non-alphanumeric config file name prevents Strapi from auto-loading it from environment variables.\")\n // }\n\n // filter filenames without case-insensitive uniqueness\n if (seenFilenames.has(baseNameLower)) {\n logWarning(\n `Config file not loaded, case-insensitive name matches other config file: ${file.name}`\n );\n return acc;\n }\n seenFilenames.add(baseNameLower);\n\n // If file passes all filters, add it to the accumulator\n acc.push(file);\n return acc;\n }, [] as fs.Dirent[]);\n\n return configFiles.reduce(\n (acc, file) => {\n const key = path.basename(file.name, path.extname(file.name));\n\n acc[key] = loadConfigFile(path.resolve(dir, file.name));\n\n return acc;\n },\n {} as Record<string, unknown>\n );\n};\n"],"names":["VALID_EXTENSIONS","MISTAKEN_FILENAMES","middleware","plugin","RESTRICTED_FILENAMES","Object","keys","STRAPI_CONFIG_FILENAMES","logWarning","message","console","warn","dir","fs","existsSync","allFiles","readdirSync","withFileTypes","seenFilenames","Set","configFiles","reduce","acc","file","baseName","path","basename","name","extname","baseNameLower","toLowerCase","extension","extensionLower","isFile","includes","join","log","restrictedPrefix","find","restrictedName","startsWith","has","add","push","key","loadConfigFile","resolve"],"mappings":";;;;AAIA,MAAMA,gBAAmB,GAAA;AAAC,IAAA,KAAA;AAAO,IAAA;AAAQ,CAAA;AAEzC;AACA,MAAMC,kBAAqB,GAAA;IACzBC,UAAY,EAAA,aAAA;IACZC,MAAQ,EAAA;AACV,CAAA;AAEA;AACA;AACA,MAAMC,oBAAuB,GAAA;;AAE3B,IAAA,MAAA;AACA,IAAA,SAAA;AACA,IAAA,SAAA;AACA,IAAA,SAAA;AACA,IAAA,SAAA;AACA,IAAA,QAAA;AACA,IAAA,WAAA;;AAGA,IAAA,QAAA;AACA,IAAA,UAAA;;;AAIA,IAAA,YAAA;AACA,IAAA,iBAAA;AACA,IAAA,YAAA;AACA,IAAA,aAAA;AACA,IAAA,mBAAA;AACA,IAAA,MAAA;AACA,IAAA,YAAA;AACA,IAAA,MAAA;;AAGGC,IAAAA,GAAAA,MAAAA,CAAOC,IAAI,CAACL,kBAAAA;AAChB,CAAA;AAED;AACA,MAAMM,uBAA0B,GAAA;AAC9B,IAAA,OAAA;AACA,IAAA,QAAA;AACA,IAAA,KAAA;AACA,IAAA,UAAA;AACA,IAAA,aAAA;AACA,IAAA,SAAA;AACA,IAAA;AACD,CAAA;AAED;AACA,MAAMC,aAAa,CAACC,OAAAA,GAAAA;AAClBC,IAAAA,OAAAA,CAAQC,IAAI,CAACF,OAAAA,CAAAA;AACf,CAAA;AAEA,oBAAe,CAAA,CAACG,GAAAA,GAAAA;AACd,IAAA,IAAI,CAACC,EAAGC,CAAAA,UAAU,CAACF,GAAAA,CAAAA,EAAM,OAAO,EAAC;AAEjC,IAAA,MAAMG,QAAWF,GAAAA,EAAAA,CAAGG,WAAW,CAACJ,GAAK,EAAA;QAAEK,aAAe,EAAA;AAAK,KAAA,CAAA;AAC3D,IAAA,MAAMC,gBAAgB,IAAIC,GAAAA,EAAAA;AAC1B,IAAA,MAAMC,WAAcL,GAAAA,QAAAA,CAASM,MAAM,CAAC,CAACC,GAAKC,EAAAA,IAAAA,GAAAA;QACxC,MAAMC,QAAAA,GAAWC,IAAKC,CAAAA,QAAQ,CAACH,IAAAA,CAAKI,IAAI,EAAEF,IAAKG,CAAAA,OAAO,CAACL,IAAAA,CAAKI,IAAI,CAAA,CAAA;QAChE,MAAME,aAAAA,GAAgBL,SAASM,WAAW,EAAA;AAC1C,QAAA,MAAMC,SAAYN,GAAAA,IAAAA,CAAKG,OAAO,CAACL,KAAKI,IAAI,CAAA;QACxC,MAAMK,cAAAA,GAAiBD,UAAUD,WAAW,EAAA;QAE5C,IAAI,CAACP,IAAKU,CAAAA,MAAM,EAAI,EAAA;YAClB,OAAOX,GAAAA;AACT;AAEA,QAAA,IAAI,CAACtB,gBAAAA,CAAiBkC,QAAQ,CAACF,cAAiB,CAAA,EAAA;AAC9CxB,YAAAA,UAAAA,CACE,CAAC,iDAAiD,EAAER,gBAAAA,CAAiBmC,IAAI,CAAC,GAAK,CAAA,CAAA,GAAG,EAChFZ,IAAAA,CAAKI,IAAI,CACV,CAAC,CAAA;YAEJ,OAAOL,GAAAA;AACT;QAEA,IAAIlB,oBAAAA,CAAqB8B,QAAQ,CAACL,aAAgB,CAAA,EAAA;AAChDrB,YAAAA,UAAAA,CAAW,CAAC,6CAA6C,EAAEe,IAAKI,CAAAA,IAAI,CAAC,CAAC,CAAA;;AAGtE,YAAA,IAAIE,iBAAiB5B,kBAAoB,EAAA;gBACvCS,OAAQ0B,CAAAA,GAAG,CACT,CAAC,aAAa,EAAEnC,kBAAkB,CAAC4B,aAAAA,CAAiD,CAAC,IAAI,CAAC,CAAA;AAE9F;YAEA,OAAOP,GAAAA;AACT;;AAGA,QAAA,MAAMe,gBAAmB,GAAA;AAAIjC,YAAAA,GAAAA,oBAAAA;AAAyBG,YAAAA,GAAAA;SAAwB,CAAC+B,IAAI,CACjF,CAACC,cAAAA,GACCA,eAAeC,UAAU,CAACX,kBAAkBU,cAAmBV,KAAAA,aAAAA,CAAAA;AAEnE,QAAA,IAAIQ,gBAAkB,EAAA;YACpB7B,UACE,CAAA,CAAC,mDAAmD,EAAE6B,gBAAAA,CAAiB,EAAE,EAAEd,IAAAA,CAAKI,IAAI,CAAC,CAAC,CAAA;AAE1F;AAEA;;;;;;;AAOI;;;;QAMJ,IAAIT,aAAAA,CAAcuB,GAAG,CAACZ,aAAgB,CAAA,EAAA;AACpCrB,YAAAA,UAAAA,CACE,CAAC,yEAAyE,EAAEe,IAAKI,CAAAA,IAAI,CAAC,CAAC,CAAA;YAEzF,OAAOL,GAAAA;AACT;AACAJ,QAAAA,aAAAA,CAAcwB,GAAG,CAACb,aAAAA,CAAAA;;AAGlBP,QAAAA,GAAAA,CAAIqB,IAAI,CAACpB,IAAAA,CAAAA;QACT,OAAOD,GAAAA;AACT,KAAA,EAAG,EAAE,CAAA;AAEL,IAAA,OAAOF,WAAYC,CAAAA,MAAM,CACvB,CAACC,GAAKC,EAAAA,IAAAA,GAAAA;QACJ,MAAMqB,GAAAA,GAAMnB,IAAKC,CAAAA,QAAQ,CAACH,IAAAA,CAAKI,IAAI,EAAEF,IAAKG,CAAAA,OAAO,CAACL,IAAAA,CAAKI,IAAI,CAAA,CAAA;QAE3DL,GAAG,CAACsB,IAAI,GAAGC,cAAAA,CAAepB,KAAKqB,OAAO,CAAClC,GAAKW,EAAAA,IAAAA,CAAKI,IAAI,CAAA,CAAA;QAErD,OAAOL,GAAAA;AACT,KAAA,EACA,EAAC,CAAA;AAEL,CAAA;;;;"}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var path = require('path');
|
4
|
+
var fp = require('lodash/fp');
|
5
|
+
|
6
|
+
const getDirs = ({ appDir, distDir }, config)=>({
|
7
|
+
dist: {
|
8
|
+
root: distDir,
|
9
|
+
src: path.join(distDir, 'src'),
|
10
|
+
api: path.join(distDir, 'src', 'api'),
|
11
|
+
components: path.join(distDir, 'src', 'components'),
|
12
|
+
extensions: path.join(distDir, 'src', 'extensions'),
|
13
|
+
policies: path.join(distDir, 'src', 'policies'),
|
14
|
+
middlewares: path.join(distDir, 'src', 'middlewares'),
|
15
|
+
config: path.join(distDir, 'config')
|
16
|
+
},
|
17
|
+
app: {
|
18
|
+
root: appDir,
|
19
|
+
src: path.join(appDir, 'src'),
|
20
|
+
api: path.join(appDir, 'src', 'api'),
|
21
|
+
components: path.join(appDir, 'src', 'components'),
|
22
|
+
extensions: path.join(appDir, 'src', 'extensions'),
|
23
|
+
policies: path.join(appDir, 'src', 'policies'),
|
24
|
+
middlewares: path.join(appDir, 'src', 'middlewares'),
|
25
|
+
config: path.join(appDir, 'config')
|
26
|
+
},
|
27
|
+
static: {
|
28
|
+
public: path.resolve(appDir, fp.get('server.dirs.public', config))
|
29
|
+
}
|
30
|
+
});
|
31
|
+
|
32
|
+
exports.getDirs = getDirs;
|
33
|
+
//# sourceMappingURL=get-dirs.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"get-dirs.js","sources":["../../src/configuration/get-dirs.ts"],"sourcesContent":["import { join, resolve } from 'path';\nimport { get } from 'lodash/fp';\n\nimport type { Core } from '@strapi/types';\nimport type { StrapiOptions } from '../Strapi';\n\nexport type Options = {\n app: string;\n dist: string;\n};\n\nexport const getDirs = (\n { appDir, distDir }: StrapiOptions,\n config: { server: Partial<Core.Config.Server> }\n): Core.StrapiDirectories => ({\n dist: {\n root: distDir,\n src: join(distDir, 'src'),\n api: join(distDir, 'src', 'api'),\n components: join(distDir, 'src', 'components'),\n extensions: join(distDir, 'src', 'extensions'),\n policies: join(distDir, 'src', 'policies'),\n middlewares: join(distDir, 'src', 'middlewares'),\n config: join(distDir, 'config'),\n },\n app: {\n root: appDir,\n src: join(appDir, 'src'),\n api: join(appDir, 'src', 'api'),\n components: join(appDir, 'src', 'components'),\n extensions: join(appDir, 'src', 'extensions'),\n policies: join(appDir, 'src', 'policies'),\n middlewares: join(appDir, 'src', 'middlewares'),\n config: join(appDir, 'config'),\n },\n static: {\n public: resolve(appDir, get('server.dirs.public', config)),\n },\n});\n"],"names":["getDirs","appDir","distDir","config","dist","root","src","join","api","components","extensions","policies","middlewares","app","static","public","resolve","get"],"mappings":";;;;;AAWO,MAAMA,OAAU,GAAA,CACrB,EAAEC,MAAM,EAAEC,OAAO,EAAiB,EAClCC,MAAAA,IAC4B;QAC5BC,IAAM,EAAA;YACJC,IAAMH,EAAAA,OAAAA;AACNI,YAAAA,GAAAA,EAAKC,UAAKL,OAAS,EAAA,KAAA,CAAA;YACnBM,GAAKD,EAAAA,SAAAA,CAAKL,SAAS,KAAO,EAAA,KAAA,CAAA;YAC1BO,UAAYF,EAAAA,SAAAA,CAAKL,SAAS,KAAO,EAAA,YAAA,CAAA;YACjCQ,UAAYH,EAAAA,SAAAA,CAAKL,SAAS,KAAO,EAAA,YAAA,CAAA;YACjCS,QAAUJ,EAAAA,SAAAA,CAAKL,SAAS,KAAO,EAAA,UAAA,CAAA;YAC/BU,WAAaL,EAAAA,SAAAA,CAAKL,SAAS,KAAO,EAAA,aAAA,CAAA;AAClCC,YAAAA,MAAAA,EAAQI,UAAKL,OAAS,EAAA,QAAA;AACxB,SAAA;QACAW,GAAK,EAAA;YACHR,IAAMJ,EAAAA,MAAAA;AACNK,YAAAA,GAAAA,EAAKC,UAAKN,MAAQ,EAAA,KAAA,CAAA;YAClBO,GAAKD,EAAAA,SAAAA,CAAKN,QAAQ,KAAO,EAAA,KAAA,CAAA;YACzBQ,UAAYF,EAAAA,SAAAA,CAAKN,QAAQ,KAAO,EAAA,YAAA,CAAA;YAChCS,UAAYH,EAAAA,SAAAA,CAAKN,QAAQ,KAAO,EAAA,YAAA,CAAA;YAChCU,QAAUJ,EAAAA,SAAAA,CAAKN,QAAQ,KAAO,EAAA,UAAA,CAAA;YAC9BW,WAAaL,EAAAA,SAAAA,CAAKN,QAAQ,KAAO,EAAA,aAAA,CAAA;AACjCE,YAAAA,MAAAA,EAAQI,UAAKN,MAAQ,EAAA,QAAA;AACvB,SAAA;QACAa,MAAQ,EAAA;YACNC,MAAQC,EAAAA,YAAAA,CAAQf,MAAQgB,EAAAA,MAAAA,CAAI,oBAAsBd,EAAAA,MAAAA,CAAAA;AACpD;AACF,KAAA;;;;"}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import { join, resolve } from 'path';
|
2
|
+
import { get } from 'lodash/fp';
|
3
|
+
|
4
|
+
const getDirs = ({ appDir, distDir }, config)=>({
|
5
|
+
dist: {
|
6
|
+
root: distDir,
|
7
|
+
src: join(distDir, 'src'),
|
8
|
+
api: join(distDir, 'src', 'api'),
|
9
|
+
components: join(distDir, 'src', 'components'),
|
10
|
+
extensions: join(distDir, 'src', 'extensions'),
|
11
|
+
policies: join(distDir, 'src', 'policies'),
|
12
|
+
middlewares: join(distDir, 'src', 'middlewares'),
|
13
|
+
config: join(distDir, 'config')
|
14
|
+
},
|
15
|
+
app: {
|
16
|
+
root: appDir,
|
17
|
+
src: join(appDir, 'src'),
|
18
|
+
api: join(appDir, 'src', 'api'),
|
19
|
+
components: join(appDir, 'src', 'components'),
|
20
|
+
extensions: join(appDir, 'src', 'extensions'),
|
21
|
+
policies: join(appDir, 'src', 'policies'),
|
22
|
+
middlewares: join(appDir, 'src', 'middlewares'),
|
23
|
+
config: join(appDir, 'config')
|
24
|
+
},
|
25
|
+
static: {
|
26
|
+
public: resolve(appDir, get('server.dirs.public', config))
|
27
|
+
}
|
28
|
+
});
|
29
|
+
|
30
|
+
export { getDirs };
|
31
|
+
//# sourceMappingURL=get-dirs.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"get-dirs.mjs","sources":["../../src/configuration/get-dirs.ts"],"sourcesContent":["import { join, resolve } from 'path';\nimport { get } from 'lodash/fp';\n\nimport type { Core } from '@strapi/types';\nimport type { StrapiOptions } from '../Strapi';\n\nexport type Options = {\n app: string;\n dist: string;\n};\n\nexport const getDirs = (\n { appDir, distDir }: StrapiOptions,\n config: { server: Partial<Core.Config.Server> }\n): Core.StrapiDirectories => ({\n dist: {\n root: distDir,\n src: join(distDir, 'src'),\n api: join(distDir, 'src', 'api'),\n components: join(distDir, 'src', 'components'),\n extensions: join(distDir, 'src', 'extensions'),\n policies: join(distDir, 'src', 'policies'),\n middlewares: join(distDir, 'src', 'middlewares'),\n config: join(distDir, 'config'),\n },\n app: {\n root: appDir,\n src: join(appDir, 'src'),\n api: join(appDir, 'src', 'api'),\n components: join(appDir, 'src', 'components'),\n extensions: join(appDir, 'src', 'extensions'),\n policies: join(appDir, 'src', 'policies'),\n middlewares: join(appDir, 'src', 'middlewares'),\n config: join(appDir, 'config'),\n },\n static: {\n public: resolve(appDir, get('server.dirs.public', config)),\n },\n});\n"],"names":["getDirs","appDir","distDir","config","dist","root","src","join","api","components","extensions","policies","middlewares","app","static","public","resolve","get"],"mappings":";;;AAWO,MAAMA,OAAU,GAAA,CACrB,EAAEC,MAAM,EAAEC,OAAO,EAAiB,EAClCC,MAAAA,IAC4B;QAC5BC,IAAM,EAAA;YACJC,IAAMH,EAAAA,OAAAA;AACNI,YAAAA,GAAAA,EAAKC,KAAKL,OAAS,EAAA,KAAA,CAAA;YACnBM,GAAKD,EAAAA,IAAAA,CAAKL,SAAS,KAAO,EAAA,KAAA,CAAA;YAC1BO,UAAYF,EAAAA,IAAAA,CAAKL,SAAS,KAAO,EAAA,YAAA,CAAA;YACjCQ,UAAYH,EAAAA,IAAAA,CAAKL,SAAS,KAAO,EAAA,YAAA,CAAA;YACjCS,QAAUJ,EAAAA,IAAAA,CAAKL,SAAS,KAAO,EAAA,UAAA,CAAA;YAC/BU,WAAaL,EAAAA,IAAAA,CAAKL,SAAS,KAAO,EAAA,aAAA,CAAA;AAClCC,YAAAA,MAAAA,EAAQI,KAAKL,OAAS,EAAA,QAAA;AACxB,SAAA;QACAW,GAAK,EAAA;YACHR,IAAMJ,EAAAA,MAAAA;AACNK,YAAAA,GAAAA,EAAKC,KAAKN,MAAQ,EAAA,KAAA,CAAA;YAClBO,GAAKD,EAAAA,IAAAA,CAAKN,QAAQ,KAAO,EAAA,KAAA,CAAA;YACzBQ,UAAYF,EAAAA,IAAAA,CAAKN,QAAQ,KAAO,EAAA,YAAA,CAAA;YAChCS,UAAYH,EAAAA,IAAAA,CAAKN,QAAQ,KAAO,EAAA,YAAA,CAAA;YAChCU,QAAUJ,EAAAA,IAAAA,CAAKN,QAAQ,KAAO,EAAA,UAAA,CAAA;YAC9BW,WAAaL,EAAAA,IAAAA,CAAKN,QAAQ,KAAO,EAAA,aAAA,CAAA;AACjCE,YAAAA,MAAAA,EAAQI,KAAKN,MAAQ,EAAA,QAAA;AACvB,SAAA;QACAa,MAAQ,EAAA;YACNC,MAAQC,EAAAA,OAAAA,CAAQf,MAAQgB,EAAAA,GAAAA,CAAI,oBAAsBd,EAAAA,MAAAA,CAAAA;AACpD;AACF,KAAA;;;;"}
|
@@ -0,0 +1,91 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var os = require('os');
|
4
|
+
var path = require('path');
|
5
|
+
var _ = require('lodash');
|
6
|
+
var fp = require('lodash/fp');
|
7
|
+
var dotenv = require('dotenv');
|
8
|
+
var strapiUtils = require('@strapi/utils');
|
9
|
+
var urls = require('./urls.js');
|
10
|
+
var configLoader = require('./config-loader.js');
|
11
|
+
var getDirs = require('./get-dirs.js');
|
12
|
+
var _package = require('../package.json.js');
|
13
|
+
|
14
|
+
dotenv.config({
|
15
|
+
path: process.env.ENV_PATH
|
16
|
+
});
|
17
|
+
process.env.NODE_ENV = process.env.NODE_ENV || 'development';
|
18
|
+
const defaultConfig = {
|
19
|
+
server: {
|
20
|
+
host: process.env.HOST || os.hostname() || 'localhost',
|
21
|
+
port: Number(process.env.PORT) || 1337,
|
22
|
+
proxy: false,
|
23
|
+
cron: {
|
24
|
+
enabled: false
|
25
|
+
},
|
26
|
+
admin: {
|
27
|
+
autoOpen: false
|
28
|
+
},
|
29
|
+
dirs: {
|
30
|
+
public: './public'
|
31
|
+
},
|
32
|
+
transfer: {
|
33
|
+
remote: {
|
34
|
+
enabled: true
|
35
|
+
}
|
36
|
+
},
|
37
|
+
logger: {
|
38
|
+
updates: {
|
39
|
+
enabled: true
|
40
|
+
},
|
41
|
+
startup: {
|
42
|
+
enabled: true
|
43
|
+
}
|
44
|
+
}
|
45
|
+
},
|
46
|
+
admin: {},
|
47
|
+
api: {
|
48
|
+
rest: {
|
49
|
+
prefix: '/api'
|
50
|
+
}
|
51
|
+
}
|
52
|
+
};
|
53
|
+
const loadConfiguration = (opts)=>{
|
54
|
+
const { appDir, distDir, autoReload = false, serveAdminPanel = true } = opts;
|
55
|
+
const pkgJSON = require(path.resolve(appDir, 'package.json'));
|
56
|
+
const configDir = path.resolve(distDir || process.cwd(), 'config');
|
57
|
+
const rootConfig = {
|
58
|
+
launchedAt: Date.now(),
|
59
|
+
autoReload,
|
60
|
+
environment: process.env.NODE_ENV,
|
61
|
+
uuid: _.get(pkgJSON, 'strapi.uuid'),
|
62
|
+
packageJsonStrapi: _.omit(_.get(pkgJSON, 'strapi', {}), 'uuid'),
|
63
|
+
info: {
|
64
|
+
...pkgJSON,
|
65
|
+
strapi: _package.version
|
66
|
+
},
|
67
|
+
admin: {
|
68
|
+
serveAdminPanel
|
69
|
+
}
|
70
|
+
};
|
71
|
+
// See packages/core/core/src/domain/module/index.ts for plugin config loading
|
72
|
+
const baseConfig = fp.omit('plugins', configLoader(configDir)); // plugin config will be loaded later
|
73
|
+
const envDir = path.resolve(configDir, 'env', process.env.NODE_ENV);
|
74
|
+
const envConfig = configLoader(envDir);
|
75
|
+
const config = _.merge(rootConfig, defaultConfig, baseConfig, envConfig);
|
76
|
+
const { serverUrl, adminUrl } = urls.getConfigUrls(config);
|
77
|
+
const serverAbsoluteUrl = urls.getAbsoluteServerUrl(config);
|
78
|
+
const adminAbsoluteUrl = urls.getAbsoluteAdminUrl(config);
|
79
|
+
const sameOrigin = new URL(adminAbsoluteUrl).origin === new URL(serverAbsoluteUrl).origin;
|
80
|
+
const adminPath = sameOrigin ? adminUrl.replace(strapiUtils.strings.getCommonPath(serverUrl, adminUrl), '') : new URL(adminUrl).pathname;
|
81
|
+
_.set(config, 'server.url', serverUrl);
|
82
|
+
_.set(config, 'server.absoluteUrl', serverAbsoluteUrl);
|
83
|
+
_.set(config, 'admin.url', adminUrl);
|
84
|
+
_.set(config, 'admin.path', adminPath);
|
85
|
+
_.set(config, 'admin.absoluteUrl', adminAbsoluteUrl);
|
86
|
+
_.set(config, 'dirs', getDirs.getDirs(opts, config));
|
87
|
+
return config;
|
88
|
+
};
|
89
|
+
|
90
|
+
exports.loadConfiguration = loadConfiguration;
|
91
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/configuration/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport os from 'os';\nimport path from 'path';\nimport _ from 'lodash';\nimport { omit } from 'lodash/fp';\nimport dotenv from 'dotenv';\nimport type { Core } from '@strapi/types';\nimport { strings } from '@strapi/utils';\n\nimport { getConfigUrls, getAbsoluteAdminUrl, getAbsoluteServerUrl } from './urls';\nimport loadConfigDir from './config-loader';\nimport { getDirs } from './get-dirs';\n\nimport type { StrapiOptions } from '../Strapi';\nimport { version as strapiVersion } from '../../package.json';\n\ndotenv.config({ path: process.env.ENV_PATH });\n\nprocess.env.NODE_ENV = process.env.NODE_ENV || 'development';\n\nconst defaultConfig = {\n server: {\n host: process.env.HOST || os.hostname() || 'localhost',\n port: Number(process.env.PORT) || 1337,\n proxy: false,\n cron: { enabled: false },\n admin: { autoOpen: false },\n dirs: { public: './public' },\n transfer: {\n remote: {\n enabled: true,\n },\n },\n logger: {\n updates: {\n enabled: true,\n },\n startup: {\n enabled: true,\n },\n },\n } satisfies Partial<Core.Config.Server>,\n admin: {} satisfies Partial<Core.Config.Admin>,\n api: {\n rest: {\n prefix: '/api',\n },\n } satisfies Partial<Core.Config.Api>,\n};\n\nexport const loadConfiguration = (opts: StrapiOptions) => {\n const { appDir, distDir, autoReload = false, serveAdminPanel = true } = opts;\n\n const pkgJSON = require(path.resolve(appDir, 'package.json'));\n\n const configDir = path.resolve(distDir || process.cwd(), 'config');\n\n const rootConfig = {\n launchedAt: Date.now(),\n autoReload,\n environment: process.env.NODE_ENV,\n uuid: _.get(pkgJSON, 'strapi.uuid'),\n packageJsonStrapi: _.omit(_.get(pkgJSON, 'strapi', {}), 'uuid'),\n info: {\n ...pkgJSON,\n strapi: strapiVersion,\n },\n admin: {\n serveAdminPanel,\n },\n };\n\n // See packages/core/core/src/domain/module/index.ts for plugin config loading\n const baseConfig = omit('plugins', loadConfigDir(configDir)); // plugin config will be loaded later\n\n const envDir = path.resolve(configDir, 'env', process.env.NODE_ENV as string);\n const envConfig = loadConfigDir(envDir);\n\n const config = _.merge(rootConfig, defaultConfig, baseConfig, envConfig);\n\n const { serverUrl, adminUrl } = getConfigUrls(config);\n\n const serverAbsoluteUrl = getAbsoluteServerUrl(config);\n const adminAbsoluteUrl = getAbsoluteAdminUrl(config);\n\n const sameOrigin = new URL(adminAbsoluteUrl).origin === new URL(serverAbsoluteUrl).origin;\n\n const adminPath = sameOrigin\n ? adminUrl.replace(strings.getCommonPath(serverUrl, adminUrl), '')\n : new URL(adminUrl).pathname;\n\n _.set(config, 'server.url', serverUrl);\n _.set(config, 'server.absoluteUrl', serverAbsoluteUrl);\n _.set(config, 'admin.url', adminUrl);\n _.set(config, 'admin.path', adminPath);\n _.set(config, 'admin.absoluteUrl', adminAbsoluteUrl);\n _.set(config, 'dirs', getDirs(opts, config));\n\n return config;\n};\n"],"names":["dotenv","config","path","process","env","ENV_PATH","NODE_ENV","defaultConfig","server","host","HOST","os","hostname","port","Number","PORT","proxy","cron","enabled","admin","autoOpen","dirs","public","transfer","remote","logger","updates","startup","api","rest","prefix","loadConfiguration","opts","appDir","distDir","autoReload","serveAdminPanel","pkgJSON","require","resolve","configDir","cwd","rootConfig","launchedAt","Date","now","environment","uuid","_","get","packageJsonStrapi","omit","info","strapi","strapiVersion","baseConfig","loadConfigDir","envDir","envConfig","merge","serverUrl","adminUrl","getConfigUrls","serverAbsoluteUrl","getAbsoluteServerUrl","adminAbsoluteUrl","getAbsoluteAdminUrl","sameOrigin","URL","origin","adminPath","replace","strings","getCommonPath","pathname","set","getDirs"],"mappings":"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"}
|
@@ -0,0 +1,89 @@
|
|
1
|
+
import os from 'os';
|
2
|
+
import path from 'path';
|
3
|
+
import _ from 'lodash';
|
4
|
+
import { omit } from 'lodash/fp';
|
5
|
+
import dotenv from 'dotenv';
|
6
|
+
import { strings } from '@strapi/utils';
|
7
|
+
import { getConfigUrls, getAbsoluteServerUrl, getAbsoluteAdminUrl } from './urls.mjs';
|
8
|
+
import loadConfigDir from './config-loader.mjs';
|
9
|
+
import { getDirs } from './get-dirs.mjs';
|
10
|
+
import { version } from '../package.json.mjs';
|
11
|
+
|
12
|
+
dotenv.config({
|
13
|
+
path: process.env.ENV_PATH
|
14
|
+
});
|
15
|
+
process.env.NODE_ENV = process.env.NODE_ENV || 'development';
|
16
|
+
const defaultConfig = {
|
17
|
+
server: {
|
18
|
+
host: process.env.HOST || os.hostname() || 'localhost',
|
19
|
+
port: Number(process.env.PORT) || 1337,
|
20
|
+
proxy: false,
|
21
|
+
cron: {
|
22
|
+
enabled: false
|
23
|
+
},
|
24
|
+
admin: {
|
25
|
+
autoOpen: false
|
26
|
+
},
|
27
|
+
dirs: {
|
28
|
+
public: './public'
|
29
|
+
},
|
30
|
+
transfer: {
|
31
|
+
remote: {
|
32
|
+
enabled: true
|
33
|
+
}
|
34
|
+
},
|
35
|
+
logger: {
|
36
|
+
updates: {
|
37
|
+
enabled: true
|
38
|
+
},
|
39
|
+
startup: {
|
40
|
+
enabled: true
|
41
|
+
}
|
42
|
+
}
|
43
|
+
},
|
44
|
+
admin: {},
|
45
|
+
api: {
|
46
|
+
rest: {
|
47
|
+
prefix: '/api'
|
48
|
+
}
|
49
|
+
}
|
50
|
+
};
|
51
|
+
const loadConfiguration = (opts)=>{
|
52
|
+
const { appDir, distDir, autoReload = false, serveAdminPanel = true } = opts;
|
53
|
+
const pkgJSON = require(path.resolve(appDir, 'package.json'));
|
54
|
+
const configDir = path.resolve(distDir || process.cwd(), 'config');
|
55
|
+
const rootConfig = {
|
56
|
+
launchedAt: Date.now(),
|
57
|
+
autoReload,
|
58
|
+
environment: process.env.NODE_ENV,
|
59
|
+
uuid: _.get(pkgJSON, 'strapi.uuid'),
|
60
|
+
packageJsonStrapi: _.omit(_.get(pkgJSON, 'strapi', {}), 'uuid'),
|
61
|
+
info: {
|
62
|
+
...pkgJSON,
|
63
|
+
strapi: version
|
64
|
+
},
|
65
|
+
admin: {
|
66
|
+
serveAdminPanel
|
67
|
+
}
|
68
|
+
};
|
69
|
+
// See packages/core/core/src/domain/module/index.ts for plugin config loading
|
70
|
+
const baseConfig = omit('plugins', loadConfigDir(configDir)); // plugin config will be loaded later
|
71
|
+
const envDir = path.resolve(configDir, 'env', process.env.NODE_ENV);
|
72
|
+
const envConfig = loadConfigDir(envDir);
|
73
|
+
const config = _.merge(rootConfig, defaultConfig, baseConfig, envConfig);
|
74
|
+
const { serverUrl, adminUrl } = getConfigUrls(config);
|
75
|
+
const serverAbsoluteUrl = getAbsoluteServerUrl(config);
|
76
|
+
const adminAbsoluteUrl = getAbsoluteAdminUrl(config);
|
77
|
+
const sameOrigin = new URL(adminAbsoluteUrl).origin === new URL(serverAbsoluteUrl).origin;
|
78
|
+
const adminPath = sameOrigin ? adminUrl.replace(strings.getCommonPath(serverUrl, adminUrl), '') : new URL(adminUrl).pathname;
|
79
|
+
_.set(config, 'server.url', serverUrl);
|
80
|
+
_.set(config, 'server.absoluteUrl', serverAbsoluteUrl);
|
81
|
+
_.set(config, 'admin.url', adminUrl);
|
82
|
+
_.set(config, 'admin.path', adminPath);
|
83
|
+
_.set(config, 'admin.absoluteUrl', adminAbsoluteUrl);
|
84
|
+
_.set(config, 'dirs', getDirs(opts, config));
|
85
|
+
return config;
|
86
|
+
};
|
87
|
+
|
88
|
+
export { loadConfiguration };
|
89
|
+
//# sourceMappingURL=index.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/configuration/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport os from 'os';\nimport path from 'path';\nimport _ from 'lodash';\nimport { omit } from 'lodash/fp';\nimport dotenv from 'dotenv';\nimport type { Core } from '@strapi/types';\nimport { strings } from '@strapi/utils';\n\nimport { getConfigUrls, getAbsoluteAdminUrl, getAbsoluteServerUrl } from './urls';\nimport loadConfigDir from './config-loader';\nimport { getDirs } from './get-dirs';\n\nimport type { StrapiOptions } from '../Strapi';\nimport { version as strapiVersion } from '../../package.json';\n\ndotenv.config({ path: process.env.ENV_PATH });\n\nprocess.env.NODE_ENV = process.env.NODE_ENV || 'development';\n\nconst defaultConfig = {\n server: {\n host: process.env.HOST || os.hostname() || 'localhost',\n port: Number(process.env.PORT) || 1337,\n proxy: false,\n cron: { enabled: false },\n admin: { autoOpen: false },\n dirs: { public: './public' },\n transfer: {\n remote: {\n enabled: true,\n },\n },\n logger: {\n updates: {\n enabled: true,\n },\n startup: {\n enabled: true,\n },\n },\n } satisfies Partial<Core.Config.Server>,\n admin: {} satisfies Partial<Core.Config.Admin>,\n api: {\n rest: {\n prefix: '/api',\n },\n } satisfies Partial<Core.Config.Api>,\n};\n\nexport const loadConfiguration = (opts: StrapiOptions) => {\n const { appDir, distDir, autoReload = false, serveAdminPanel = true } = opts;\n\n const pkgJSON = require(path.resolve(appDir, 'package.json'));\n\n const configDir = path.resolve(distDir || process.cwd(), 'config');\n\n const rootConfig = {\n launchedAt: Date.now(),\n autoReload,\n environment: process.env.NODE_ENV,\n uuid: _.get(pkgJSON, 'strapi.uuid'),\n packageJsonStrapi: _.omit(_.get(pkgJSON, 'strapi', {}), 'uuid'),\n info: {\n ...pkgJSON,\n strapi: strapiVersion,\n },\n admin: {\n serveAdminPanel,\n },\n };\n\n // See packages/core/core/src/domain/module/index.ts for plugin config loading\n const baseConfig = omit('plugins', loadConfigDir(configDir)); // plugin config will be loaded later\n\n const envDir = path.resolve(configDir, 'env', process.env.NODE_ENV as string);\n const envConfig = loadConfigDir(envDir);\n\n const config = _.merge(rootConfig, defaultConfig, baseConfig, envConfig);\n\n const { serverUrl, adminUrl } = getConfigUrls(config);\n\n const serverAbsoluteUrl = getAbsoluteServerUrl(config);\n const adminAbsoluteUrl = getAbsoluteAdminUrl(config);\n\n const sameOrigin = new URL(adminAbsoluteUrl).origin === new URL(serverAbsoluteUrl).origin;\n\n const adminPath = sameOrigin\n ? adminUrl.replace(strings.getCommonPath(serverUrl, adminUrl), '')\n : new URL(adminUrl).pathname;\n\n _.set(config, 'server.url', serverUrl);\n _.set(config, 'server.absoluteUrl', serverAbsoluteUrl);\n _.set(config, 'admin.url', adminUrl);\n _.set(config, 'admin.path', adminPath);\n _.set(config, 'admin.absoluteUrl', adminAbsoluteUrl);\n _.set(config, 'dirs', getDirs(opts, config));\n\n return config;\n};\n"],"names":["dotenv","config","path","process","env","ENV_PATH","NODE_ENV","defaultConfig","server","host","HOST","os","hostname","port","Number","PORT","proxy","cron","enabled","admin","autoOpen","dirs","public","transfer","remote","logger","updates","startup","api","rest","prefix","loadConfiguration","opts","appDir","distDir","autoReload","serveAdminPanel","pkgJSON","require","resolve","configDir","cwd","rootConfig","launchedAt","Date","now","environment","uuid","_","get","packageJsonStrapi","omit","info","strapi","strapiVersion","baseConfig","loadConfigDir","envDir","envConfig","merge","serverUrl","adminUrl","getConfigUrls","serverAbsoluteUrl","getAbsoluteServerUrl","adminAbsoluteUrl","getAbsoluteAdminUrl","sameOrigin","URL","origin","adminPath","replace","strings","getCommonPath","pathname","set","getDirs"],"mappings":"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"}
|
@@ -0,0 +1,72 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var _ = require('lodash');
|
4
|
+
var strapiUtils = require('@strapi/utils');
|
5
|
+
|
6
|
+
const getConfigUrls = (config, forAdminBuild = false)=>{
|
7
|
+
const serverConfig = config.server;
|
8
|
+
const adminConfig = config.admin;
|
9
|
+
// Defines serverUrl value
|
10
|
+
let serverUrl = _.get(serverConfig, 'url', '');
|
11
|
+
serverUrl = _.trim(serverUrl, '/ ');
|
12
|
+
if (typeof serverUrl !== 'string') {
|
13
|
+
throw new Error('Invalid server url config. Make sure the url is a string.');
|
14
|
+
}
|
15
|
+
if (serverUrl.startsWith('http')) {
|
16
|
+
try {
|
17
|
+
serverUrl = _.trim(new URL(serverConfig.url).toString(), '/');
|
18
|
+
} catch (e) {
|
19
|
+
throw new Error('Invalid server url config. Make sure the url defined in server.js is valid.');
|
20
|
+
}
|
21
|
+
} else if (serverUrl !== '') {
|
22
|
+
serverUrl = `/${serverUrl}`;
|
23
|
+
}
|
24
|
+
// Defines adminUrl value
|
25
|
+
let adminUrl = _.get(adminConfig, 'url', '/admin');
|
26
|
+
adminUrl = _.trim(adminUrl, '/ ');
|
27
|
+
if (typeof adminUrl !== 'string') {
|
28
|
+
throw new Error('Invalid admin url config. Make sure the url is a non-empty string.');
|
29
|
+
}
|
30
|
+
if (adminUrl.startsWith('http')) {
|
31
|
+
try {
|
32
|
+
adminUrl = _.trim(new URL(adminUrl).toString(), '/');
|
33
|
+
} catch (e) {
|
34
|
+
throw new Error('Invalid admin url config. Make sure the url defined in server.js is valid.');
|
35
|
+
}
|
36
|
+
} else {
|
37
|
+
adminUrl = `${serverUrl}/${adminUrl}`;
|
38
|
+
}
|
39
|
+
// Defines adminPath value
|
40
|
+
let adminPath = adminUrl;
|
41
|
+
if (serverUrl.startsWith('http') && adminUrl.startsWith('http') && new URL(adminUrl).origin === new URL(serverUrl).origin && !forAdminBuild) {
|
42
|
+
adminPath = adminUrl.replace(strapiUtils.strings.getCommonPath(serverUrl, adminUrl), '');
|
43
|
+
adminPath = `/${_.trim(adminPath, '/')}`;
|
44
|
+
} else if (adminUrl.startsWith('http')) {
|
45
|
+
adminPath = new URL(adminUrl).pathname;
|
46
|
+
}
|
47
|
+
return {
|
48
|
+
serverUrl,
|
49
|
+
adminUrl,
|
50
|
+
adminPath
|
51
|
+
};
|
52
|
+
};
|
53
|
+
const getAbsoluteUrl = (adminOrServer)=>(config, forAdminBuild = false)=>{
|
54
|
+
const { serverUrl, adminUrl } = getConfigUrls(config, forAdminBuild);
|
55
|
+
const url = adminOrServer === 'server' ? serverUrl : adminUrl;
|
56
|
+
if (url.startsWith('http')) {
|
57
|
+
return url;
|
58
|
+
}
|
59
|
+
const serverConfig = config.server;
|
60
|
+
const hostname = config.environment === 'development' && [
|
61
|
+
'127.0.0.1',
|
62
|
+
'0.0.0.0'
|
63
|
+
].includes(serverConfig.host) ? 'localhost' : serverConfig.host;
|
64
|
+
return `http://${hostname}:${serverConfig.port}${url}`;
|
65
|
+
};
|
66
|
+
const getAbsoluteAdminUrl = getAbsoluteUrl('admin');
|
67
|
+
const getAbsoluteServerUrl = getAbsoluteUrl('server');
|
68
|
+
|
69
|
+
exports.getAbsoluteAdminUrl = getAbsoluteAdminUrl;
|
70
|
+
exports.getAbsoluteServerUrl = getAbsoluteServerUrl;
|
71
|
+
exports.getConfigUrls = getConfigUrls;
|
72
|
+
//# sourceMappingURL=urls.js.map
|