@strapi/core 0.0.0-experimental.020096d91bef5bab5a6c32b4216da5aeb9383d33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of @strapi/core might be problematic. Click here for more details.
- package/LICENSE +22 -0
- package/README.md +1 -0
- package/dist/Strapi.d.ts +98 -0
- package/dist/Strapi.d.ts.map +1 -0
- package/dist/Strapi.js +447 -0
- package/dist/Strapi.js.map +1 -0
- package/dist/Strapi.mjs +446 -0
- package/dist/Strapi.mjs.map +1 -0
- package/dist/compile.d.ts +10 -0
- package/dist/compile.d.ts.map +1 -0
- package/dist/compile.js +18 -0
- package/dist/compile.js.map +1 -0
- package/dist/compile.mjs +17 -0
- package/dist/compile.mjs.map +1 -0
- package/dist/configuration/config-loader.d.ts +3 -0
- package/dist/configuration/config-loader.d.ts.map +1 -0
- package/dist/configuration/config-loader.js +102 -0
- package/dist/configuration/config-loader.js.map +1 -0
- package/dist/configuration/config-loader.mjs +100 -0
- package/dist/configuration/config-loader.mjs.map +1 -0
- package/dist/configuration/index.d.ts +51 -0
- package/dist/configuration/index.d.ts.map +1 -0
- package/dist/configuration/index.js +78 -0
- package/dist/configuration/index.js.map +1 -0
- package/dist/configuration/index.mjs +74 -0
- package/dist/configuration/index.mjs.map +1 -0
- package/dist/configuration/urls.d.ts +8 -0
- package/dist/configuration/urls.d.ts.map +1 -0
- package/dist/configuration/urls.js +68 -0
- package/dist/configuration/urls.js.map +1 -0
- package/dist/configuration/urls.mjs +66 -0
- package/dist/configuration/urls.mjs.map +1 -0
- package/dist/container.d.ts +8 -0
- package/dist/container.d.ts.map +1 -0
- package/dist/container.js +30 -0
- package/dist/container.js.map +1 -0
- package/dist/container.mjs +30 -0
- package/dist/container.mjs.map +1 -0
- package/dist/core-api/controller/collection-type.d.ts +11 -0
- package/dist/core-api/controller/collection-type.d.ts.map +1 -0
- package/dist/core-api/controller/collection-type.js +81 -0
- package/dist/core-api/controller/collection-type.js.map +1 -0
- package/dist/core-api/controller/collection-type.mjs +81 -0
- package/dist/core-api/controller/collection-type.mjs.map +1 -0
- package/dist/core-api/controller/index.d.ts +6 -0
- package/dist/core-api/controller/index.d.ts.map +1 -0
- package/dist/core-api/controller/index.js +52 -0
- package/dist/core-api/controller/index.js.map +1 -0
- package/dist/core-api/controller/index.mjs +52 -0
- package/dist/core-api/controller/index.mjs.map +1 -0
- package/dist/core-api/controller/single-type.d.ts +10 -0
- package/dist/core-api/controller/single-type.d.ts.map +1 -0
- package/dist/core-api/controller/single-type.js +45 -0
- package/dist/core-api/controller/single-type.js.map +1 -0
- package/dist/core-api/controller/single-type.mjs +45 -0
- package/dist/core-api/controller/single-type.mjs.map +1 -0
- package/dist/core-api/controller/transform.d.ts +14 -0
- package/dist/core-api/controller/transform.d.ts.map +1 -0
- package/dist/core-api/controller/transform.js +79 -0
- package/dist/core-api/controller/transform.js.map +1 -0
- package/dist/core-api/controller/transform.mjs +79 -0
- package/dist/core-api/controller/transform.mjs.map +1 -0
- package/dist/core-api/routes/index.d.ts +24 -0
- package/dist/core-api/routes/index.d.ts.map +1 -0
- package/dist/core-api/routes/index.js +67 -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.d.ts +33 -0
- package/dist/core-api/service/collection-type.d.ts.map +1 -0
- package/dist/core-api/service/collection-type.js +56 -0
- package/dist/core-api/service/collection-type.js.map +1 -0
- package/dist/core-api/service/collection-type.mjs +56 -0
- package/dist/core-api/service/collection-type.mjs.map +1 -0
- package/dist/core-api/service/core-service.d.ts +4 -0
- package/dist/core-api/service/core-service.d.ts.map +1 -0
- package/dist/core-api/service/core-service.js +12 -0
- package/dist/core-api/service/core-service.js.map +1 -0
- package/dist/core-api/service/core-service.mjs +12 -0
- package/dist/core-api/service/core-service.mjs.map +1 -0
- package/dist/core-api/service/index.d.ts +9 -0
- package/dist/core-api/service/index.d.ts.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 +16 -0
- package/dist/core-api/service/index.mjs.map +1 -0
- package/dist/core-api/service/pagination.d.ts +37 -0
- package/dist/core-api/service/pagination.d.ts.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 +78 -0
- package/dist/core-api/service/pagination.mjs.map +1 -0
- package/dist/core-api/service/single-type.d.ts +15 -0
- package/dist/core-api/service/single-type.d.ts.map +1 -0
- package/dist/core-api/service/single-type.js +39 -0
- package/dist/core-api/service/single-type.js.map +1 -0
- package/dist/core-api/service/single-type.mjs +39 -0
- package/dist/core-api/service/single-type.mjs.map +1 -0
- package/dist/domain/content-type/index.d.ts +10 -0
- package/dist/domain/content-type/index.d.ts.map +1 -0
- package/dist/domain/content-type/index.js +111 -0
- package/dist/domain/content-type/index.js.map +1 -0
- package/dist/domain/content-type/index.mjs +109 -0
- package/dist/domain/content-type/index.mjs.map +1 -0
- package/dist/domain/content-type/validator.d.ts +23 -0
- package/dist/domain/content-type/validator.d.ts.map +1 -0
- package/dist/domain/content-type/validator.js +77 -0
- package/dist/domain/content-type/validator.js.map +1 -0
- package/dist/domain/content-type/validator.mjs +75 -0
- package/dist/domain/content-type/validator.mjs.map +1 -0
- package/dist/domain/module/index.d.ts +39 -0
- package/dist/domain/module/index.d.ts.map +1 -0
- package/dist/domain/module/index.js +106 -0
- package/dist/domain/module/index.js.map +1 -0
- package/dist/domain/module/index.mjs +104 -0
- package/dist/domain/module/index.mjs.map +1 -0
- package/dist/domain/module/validation.d.ts +15 -0
- package/dist/domain/module/validation.d.ts.map +1 -0
- package/dist/domain/module/validation.js +25 -0
- package/dist/domain/module/validation.js.map +1 -0
- package/dist/domain/module/validation.mjs +25 -0
- package/dist/domain/module/validation.mjs.map +1 -0
- package/dist/ee/index.d.ts +20 -0
- package/dist/ee/index.d.ts.map +1 -0
- package/dist/ee/index.js +153 -0
- package/dist/ee/index.js.map +1 -0
- package/dist/ee/index.mjs +154 -0
- package/dist/ee/index.mjs.map +1 -0
- package/dist/ee/license.d.ts +21 -0
- package/dist/ee/license.d.ts.map +1 -0
- package/dist/ee/license.js +90 -0
- package/dist/ee/license.js.map +1 -0
- package/dist/ee/license.mjs +87 -0
- package/dist/ee/license.mjs.map +1 -0
- package/dist/factories.d.ts +14 -0
- package/dist/factories.d.ts.map +1 -0
- package/dist/factories.js +76 -0
- package/dist/factories.js.map +1 -0
- package/dist/factories.mjs +76 -0
- package/dist/factories.mjs.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +7 -0
- package/dist/index.mjs.map +1 -0
- package/dist/loaders/admin.d.ts +3 -0
- package/dist/loaders/admin.d.ts.map +1 -0
- package/dist/loaders/admin.js +27 -0
- package/dist/loaders/admin.js.map +1 -0
- package/dist/loaders/admin.mjs +26 -0
- package/dist/loaders/admin.mjs.map +1 -0
- package/dist/loaders/apis.d.ts +3 -0
- package/dist/loaders/apis.d.ts.map +1 -0
- package/dist/loaders/apis.js +137 -0
- package/dist/loaders/apis.js.map +1 -0
- package/dist/loaders/apis.mjs +135 -0
- package/dist/loaders/apis.mjs.map +1 -0
- package/dist/loaders/components.d.ts +3 -0
- package/dist/loaders/components.d.ts.map +1 -0
- package/dist/loaders/components.js +38 -0
- package/dist/loaders/components.js.map +1 -0
- package/dist/loaders/components.mjs +37 -0
- package/dist/loaders/components.mjs.map +1 -0
- package/dist/loaders/index.d.ts +3 -0
- package/dist/loaders/index.d.ts.map +1 -0
- package/dist/loaders/index.js +26 -0
- package/dist/loaders/index.js.map +1 -0
- package/dist/loaders/index.mjs +26 -0
- package/dist/loaders/index.mjs.map +1 -0
- package/dist/loaders/middlewares.d.ts +3 -0
- package/dist/loaders/middlewares.d.ts.map +1 -0
- package/dist/loaders/middlewares.js +31 -0
- package/dist/loaders/middlewares.js.map +1 -0
- package/dist/loaders/middlewares.mjs +30 -0
- package/dist/loaders/middlewares.mjs.map +1 -0
- package/dist/loaders/plugins/get-enabled-plugins.d.ts +5 -0
- package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -0
- package/dist/loaders/plugins/get-enabled-plugins.js +111 -0
- package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -0
- package/dist/loaders/plugins/get-enabled-plugins.mjs +109 -0
- package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -0
- package/dist/loaders/plugins/get-user-plugins-config.d.ts +7 -0
- package/dist/loaders/plugins/get-user-plugins-config.d.ts.map +1 -0
- package/dist/loaders/plugins/get-user-plugins-config.js +27 -0
- package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -0
- package/dist/loaders/plugins/get-user-plugins-config.mjs +25 -0
- package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -0
- package/dist/loaders/plugins/index.d.ts +3 -0
- package/dist/loaders/plugins/index.d.ts.map +1 -0
- package/dist/loaders/plugins/index.js +118 -0
- package/dist/loaders/plugins/index.js.map +1 -0
- package/dist/loaders/plugins/index.mjs +117 -0
- package/dist/loaders/plugins/index.mjs.map +1 -0
- package/dist/loaders/policies.d.ts +3 -0
- package/dist/loaders/policies.d.ts.map +1 -0
- package/dist/loaders/policies.js +25 -0
- package/dist/loaders/policies.js.map +1 -0
- package/dist/loaders/policies.mjs +24 -0
- package/dist/loaders/policies.mjs.map +1 -0
- package/dist/loaders/sanitizers.d.ts +4 -0
- package/dist/loaders/sanitizers.d.ts.map +1 -0
- package/dist/loaders/sanitizers.js +6 -0
- package/dist/loaders/sanitizers.js.map +1 -0
- package/dist/loaders/sanitizers.mjs +7 -0
- package/dist/loaders/sanitizers.mjs.map +1 -0
- package/dist/loaders/src-index.d.ts +4 -0
- package/dist/loaders/src-index.d.ts.map +1 -0
- package/dist/loaders/src-index.js +33 -0
- package/dist/loaders/src-index.js.map +1 -0
- package/dist/loaders/src-index.mjs +34 -0
- package/dist/loaders/src-index.mjs.map +1 -0
- package/dist/loaders/validators.d.ts +4 -0
- package/dist/loaders/validators.d.ts.map +1 -0
- package/dist/loaders/validators.js +6 -0
- package/dist/loaders/validators.js.map +1 -0
- package/dist/loaders/validators.mjs +7 -0
- package/dist/loaders/validators.mjs.map +1 -0
- package/dist/middlewares/body.d.ts +6 -0
- package/dist/middlewares/body.d.ts.map +1 -0
- package/dist/middlewares/body.js +65 -0
- package/dist/middlewares/body.js.map +1 -0
- package/dist/middlewares/body.mjs +61 -0
- package/dist/middlewares/body.mjs.map +1 -0
- package/dist/middlewares/compression.d.ts +5 -0
- package/dist/middlewares/compression.d.ts.map +1 -0
- package/dist/middlewares/compression.js +8 -0
- package/dist/middlewares/compression.js.map +1 -0
- package/dist/middlewares/compression.mjs +6 -0
- package/dist/middlewares/compression.mjs.map +1 -0
- package/dist/middlewares/cors.d.ts +13 -0
- package/dist/middlewares/cors.d.ts.map +1 -0
- package/dist/middlewares/cors.js +51 -0
- package/dist/middlewares/cors.js.map +1 -0
- package/dist/middlewares/cors.mjs +49 -0
- package/dist/middlewares/cors.mjs.map +1 -0
- package/dist/middlewares/errors.d.ts +4 -0
- package/dist/middlewares/errors.d.ts.map +1 -0
- package/dist/middlewares/errors.js +33 -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.d.ts +6 -0
- package/dist/middlewares/favicon.d.ts.map +1 -0
- package/dist/middlewares/favicon.js +22 -0
- package/dist/middlewares/favicon.js.map +1 -0
- package/dist/middlewares/favicon.mjs +20 -0
- package/dist/middlewares/favicon.mjs.map +1 -0
- package/dist/middlewares/index.d.ts +3 -0
- package/dist/middlewares/index.d.ts.map +1 -0
- package/dist/middlewares/index.js +34 -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.d.ts +5 -0
- package/dist/middlewares/ip.d.ts.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.d.ts +3 -0
- package/dist/middlewares/logger.d.ts.map +1 -0
- package/dist/middlewares/logger.js +12 -0
- package/dist/middlewares/logger.js.map +1 -0
- package/dist/middlewares/logger.mjs +12 -0
- package/dist/middlewares/logger.mjs.map +1 -0
- package/dist/middlewares/powered-by.d.ts +6 -0
- package/dist/middlewares/powered-by.d.ts.map +1 -0
- package/dist/middlewares/powered-by.js +14 -0
- package/dist/middlewares/powered-by.js.map +1 -0
- package/dist/middlewares/powered-by.mjs +14 -0
- package/dist/middlewares/powered-by.mjs.map +1 -0
- package/dist/middlewares/public.d.ts +3 -0
- package/dist/middlewares/public.d.ts.map +1 -0
- package/dist/middlewares/public.js +34 -0
- package/dist/middlewares/public.js.map +1 -0
- package/dist/middlewares/public.mjs +32 -0
- package/dist/middlewares/public.mjs.map +1 -0
- package/dist/middlewares/query.d.ts +3 -0
- package/dist/middlewares/query.d.ts.map +1 -0
- package/dist/middlewares/query.js +40 -0
- package/dist/middlewares/query.js.map +1 -0
- package/dist/middlewares/query.mjs +38 -0
- package/dist/middlewares/query.mjs.map +1 -0
- package/dist/middlewares/response-time.d.ts +3 -0
- package/dist/middlewares/response-time.d.ts.map +1 -0
- package/dist/middlewares/response-time.js +12 -0
- package/dist/middlewares/response-time.js.map +1 -0
- package/dist/middlewares/response-time.mjs +12 -0
- package/dist/middlewares/response-time.mjs.map +1 -0
- package/dist/middlewares/responses.d.ts +6 -0
- package/dist/middlewares/responses.d.ts.map +1 -0
- package/dist/middlewares/responses.js +15 -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.d.ts +5 -0
- package/dist/middlewares/security.d.ts.map +1 -0
- package/dist/middlewares/security.js +71 -0
- package/dist/middlewares/security.js.map +1 -0
- package/dist/middlewares/security.mjs +69 -0
- package/dist/middlewares/security.mjs.map +1 -0
- package/dist/middlewares/session.d.ts +4 -0
- package/dist/middlewares/session.d.ts.map +1 -0
- package/dist/middlewares/session.js +30 -0
- package/dist/middlewares/session.js.map +1 -0
- package/dist/middlewares/session.mjs +28 -0
- package/dist/middlewares/session.mjs.map +1 -0
- package/dist/registries/apis.d.ts +8 -0
- package/dist/registries/apis.d.ts.map +1 -0
- package/dist/registries/apis.js +23 -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.d.ts +25 -0
- package/dist/registries/components.d.ts.map +1 -0
- package/dist/registries/components.js +45 -0
- package/dist/registries/components.js.map +1 -0
- package/dist/registries/components.mjs +46 -0
- package/dist/registries/components.mjs.map +1 -0
- package/dist/registries/config.d.ts +4 -0
- package/dist/registries/config.d.ts.map +1 -0
- package/dist/registries/config.js +31 -0
- package/dist/registries/config.js.map +1 -0
- package/dist/registries/config.mjs +32 -0
- package/dist/registries/config.mjs.map +1 -0
- package/dist/registries/content-types.d.ts +33 -0
- package/dist/registries/content-types.d.ts.map +1 -0
- package/dist/registries/content-types.js +70 -0
- package/dist/registries/content-types.js.map +1 -0
- package/dist/registries/content-types.mjs +71 -0
- package/dist/registries/content-types.mjs.map +1 -0
- package/dist/registries/controllers.d.ts +35 -0
- package/dist/registries/controllers.d.ts.map +1 -0
- package/dist/registries/controllers.js +80 -0
- package/dist/registries/controllers.js.map +1 -0
- package/dist/registries/controllers.mjs +81 -0
- package/dist/registries/controllers.mjs.map +1 -0
- package/dist/registries/custom-fields.d.ts +8 -0
- package/dist/registries/custom-fields.d.ts.map +1 -0
- package/dist/registries/custom-fields.js +71 -0
- package/dist/registries/custom-fields.js.map +1 -0
- package/dist/registries/custom-fields.mjs +72 -0
- package/dist/registries/custom-fields.mjs.map +1 -0
- package/dist/registries/hooks.d.ts +44 -0
- package/dist/registries/hooks.d.ts.map +1 -0
- package/dist/registries/hooks.js +58 -0
- package/dist/registries/hooks.js.map +1 -0
- package/dist/registries/hooks.mjs +59 -0
- package/dist/registries/hooks.mjs.map +1 -0
- package/dist/registries/index.d.ts +16 -0
- package/dist/registries/index.d.ts.map +1 -0
- package/dist/registries/middlewares.d.ts +31 -0
- package/dist/registries/middlewares.d.ts.map +1 -0
- package/dist/registries/middlewares.js +60 -0
- package/dist/registries/middlewares.js.map +1 -0
- package/dist/registries/middlewares.mjs +61 -0
- package/dist/registries/middlewares.mjs.map +1 -0
- package/dist/registries/models.d.ts +6 -0
- package/dist/registries/models.d.ts.map +1 -0
- package/dist/registries/models.js +16 -0
- package/dist/registries/models.js.map +1 -0
- package/dist/registries/models.mjs +16 -0
- package/dist/registries/models.mjs.map +1 -0
- package/dist/registries/modules.d.ts +15 -0
- package/dist/registries/modules.d.ts.map +1 -0
- package/dist/registries/modules.js +39 -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.d.ts +5 -0
- package/dist/registries/namespace.d.ts.map +1 -0
- package/dist/registries/namespace.js +27 -0
- package/dist/registries/namespace.js.map +1 -0
- package/dist/registries/namespace.mjs +27 -0
- package/dist/registries/namespace.mjs.map +1 -0
- package/dist/registries/plugins.d.ts +9 -0
- package/dist/registries/plugins.d.ts.map +1 -0
- package/dist/registries/plugins.js +23 -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.d.ts +34 -0
- package/dist/registries/policies.d.ts.map +1 -0
- package/dist/registries/policies.js +62 -0
- package/dist/registries/policies.js.map +1 -0
- package/dist/registries/policies.mjs +63 -0
- package/dist/registries/policies.mjs.map +1 -0
- package/dist/registries/sanitizers.d.ts +10 -0
- package/dist/registries/sanitizers.d.ts.map +1 -0
- package/dist/registries/sanitizers.js +25 -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.d.ts +35 -0
- package/dist/registries/services.d.ts.map +1 -0
- package/dist/registries/services.js +80 -0
- package/dist/registries/services.js.map +1 -0
- package/dist/registries/services.mjs +81 -0
- package/dist/registries/services.mjs.map +1 -0
- package/dist/registries/validators.d.ts +10 -0
- package/dist/registries/validators.d.ts.map +1 -0
- package/dist/registries/validators.js +25 -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.d.ts +26 -0
- package/dist/services/auth/index.d.ts.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 +80 -0
- package/dist/services/auth/index.mjs.map +1 -0
- package/dist/services/content-api/index.d.ts +54 -0
- package/dist/services/content-api/index.d.ts.map +1 -0
- package/dist/services/content-api/index.js +59 -0
- package/dist/services/content-api/index.js.map +1 -0
- package/dist/services/content-api/index.mjs +58 -0
- package/dist/services/content-api/index.mjs.map +1 -0
- package/dist/services/content-api/permissions/engine.d.ts +5 -0
- package/dist/services/content-api/permissions/engine.d.ts.map +1 -0
- package/dist/services/content-api/permissions/engine.js +7 -0
- package/dist/services/content-api/permissions/engine.js.map +1 -0
- package/dist/services/content-api/permissions/engine.mjs +6 -0
- package/dist/services/content-api/permissions/engine.mjs.map +1 -0
- package/dist/services/content-api/permissions/index.d.ts +52 -0
- package/dist/services/content-api/permissions/index.d.ts.map +1 -0
- package/dist/services/content-api/permissions/index.js +87 -0
- package/dist/services/content-api/permissions/index.js.map +1 -0
- package/dist/services/content-api/permissions/index.mjs +86 -0
- package/dist/services/content-api/permissions/index.mjs.map +1 -0
- package/dist/services/content-api/permissions/providers/action.d.ts +20 -0
- package/dist/services/content-api/permissions/providers/action.d.ts.map +1 -0
- package/dist/services/content-api/permissions/providers/action.js +16 -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.d.ts +24 -0
- package/dist/services/content-api/permissions/providers/condition.d.ts.map +1 -0
- package/dist/services/content-api/permissions/providers/condition.js +16 -0
- package/dist/services/content-api/permissions/providers/condition.js.map +1 -0
- package/dist/services/content-api/permissions/providers/condition.mjs +17 -0
- package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -0
- package/dist/services/content-api/permissions/providers/index.d.ts +3 -0
- package/dist/services/content-api/permissions/providers/index.d.ts.map +1 -0
- package/dist/services/core-store.d.ts +33 -0
- package/dist/services/core-store.d.ts.map +1 -0
- package/dist/services/core-store.js +107 -0
- package/dist/services/core-store.js.map +1 -0
- package/dist/services/core-store.mjs +107 -0
- package/dist/services/core-store.mjs.map +1 -0
- package/dist/services/cron.d.ts +27 -0
- package/dist/services/cron.d.ts.map +1 -0
- package/dist/services/cron.js +63 -0
- package/dist/services/cron.js.map +1 -0
- package/dist/services/cron.mjs +64 -0
- package/dist/services/cron.mjs.map +1 -0
- package/dist/services/custom-fields.d.ts +4 -0
- package/dist/services/custom-fields.d.ts.map +1 -0
- package/dist/services/custom-fields.js +10 -0
- package/dist/services/custom-fields.js.map +1 -0
- package/dist/services/custom-fields.mjs +11 -0
- package/dist/services/custom-fields.mjs.map +1 -0
- package/dist/services/document-service/common.d.ts +4 -0
- package/dist/services/document-service/common.d.ts.map +1 -0
- package/dist/services/document-service/common.js +7 -0
- package/dist/services/document-service/common.js.map +1 -0
- package/dist/services/document-service/common.mjs +7 -0
- package/dist/services/document-service/common.mjs.map +1 -0
- package/dist/services/document-service/components.d.ts +2 -0
- package/dist/services/document-service/components.d.ts.map +1 -0
- package/dist/services/document-service/draft-and-publish.d.ts +10 -0
- package/dist/services/document-service/draft-and-publish.d.ts.map +1 -0
- package/dist/services/document-service/draft-and-publish.js +69 -0
- package/dist/services/document-service/draft-and-publish.js.map +1 -0
- package/dist/services/document-service/draft-and-publish.mjs +69 -0
- package/dist/services/document-service/draft-and-publish.mjs.map +1 -0
- package/dist/services/document-service/index.d.ts +19 -0
- package/dist/services/document-service/index.d.ts.map +1 -0
- package/dist/services/document-service/index.js +22 -0
- package/dist/services/document-service/index.js.map +1 -0
- package/dist/services/document-service/index.mjs +22 -0
- package/dist/services/document-service/index.mjs.map +1 -0
- package/dist/services/document-service/internationalization.d.ts +8 -0
- package/dist/services/document-service/internationalization.d.ts.map +1 -0
- package/dist/services/document-service/internationalization.js +54 -0
- package/dist/services/document-service/internationalization.js.map +1 -0
- package/dist/services/document-service/internationalization.mjs +54 -0
- package/dist/services/document-service/internationalization.mjs.map +1 -0
- package/dist/services/document-service/middlewares.d.ts +8 -0
- package/dist/services/document-service/middlewares.d.ts.map +1 -0
- package/dist/services/document-service/middlewares.js +46 -0
- package/dist/services/document-service/middlewares.js.map +1 -0
- package/dist/services/document-service/middlewares.mjs +46 -0
- package/dist/services/document-service/middlewares.mjs.map +1 -0
- package/dist/services/document-service/params.d.ts +2 -0
- package/dist/services/document-service/params.d.ts.map +1 -0
- package/dist/services/document-service/repository.d.ts +3 -0
- package/dist/services/document-service/repository.d.ts.map +1 -0
- package/dist/services/document-service/repository.js +304 -0
- package/dist/services/document-service/repository.js.map +1 -0
- package/dist/services/document-service/repository.mjs +304 -0
- package/dist/services/document-service/repository.mjs.map +1 -0
- package/dist/services/document-service/transform/data.d.ts +5 -0
- package/dist/services/document-service/transform/data.d.ts.map +1 -0
- package/dist/services/document-service/transform/data.js +13 -0
- package/dist/services/document-service/transform/data.js.map +1 -0
- package/dist/services/document-service/transform/data.mjs +13 -0
- package/dist/services/document-service/transform/data.mjs.map +1 -0
- package/dist/services/document-service/transform/fields.d.ts +5 -0
- package/dist/services/document-service/transform/fields.d.ts.map +1 -0
- package/dist/services/document-service/transform/fields.js +24 -0
- package/dist/services/document-service/transform/fields.js.map +1 -0
- package/dist/services/document-service/transform/fields.mjs +24 -0
- package/dist/services/document-service/transform/fields.mjs.map +1 -0
- package/dist/services/document-service/transform/filters.d.ts +3 -0
- package/dist/services/document-service/transform/filters.d.ts.map +1 -0
- package/dist/services/document-service/transform/id-map.d.ts +23 -0
- package/dist/services/document-service/transform/id-map.d.ts.map +1 -0
- package/dist/services/document-service/transform/id-map.js +78 -0
- package/dist/services/document-service/transform/id-map.js.map +1 -0
- package/dist/services/document-service/transform/id-map.mjs +78 -0
- package/dist/services/document-service/transform/id-map.mjs.map +1 -0
- package/dist/services/document-service/transform/id-transform.d.ts +5 -0
- package/dist/services/document-service/transform/id-transform.d.ts.map +1 -0
- package/dist/services/document-service/transform/id-transform.js +33 -0
- package/dist/services/document-service/transform/id-transform.js.map +1 -0
- package/dist/services/document-service/transform/id-transform.mjs +33 -0
- package/dist/services/document-service/transform/id-transform.mjs.map +1 -0
- package/dist/services/document-service/transform/populate.d.ts +6 -0
- package/dist/services/document-service/transform/populate.d.ts.map +1 -0
- package/dist/services/document-service/transform/populate.js +21 -0
- package/dist/services/document-service/transform/populate.js.map +1 -0
- package/dist/services/document-service/transform/populate.mjs +21 -0
- package/dist/services/document-service/transform/populate.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +13 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.js +90 -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 +90 -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.d.ts +10 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.js +141 -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 +141 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/transform/output-ids.d.ts +4 -0
- package/dist/services/document-service/transform/relations/transform/output-ids.d.ts.map +1 -0
- package/dist/services/document-service/transform/relations/utils/data.d.ts +4 -0
- package/dist/services/document-service/transform/relations/utils/data.d.ts.map +1 -0
- package/dist/services/document-service/transform/relations/utils/data.js +12 -0
- package/dist/services/document-service/transform/relations/utils/data.js.map +1 -0
- package/dist/services/document-service/transform/relations/utils/data.mjs +12 -0
- package/dist/services/document-service/transform/relations/utils/data.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/utils/dp.d.ts +10 -0
- package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -0
- package/dist/services/document-service/transform/relations/utils/dp.js +25 -0
- package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -0
- package/dist/services/document-service/transform/relations/utils/dp.mjs +25 -0
- package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/utils/i18n.d.ts +10 -0
- package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -0
- package/dist/services/document-service/transform/relations/utils/i18n.js +31 -0
- package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -0
- package/dist/services/document-service/transform/relations/utils/i18n.mjs +31 -0
- package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/utils/types.d.ts +15 -0
- package/dist/services/document-service/transform/relations/utils/types.d.ts.map +1 -0
- package/dist/services/document-service/transform/sort.d.ts +5 -0
- package/dist/services/document-service/transform/sort.d.ts.map +1 -0
- package/dist/services/document-service/transform/types.d.ts +13 -0
- package/dist/services/document-service/transform/types.d.ts.map +1 -0
- package/dist/services/document-service/transform/utils.d.ts +9 -0
- package/dist/services/document-service/transform/utils.d.ts.map +1 -0
- package/dist/services/document-service/utils/populate.d.ts +3 -0
- package/dist/services/document-service/utils/populate.d.ts.map +1 -0
- package/dist/services/document-service/utils/populate.js +41 -0
- package/dist/services/document-service/utils/populate.js.map +1 -0
- package/dist/services/document-service/utils/populate.mjs +41 -0
- package/dist/services/document-service/utils/populate.mjs.map +1 -0
- package/dist/services/entity-service/attributes/index.d.ts +6 -0
- package/dist/services/entity-service/attributes/index.d.ts.map +1 -0
- package/dist/services/entity-service/attributes/index.js +22 -0
- package/dist/services/entity-service/attributes/index.js.map +1 -0
- package/dist/services/entity-service/attributes/index.mjs +22 -0
- package/dist/services/entity-service/attributes/index.mjs.map +1 -0
- package/dist/services/entity-service/attributes/transforms.d.ts +10 -0
- package/dist/services/entity-service/attributes/transforms.d.ts.map +1 -0
- package/dist/services/entity-service/attributes/transforms.js +20 -0
- package/dist/services/entity-service/attributes/transforms.js.map +1 -0
- package/dist/services/entity-service/attributes/transforms.mjs +19 -0
- package/dist/services/entity-service/attributes/transforms.mjs.map +1 -0
- package/dist/services/entity-service/components.d.ts +23 -0
- package/dist/services/entity-service/components.d.ts.map +1 -0
- package/dist/services/entity-service/components.js +384 -0
- package/dist/services/entity-service/components.js.map +1 -0
- package/dist/services/entity-service/components.mjs +382 -0
- package/dist/services/entity-service/components.mjs.map +1 -0
- package/dist/services/entity-service/index.d.ts +15 -0
- package/dist/services/entity-service/index.d.ts.map +1 -0
- package/dist/services/entity-service/index.js +328 -0
- package/dist/services/entity-service/index.js.map +1 -0
- package/dist/services/entity-service/index.mjs +326 -0
- package/dist/services/entity-service/index.mjs.map +1 -0
- package/dist/services/entity-service/params.d.ts +8 -0
- package/dist/services/entity-service/params.d.ts.map +1 -0
- package/dist/services/entity-service/params.js +8 -0
- package/dist/services/entity-service/params.js.map +1 -0
- package/dist/services/entity-service/params.mjs +8 -0
- package/dist/services/entity-service/params.mjs.map +1 -0
- package/dist/services/entity-validator/blocks-validator.d.ts +4 -0
- package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -0
- package/dist/services/entity-validator/blocks-validator.js +127 -0
- package/dist/services/entity-validator/blocks-validator.js.map +1 -0
- package/dist/services/entity-validator/blocks-validator.mjs +128 -0
- package/dist/services/entity-validator/blocks-validator.mjs.map +1 -0
- package/dist/services/entity-validator/index.d.ts +8 -0
- package/dist/services/entity-validator/index.d.ts.map +1 -0
- package/dist/services/entity-validator/index.js +322 -0
- package/dist/services/entity-validator/index.js.map +1 -0
- package/dist/services/entity-validator/index.mjs +321 -0
- package/dist/services/entity-validator/index.mjs.map +1 -0
- package/dist/services/entity-validator/validators.d.ts +39 -0
- package/dist/services/entity-validator/validators.d.ts.map +1 -0
- package/dist/services/entity-validator/validators.js +121 -0
- package/dist/services/entity-validator/validators.js.map +1 -0
- package/dist/services/entity-validator/validators.mjs +119 -0
- package/dist/services/entity-validator/validators.mjs.map +1 -0
- package/dist/services/errors.d.ts +40 -0
- package/dist/services/errors.d.ts.map +1 -0
- package/dist/services/errors.js +76 -0
- package/dist/services/errors.js.map +1 -0
- package/dist/services/errors.mjs +74 -0
- package/dist/services/errors.mjs.map +1 -0
- package/dist/services/event-hub.d.ts +19 -0
- package/dist/services/event-hub.d.ts.map +1 -0
- package/dist/services/event-hub.js +67 -0
- package/dist/services/event-hub.js.map +1 -0
- package/dist/services/event-hub.mjs +68 -0
- package/dist/services/event-hub.mjs.map +1 -0
- package/dist/services/features.d.ts +10 -0
- package/dist/services/features.d.ts.map +1 -0
- package/dist/services/features.js +17 -0
- package/dist/services/features.js.map +1 -0
- package/dist/services/features.mjs +17 -0
- package/dist/services/features.mjs.map +1 -0
- package/dist/services/fs.d.ts +13 -0
- package/dist/services/fs.d.ts.map +1 -0
- package/dist/services/fs.js +51 -0
- package/dist/services/fs.js.map +1 -0
- package/dist/services/fs.mjs +49 -0
- package/dist/services/fs.mjs.map +1 -0
- package/dist/services/metrics/admin-user-hash.d.ts +7 -0
- package/dist/services/metrics/admin-user-hash.d.ts.map +1 -0
- package/dist/services/metrics/admin-user-hash.js +14 -0
- package/dist/services/metrics/admin-user-hash.js.map +1 -0
- package/dist/services/metrics/admin-user-hash.mjs +12 -0
- package/dist/services/metrics/admin-user-hash.mjs.map +1 -0
- package/dist/services/metrics/index.d.ts +14 -0
- package/dist/services/metrics/index.d.ts.map +1 -0
- package/dist/services/metrics/index.js +45 -0
- package/dist/services/metrics/index.js.map +1 -0
- package/dist/services/metrics/index.mjs +46 -0
- package/dist/services/metrics/index.mjs.map +1 -0
- package/dist/services/metrics/is-truthy.d.ts +3 -0
- package/dist/services/metrics/is-truthy.d.ts.map +1 -0
- package/dist/services/metrics/is-truthy.js +9 -0
- package/dist/services/metrics/is-truthy.js.map +1 -0
- package/dist/services/metrics/is-truthy.mjs +8 -0
- package/dist/services/metrics/is-truthy.mjs.map +1 -0
- package/dist/services/metrics/middleware.d.ts +7 -0
- package/dist/services/metrics/middleware.d.ts.map +1 -0
- package/dist/services/metrics/middleware.js +25 -0
- package/dist/services/metrics/middleware.js.map +1 -0
- package/dist/services/metrics/middleware.mjs +26 -0
- package/dist/services/metrics/middleware.mjs.map +1 -0
- package/dist/services/metrics/rate-limiter.d.ts +7 -0
- package/dist/services/metrics/rate-limiter.d.ts.map +1 -0
- package/dist/services/metrics/rate-limiter.js +21 -0
- package/dist/services/metrics/rate-limiter.js.map +1 -0
- package/dist/services/metrics/rate-limiter.mjs +22 -0
- package/dist/services/metrics/rate-limiter.mjs.map +1 -0
- package/dist/services/metrics/sender.d.ts +13 -0
- package/dist/services/metrics/sender.d.ts.map +1 -0
- package/dist/services/metrics/sender.js +76 -0
- package/dist/services/metrics/sender.js.map +1 -0
- package/dist/services/metrics/sender.mjs +70 -0
- package/dist/services/metrics/sender.mjs.map +1 -0
- package/dist/services/request-context.d.ts +7 -0
- package/dist/services/request-context.d.ts.map +1 -0
- package/dist/services/request-context.js +13 -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.d.ts +11 -0
- package/dist/services/server/admin-api.d.ts.map +1 -0
- package/dist/services/server/admin-api.js +13 -0
- package/dist/services/server/admin-api.js.map +1 -0
- package/dist/services/server/admin-api.mjs +13 -0
- package/dist/services/server/admin-api.mjs.map +1 -0
- package/dist/services/server/api.d.ts +15 -0
- package/dist/services/server/api.d.ts.map +1 -0
- package/dist/services/server/api.js +30 -0
- package/dist/services/server/api.js.map +1 -0
- package/dist/services/server/api.mjs +28 -0
- package/dist/services/server/api.mjs.map +1 -0
- package/dist/services/server/compose-endpoint.d.ts +7 -0
- package/dist/services/server/compose-endpoint.d.ts.map +1 -0
- package/dist/services/server/compose-endpoint.js +118 -0
- package/dist/services/server/compose-endpoint.js.map +1 -0
- package/dist/services/server/compose-endpoint.mjs +117 -0
- package/dist/services/server/compose-endpoint.mjs.map +1 -0
- package/dist/services/server/content-api.d.ts +11 -0
- package/dist/services/server/content-api.d.ts.map +1 -0
- package/dist/services/server/content-api.js +12 -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.d.ts +10 -0
- package/dist/services/server/http-server.d.ts.map +1 -0
- package/dist/services/server/http-server.js +50 -0
- package/dist/services/server/http-server.js.map +1 -0
- package/dist/services/server/http-server.mjs +48 -0
- package/dist/services/server/http-server.mjs.map +1 -0
- package/dist/services/server/index.d.ts +4 -0
- package/dist/services/server/index.d.ts.map +1 -0
- package/dist/services/server/index.js +88 -0
- package/dist/services/server/index.js.map +1 -0
- package/dist/services/server/index.mjs +86 -0
- package/dist/services/server/index.mjs.map +1 -0
- package/dist/services/server/koa.d.ts +16 -0
- package/dist/services/server/koa.d.ts.map +1 -0
- package/dist/services/server/koa.js +52 -0
- package/dist/services/server/koa.js.map +1 -0
- package/dist/services/server/koa.mjs +48 -0
- package/dist/services/server/koa.mjs.map +1 -0
- package/dist/services/server/middleware.d.ts +11 -0
- package/dist/services/server/middleware.d.ts.map +1 -0
- package/dist/services/server/middleware.js +92 -0
- package/dist/services/server/middleware.js.map +1 -0
- package/dist/services/server/middleware.mjs +90 -0
- package/dist/services/server/middleware.mjs.map +1 -0
- package/dist/services/server/policy.d.ts +4 -0
- package/dist/services/server/policy.d.ts.map +1 -0
- package/dist/services/server/policy.js +20 -0
- package/dist/services/server/policy.js.map +1 -0
- package/dist/services/server/policy.mjs +20 -0
- package/dist/services/server/policy.mjs.map +1 -0
- package/dist/services/server/register-middlewares.d.ts +7 -0
- package/dist/services/server/register-middlewares.d.ts.map +1 -0
- package/dist/services/server/register-middlewares.js +72 -0
- package/dist/services/server/register-middlewares.js.map +1 -0
- package/dist/services/server/register-middlewares.mjs +73 -0
- package/dist/services/server/register-middlewares.mjs.map +1 -0
- package/dist/services/server/register-routes.d.ts +7 -0
- package/dist/services/server/register-routes.d.ts.map +1 -0
- package/dist/services/server/register-routes.js +76 -0
- package/dist/services/server/register-routes.js.map +1 -0
- package/dist/services/server/register-routes.mjs +75 -0
- package/dist/services/server/register-routes.mjs.map +1 -0
- package/dist/services/server/routing.d.ts +34 -0
- package/dist/services/server/routing.d.ts.map +1 -0
- package/dist/services/server/routing.js +91 -0
- package/dist/services/server/routing.js.map +1 -0
- package/dist/services/server/routing.mjs +89 -0
- package/dist/services/server/routing.mjs.map +1 -0
- package/dist/services/utils/dynamic-zones.d.ts +3 -0
- package/dist/services/utils/dynamic-zones.d.ts.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 +17 -0
- package/dist/services/utils/dynamic-zones.mjs.map +1 -0
- package/dist/services/utils/upload-files.d.ts +8 -0
- package/dist/services/utils/upload-files.d.ts.map +1 -0
- package/dist/services/utils/upload-files.js +64 -0
- package/dist/services/utils/upload-files.js.map +1 -0
- package/dist/services/utils/upload-files.mjs +63 -0
- package/dist/services/utils/upload-files.mjs.map +1 -0
- package/dist/services/webhook-runner.d.ts +49 -0
- package/dist/services/webhook-runner.d.ts.map +1 -0
- package/dist/services/webhook-runner.js +133 -0
- package/dist/services/webhook-runner.js.map +1 -0
- package/dist/services/webhook-runner.mjs +131 -0
- package/dist/services/webhook-runner.mjs.map +1 -0
- package/dist/services/webhook-store.d.ts +30 -0
- package/dist/services/webhook-store.d.ts.map +1 -0
- package/dist/services/webhook-store.js +104 -0
- package/dist/services/webhook-store.js.map +1 -0
- package/dist/services/webhook-store.mjs +104 -0
- package/dist/services/webhook-store.mjs.map +1 -0
- package/dist/services/worker-queue.d.ts +20 -0
- package/dist/services/worker-queue.d.ts.map +1 -0
- package/dist/services/worker-queue.js +56 -0
- package/dist/services/worker-queue.js.map +1 -0
- package/dist/services/worker-queue.mjs +55 -0
- package/dist/services/worker-queue.mjs.map +1 -0
- package/dist/utils/convert-custom-field-type.d.ts +3 -0
- package/dist/utils/convert-custom-field-type.d.ts.map +1 -0
- package/dist/utils/convert-custom-field-type.js +24 -0
- package/dist/utils/convert-custom-field-type.js.map +1 -0
- package/dist/utils/convert-custom-field-type.mjs +24 -0
- package/dist/utils/convert-custom-field-type.mjs.map +1 -0
- package/dist/utils/cron.d.ts +8 -0
- package/dist/utils/cron.d.ts.map +1 -0
- package/dist/utils/cron.js +38 -0
- package/dist/utils/cron.js.map +1 -0
- package/dist/utils/cron.mjs +38 -0
- package/dist/utils/cron.mjs.map +1 -0
- package/dist/utils/ee.d.ts +2 -0
- package/dist/utils/ee.d.ts.map +1 -0
- package/dist/utils/fetch.d.ts +4 -0
- package/dist/utils/fetch.d.ts.map +1 -0
- package/dist/utils/fetch.js +20 -0
- package/dist/utils/fetch.js.map +1 -0
- package/dist/utils/fetch.mjs +20 -0
- package/dist/utils/fetch.mjs.map +1 -0
- package/dist/utils/filepath-to-prop-path.d.ts +5 -0
- package/dist/utils/filepath-to-prop-path.d.ts.map +1 -0
- package/dist/utils/filepath-to-prop-path.js +12 -0
- package/dist/utils/filepath-to-prop-path.js.map +1 -0
- package/dist/utils/filepath-to-prop-path.mjs +10 -0
- package/dist/utils/filepath-to-prop-path.mjs.map +1 -0
- package/dist/utils/get-dirs.d.ts +9 -0
- package/dist/utils/get-dirs.d.ts.map +1 -0
- package/dist/utils/get-dirs.js +30 -0
- package/dist/utils/get-dirs.js.map +1 -0
- package/dist/utils/get-dirs.mjs +30 -0
- package/dist/utils/get-dirs.mjs.map +1 -0
- package/dist/utils/index.d.ts +12 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/is-initialized.d.ts +6 -0
- package/dist/utils/is-initialized.d.ts.map +1 -0
- package/dist/utils/is-initialized.js +16 -0
- package/dist/utils/is-initialized.js.map +1 -0
- package/dist/utils/is-initialized.mjs +16 -0
- package/dist/utils/is-initialized.mjs.map +1 -0
- package/dist/utils/lifecycles.d.ts +6 -0
- package/dist/utils/lifecycles.d.ts.map +1 -0
- package/dist/utils/lifecycles.js +9 -0
- package/dist/utils/lifecycles.js.map +1 -0
- package/dist/utils/lifecycles.mjs +9 -0
- package/dist/utils/lifecycles.mjs.map +1 -0
- package/dist/utils/load-config-file.d.ts +2 -0
- package/dist/utils/load-config-file.d.ts.map +1 -0
- package/dist/utils/load-config-file.js +45 -0
- package/dist/utils/load-config-file.js.map +1 -0
- package/dist/utils/load-config-file.mjs +42 -0
- package/dist/utils/load-config-file.mjs.map +1 -0
- package/dist/utils/load-files.d.ts +11 -0
- package/dist/utils/load-files.d.ts.map +1 -0
- package/dist/utils/load-files.js +39 -0
- package/dist/utils/load-files.js.map +1 -0
- package/dist/utils/load-files.mjs +35 -0
- package/dist/utils/load-files.mjs.map +1 -0
- package/dist/utils/open-browser.d.ts +4 -0
- package/dist/utils/open-browser.d.ts.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/signals.d.ts +3 -0
- package/dist/utils/signals.d.ts.map +1 -0
- package/dist/utils/signals.js +17 -0
- package/dist/utils/signals.js.map +1 -0
- package/dist/utils/signals.mjs +17 -0
- package/dist/utils/signals.mjs.map +1 -0
- package/dist/utils/startup-logger.d.ts +10 -0
- package/dist/utils/startup-logger.d.ts.map +1 -0
- package/dist/utils/startup-logger.js +81 -0
- package/dist/utils/startup-logger.js.map +1 -0
- package/dist/utils/startup-logger.mjs +77 -0
- package/dist/utils/startup-logger.mjs.map +1 -0
- package/dist/utils/transform-content-types-to-models.d.ts +177 -0
- package/dist/utils/transform-content-types-to-models.d.ts.map +1 -0
- package/dist/utils/transform-content-types-to-models.js +237 -0
- package/dist/utils/transform-content-types-to-models.js.map +1 -0
- package/dist/utils/transform-content-types-to-models.mjs +234 -0
- package/dist/utils/transform-content-types-to-models.mjs.map +1 -0
- package/dist/utils/update-notifier/index.d.ts +8 -0
- package/dist/utils/update-notifier/index.d.ts.map +1 -0
- package/dist/utils/update-notifier/index.js +88 -0
- package/dist/utils/update-notifier/index.js.map +1 -0
- package/dist/utils/update-notifier/index.mjs +81 -0
- package/dist/utils/update-notifier/index.mjs.map +1 -0
- package/package.json +134 -0
- package/resources/key.pub +9 -0
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const database = require("@strapi/database");
|
|
4
|
+
const cuid2 = require("@paralleldrive/cuid2");
|
|
5
|
+
const assert = require("node:assert");
|
|
6
|
+
const _ = require("lodash/fp");
|
|
7
|
+
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
8
|
+
const assert__default = /* @__PURE__ */ _interopDefault(assert);
|
|
9
|
+
const ___default = /* @__PURE__ */ _interopDefault(_);
|
|
10
|
+
const { identifiers } = database.utils;
|
|
11
|
+
const COMPONENT_JOIN_TABLE_SUFFIX = "components";
|
|
12
|
+
const DZ_JOIN_TABLE_SUFFIX = "components";
|
|
13
|
+
const COMPONENT_INVERSE_COLUMN_NAME = "component";
|
|
14
|
+
const COMPONENT_TYPE_COLUMN = "component_type";
|
|
15
|
+
const ENTITY = "entity";
|
|
16
|
+
const getComponentJoinTableName = (collectionName) => identifiers.getTableName(collectionName, { suffix: COMPONENT_JOIN_TABLE_SUFFIX });
|
|
17
|
+
const getDzJoinTableName = (collectionName) => identifiers.getTableName(collectionName, { suffix: DZ_JOIN_TABLE_SUFFIX });
|
|
18
|
+
const { ID_COLUMN: id, FIELD_COLUMN: field, ORDER_COLUMN: order } = identifiers;
|
|
19
|
+
const transformAttribute = (name, attribute, contentType) => {
|
|
20
|
+
switch (attribute.type) {
|
|
21
|
+
case "media": {
|
|
22
|
+
return {
|
|
23
|
+
type: "relation",
|
|
24
|
+
relation: attribute.multiple === true ? "morphMany" : "morphOne",
|
|
25
|
+
target: "plugin::upload.file",
|
|
26
|
+
morphBy: "related"
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
case "component": {
|
|
30
|
+
const joinTableName = getComponentJoinTableName(contentType.collectionName);
|
|
31
|
+
const joinColumnEntityName = identifiers.getJoinColumnAttributeIdName(ENTITY);
|
|
32
|
+
const joinColumnInverseName = identifiers.getJoinColumnAttributeIdName(
|
|
33
|
+
COMPONENT_INVERSE_COLUMN_NAME
|
|
34
|
+
);
|
|
35
|
+
return {
|
|
36
|
+
type: "relation",
|
|
37
|
+
relation: attribute.repeatable === true ? "oneToMany" : "oneToOne",
|
|
38
|
+
target: attribute.component,
|
|
39
|
+
// We need the join table name to be deterministic,
|
|
40
|
+
// We need to allow passing the join table name as an option
|
|
41
|
+
joinTable: {
|
|
42
|
+
name: joinTableName,
|
|
43
|
+
joinColumn: {
|
|
44
|
+
name: joinColumnEntityName,
|
|
45
|
+
referencedColumn: id
|
|
46
|
+
},
|
|
47
|
+
inverseJoinColumn: {
|
|
48
|
+
name: joinColumnInverseName,
|
|
49
|
+
referencedColumn: id
|
|
50
|
+
},
|
|
51
|
+
on: {
|
|
52
|
+
field: name
|
|
53
|
+
},
|
|
54
|
+
orderColumnName: order,
|
|
55
|
+
orderBy: {
|
|
56
|
+
order: "asc"
|
|
57
|
+
},
|
|
58
|
+
pivotColumns: [joinColumnEntityName, joinColumnInverseName, field, COMPONENT_TYPE_COLUMN]
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
case "dynamiczone": {
|
|
63
|
+
const joinTableName = getDzJoinTableName(contentType.collectionName);
|
|
64
|
+
const joinColumnEntityName = identifiers.getJoinColumnAttributeIdName(ENTITY);
|
|
65
|
+
const joinColumnInverseName = identifiers.getJoinColumnAttributeIdName(
|
|
66
|
+
COMPONENT_INVERSE_COLUMN_NAME
|
|
67
|
+
);
|
|
68
|
+
return {
|
|
69
|
+
type: "relation",
|
|
70
|
+
relation: "morphToMany",
|
|
71
|
+
// TODO: handle restrictions at some point
|
|
72
|
+
// target: attribute.components,
|
|
73
|
+
joinTable: {
|
|
74
|
+
name: joinTableName,
|
|
75
|
+
joinColumn: {
|
|
76
|
+
name: joinColumnEntityName,
|
|
77
|
+
referencedColumn: id
|
|
78
|
+
},
|
|
79
|
+
morphColumn: {
|
|
80
|
+
idColumn: {
|
|
81
|
+
name: joinColumnInverseName,
|
|
82
|
+
referencedColumn: id
|
|
83
|
+
},
|
|
84
|
+
typeColumn: {
|
|
85
|
+
name: COMPONENT_TYPE_COLUMN
|
|
86
|
+
},
|
|
87
|
+
typeField: "__component"
|
|
88
|
+
},
|
|
89
|
+
on: {
|
|
90
|
+
field: name
|
|
91
|
+
},
|
|
92
|
+
orderBy: {
|
|
93
|
+
order: "asc"
|
|
94
|
+
},
|
|
95
|
+
pivotColumns: [joinColumnEntityName, joinColumnInverseName, field, COMPONENT_TYPE_COLUMN]
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
default: {
|
|
100
|
+
return attribute;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
const transformAttributes = (contentType) => {
|
|
105
|
+
return Object.keys(contentType.attributes || {}).reduce((attrs, attrName) => {
|
|
106
|
+
return {
|
|
107
|
+
...attrs,
|
|
108
|
+
[attrName]: transformAttribute(attrName, contentType.attributes[attrName], contentType)
|
|
109
|
+
};
|
|
110
|
+
}, {});
|
|
111
|
+
};
|
|
112
|
+
const hasComponentsOrDz = (contentType) => {
|
|
113
|
+
return Object.values(contentType.attributes || {}).some(
|
|
114
|
+
({ type }) => type === "dynamiczone" || type === "component"
|
|
115
|
+
);
|
|
116
|
+
};
|
|
117
|
+
const createDocumentId = cuid2.createId;
|
|
118
|
+
const createCompoLinkModel = (contentType) => {
|
|
119
|
+
const name = getComponentJoinTableName(contentType.collectionName);
|
|
120
|
+
const entityId = identifiers.getJoinColumnAttributeIdName(ENTITY);
|
|
121
|
+
const componentId = identifiers.getJoinColumnAttributeIdName(COMPONENT_INVERSE_COLUMN_NAME);
|
|
122
|
+
const fkIndex = identifiers.getFkIndexName([contentType.collectionName, ENTITY]);
|
|
123
|
+
return {
|
|
124
|
+
// TODO: make sure there can't be any conflicts with a prefix
|
|
125
|
+
singularName: name,
|
|
126
|
+
uid: name,
|
|
127
|
+
tableName: name,
|
|
128
|
+
attributes: {
|
|
129
|
+
[id]: {
|
|
130
|
+
type: "increments"
|
|
131
|
+
},
|
|
132
|
+
[entityId]: {
|
|
133
|
+
type: "integer",
|
|
134
|
+
column: {
|
|
135
|
+
unsigned: true
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
[componentId]: {
|
|
139
|
+
type: "integer",
|
|
140
|
+
column: {
|
|
141
|
+
unsigned: true
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
[COMPONENT_TYPE_COLUMN]: {
|
|
145
|
+
type: "string"
|
|
146
|
+
},
|
|
147
|
+
[field]: {
|
|
148
|
+
type: "string"
|
|
149
|
+
},
|
|
150
|
+
[order]: {
|
|
151
|
+
type: "float",
|
|
152
|
+
column: {
|
|
153
|
+
unsigned: true,
|
|
154
|
+
defaultTo: null
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
indexes: [
|
|
159
|
+
{
|
|
160
|
+
name: identifiers.getIndexName([contentType.collectionName, field]),
|
|
161
|
+
columns: [field]
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
name: identifiers.getIndexName([contentType.collectionName, COMPONENT_TYPE_COLUMN]),
|
|
165
|
+
columns: [COMPONENT_TYPE_COLUMN]
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
name: fkIndex,
|
|
169
|
+
columns: [entityId]
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
// NOTE: since we don't include attribute names, we need to be careful not to create another unique index
|
|
173
|
+
name: identifiers.getUniqueIndexName([contentType.collectionName]),
|
|
174
|
+
columns: [entityId, componentId, field, COMPONENT_TYPE_COLUMN],
|
|
175
|
+
type: "unique"
|
|
176
|
+
}
|
|
177
|
+
],
|
|
178
|
+
foreignKeys: [
|
|
179
|
+
{
|
|
180
|
+
name: fkIndex,
|
|
181
|
+
columns: [entityId],
|
|
182
|
+
referencedColumns: [id],
|
|
183
|
+
referencedTable: identifiers.getTableName(contentType.collectionName),
|
|
184
|
+
onDelete: "CASCADE"
|
|
185
|
+
}
|
|
186
|
+
]
|
|
187
|
+
};
|
|
188
|
+
};
|
|
189
|
+
const transformContentTypesToModels = (contentTypes) => {
|
|
190
|
+
const models = [];
|
|
191
|
+
contentTypes.forEach((contentType) => {
|
|
192
|
+
assert__default.default(contentType.collectionName, 'Content type "collectionName" is required');
|
|
193
|
+
assert__default.default(contentType.modelName, 'Content type "modelName" is required');
|
|
194
|
+
assert__default.default(contentType.uid, 'Content type "uid" is required');
|
|
195
|
+
const documentIdAttribute = contentType.modelType === "contentType" ? { documentId: { type: "string", default: createDocumentId } } : {};
|
|
196
|
+
const reservedAttributeNames = ["document_id", id];
|
|
197
|
+
Object.keys(contentType.attributes || {}).forEach((attributeName) => {
|
|
198
|
+
const snakeCasedAttributeName = ___default.default.snakeCase(attributeName);
|
|
199
|
+
if (reservedAttributeNames.includes(snakeCasedAttributeName)) {
|
|
200
|
+
throw new Error(
|
|
201
|
+
`The attribute "${attributeName}" is reserved and cannot be used in a model. Please rename "${contentType.modelName}" attribute "${attributeName}" to something else.`
|
|
202
|
+
);
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
if (hasComponentsOrDz(contentType)) {
|
|
206
|
+
const compoLinkModel = createCompoLinkModel(contentType);
|
|
207
|
+
models.push(compoLinkModel);
|
|
208
|
+
}
|
|
209
|
+
const model = {
|
|
210
|
+
uid: contentType.uid,
|
|
211
|
+
singularName: contentType.modelName,
|
|
212
|
+
tableName: identifiers.getTableName(contentType.collectionName),
|
|
213
|
+
attributes: {
|
|
214
|
+
[id]: {
|
|
215
|
+
type: "increments"
|
|
216
|
+
},
|
|
217
|
+
...documentIdAttribute,
|
|
218
|
+
...transformAttributes(contentType)
|
|
219
|
+
}
|
|
220
|
+
};
|
|
221
|
+
models.push(model);
|
|
222
|
+
});
|
|
223
|
+
return models;
|
|
224
|
+
};
|
|
225
|
+
exports.COMPONENT_INVERSE_COLUMN_NAME = COMPONENT_INVERSE_COLUMN_NAME;
|
|
226
|
+
exports.COMPONENT_JOIN_TABLE_SUFFIX = COMPONENT_JOIN_TABLE_SUFFIX;
|
|
227
|
+
exports.COMPONENT_TYPE_COLUMN = COMPONENT_TYPE_COLUMN;
|
|
228
|
+
exports.DZ_JOIN_TABLE_SUFFIX = DZ_JOIN_TABLE_SUFFIX;
|
|
229
|
+
exports.ENTITY = ENTITY;
|
|
230
|
+
exports.createDocumentId = createDocumentId;
|
|
231
|
+
exports.getComponentJoinTableName = getComponentJoinTableName;
|
|
232
|
+
exports.getDzJoinTableName = getDzJoinTableName;
|
|
233
|
+
exports.hasComponentsOrDz = hasComponentsOrDz;
|
|
234
|
+
exports.transformAttribute = transformAttribute;
|
|
235
|
+
exports.transformAttributes = transformAttributes;
|
|
236
|
+
exports.transformContentTypesToModels = transformContentTypesToModels;
|
|
237
|
+
//# sourceMappingURL=transform-content-types-to-models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform-content-types-to-models.js","sources":["../../src/utils/transform-content-types-to-models.ts"],"sourcesContent":["import { type Model, utils } from '@strapi/database';\nimport { Schema, Attribute } from '@strapi/types';\nimport { createId } from '@paralleldrive/cuid2';\nimport assert from 'node:assert';\nimport _ from 'lodash/fp';\n\nconst { identifiers } = utils;\n\n/**\n * Because strapi/database models don't know about things like components or dynamic zones, we use this file to convert them\n * to a relations format that it recognizes\n *\n * Therefore we have to keep an additional set of helpers/extensions to the database naming methods\n */\n\nexport const COMPONENT_JOIN_TABLE_SUFFIX = 'components';\nexport const DZ_JOIN_TABLE_SUFFIX = 'components';\nexport const COMPONENT_INVERSE_COLUMN_NAME = 'component';\nexport const COMPONENT_TYPE_COLUMN = 'component_type';\nexport const ENTITY = 'entity';\n\nexport const getComponentJoinTableName = (collectionName: string) =>\n identifiers.getTableName(collectionName, { suffix: COMPONENT_JOIN_TABLE_SUFFIX });\n\nexport const getDzJoinTableName = (collectionName: string) =>\n identifiers.getTableName(collectionName, { suffix: DZ_JOIN_TABLE_SUFFIX });\n\nconst { ID_COLUMN: id, FIELD_COLUMN: field, ORDER_COLUMN: order } = identifiers;\n\nexport type LoadedContentTypeModel = Schema.ContentType &\n Required<Pick<Schema.ContentType, 'collectionName' | 'uid' | 'modelName'>>;\n\n// Transforms an attribute (particularly for relation types) into the format that strapi/database accepts\nexport const transformAttribute = (\n name: string,\n attribute: Attribute.Any,\n contentType: LoadedContentTypeModel\n) => {\n switch (attribute.type) {\n case 'media': {\n return {\n type: 'relation',\n relation: attribute.multiple === true ? 'morphMany' : 'morphOne',\n target: 'plugin::upload.file',\n morphBy: 'related',\n };\n }\n case 'component': {\n const joinTableName = getComponentJoinTableName(contentType.collectionName);\n const joinColumnEntityName = identifiers.getJoinColumnAttributeIdName(ENTITY);\n const joinColumnInverseName = identifiers.getJoinColumnAttributeIdName(\n COMPONENT_INVERSE_COLUMN_NAME\n );\n\n return {\n type: 'relation',\n relation: attribute.repeatable === true ? 'oneToMany' : 'oneToOne',\n target: attribute.component,\n\n // We need the join table name to be deterministic,\n // We need to allow passing the join table name as an option\n joinTable: {\n name: joinTableName,\n joinColumn: {\n name: joinColumnEntityName,\n referencedColumn: id,\n },\n inverseJoinColumn: {\n name: joinColumnInverseName,\n referencedColumn: id,\n },\n on: {\n field: name,\n },\n orderColumnName: order,\n orderBy: {\n order: 'asc',\n },\n pivotColumns: [joinColumnEntityName, joinColumnInverseName, field, COMPONENT_TYPE_COLUMN],\n },\n };\n }\n case 'dynamiczone': {\n const joinTableName = getDzJoinTableName(contentType.collectionName);\n const joinColumnEntityName = identifiers.getJoinColumnAttributeIdName(ENTITY);\n const joinColumnInverseName = identifiers.getJoinColumnAttributeIdName(\n COMPONENT_INVERSE_COLUMN_NAME\n );\n\n return {\n type: 'relation',\n relation: 'morphToMany',\n // TODO: handle restrictions at some point\n // target: attribute.components,\n joinTable: {\n name: joinTableName,\n joinColumn: {\n name: joinColumnEntityName,\n referencedColumn: id,\n },\n morphColumn: {\n idColumn: {\n name: joinColumnInverseName,\n referencedColumn: id,\n },\n typeColumn: {\n name: COMPONENT_TYPE_COLUMN,\n },\n typeField: '__component',\n },\n on: {\n field: name,\n },\n orderBy: {\n order: 'asc',\n },\n pivotColumns: [joinColumnEntityName, joinColumnInverseName, field, COMPONENT_TYPE_COLUMN],\n },\n };\n }\n default: {\n return attribute;\n }\n }\n};\n\nexport const transformAttributes = (contentType: LoadedContentTypeModel) => {\n return Object.keys(contentType.attributes! || {}).reduce((attrs, attrName) => {\n return {\n ...attrs,\n [attrName]: transformAttribute(attrName, contentType.attributes[attrName]!, contentType),\n };\n }, {});\n};\n\nexport const hasComponentsOrDz = (\n contentType: LoadedContentTypeModel\n): contentType is LoadedContentTypeModel & { type: 'dynamiczone' | 'component' } => {\n return Object.values(contentType.attributes || {}).some(\n ({ type }) => type === 'dynamiczone' || type === 'component'\n );\n};\n\nexport const createDocumentId = createId;\n\n// Creates the\nconst createCompoLinkModel = (contentType: LoadedContentTypeModel): Model => {\n const name = getComponentJoinTableName(contentType.collectionName);\n\n const entityId = identifiers.getJoinColumnAttributeIdName(ENTITY);\n const componentId = identifiers.getJoinColumnAttributeIdName(COMPONENT_INVERSE_COLUMN_NAME);\n const fkIndex = identifiers.getFkIndexName([contentType.collectionName, ENTITY]);\n\n return {\n // TODO: make sure there can't be any conflicts with a prefix\n singularName: name,\n uid: name,\n tableName: name,\n attributes: {\n [id]: {\n type: 'increments',\n },\n [entityId]: {\n type: 'integer',\n column: {\n unsigned: true,\n },\n },\n [componentId]: {\n type: 'integer',\n column: {\n unsigned: true,\n },\n },\n [COMPONENT_TYPE_COLUMN]: {\n type: 'string',\n },\n [field]: {\n type: 'string',\n },\n [order]: {\n type: 'float',\n column: {\n unsigned: true,\n defaultTo: null,\n },\n },\n },\n indexes: [\n {\n name: identifiers.getIndexName([contentType.collectionName, field]),\n columns: [field],\n },\n {\n name: identifiers.getIndexName([contentType.collectionName, COMPONENT_TYPE_COLUMN]),\n columns: [COMPONENT_TYPE_COLUMN],\n },\n {\n name: fkIndex,\n columns: [entityId],\n },\n {\n // NOTE: since we don't include attribute names, we need to be careful not to create another unique index\n name: identifiers.getUniqueIndexName([contentType.collectionName]),\n columns: [entityId, componentId, field, COMPONENT_TYPE_COLUMN],\n type: 'unique',\n },\n ],\n foreignKeys: [\n {\n name: fkIndex,\n columns: [entityId],\n referencedColumns: [id],\n referencedTable: identifiers.getTableName(contentType.collectionName),\n onDelete: 'CASCADE',\n },\n ],\n };\n};\n\nexport const transformContentTypesToModels = (contentTypes: LoadedContentTypeModel[]): Model[] => {\n const models: Model[] = [];\n\n contentTypes.forEach((contentType) => {\n assert(contentType.collectionName, 'Content type \"collectionName\" is required');\n assert(contentType.modelName, 'Content type \"modelName\" is required');\n assert(contentType.uid, 'Content type \"uid\" is required');\n\n // Add document id to content types\n // as it is not documented\n const documentIdAttribute: Record<string, Attribute.Any> =\n contentType.modelType === 'contentType'\n ? { documentId: { type: 'string', default: createDocumentId } }\n : {};\n\n // TODO: this needs to be combined with getReservedNames, we should not be maintaining two lists\n // Prevent user from creating a documentId attribute\n const reservedAttributeNames = ['document_id', id];\n Object.keys(contentType.attributes || {}).forEach((attributeName) => {\n const snakeCasedAttributeName = _.snakeCase(attributeName);\n if (reservedAttributeNames.includes(snakeCasedAttributeName)) {\n throw new Error(\n `The attribute \"${attributeName}\" is reserved and cannot be used in a model. Please rename \"${contentType.modelName}\" attribute \"${attributeName}\" to something else.`\n );\n }\n });\n\n if (hasComponentsOrDz(contentType)) {\n const compoLinkModel = createCompoLinkModel(contentType);\n models.push(compoLinkModel);\n }\n\n const model: Model = {\n uid: contentType.uid,\n singularName: contentType.modelName,\n tableName: identifiers.getTableName(contentType.collectionName),\n attributes: {\n [id]: {\n type: 'increments',\n },\n ...documentIdAttribute,\n ...transformAttributes(contentType),\n },\n };\n\n models.push(model);\n });\n\n return models;\n};\n"],"names":["utils","createId","assert","_"],"mappings":"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"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import { utils } from "@strapi/database";
|
|
2
|
+
import { createId } from "@paralleldrive/cuid2";
|
|
3
|
+
import assert from "node:assert";
|
|
4
|
+
import _ from "lodash/fp";
|
|
5
|
+
const { identifiers } = utils;
|
|
6
|
+
const COMPONENT_JOIN_TABLE_SUFFIX = "components";
|
|
7
|
+
const DZ_JOIN_TABLE_SUFFIX = "components";
|
|
8
|
+
const COMPONENT_INVERSE_COLUMN_NAME = "component";
|
|
9
|
+
const COMPONENT_TYPE_COLUMN = "component_type";
|
|
10
|
+
const ENTITY = "entity";
|
|
11
|
+
const getComponentJoinTableName = (collectionName) => identifiers.getTableName(collectionName, { suffix: COMPONENT_JOIN_TABLE_SUFFIX });
|
|
12
|
+
const getDzJoinTableName = (collectionName) => identifiers.getTableName(collectionName, { suffix: DZ_JOIN_TABLE_SUFFIX });
|
|
13
|
+
const { ID_COLUMN: id, FIELD_COLUMN: field, ORDER_COLUMN: order } = identifiers;
|
|
14
|
+
const transformAttribute = (name, attribute, contentType) => {
|
|
15
|
+
switch (attribute.type) {
|
|
16
|
+
case "media": {
|
|
17
|
+
return {
|
|
18
|
+
type: "relation",
|
|
19
|
+
relation: attribute.multiple === true ? "morphMany" : "morphOne",
|
|
20
|
+
target: "plugin::upload.file",
|
|
21
|
+
morphBy: "related"
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
case "component": {
|
|
25
|
+
const joinTableName = getComponentJoinTableName(contentType.collectionName);
|
|
26
|
+
const joinColumnEntityName = identifiers.getJoinColumnAttributeIdName(ENTITY);
|
|
27
|
+
const joinColumnInverseName = identifiers.getJoinColumnAttributeIdName(
|
|
28
|
+
COMPONENT_INVERSE_COLUMN_NAME
|
|
29
|
+
);
|
|
30
|
+
return {
|
|
31
|
+
type: "relation",
|
|
32
|
+
relation: attribute.repeatable === true ? "oneToMany" : "oneToOne",
|
|
33
|
+
target: attribute.component,
|
|
34
|
+
// We need the join table name to be deterministic,
|
|
35
|
+
// We need to allow passing the join table name as an option
|
|
36
|
+
joinTable: {
|
|
37
|
+
name: joinTableName,
|
|
38
|
+
joinColumn: {
|
|
39
|
+
name: joinColumnEntityName,
|
|
40
|
+
referencedColumn: id
|
|
41
|
+
},
|
|
42
|
+
inverseJoinColumn: {
|
|
43
|
+
name: joinColumnInverseName,
|
|
44
|
+
referencedColumn: id
|
|
45
|
+
},
|
|
46
|
+
on: {
|
|
47
|
+
field: name
|
|
48
|
+
},
|
|
49
|
+
orderColumnName: order,
|
|
50
|
+
orderBy: {
|
|
51
|
+
order: "asc"
|
|
52
|
+
},
|
|
53
|
+
pivotColumns: [joinColumnEntityName, joinColumnInverseName, field, COMPONENT_TYPE_COLUMN]
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
case "dynamiczone": {
|
|
58
|
+
const joinTableName = getDzJoinTableName(contentType.collectionName);
|
|
59
|
+
const joinColumnEntityName = identifiers.getJoinColumnAttributeIdName(ENTITY);
|
|
60
|
+
const joinColumnInverseName = identifiers.getJoinColumnAttributeIdName(
|
|
61
|
+
COMPONENT_INVERSE_COLUMN_NAME
|
|
62
|
+
);
|
|
63
|
+
return {
|
|
64
|
+
type: "relation",
|
|
65
|
+
relation: "morphToMany",
|
|
66
|
+
// TODO: handle restrictions at some point
|
|
67
|
+
// target: attribute.components,
|
|
68
|
+
joinTable: {
|
|
69
|
+
name: joinTableName,
|
|
70
|
+
joinColumn: {
|
|
71
|
+
name: joinColumnEntityName,
|
|
72
|
+
referencedColumn: id
|
|
73
|
+
},
|
|
74
|
+
morphColumn: {
|
|
75
|
+
idColumn: {
|
|
76
|
+
name: joinColumnInverseName,
|
|
77
|
+
referencedColumn: id
|
|
78
|
+
},
|
|
79
|
+
typeColumn: {
|
|
80
|
+
name: COMPONENT_TYPE_COLUMN
|
|
81
|
+
},
|
|
82
|
+
typeField: "__component"
|
|
83
|
+
},
|
|
84
|
+
on: {
|
|
85
|
+
field: name
|
|
86
|
+
},
|
|
87
|
+
orderBy: {
|
|
88
|
+
order: "asc"
|
|
89
|
+
},
|
|
90
|
+
pivotColumns: [joinColumnEntityName, joinColumnInverseName, field, COMPONENT_TYPE_COLUMN]
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
default: {
|
|
95
|
+
return attribute;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
const transformAttributes = (contentType) => {
|
|
100
|
+
return Object.keys(contentType.attributes || {}).reduce((attrs, attrName) => {
|
|
101
|
+
return {
|
|
102
|
+
...attrs,
|
|
103
|
+
[attrName]: transformAttribute(attrName, contentType.attributes[attrName], contentType)
|
|
104
|
+
};
|
|
105
|
+
}, {});
|
|
106
|
+
};
|
|
107
|
+
const hasComponentsOrDz = (contentType) => {
|
|
108
|
+
return Object.values(contentType.attributes || {}).some(
|
|
109
|
+
({ type }) => type === "dynamiczone" || type === "component"
|
|
110
|
+
);
|
|
111
|
+
};
|
|
112
|
+
const createDocumentId = createId;
|
|
113
|
+
const createCompoLinkModel = (contentType) => {
|
|
114
|
+
const name = getComponentJoinTableName(contentType.collectionName);
|
|
115
|
+
const entityId = identifiers.getJoinColumnAttributeIdName(ENTITY);
|
|
116
|
+
const componentId = identifiers.getJoinColumnAttributeIdName(COMPONENT_INVERSE_COLUMN_NAME);
|
|
117
|
+
const fkIndex = identifiers.getFkIndexName([contentType.collectionName, ENTITY]);
|
|
118
|
+
return {
|
|
119
|
+
// TODO: make sure there can't be any conflicts with a prefix
|
|
120
|
+
singularName: name,
|
|
121
|
+
uid: name,
|
|
122
|
+
tableName: name,
|
|
123
|
+
attributes: {
|
|
124
|
+
[id]: {
|
|
125
|
+
type: "increments"
|
|
126
|
+
},
|
|
127
|
+
[entityId]: {
|
|
128
|
+
type: "integer",
|
|
129
|
+
column: {
|
|
130
|
+
unsigned: true
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
[componentId]: {
|
|
134
|
+
type: "integer",
|
|
135
|
+
column: {
|
|
136
|
+
unsigned: true
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
[COMPONENT_TYPE_COLUMN]: {
|
|
140
|
+
type: "string"
|
|
141
|
+
},
|
|
142
|
+
[field]: {
|
|
143
|
+
type: "string"
|
|
144
|
+
},
|
|
145
|
+
[order]: {
|
|
146
|
+
type: "float",
|
|
147
|
+
column: {
|
|
148
|
+
unsigned: true,
|
|
149
|
+
defaultTo: null
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
indexes: [
|
|
154
|
+
{
|
|
155
|
+
name: identifiers.getIndexName([contentType.collectionName, field]),
|
|
156
|
+
columns: [field]
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
name: identifiers.getIndexName([contentType.collectionName, COMPONENT_TYPE_COLUMN]),
|
|
160
|
+
columns: [COMPONENT_TYPE_COLUMN]
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
name: fkIndex,
|
|
164
|
+
columns: [entityId]
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
// NOTE: since we don't include attribute names, we need to be careful not to create another unique index
|
|
168
|
+
name: identifiers.getUniqueIndexName([contentType.collectionName]),
|
|
169
|
+
columns: [entityId, componentId, field, COMPONENT_TYPE_COLUMN],
|
|
170
|
+
type: "unique"
|
|
171
|
+
}
|
|
172
|
+
],
|
|
173
|
+
foreignKeys: [
|
|
174
|
+
{
|
|
175
|
+
name: fkIndex,
|
|
176
|
+
columns: [entityId],
|
|
177
|
+
referencedColumns: [id],
|
|
178
|
+
referencedTable: identifiers.getTableName(contentType.collectionName),
|
|
179
|
+
onDelete: "CASCADE"
|
|
180
|
+
}
|
|
181
|
+
]
|
|
182
|
+
};
|
|
183
|
+
};
|
|
184
|
+
const transformContentTypesToModels = (contentTypes) => {
|
|
185
|
+
const models = [];
|
|
186
|
+
contentTypes.forEach((contentType) => {
|
|
187
|
+
assert(contentType.collectionName, 'Content type "collectionName" is required');
|
|
188
|
+
assert(contentType.modelName, 'Content type "modelName" is required');
|
|
189
|
+
assert(contentType.uid, 'Content type "uid" is required');
|
|
190
|
+
const documentIdAttribute = contentType.modelType === "contentType" ? { documentId: { type: "string", default: createDocumentId } } : {};
|
|
191
|
+
const reservedAttributeNames = ["document_id", id];
|
|
192
|
+
Object.keys(contentType.attributes || {}).forEach((attributeName) => {
|
|
193
|
+
const snakeCasedAttributeName = _.snakeCase(attributeName);
|
|
194
|
+
if (reservedAttributeNames.includes(snakeCasedAttributeName)) {
|
|
195
|
+
throw new Error(
|
|
196
|
+
`The attribute "${attributeName}" is reserved and cannot be used in a model. Please rename "${contentType.modelName}" attribute "${attributeName}" to something else.`
|
|
197
|
+
);
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
if (hasComponentsOrDz(contentType)) {
|
|
201
|
+
const compoLinkModel = createCompoLinkModel(contentType);
|
|
202
|
+
models.push(compoLinkModel);
|
|
203
|
+
}
|
|
204
|
+
const model = {
|
|
205
|
+
uid: contentType.uid,
|
|
206
|
+
singularName: contentType.modelName,
|
|
207
|
+
tableName: identifiers.getTableName(contentType.collectionName),
|
|
208
|
+
attributes: {
|
|
209
|
+
[id]: {
|
|
210
|
+
type: "increments"
|
|
211
|
+
},
|
|
212
|
+
...documentIdAttribute,
|
|
213
|
+
...transformAttributes(contentType)
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
models.push(model);
|
|
217
|
+
});
|
|
218
|
+
return models;
|
|
219
|
+
};
|
|
220
|
+
export {
|
|
221
|
+
COMPONENT_INVERSE_COLUMN_NAME,
|
|
222
|
+
COMPONENT_JOIN_TABLE_SUFFIX,
|
|
223
|
+
COMPONENT_TYPE_COLUMN,
|
|
224
|
+
DZ_JOIN_TABLE_SUFFIX,
|
|
225
|
+
ENTITY,
|
|
226
|
+
createDocumentId,
|
|
227
|
+
getComponentJoinTableName,
|
|
228
|
+
getDzJoinTableName,
|
|
229
|
+
hasComponentsOrDz,
|
|
230
|
+
transformAttribute,
|
|
231
|
+
transformAttributes,
|
|
232
|
+
transformContentTypesToModels
|
|
233
|
+
};
|
|
234
|
+
//# sourceMappingURL=transform-content-types-to-models.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform-content-types-to-models.mjs","sources":["../../src/utils/transform-content-types-to-models.ts"],"sourcesContent":["import { type Model, utils } from '@strapi/database';\nimport { Schema, Attribute } from '@strapi/types';\nimport { createId } from '@paralleldrive/cuid2';\nimport assert from 'node:assert';\nimport _ from 'lodash/fp';\n\nconst { identifiers } = utils;\n\n/**\n * Because strapi/database models don't know about things like components or dynamic zones, we use this file to convert them\n * to a relations format that it recognizes\n *\n * Therefore we have to keep an additional set of helpers/extensions to the database naming methods\n */\n\nexport const COMPONENT_JOIN_TABLE_SUFFIX = 'components';\nexport const DZ_JOIN_TABLE_SUFFIX = 'components';\nexport const COMPONENT_INVERSE_COLUMN_NAME = 'component';\nexport const COMPONENT_TYPE_COLUMN = 'component_type';\nexport const ENTITY = 'entity';\n\nexport const getComponentJoinTableName = (collectionName: string) =>\n identifiers.getTableName(collectionName, { suffix: COMPONENT_JOIN_TABLE_SUFFIX });\n\nexport const getDzJoinTableName = (collectionName: string) =>\n identifiers.getTableName(collectionName, { suffix: DZ_JOIN_TABLE_SUFFIX });\n\nconst { ID_COLUMN: id, FIELD_COLUMN: field, ORDER_COLUMN: order } = identifiers;\n\nexport type LoadedContentTypeModel = Schema.ContentType &\n Required<Pick<Schema.ContentType, 'collectionName' | 'uid' | 'modelName'>>;\n\n// Transforms an attribute (particularly for relation types) into the format that strapi/database accepts\nexport const transformAttribute = (\n name: string,\n attribute: Attribute.Any,\n contentType: LoadedContentTypeModel\n) => {\n switch (attribute.type) {\n case 'media': {\n return {\n type: 'relation',\n relation: attribute.multiple === true ? 'morphMany' : 'morphOne',\n target: 'plugin::upload.file',\n morphBy: 'related',\n };\n }\n case 'component': {\n const joinTableName = getComponentJoinTableName(contentType.collectionName);\n const joinColumnEntityName = identifiers.getJoinColumnAttributeIdName(ENTITY);\n const joinColumnInverseName = identifiers.getJoinColumnAttributeIdName(\n COMPONENT_INVERSE_COLUMN_NAME\n );\n\n return {\n type: 'relation',\n relation: attribute.repeatable === true ? 'oneToMany' : 'oneToOne',\n target: attribute.component,\n\n // We need the join table name to be deterministic,\n // We need to allow passing the join table name as an option\n joinTable: {\n name: joinTableName,\n joinColumn: {\n name: joinColumnEntityName,\n referencedColumn: id,\n },\n inverseJoinColumn: {\n name: joinColumnInverseName,\n referencedColumn: id,\n },\n on: {\n field: name,\n },\n orderColumnName: order,\n orderBy: {\n order: 'asc',\n },\n pivotColumns: [joinColumnEntityName, joinColumnInverseName, field, COMPONENT_TYPE_COLUMN],\n },\n };\n }\n case 'dynamiczone': {\n const joinTableName = getDzJoinTableName(contentType.collectionName);\n const joinColumnEntityName = identifiers.getJoinColumnAttributeIdName(ENTITY);\n const joinColumnInverseName = identifiers.getJoinColumnAttributeIdName(\n COMPONENT_INVERSE_COLUMN_NAME\n );\n\n return {\n type: 'relation',\n relation: 'morphToMany',\n // TODO: handle restrictions at some point\n // target: attribute.components,\n joinTable: {\n name: joinTableName,\n joinColumn: {\n name: joinColumnEntityName,\n referencedColumn: id,\n },\n morphColumn: {\n idColumn: {\n name: joinColumnInverseName,\n referencedColumn: id,\n },\n typeColumn: {\n name: COMPONENT_TYPE_COLUMN,\n },\n typeField: '__component',\n },\n on: {\n field: name,\n },\n orderBy: {\n order: 'asc',\n },\n pivotColumns: [joinColumnEntityName, joinColumnInverseName, field, COMPONENT_TYPE_COLUMN],\n },\n };\n }\n default: {\n return attribute;\n }\n }\n};\n\nexport const transformAttributes = (contentType: LoadedContentTypeModel) => {\n return Object.keys(contentType.attributes! || {}).reduce((attrs, attrName) => {\n return {\n ...attrs,\n [attrName]: transformAttribute(attrName, contentType.attributes[attrName]!, contentType),\n };\n }, {});\n};\n\nexport const hasComponentsOrDz = (\n contentType: LoadedContentTypeModel\n): contentType is LoadedContentTypeModel & { type: 'dynamiczone' | 'component' } => {\n return Object.values(contentType.attributes || {}).some(\n ({ type }) => type === 'dynamiczone' || type === 'component'\n );\n};\n\nexport const createDocumentId = createId;\n\n// Creates the\nconst createCompoLinkModel = (contentType: LoadedContentTypeModel): Model => {\n const name = getComponentJoinTableName(contentType.collectionName);\n\n const entityId = identifiers.getJoinColumnAttributeIdName(ENTITY);\n const componentId = identifiers.getJoinColumnAttributeIdName(COMPONENT_INVERSE_COLUMN_NAME);\n const fkIndex = identifiers.getFkIndexName([contentType.collectionName, ENTITY]);\n\n return {\n // TODO: make sure there can't be any conflicts with a prefix\n singularName: name,\n uid: name,\n tableName: name,\n attributes: {\n [id]: {\n type: 'increments',\n },\n [entityId]: {\n type: 'integer',\n column: {\n unsigned: true,\n },\n },\n [componentId]: {\n type: 'integer',\n column: {\n unsigned: true,\n },\n },\n [COMPONENT_TYPE_COLUMN]: {\n type: 'string',\n },\n [field]: {\n type: 'string',\n },\n [order]: {\n type: 'float',\n column: {\n unsigned: true,\n defaultTo: null,\n },\n },\n },\n indexes: [\n {\n name: identifiers.getIndexName([contentType.collectionName, field]),\n columns: [field],\n },\n {\n name: identifiers.getIndexName([contentType.collectionName, COMPONENT_TYPE_COLUMN]),\n columns: [COMPONENT_TYPE_COLUMN],\n },\n {\n name: fkIndex,\n columns: [entityId],\n },\n {\n // NOTE: since we don't include attribute names, we need to be careful not to create another unique index\n name: identifiers.getUniqueIndexName([contentType.collectionName]),\n columns: [entityId, componentId, field, COMPONENT_TYPE_COLUMN],\n type: 'unique',\n },\n ],\n foreignKeys: [\n {\n name: fkIndex,\n columns: [entityId],\n referencedColumns: [id],\n referencedTable: identifiers.getTableName(contentType.collectionName),\n onDelete: 'CASCADE',\n },\n ],\n };\n};\n\nexport const transformContentTypesToModels = (contentTypes: LoadedContentTypeModel[]): Model[] => {\n const models: Model[] = [];\n\n contentTypes.forEach((contentType) => {\n assert(contentType.collectionName, 'Content type \"collectionName\" is required');\n assert(contentType.modelName, 'Content type \"modelName\" is required');\n assert(contentType.uid, 'Content type \"uid\" is required');\n\n // Add document id to content types\n // as it is not documented\n const documentIdAttribute: Record<string, Attribute.Any> =\n contentType.modelType === 'contentType'\n ? { documentId: { type: 'string', default: createDocumentId } }\n : {};\n\n // TODO: this needs to be combined with getReservedNames, we should not be maintaining two lists\n // Prevent user from creating a documentId attribute\n const reservedAttributeNames = ['document_id', id];\n Object.keys(contentType.attributes || {}).forEach((attributeName) => {\n const snakeCasedAttributeName = _.snakeCase(attributeName);\n if (reservedAttributeNames.includes(snakeCasedAttributeName)) {\n throw new Error(\n `The attribute \"${attributeName}\" is reserved and cannot be used in a model. Please rename \"${contentType.modelName}\" attribute \"${attributeName}\" to something else.`\n );\n }\n });\n\n if (hasComponentsOrDz(contentType)) {\n const compoLinkModel = createCompoLinkModel(contentType);\n models.push(compoLinkModel);\n }\n\n const model: Model = {\n uid: contentType.uid,\n singularName: contentType.modelName,\n tableName: identifiers.getTableName(contentType.collectionName),\n attributes: {\n [id]: {\n type: 'increments',\n },\n ...documentIdAttribute,\n ...transformAttributes(contentType),\n },\n };\n\n models.push(model);\n });\n\n return models;\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Strapi } from '@strapi/types';
|
|
2
|
+
export declare const createUpdateNotifier: (strapi: Strapi) => {
|
|
3
|
+
notify({ checkInterval, notifInterval }?: {
|
|
4
|
+
checkInterval?: number | undefined;
|
|
5
|
+
notifInterval?: number | undefined;
|
|
6
|
+
}): void;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/update-notifier/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AA0B5C,eAAO,MAAM,oBAAoB,WAAY,MAAM;;;;;CAqElD,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const path = require("path");
|
|
4
|
+
const packageJson = require("package-json");
|
|
5
|
+
const Configstore = require("configstore");
|
|
6
|
+
const semver = require("semver");
|
|
7
|
+
const boxen = require("boxen");
|
|
8
|
+
const chalk = require("chalk");
|
|
9
|
+
const strapiUtils = require("@strapi/utils");
|
|
10
|
+
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
11
|
+
const path__default = /* @__PURE__ */ _interopDefault(path);
|
|
12
|
+
const packageJson__default = /* @__PURE__ */ _interopDefault(packageJson);
|
|
13
|
+
const Configstore__default = /* @__PURE__ */ _interopDefault(Configstore);
|
|
14
|
+
const semver__default = /* @__PURE__ */ _interopDefault(semver);
|
|
15
|
+
const boxen__default = /* @__PURE__ */ _interopDefault(boxen);
|
|
16
|
+
const chalk__default = /* @__PURE__ */ _interopDefault(chalk);
|
|
17
|
+
const pkg = require("../../../package.json");
|
|
18
|
+
const CHECK_INTERVAL = 1e3 * 60 * 60 * 24 * 1;
|
|
19
|
+
const NOTIF_INTERVAL = 1e3 * 60 * 60 * 24 * 7;
|
|
20
|
+
const boxenOptions = {
|
|
21
|
+
padding: 1,
|
|
22
|
+
margin: 1,
|
|
23
|
+
align: "center",
|
|
24
|
+
borderColor: "yellow",
|
|
25
|
+
borderStyle: "round"
|
|
26
|
+
};
|
|
27
|
+
const getUpdateMessage = (newVersion, currentVersion) => {
|
|
28
|
+
const currentVersionLog = chalk__default.default.dim(currentVersion);
|
|
29
|
+
const newVersionLog = chalk__default.default.green(newVersion);
|
|
30
|
+
const releaseLink = chalk__default.default.bold("https://github.com/strapi/strapi/releases");
|
|
31
|
+
return `
|
|
32
|
+
A new version of Strapi is available ${currentVersionLog} → ${newVersionLog}
|
|
33
|
+
Check out the new releases at: ${releaseLink}
|
|
34
|
+
`.trim();
|
|
35
|
+
};
|
|
36
|
+
const createUpdateNotifier = (strapi) => {
|
|
37
|
+
let config;
|
|
38
|
+
try {
|
|
39
|
+
config = new Configstore__default.default(
|
|
40
|
+
pkg.name,
|
|
41
|
+
{},
|
|
42
|
+
{ configPath: path__default.default.join(strapi.dirs.app.root, ".strapi-updater.json") }
|
|
43
|
+
);
|
|
44
|
+
} catch {
|
|
45
|
+
}
|
|
46
|
+
const checkUpdate = async (checkInterval) => {
|
|
47
|
+
const now = Date.now();
|
|
48
|
+
const lastUpdateCheck = config.get("lastUpdateCheck") || 0;
|
|
49
|
+
if (lastUpdateCheck + checkInterval > now) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
const res = await packageJson__default.default(pkg.name);
|
|
54
|
+
if (res.version) {
|
|
55
|
+
config.set("latest", res.version);
|
|
56
|
+
config.set("lastUpdateCheck", now);
|
|
57
|
+
}
|
|
58
|
+
} catch {
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
const display = (notifInterval) => {
|
|
62
|
+
const now = Date.now();
|
|
63
|
+
const latestVersion = config.get("latest");
|
|
64
|
+
const lastNotification = config.get("lastNotification") || 0;
|
|
65
|
+
if (!process.stdout.isTTY || lastNotification + notifInterval > now || !semver__default.default.valid(latestVersion) || !semver__default.default.valid(pkg.version) || semver__default.default.lte(latestVersion, pkg.version)) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const message = boxen__default.default(getUpdateMessage(latestVersion, pkg.version), boxenOptions);
|
|
69
|
+
config.set("lastNotification", now);
|
|
70
|
+
console.log(message);
|
|
71
|
+
};
|
|
72
|
+
return {
|
|
73
|
+
notify({ checkInterval = CHECK_INTERVAL, notifInterval = NOTIF_INTERVAL } = {}) {
|
|
74
|
+
if (strapiUtils.env.bool("STRAPI_DISABLE_UPDATE_NOTIFICATION", false)) {
|
|
75
|
+
strapi.log.warn(
|
|
76
|
+
"STRAPI_DISABLE_UPDATE_NOTIFICATION is no longer supported. Instead, set logger.updates.enabled to false in your server configuration."
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
if (!strapi.config.get("server.logger.updates.enabled") || !config) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
display(notifInterval);
|
|
83
|
+
checkUpdate(checkInterval);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
exports.createUpdateNotifier = createUpdateNotifier;
|
|
88
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/utils/update-notifier/index.ts"],"sourcesContent":["import path from 'path';\nimport packageJson from 'package-json';\nimport Configstore from 'configstore';\nimport semver from 'semver';\nimport boxen from 'boxen';\nimport chalk from 'chalk';\nimport { env } from '@strapi/utils';\nimport type { Strapi } from '@strapi/types';\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst pkg = require('../../../package.json');\n\nconst CHECK_INTERVAL = 1000 * 60 * 60 * 24 * 1; // 1 day\nconst NOTIF_INTERVAL = 1000 * 60 * 60 * 24 * 7; // 1 week\nconst boxenOptions: boxen.Options = {\n padding: 1,\n margin: 1,\n align: 'center',\n borderColor: 'yellow',\n borderStyle: 'round',\n};\n\nconst getUpdateMessage = (newVersion: string, currentVersion: string) => {\n const currentVersionLog = chalk.dim(currentVersion);\n const newVersionLog = chalk.green(newVersion);\n const releaseLink = chalk.bold('https://github.com/strapi/strapi/releases');\n\n return `\nA new version of Strapi is available ${currentVersionLog} → ${newVersionLog}\nCheck out the new releases at: ${releaseLink}\n`.trim();\n};\n\nexport const createUpdateNotifier = (strapi: Strapi) => {\n let config: InstanceType<typeof Configstore>;\n\n try {\n config = new Configstore(\n pkg.name,\n {},\n { configPath: path.join(strapi.dirs.app.root, '.strapi-updater.json') }\n );\n } catch {\n // we don't have write access to the file system\n // we silence the error\n }\n\n const checkUpdate = async (checkInterval: number) => {\n const now = Date.now();\n const lastUpdateCheck = config.get('lastUpdateCheck') || 0;\n if (lastUpdateCheck + checkInterval > now) {\n return;\n }\n\n try {\n const res = await packageJson(pkg.name);\n if (res.version) {\n config.set('latest', res.version);\n config.set('lastUpdateCheck', now);\n }\n } catch {\n // silence error if offline\n }\n };\n\n const display = (notifInterval: number) => {\n const now = Date.now();\n const latestVersion = config.get('latest');\n const lastNotification = config.get('lastNotification') || 0;\n\n if (\n !process.stdout.isTTY ||\n lastNotification + notifInterval > now ||\n !semver.valid(latestVersion) ||\n !semver.valid(pkg.version) ||\n semver.lte(latestVersion, pkg.version)\n ) {\n return;\n }\n\n const message = boxen(getUpdateMessage(latestVersion, pkg.version), boxenOptions);\n config.set('lastNotification', now);\n console.log(message);\n };\n\n return {\n notify({ checkInterval = CHECK_INTERVAL, notifInterval = NOTIF_INTERVAL } = {}) {\n // TODO v6: Remove this warning\n if (env.bool('STRAPI_DISABLE_UPDATE_NOTIFICATION', false)) {\n strapi.log.warn(\n 'STRAPI_DISABLE_UPDATE_NOTIFICATION is no longer supported. Instead, set logger.updates.enabled to false in your server configuration.'\n );\n }\n\n if (!strapi.config.get('server.logger.updates.enabled') || !config) {\n return;\n }\n\n display(notifInterval);\n checkUpdate(checkInterval); // doesn't need to await\n },\n };\n};\n"],"names":["chalk","Configstore","path","packageJson","semver","boxen","env"],"mappings":";;;;;;;;;;;;;;;;AAUA,MAAM,MAAM,QAAQ,uBAAuB;AAE3C,MAAM,iBAAiB,MAAO,KAAK,KAAK,KAAK;AAC7C,MAAM,iBAAiB,MAAO,KAAK,KAAK,KAAK;AAC7C,MAAM,eAA8B;AAAA,EAClC,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,aAAa;AAAA,EACb,aAAa;AACf;AAEA,MAAM,mBAAmB,CAAC,YAAoB,mBAA2B;AACjE,QAAA,oBAAoBA,eAAAA,QAAM,IAAI,cAAc;AAC5C,QAAA,gBAAgBA,eAAAA,QAAM,MAAM,UAAU;AACtC,QAAA,cAAcA,eAAAA,QAAM,KAAK,2CAA2C;AAEnE,SAAA;AAAA,uCAC8B,iBAAiB,MAAM,aAAa;AAAA,iCAC1C,WAAW;AAAA,EAC1C,KAAK;AACP;AAEa,MAAA,uBAAuB,CAAC,WAAmB;AAClD,MAAA;AAEA,MAAA;AACF,aAAS,IAAIC,qBAAA;AAAA,MACX,IAAI;AAAA,MACJ,CAAC;AAAA,MACD,EAAE,YAAYC,cAAK,QAAA,KAAK,OAAO,KAAK,IAAI,MAAM,sBAAsB,EAAE;AAAA,IAAA;AAAA,EACxE,QACM;AAAA,EAGR;AAEM,QAAA,cAAc,OAAO,kBAA0B;AAC7C,UAAA,MAAM,KAAK;AACjB,UAAM,kBAAkB,OAAO,IAAI,iBAAiB,KAAK;AACrD,QAAA,kBAAkB,gBAAgB,KAAK;AACzC;AAAA,IACF;AAEI,QAAA;AACF,YAAM,MAAM,MAAMC,qBAAAA,QAAY,IAAI,IAAI;AACtC,UAAI,IAAI,SAAS;AACR,eAAA,IAAI,UAAU,IAAI,OAAO;AACzB,eAAA,IAAI,mBAAmB,GAAG;AAAA,MACnC;AAAA,IAAA,QACM;AAAA,IAER;AAAA,EAAA;AAGI,QAAA,UAAU,CAAC,kBAA0B;AACnC,UAAA,MAAM,KAAK;AACX,UAAA,gBAAgB,OAAO,IAAI,QAAQ;AACzC,UAAM,mBAAmB,OAAO,IAAI,kBAAkB,KAAK;AAGzD,QAAA,CAAC,QAAQ,OAAO,SAChB,mBAAmB,gBAAgB,OACnC,CAACC,wBAAO,MAAM,aAAa,KAC3B,CAACA,wBAAO,MAAM,IAAI,OAAO,KACzBA,wBAAO,IAAI,eAAe,IAAI,OAAO,GACrC;AACA;AAAA,IACF;AAEA,UAAM,UAAUC,eAAM,QAAA,iBAAiB,eAAe,IAAI,OAAO,GAAG,YAAY;AACzE,WAAA,IAAI,oBAAoB,GAAG;AAClC,YAAQ,IAAI,OAAO;AAAA,EAAA;AAGd,SAAA;AAAA,IACL,OAAO,EAAE,gBAAgB,gBAAgB,gBAAgB,eAAe,IAAI,IAAI;AAE9E,UAAIC,gBAAI,KAAK,sCAAsC,KAAK,GAAG;AACzD,eAAO,IAAI;AAAA,UACT;AAAA,QAAA;AAAA,MAEJ;AAEA,UAAI,CAAC,OAAO,OAAO,IAAI,+BAA+B,KAAK,CAAC,QAAQ;AAClE;AAAA,MACF;AAEA,cAAQ,aAAa;AACrB,kBAAY,aAAa;AAAA,IAC3B;AAAA,EAAA;AAEJ;;"}
|