@strapi/core 5.12.0 → 5.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Strapi.js +455 -0
- package/dist/Strapi.js.map +1 -0
- package/dist/Strapi.mjs +434 -0
- package/dist/Strapi.mjs.map +1 -0
- package/dist/compile.js +27 -0
- package/dist/compile.js.map +1 -0
- package/dist/compile.mjs +25 -0
- package/dist/compile.mjs.map +1 -0
- package/dist/configuration/config-loader.js +119 -0
- package/dist/configuration/config-loader.js.map +1 -0
- package/dist/configuration/config-loader.mjs +117 -0
- package/dist/configuration/config-loader.mjs.map +1 -0
- package/dist/configuration/get-dirs.js +33 -0
- package/dist/configuration/get-dirs.js.map +1 -0
- package/dist/configuration/get-dirs.mjs +31 -0
- package/dist/configuration/get-dirs.mjs.map +1 -0
- package/dist/configuration/index.js +91 -0
- package/dist/configuration/index.js.map +1 -0
- package/dist/configuration/index.mjs +89 -0
- package/dist/configuration/index.mjs.map +1 -0
- package/dist/configuration/urls.js +72 -0
- package/dist/configuration/urls.js.map +1 -0
- package/dist/configuration/urls.mjs +68 -0
- package/dist/configuration/urls.mjs.map +1 -0
- package/dist/container.js +34 -0
- package/dist/container.js.map +1 -0
- package/dist/container.mjs +32 -0
- package/dist/container.mjs.map +1 -0
- package/dist/core-api/controller/collection-type.js +85 -0
- package/dist/core-api/controller/collection-type.js.map +1 -0
- package/dist/core-api/controller/collection-type.mjs +83 -0
- package/dist/core-api/controller/collection-type.mjs.map +1 -0
- package/dist/core-api/controller/index.js +67 -0
- package/dist/core-api/controller/index.js.map +1 -0
- package/dist/core-api/controller/index.mjs +65 -0
- package/dist/core-api/controller/index.mjs.map +1 -0
- package/dist/core-api/controller/single-type.js +47 -0
- package/dist/core-api/controller/single-type.js.map +1 -0
- package/dist/core-api/controller/single-type.mjs +45 -0
- package/dist/core-api/controller/single-type.mjs.map +1 -0
- package/dist/core-api/controller/transform.js +85 -0
- package/dist/core-api/controller/transform.js.map +1 -0
- package/dist/core-api/controller/transform.mjs +83 -0
- package/dist/core-api/controller/transform.mjs.map +1 -0
- package/dist/core-api/routes/index.js +69 -0
- package/dist/core-api/routes/index.js.map +1 -0
- package/dist/core-api/routes/index.mjs +67 -0
- package/dist/core-api/routes/index.mjs.map +1 -0
- package/dist/core-api/service/collection-type.js +80 -0
- package/dist/core-api/service/collection-type.js.map +1 -0
- package/dist/core-api/service/collection-type.mjs +77 -0
- package/dist/core-api/service/collection-type.mjs.map +1 -0
- package/dist/core-api/service/core-service.js +13 -0
- package/dist/core-api/service/core-service.js.map +1 -0
- package/dist/core-api/service/core-service.mjs +11 -0
- package/dist/core-api/service/core-service.mjs.map +1 -0
- package/dist/core-api/service/index.js +16 -0
- package/dist/core-api/service/index.js.map +1 -0
- package/dist/core-api/service/index.mjs +14 -0
- package/dist/core-api/service/index.mjs.map +1 -0
- package/dist/core-api/service/pagination.js +78 -0
- package/dist/core-api/service/pagination.js.map +1 -0
- package/dist/core-api/service/pagination.mjs +73 -0
- package/dist/core-api/service/pagination.mjs.map +1 -0
- package/dist/core-api/service/single-type.js +50 -0
- package/dist/core-api/service/single-type.js.map +1 -0
- package/dist/core-api/service/single-type.mjs +47 -0
- package/dist/core-api/service/single-type.mjs.map +1 -0
- package/dist/domain/content-type/index.js +106 -0
- package/dist/domain/content-type/index.js.map +1 -0
- package/dist/domain/content-type/index.mjs +103 -0
- package/dist/domain/content-type/index.mjs.map +1 -0
- package/dist/domain/content-type/validator.js +92 -0
- package/dist/domain/content-type/validator.js.map +1 -0
- package/dist/domain/content-type/validator.mjs +90 -0
- package/dist/domain/content-type/validator.mjs.map +1 -0
- package/dist/domain/module/index.js +116 -0
- package/dist/domain/module/index.js.map +1 -0
- package/dist/domain/module/index.mjs +114 -0
- package/dist/domain/module/index.mjs.map +1 -0
- package/dist/domain/module/validation.js +30 -0
- package/dist/domain/module/validation.js.map +1 -0
- package/dist/domain/module/validation.mjs +28 -0
- package/dist/domain/module/validation.mjs.map +1 -0
- package/dist/ee/index.js +192 -0
- package/dist/ee/index.js.map +1 -0
- package/dist/ee/index.mjs +190 -0
- package/dist/ee/index.mjs.map +1 -0
- package/dist/ee/license.js +115 -0
- package/dist/ee/license.js.map +1 -0
- package/dist/ee/license.mjs +110 -0
- package/dist/ee/license.mjs.map +1 -0
- package/dist/factories.js +85 -0
- package/dist/factories.js.map +1 -0
- package/dist/factories.mjs +80 -0
- package/dist/factories.mjs.map +1 -0
- package/dist/index.js +19 -10105
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +17 -10082
- package/dist/index.mjs.map +1 -1
- package/dist/loaders/admin.d.ts.map +1 -1
- package/dist/loaders/admin.js +27 -0
- package/dist/loaders/admin.js.map +1 -0
- package/dist/loaders/admin.mjs +25 -0
- package/dist/loaders/admin.mjs.map +1 -0
- package/dist/loaders/apis.js +160 -0
- package/dist/loaders/apis.js.map +1 -0
- package/dist/loaders/apis.mjs +158 -0
- package/dist/loaders/apis.mjs.map +1 -0
- package/dist/loaders/components.js +37 -0
- package/dist/loaders/components.js.map +1 -0
- package/dist/loaders/components.mjs +35 -0
- package/dist/loaders/components.mjs.map +1 -0
- package/dist/loaders/index.js +26 -0
- package/dist/loaders/index.js.map +1 -0
- package/dist/loaders/index.mjs +24 -0
- package/dist/loaders/index.mjs.map +1 -0
- package/dist/loaders/middlewares.js +35 -0
- package/dist/loaders/middlewares.js.map +1 -0
- package/dist/loaders/middlewares.mjs +33 -0
- package/dist/loaders/middlewares.mjs.map +1 -0
- package/dist/loaders/plugins/get-enabled-plugins.js +136 -0
- package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -0
- package/dist/loaders/plugins/get-enabled-plugins.mjs +134 -0
- package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -0
- package/dist/loaders/plugins/get-user-plugins-config.js +28 -0
- package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -0
- package/dist/loaders/plugins/get-user-plugins-config.mjs +26 -0
- package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -0
- package/dist/loaders/plugins/index.js +155 -0
- package/dist/loaders/plugins/index.js.map +1 -0
- package/dist/loaders/plugins/index.mjs +134 -0
- package/dist/loaders/plugins/index.mjs.map +1 -0
- package/dist/loaders/policies.js +29 -0
- package/dist/loaders/policies.js.map +1 -0
- package/dist/loaders/policies.mjs +27 -0
- package/dist/loaders/policies.mjs.map +1 -0
- package/dist/loaders/sanitizers.js +12 -0
- package/dist/loaders/sanitizers.js.map +1 -0
- package/dist/loaders/sanitizers.mjs +10 -0
- package/dist/loaders/sanitizers.mjs.map +1 -0
- package/dist/loaders/src-index.js +41 -0
- package/dist/loaders/src-index.js.map +1 -0
- package/dist/loaders/src-index.mjs +39 -0
- package/dist/loaders/src-index.mjs.map +1 -0
- package/dist/loaders/validators.js +11 -0
- package/dist/loaders/validators.js.map +1 -0
- package/dist/loaders/validators.mjs +9 -0
- package/dist/loaders/validators.mjs.map +1 -0
- package/dist/middlewares/body.js +69 -0
- package/dist/middlewares/body.js.map +1 -0
- package/dist/middlewares/body.mjs +67 -0
- package/dist/middlewares/body.mjs.map +1 -0
- package/dist/middlewares/compression.js +8 -0
- package/dist/middlewares/compression.js.map +1 -0
- package/dist/middlewares/compression.mjs +6 -0
- package/dist/middlewares/compression.mjs.map +1 -0
- package/dist/middlewares/cors.js +64 -0
- package/dist/middlewares/cors.js.map +1 -0
- package/dist/middlewares/cors.mjs +62 -0
- package/dist/middlewares/cors.mjs.map +1 -0
- package/dist/middlewares/errors.js +35 -0
- package/dist/middlewares/errors.js.map +1 -0
- package/dist/middlewares/errors.mjs +33 -0
- package/dist/middlewares/errors.mjs.map +1 -0
- package/dist/middlewares/favicon.js +32 -0
- package/dist/middlewares/favicon.js.map +1 -0
- package/dist/middlewares/favicon.mjs +30 -0
- package/dist/middlewares/favicon.mjs.map +1 -0
- package/dist/middlewares/index.js +36 -0
- package/dist/middlewares/index.js.map +1 -0
- package/dist/middlewares/index.mjs +34 -0
- package/dist/middlewares/index.mjs.map +1 -0
- package/dist/middlewares/ip.js +8 -0
- package/dist/middlewares/ip.js.map +1 -0
- package/dist/middlewares/ip.mjs +6 -0
- package/dist/middlewares/ip.mjs.map +1 -0
- package/dist/middlewares/logger.js +13 -0
- package/dist/middlewares/logger.js.map +1 -0
- package/dist/middlewares/logger.mjs +11 -0
- package/dist/middlewares/logger.mjs.map +1 -0
- package/dist/middlewares/powered-by.js +18 -0
- package/dist/middlewares/powered-by.js.map +1 -0
- package/dist/middlewares/powered-by.mjs +16 -0
- package/dist/middlewares/powered-by.mjs.map +1 -0
- package/dist/middlewares/public.js +38 -0
- package/dist/middlewares/public.js.map +1 -0
- package/dist/middlewares/public.mjs +36 -0
- package/dist/middlewares/public.mjs.map +1 -0
- package/dist/middlewares/query.js +43 -0
- package/dist/middlewares/query.js.map +1 -0
- package/dist/middlewares/query.mjs +41 -0
- package/dist/middlewares/query.mjs.map +1 -0
- package/dist/middlewares/response-time.js +13 -0
- package/dist/middlewares/response-time.js.map +1 -0
- package/dist/middlewares/response-time.mjs +11 -0
- package/dist/middlewares/response-time.mjs.map +1 -0
- package/dist/middlewares/responses.js +17 -0
- package/dist/middlewares/responses.js.map +1 -0
- package/dist/middlewares/responses.mjs +15 -0
- package/dist/middlewares/responses.mjs.map +1 -0
- package/dist/middlewares/security.js +116 -0
- package/dist/middlewares/security.js.map +1 -0
- package/dist/middlewares/security.mjs +114 -0
- package/dist/middlewares/security.mjs.map +1 -0
- package/dist/middlewares/session.js +31 -0
- package/dist/middlewares/session.js.map +1 -0
- package/dist/middlewares/session.mjs +29 -0
- package/dist/middlewares/session.mjs.map +1 -0
- package/dist/migrations/database/5.0.0-discard-drafts.js +168 -0
- package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -0
- package/dist/migrations/database/5.0.0-discard-drafts.mjs +165 -0
- package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -0
- package/dist/migrations/draft-publish.js +69 -0
- package/dist/migrations/draft-publish.js.map +1 -0
- package/dist/migrations/draft-publish.mjs +66 -0
- package/dist/migrations/draft-publish.mjs.map +1 -0
- package/dist/migrations/i18n.js +71 -0
- package/dist/migrations/i18n.js.map +1 -0
- package/dist/migrations/i18n.mjs +68 -0
- package/dist/migrations/i18n.mjs.map +1 -0
- package/dist/migrations/index.js +29 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/index.mjs +26 -0
- package/dist/migrations/index.mjs.map +1 -0
- package/dist/package.json.js +182 -0
- package/dist/package.json.js.map +1 -0
- package/dist/package.json.mjs +159 -0
- package/dist/package.json.mjs.map +1 -0
- package/dist/providers/admin.js +30 -0
- package/dist/providers/admin.js.map +1 -0
- package/dist/providers/admin.mjs +28 -0
- package/dist/providers/admin.mjs.map +1 -0
- package/dist/providers/coreStore.js +16 -0
- package/dist/providers/coreStore.js.map +1 -0
- package/dist/providers/coreStore.mjs +14 -0
- package/dist/providers/coreStore.mjs.map +1 -0
- package/dist/providers/cron.js +23 -0
- package/dist/providers/cron.js.map +1 -0
- package/dist/providers/cron.mjs +21 -0
- package/dist/providers/cron.mjs.map +1 -0
- package/dist/providers/index.js +20 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/index.mjs +18 -0
- package/dist/providers/index.mjs.map +1 -0
- package/dist/providers/provider.js +6 -0
- package/dist/providers/provider.js.map +1 -0
- package/dist/providers/provider.mjs +4 -0
- package/dist/providers/provider.mjs.map +1 -0
- package/dist/providers/registries.js +40 -0
- package/dist/providers/registries.js.map +1 -0
- package/dist/providers/registries.mjs +38 -0
- package/dist/providers/registries.mjs.map +1 -0
- package/dist/providers/telemetry.js +22 -0
- package/dist/providers/telemetry.js.map +1 -0
- package/dist/providers/telemetry.mjs +20 -0
- package/dist/providers/telemetry.mjs.map +1 -0
- package/dist/providers/webhooks.js +32 -0
- package/dist/providers/webhooks.js.map +1 -0
- package/dist/providers/webhooks.mjs +30 -0
- package/dist/providers/webhooks.mjs.map +1 -0
- package/dist/registries/apis.js +26 -0
- package/dist/registries/apis.js.map +1 -0
- package/dist/registries/apis.mjs +24 -0
- package/dist/registries/apis.mjs.map +1 -0
- package/dist/registries/components.js +43 -0
- package/dist/registries/components.js.map +1 -0
- package/dist/registries/components.mjs +41 -0
- package/dist/registries/components.mjs.map +1 -0
- package/dist/registries/content-types.js +65 -0
- package/dist/registries/content-types.js.map +1 -0
- package/dist/registries/content-types.mjs +63 -0
- package/dist/registries/content-types.mjs.map +1 -0
- package/dist/registries/controllers.js +79 -0
- package/dist/registries/controllers.js.map +1 -0
- package/dist/registries/controllers.mjs +77 -0
- package/dist/registries/controllers.mjs.map +1 -0
- package/dist/registries/custom-fields.js +81 -0
- package/dist/registries/custom-fields.js.map +1 -0
- package/dist/registries/custom-fields.mjs +79 -0
- package/dist/registries/custom-fields.mjs.map +1 -0
- package/dist/registries/hooks.js +55 -0
- package/dist/registries/hooks.js.map +1 -0
- package/dist/registries/hooks.mjs +53 -0
- package/dist/registries/hooks.mjs.map +1 -0
- package/dist/registries/middlewares.js +58 -0
- package/dist/registries/middlewares.js.map +1 -0
- package/dist/registries/middlewares.mjs +56 -0
- package/dist/registries/middlewares.mjs.map +1 -0
- package/dist/registries/models.js +17 -0
- package/dist/registries/models.js.map +1 -0
- package/dist/registries/models.mjs +15 -0
- package/dist/registries/models.mjs.map +1 -0
- package/dist/registries/modules.js +42 -0
- package/dist/registries/modules.js.map +1 -0
- package/dist/registries/modules.mjs +40 -0
- package/dist/registries/modules.mjs.map +1 -0
- package/dist/registries/namespace.js +28 -0
- package/dist/registries/namespace.js.map +1 -0
- package/dist/registries/namespace.mjs +24 -0
- package/dist/registries/namespace.mjs.map +1 -0
- package/dist/registries/plugins.js +26 -0
- package/dist/registries/plugins.js.map +1 -0
- package/dist/registries/plugins.mjs +24 -0
- package/dist/registries/plugins.mjs.map +1 -0
- package/dist/registries/policies.js +115 -0
- package/dist/registries/policies.js.map +1 -0
- package/dist/registries/policies.mjs +113 -0
- package/dist/registries/policies.mjs.map +1 -0
- package/dist/registries/sanitizers.js +26 -0
- package/dist/registries/sanitizers.js.map +1 -0
- package/dist/registries/sanitizers.mjs +24 -0
- package/dist/registries/sanitizers.mjs.map +1 -0
- package/dist/registries/services.js +80 -0
- package/dist/registries/services.js.map +1 -0
- package/dist/registries/services.mjs +78 -0
- package/dist/registries/services.mjs.map +1 -0
- package/dist/registries/validators.js +26 -0
- package/dist/registries/validators.js.map +1 -0
- package/dist/registries/validators.mjs +24 -0
- package/dist/registries/validators.mjs.map +1 -0
- package/dist/services/auth/index.js +81 -0
- package/dist/services/auth/index.js.map +1 -0
- package/dist/services/auth/index.mjs +79 -0
- package/dist/services/auth/index.mjs.map +1 -0
- package/dist/services/config.js +51 -0
- package/dist/services/config.js.map +1 -0
- package/dist/services/config.mjs +49 -0
- package/dist/services/config.mjs.map +1 -0
- package/dist/services/content-api/index.js +86 -0
- package/dist/services/content-api/index.js.map +1 -0
- package/dist/services/content-api/index.mjs +84 -0
- package/dist/services/content-api/index.mjs.map +1 -0
- package/dist/services/content-api/permissions/engine.js +10 -0
- package/dist/services/content-api/permissions/engine.js.map +1 -0
- package/dist/services/content-api/permissions/engine.mjs +8 -0
- package/dist/services/content-api/permissions/engine.mjs.map +1 -0
- package/dist/services/content-api/permissions/index.js +107 -0
- package/dist/services/content-api/permissions/index.js.map +1 -0
- package/dist/services/content-api/permissions/index.mjs +105 -0
- package/dist/services/content-api/permissions/index.mjs.map +1 -0
- package/dist/services/content-api/permissions/providers/action.js +19 -0
- package/dist/services/content-api/permissions/providers/action.js.map +1 -0
- package/dist/services/content-api/permissions/providers/action.mjs +17 -0
- package/dist/services/content-api/permissions/providers/action.mjs.map +1 -0
- package/dist/services/content-api/permissions/providers/condition.js +19 -0
- package/dist/services/content-api/permissions/providers/condition.js.map +1 -0
- package/dist/services/content-api/permissions/providers/condition.mjs +17 -0
- package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -0
- package/dist/services/core-store.js +127 -0
- package/dist/services/core-store.js.map +1 -0
- package/dist/services/core-store.mjs +124 -0
- package/dist/services/core-store.mjs.map +1 -0
- package/dist/services/cron.js +77 -0
- package/dist/services/cron.js.map +1 -0
- package/dist/services/cron.mjs +75 -0
- package/dist/services/cron.mjs.map +1 -0
- package/dist/services/custom-fields.js +12 -0
- package/dist/services/custom-fields.js.map +1 -0
- package/dist/services/custom-fields.mjs +10 -0
- package/dist/services/custom-fields.mjs.map +1 -0
- package/dist/services/document-service/attributes/index.js +27 -0
- package/dist/services/document-service/attributes/index.js.map +1 -0
- package/dist/services/document-service/attributes/index.mjs +25 -0
- package/dist/services/document-service/attributes/index.mjs.map +1 -0
- package/dist/services/document-service/attributes/transforms.js +21 -0
- package/dist/services/document-service/attributes/transforms.js.map +1 -0
- package/dist/services/document-service/attributes/transforms.mjs +19 -0
- package/dist/services/document-service/attributes/transforms.mjs.map +1 -0
- package/dist/services/document-service/common.js +8 -0
- package/dist/services/document-service/common.js.map +1 -0
- package/dist/services/document-service/common.mjs +6 -0
- package/dist/services/document-service/common.mjs.map +1 -0
- package/dist/services/document-service/components.js +286 -0
- package/dist/services/document-service/components.js.map +1 -0
- package/dist/services/document-service/components.mjs +278 -0
- package/dist/services/document-service/components.mjs.map +1 -0
- package/dist/services/document-service/draft-and-publish.js +109 -0
- package/dist/services/document-service/draft-and-publish.js.map +1 -0
- package/dist/services/document-service/draft-and-publish.mjs +102 -0
- package/dist/services/document-service/draft-and-publish.mjs.map +1 -0
- package/dist/services/document-service/entries.js +113 -0
- package/dist/services/document-service/entries.js.map +1 -0
- package/dist/services/document-service/entries.mjs +111 -0
- package/dist/services/document-service/entries.mjs.map +1 -0
- package/dist/services/document-service/events.js +59 -0
- package/dist/services/document-service/events.js.map +1 -0
- package/dist/services/document-service/events.mjs +57 -0
- package/dist/services/document-service/events.mjs.map +1 -0
- package/dist/services/document-service/index.js +56 -0
- package/dist/services/document-service/index.js.map +1 -0
- package/dist/services/document-service/index.mjs +54 -0
- package/dist/services/document-service/index.mjs.map +1 -0
- package/dist/services/document-service/internationalization.js +79 -0
- package/dist/services/document-service/internationalization.js.map +1 -0
- package/dist/services/document-service/internationalization.mjs +74 -0
- package/dist/services/document-service/internationalization.mjs.map +1 -0
- package/dist/services/document-service/middlewares/errors.js +29 -0
- package/dist/services/document-service/middlewares/errors.js.map +1 -0
- package/dist/services/document-service/middlewares/errors.mjs +27 -0
- package/dist/services/document-service/middlewares/errors.mjs.map +1 -0
- package/dist/services/document-service/middlewares/middleware-manager.js +51 -0
- package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -0
- package/dist/services/document-service/middlewares/middleware-manager.mjs +49 -0
- package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -0
- package/dist/services/document-service/params.js +14 -0
- package/dist/services/document-service/params.js.map +1 -0
- package/dist/services/document-service/params.mjs +12 -0
- package/dist/services/document-service/params.mjs.map +1 -0
- package/dist/services/document-service/repository.js +364 -0
- package/dist/services/document-service/repository.js.map +1 -0
- package/dist/services/document-service/repository.mjs +362 -0
- package/dist/services/document-service/repository.mjs.map +1 -0
- package/dist/services/document-service/transform/data.js +25 -0
- package/dist/services/document-service/transform/data.js.map +1 -0
- package/dist/services/document-service/transform/data.mjs +23 -0
- package/dist/services/document-service/transform/data.mjs.map +1 -0
- package/dist/services/document-service/transform/fields.js +33 -0
- package/dist/services/document-service/transform/fields.js.map +1 -0
- package/dist/services/document-service/transform/fields.mjs +31 -0
- package/dist/services/document-service/transform/fields.mjs.map +1 -0
- package/dist/services/document-service/transform/id-map.js +125 -0
- package/dist/services/document-service/transform/id-map.js.map +1 -0
- package/dist/services/document-service/transform/id-map.mjs +123 -0
- package/dist/services/document-service/transform/id-map.mjs.map +1 -0
- package/dist/services/document-service/transform/id-transform.js +41 -0
- package/dist/services/document-service/transform/id-transform.js.map +1 -0
- package/dist/services/document-service/transform/id-transform.mjs +39 -0
- package/dist/services/document-service/transform/id-transform.mjs.map +1 -0
- package/dist/services/document-service/transform/populate.js +26 -0
- package/dist/services/document-service/transform/populate.js.map +1 -0
- package/dist/services/document-service/transform/populate.mjs +24 -0
- package/dist/services/document-service/transform/populate.mjs.map +1 -0
- package/dist/services/document-service/transform/query.js +14 -0
- package/dist/services/document-service/transform/query.js.map +1 -0
- package/dist/services/document-service/transform/query.mjs +12 -0
- package/dist/services/document-service/transform/query.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.js +80 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.mjs +78 -0
- package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.js +110 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.mjs +108 -0
- package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/transform/default-locale.js +50 -0
- package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -0
- package/dist/services/document-service/transform/relations/transform/default-locale.mjs +48 -0
- package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/utils/dp.js +56 -0
- package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -0
- package/dist/services/document-service/transform/relations/utils/dp.mjs +54 -0
- package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/utils/i18n.js +27 -0
- package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -0
- package/dist/services/document-service/transform/relations/utils/i18n.mjs +23 -0
- package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -0
- package/dist/services/document-service/transform/relations/utils/map-relation.js +130 -0
- package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -0
- package/dist/services/document-service/transform/relations/utils/map-relation.mjs +127 -0
- package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -0
- package/dist/services/document-service/utils/bidirectional-relations.js +148 -0
- package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -0
- package/dist/services/document-service/utils/bidirectional-relations.mjs +145 -0
- package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -0
- package/dist/services/document-service/utils/populate.js +71 -0
- package/dist/services/document-service/utils/populate.js.map +1 -0
- package/dist/services/document-service/utils/populate.mjs +69 -0
- package/dist/services/document-service/utils/populate.mjs.map +1 -0
- package/dist/services/document-service/utils/unidirectional-relations.js +116 -0
- package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -0
- package/dist/services/document-service/utils/unidirectional-relations.mjs +113 -0
- package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -0
- package/dist/services/entity-service/index.js +238 -0
- package/dist/services/entity-service/index.js.map +1 -0
- package/dist/services/entity-service/index.mjs +236 -0
- package/dist/services/entity-service/index.mjs.map +1 -0
- package/dist/services/entity-validator/blocks-validator.js +160 -0
- package/dist/services/entity-validator/blocks-validator.js.map +1 -0
- package/dist/services/entity-validator/blocks-validator.mjs +158 -0
- package/dist/services/entity-validator/blocks-validator.mjs.map +1 -0
- package/dist/services/entity-validator/index.js +384 -0
- package/dist/services/entity-validator/index.js.map +1 -0
- package/dist/services/entity-validator/index.mjs +382 -0
- package/dist/services/entity-validator/index.mjs.map +1 -0
- package/dist/services/entity-validator/validators.js +299 -0
- package/dist/services/entity-validator/validators.js.map +1 -0
- package/dist/services/entity-validator/validators.mjs +290 -0
- package/dist/services/entity-validator/validators.mjs.map +1 -0
- package/dist/services/errors.js +76 -0
- package/dist/services/errors.js.map +1 -0
- package/dist/services/errors.mjs +72 -0
- package/dist/services/errors.mjs.map +1 -0
- package/dist/services/event-hub.js +85 -0
- package/dist/services/event-hub.js.map +1 -0
- package/dist/services/event-hub.mjs +83 -0
- package/dist/services/event-hub.mjs.map +1 -0
- package/dist/services/features.js +22 -0
- package/dist/services/features.js.map +1 -0
- package/dist/services/features.mjs +20 -0
- package/dist/services/features.mjs.map +1 -0
- package/dist/services/fs.js +52 -0
- package/dist/services/fs.js.map +1 -0
- package/dist/services/fs.mjs +50 -0
- package/dist/services/fs.mjs.map +1 -0
- package/dist/services/metrics/admin-user-hash.js +16 -0
- package/dist/services/metrics/admin-user-hash.js.map +1 -0
- package/dist/services/metrics/admin-user-hash.mjs +14 -0
- package/dist/services/metrics/admin-user-hash.mjs.map +1 -0
- package/dist/services/metrics/index.js +51 -0
- package/dist/services/metrics/index.js.map +1 -0
- package/dist/services/metrics/index.mjs +49 -0
- package/dist/services/metrics/index.mjs.map +1 -0
- package/dist/services/metrics/is-truthy.js +16 -0
- package/dist/services/metrics/is-truthy.js.map +1 -0
- package/dist/services/metrics/is-truthy.mjs +14 -0
- package/dist/services/metrics/is-truthy.mjs.map +1 -0
- package/dist/services/metrics/middleware.js +40 -0
- package/dist/services/metrics/middleware.js.map +1 -0
- package/dist/services/metrics/middleware.mjs +38 -0
- package/dist/services/metrics/middleware.mjs.map +1 -0
- package/dist/services/metrics/rate-limiter.js +26 -0
- package/dist/services/metrics/rate-limiter.js.map +1 -0
- package/dist/services/metrics/rate-limiter.mjs +24 -0
- package/dist/services/metrics/rate-limiter.mjs.map +1 -0
- package/dist/services/metrics/sender.js +85 -0
- package/dist/services/metrics/sender.js.map +1 -0
- package/dist/services/metrics/sender.mjs +83 -0
- package/dist/services/metrics/sender.mjs.map +1 -0
- package/dist/services/query-params.js +15 -0
- package/dist/services/query-params.js.map +1 -0
- package/dist/services/query-params.mjs +13 -0
- package/dist/services/query-params.mjs.map +1 -0
- package/dist/services/reloader.js +39 -0
- package/dist/services/reloader.js.map +1 -0
- package/dist/services/reloader.mjs +37 -0
- package/dist/services/reloader.mjs.map +1 -0
- package/dist/services/request-context.js +16 -0
- package/dist/services/request-context.js.map +1 -0
- package/dist/services/request-context.mjs +14 -0
- package/dist/services/request-context.mjs.map +1 -0
- package/dist/services/server/admin-api.js +14 -0
- package/dist/services/server/admin-api.js.map +1 -0
- package/dist/services/server/admin-api.mjs +12 -0
- package/dist/services/server/admin-api.mjs.map +1 -0
- package/dist/services/server/api.js +36 -0
- package/dist/services/server/api.js.map +1 -0
- package/dist/services/server/api.mjs +34 -0
- package/dist/services/server/api.mjs.map +1 -0
- package/dist/services/server/compose-endpoint.js +128 -0
- package/dist/services/server/compose-endpoint.js.map +1 -0
- package/dist/services/server/compose-endpoint.mjs +126 -0
- package/dist/services/server/compose-endpoint.mjs.map +1 -0
- package/dist/services/server/content-api.js +14 -0
- package/dist/services/server/content-api.js.map +1 -0
- package/dist/services/server/content-api.mjs +12 -0
- package/dist/services/server/content-api.mjs.map +1 -0
- package/dist/services/server/http-server.js +54 -0
- package/dist/services/server/http-server.js.map +1 -0
- package/dist/services/server/http-server.mjs +52 -0
- package/dist/services/server/http-server.mjs.map +1 -0
- package/dist/services/server/index.js +90 -0
- package/dist/services/server/index.js.map +1 -0
- package/dist/services/server/index.mjs +88 -0
- package/dist/services/server/index.mjs.map +1 -0
- package/dist/services/server/koa.js +54 -0
- package/dist/services/server/koa.js.map +1 -0
- package/dist/services/server/koa.mjs +52 -0
- package/dist/services/server/koa.mjs.map +1 -0
- package/dist/services/server/middleware.js +96 -0
- package/dist/services/server/middleware.js.map +1 -0
- package/dist/services/server/middleware.mjs +93 -0
- package/dist/services/server/middleware.mjs.map +1 -0
- package/dist/services/server/policy.js +27 -0
- package/dist/services/server/policy.js.map +1 -0
- package/dist/services/server/policy.mjs +25 -0
- package/dist/services/server/policy.mjs.map +1 -0
- package/dist/services/server/register-middlewares.js +79 -0
- package/dist/services/server/register-middlewares.js.map +1 -0
- package/dist/services/server/register-middlewares.mjs +77 -0
- package/dist/services/server/register-middlewares.mjs.map +1 -0
- package/dist/services/server/register-routes.js +99 -0
- package/dist/services/server/register-routes.js.map +1 -0
- package/dist/services/server/register-routes.mjs +97 -0
- package/dist/services/server/register-routes.mjs.map +1 -0
- package/dist/services/server/routing.js +104 -0
- package/dist/services/server/routing.js.map +1 -0
- package/dist/services/server/routing.mjs +101 -0
- package/dist/services/server/routing.mjs.map +1 -0
- package/dist/services/utils/dynamic-zones.js +16 -0
- package/dist/services/utils/dynamic-zones.js.map +1 -0
- package/dist/services/utils/dynamic-zones.mjs +14 -0
- package/dist/services/utils/dynamic-zones.mjs.map +1 -0
- package/dist/services/webhook-runner.js +135 -0
- package/dist/services/webhook-runner.js.map +1 -0
- package/dist/services/webhook-runner.mjs +133 -0
- package/dist/services/webhook-runner.mjs.map +1 -0
- package/dist/services/webhook-store.js +143 -0
- package/dist/services/webhook-store.js.map +1 -0
- package/dist/services/webhook-store.mjs +140 -0
- package/dist/services/webhook-store.mjs.map +1 -0
- package/dist/services/worker-queue.js +51 -0
- package/dist/services/worker-queue.js.map +1 -0
- package/dist/services/worker-queue.mjs +49 -0
- package/dist/services/worker-queue.mjs.map +1 -0
- package/dist/utils/convert-custom-field-type.js +21 -0
- package/dist/utils/convert-custom-field-type.js.map +1 -0
- package/dist/utils/convert-custom-field-type.mjs +19 -0
- package/dist/utils/convert-custom-field-type.mjs.map +1 -0
- package/dist/utils/cron.js +72 -0
- package/dist/utils/cron.js.map +1 -0
- package/dist/utils/cron.mjs +70 -0
- package/dist/utils/cron.mjs.map +1 -0
- package/dist/utils/fetch.js +27 -0
- package/dist/utils/fetch.js.map +1 -0
- package/dist/utils/fetch.mjs +25 -0
- package/dist/utils/fetch.mjs.map +1 -0
- package/dist/utils/filepath-to-prop-path.js +25 -0
- package/dist/utils/filepath-to-prop-path.js.map +1 -0
- package/dist/utils/filepath-to-prop-path.mjs +23 -0
- package/dist/utils/filepath-to-prop-path.mjs.map +1 -0
- package/dist/utils/is-initialized.js +25 -0
- package/dist/utils/is-initialized.js.map +1 -0
- package/dist/utils/is-initialized.mjs +23 -0
- package/dist/utils/is-initialized.mjs.map +1 -0
- package/dist/utils/lifecycles.js +10 -0
- package/dist/utils/lifecycles.js.map +1 -0
- package/dist/utils/lifecycles.mjs +8 -0
- package/dist/utils/lifecycles.mjs.map +1 -0
- package/dist/utils/load-config-file.js +47 -0
- package/dist/utils/load-config-file.js.map +1 -0
- package/dist/utils/load-config-file.mjs +45 -0
- package/dist/utils/load-config-file.mjs.map +1 -0
- package/dist/utils/load-files.js +44 -0
- package/dist/utils/load-files.js.map +1 -0
- package/dist/utils/load-files.mjs +42 -0
- package/dist/utils/load-files.mjs.map +1 -0
- package/dist/utils/open-browser.js +11 -0
- package/dist/utils/open-browser.js.map +1 -0
- package/dist/utils/open-browser.mjs +9 -0
- package/dist/utils/open-browser.mjs.map +1 -0
- package/dist/utils/resolve-working-dirs.js +26 -0
- package/dist/utils/resolve-working-dirs.js.map +1 -0
- package/dist/utils/resolve-working-dirs.mjs +24 -0
- package/dist/utils/resolve-working-dirs.mjs.map +1 -0
- package/dist/utils/signals.js +23 -0
- package/dist/utils/signals.js.map +1 -0
- package/dist/utils/signals.mjs +21 -0
- package/dist/utils/signals.mjs.map +1 -0
- package/dist/utils/startup-logger.js +110 -0
- package/dist/utils/startup-logger.js.map +1 -0
- package/dist/utils/startup-logger.mjs +108 -0
- package/dist/utils/startup-logger.mjs.map +1 -0
- package/dist/utils/transform-content-types-to-models.js +377 -0
- package/dist/utils/transform-content-types-to-models.js.map +1 -0
- package/dist/utils/transform-content-types-to-models.mjs +365 -0
- package/dist/utils/transform-content-types-to-models.mjs.map +1 -0
- package/dist/utils/update-notifier/index.js +80 -0
- package/dist/utils/update-notifier/index.js.map +1 -0
- package/dist/utils/update-notifier/index.mjs +78 -0
- package/dist/utils/update-notifier/index.mjs.map +1 -0
- package/package.json +11 -11
@@ -0,0 +1,14 @@
|
|
1
|
+
import crypto from 'crypto';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Generate an admin user hash
|
5
|
+
*/ const generateAdminUserHash = (strapi)=>{
|
6
|
+
const ctx = strapi?.requestContext?.get();
|
7
|
+
if (!ctx?.state?.user?.email) {
|
8
|
+
return '';
|
9
|
+
}
|
10
|
+
return crypto.createHash('sha256').update(ctx.state.user.email).digest('hex');
|
11
|
+
};
|
12
|
+
|
13
|
+
export { generateAdminUserHash };
|
14
|
+
//# sourceMappingURL=admin-user-hash.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"admin-user-hash.mjs","sources":["../../../src/services/metrics/admin-user-hash.ts"],"sourcesContent":["import crypto from 'crypto';\nimport type { Core } from '@strapi/types';\n\n/**\n * Generate an admin user hash\n */\nconst generateAdminUserHash = (strapi: Core.Strapi) => {\n const ctx = strapi?.requestContext?.get();\n if (!ctx?.state?.user?.email) {\n return '';\n }\n return crypto.createHash('sha256').update(ctx.state.user.email).digest('hex');\n};\n\nexport { generateAdminUserHash };\n"],"names":["generateAdminUserHash","strapi","ctx","requestContext","get","state","user","email","crypto","createHash","update","digest"],"mappings":";;AAGA;;IAGA,MAAMA,wBAAwB,CAACC,MAAAA,GAAAA;IAC7B,MAAMC,GAAAA,GAAMD,QAAQE,cAAgBC,EAAAA,GAAAA,EAAAA;AACpC,IAAA,IAAI,CAACF,GAAAA,EAAKG,KAAOC,EAAAA,IAAAA,EAAMC,KAAO,EAAA;QAC5B,OAAO,EAAA;AACT;AACA,IAAA,OAAOC,MAAOC,CAAAA,UAAU,CAAC,QAAA,CAAA,CAAUC,MAAM,CAACR,GAAAA,CAAIG,KAAK,CAACC,IAAI,CAACC,KAAK,CAAA,CAAEI,MAAM,CAAC,KAAA,CAAA;AACzE;;;;"}
|
@@ -0,0 +1,51 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var nodeSchedule = require('node-schedule');
|
4
|
+
var rateLimiter = require('./rate-limiter.js');
|
5
|
+
var sender = require('./sender.js');
|
6
|
+
var middleware = require('./middleware.js');
|
7
|
+
var isTruthy = require('./is-truthy.js');
|
8
|
+
|
9
|
+
const LIMITED_EVENTS = [
|
10
|
+
'didSaveMediaWithAlternativeText',
|
11
|
+
'didSaveMediaWithCaption',
|
12
|
+
'didDisableResponsiveDimensions',
|
13
|
+
'didEnableResponsiveDimensions',
|
14
|
+
'didInitializePluginUpload'
|
15
|
+
];
|
16
|
+
const createTelemetryInstance = (strapi)=>{
|
17
|
+
const uuid = strapi.config.get('uuid');
|
18
|
+
const telemetryDisabled = strapi.config.get('packageJsonStrapi.telemetryDisabled');
|
19
|
+
const isDisabled = !uuid || isTruthy(process.env.STRAPI_TELEMETRY_DISABLED) || isTruthy(telemetryDisabled);
|
20
|
+
const crons = [];
|
21
|
+
const sender$1 = sender(strapi);
|
22
|
+
const sendEvent = rateLimiter(sender$1, {
|
23
|
+
limitedEvents: LIMITED_EVENTS
|
24
|
+
});
|
25
|
+
return {
|
26
|
+
get isDisabled () {
|
27
|
+
return isDisabled;
|
28
|
+
},
|
29
|
+
register () {
|
30
|
+
if (!isDisabled) {
|
31
|
+
const pingCron = nodeSchedule.scheduleJob('0 0 12 * * *', ()=>sendEvent('ping'));
|
32
|
+
crons.push(pingCron);
|
33
|
+
strapi.server.use(middleware({
|
34
|
+
sendEvent
|
35
|
+
}));
|
36
|
+
}
|
37
|
+
},
|
38
|
+
bootstrap () {},
|
39
|
+
destroy () {
|
40
|
+
// Clear open handles
|
41
|
+
crons.forEach((cron)=>cron.cancel());
|
42
|
+
},
|
43
|
+
async send (event, payload = {}) {
|
44
|
+
if (isDisabled) return true;
|
45
|
+
return sendEvent(event, payload);
|
46
|
+
}
|
47
|
+
};
|
48
|
+
};
|
49
|
+
|
50
|
+
module.exports = createTelemetryInstance;
|
51
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/services/metrics/index.ts"],"sourcesContent":["/**\n * Strapi telemetry package.\n * You can learn more at https://docs.strapi.io/developer-docs/latest/getting-started/usage-information.html\n */\n\nimport { Job, scheduleJob } from 'node-schedule';\nimport type { Core } from '@strapi/types';\n\nimport wrapWithRateLimit from './rate-limiter';\nimport createSender from './sender';\nimport createMiddleware from './middleware';\nimport isTruthy from './is-truthy';\n\nconst LIMITED_EVENTS = [\n 'didSaveMediaWithAlternativeText',\n 'didSaveMediaWithCaption',\n 'didDisableResponsiveDimensions',\n 'didEnableResponsiveDimensions',\n 'didInitializePluginUpload',\n];\n\nconst createTelemetryInstance = (strapi: Core.Strapi) => {\n const uuid = strapi.config.get('uuid');\n const telemetryDisabled = strapi.config.get('packageJsonStrapi.telemetryDisabled');\n const isDisabled =\n !uuid || isTruthy(process.env.STRAPI_TELEMETRY_DISABLED) || isTruthy(telemetryDisabled);\n\n const crons: Job[] = [];\n const sender = createSender(strapi);\n const sendEvent = wrapWithRateLimit(sender, { limitedEvents: LIMITED_EVENTS });\n\n return {\n get isDisabled() {\n return isDisabled;\n },\n\n register() {\n if (!isDisabled) {\n const pingCron = scheduleJob('0 0 12 * * *', () => sendEvent('ping'));\n crons.push(pingCron);\n\n strapi.server.use(createMiddleware({ sendEvent }));\n }\n },\n\n bootstrap() {},\n\n destroy() {\n // Clear open handles\n crons.forEach((cron) => cron.cancel());\n },\n\n async send(event: string, payload: Record<string, unknown> = {}) {\n if (isDisabled) return true;\n return sendEvent(event, payload);\n },\n };\n};\n\nexport default createTelemetryInstance;\n"],"names":["LIMITED_EVENTS","createTelemetryInstance","strapi","uuid","config","get","telemetryDisabled","isDisabled","isTruthy","process","env","STRAPI_TELEMETRY_DISABLED","crons","sender","createSender","sendEvent","wrapWithRateLimit","limitedEvents","register","pingCron","scheduleJob","push","server","use","createMiddleware","bootstrap","destroy","forEach","cron","cancel","send","event","payload"],"mappings":";;;;;;;;AAaA,MAAMA,cAAiB,GAAA;AACrB,IAAA,iCAAA;AACA,IAAA,yBAAA;AACA,IAAA,gCAAA;AACA,IAAA,+BAAA;AACA,IAAA;AACD,CAAA;AAED,MAAMC,0BAA0B,CAACC,MAAAA,GAAAA;AAC/B,IAAA,MAAMC,IAAOD,GAAAA,MAAAA,CAAOE,MAAM,CAACC,GAAG,CAAC,MAAA,CAAA;AAC/B,IAAA,MAAMC,iBAAoBJ,GAAAA,MAAAA,CAAOE,MAAM,CAACC,GAAG,CAAC,qCAAA,CAAA;IAC5C,MAAME,UAAAA,GACJ,CAACJ,IAAQK,IAAAA,QAAAA,CAASC,QAAQC,GAAG,CAACC,yBAAyB,CAAA,IAAKH,QAASF,CAAAA,iBAAAA,CAAAA;AAEvE,IAAA,MAAMM,QAAe,EAAE;AACvB,IAAA,MAAMC,WAASC,MAAaZ,CAAAA,MAAAA,CAAAA;IAC5B,MAAMa,SAAAA,GAAYC,YAAkBH,QAAQ,EAAA;QAAEI,aAAejB,EAAAA;AAAe,KAAA,CAAA;IAE5E,OAAO;AACL,QAAA,IAAIO,UAAa,CAAA,GAAA;YACf,OAAOA,UAAAA;AACT,SAAA;AAEAW,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,IAAI,CAACX,UAAY,EAAA;AACf,gBAAA,MAAMY,QAAWC,GAAAA,wBAAAA,CAAY,cAAgB,EAAA,IAAML,SAAU,CAAA,MAAA,CAAA,CAAA;AAC7DH,gBAAAA,KAAAA,CAAMS,IAAI,CAACF,QAAAA,CAAAA;AAEXjB,gBAAAA,MAAAA,CAAOoB,MAAM,CAACC,GAAG,CAACC,UAAiB,CAAA;AAAET,oBAAAA;AAAU,iBAAA,CAAA,CAAA;AACjD;AACF,SAAA;QAEAU,SAAa,CAAA,GAAA,EAAA;AAEbC,QAAAA,OAAAA,CAAAA,GAAAA;;AAEEd,YAAAA,KAAAA,CAAMe,OAAO,CAAC,CAACC,IAAAA,GAASA,KAAKC,MAAM,EAAA,CAAA;AACrC,SAAA;AAEA,QAAA,MAAMC,IAAKC,CAAAA,CAAAA,KAAa,EAAEC,OAAAA,GAAmC,EAAE,EAAA;AAC7D,YAAA,IAAIzB,YAAY,OAAO,IAAA;AACvB,YAAA,OAAOQ,UAAUgB,KAAOC,EAAAA,OAAAA,CAAAA;AAC1B;AACF,KAAA;AACF;;;;"}
|
@@ -0,0 +1,49 @@
|
|
1
|
+
import { scheduleJob } from 'node-schedule';
|
2
|
+
import wrapWithRateLimit from './rate-limiter.mjs';
|
3
|
+
import createSender from './sender.mjs';
|
4
|
+
import createMiddleware from './middleware.mjs';
|
5
|
+
import isTruthy from './is-truthy.mjs';
|
6
|
+
|
7
|
+
const LIMITED_EVENTS = [
|
8
|
+
'didSaveMediaWithAlternativeText',
|
9
|
+
'didSaveMediaWithCaption',
|
10
|
+
'didDisableResponsiveDimensions',
|
11
|
+
'didEnableResponsiveDimensions',
|
12
|
+
'didInitializePluginUpload'
|
13
|
+
];
|
14
|
+
const createTelemetryInstance = (strapi)=>{
|
15
|
+
const uuid = strapi.config.get('uuid');
|
16
|
+
const telemetryDisabled = strapi.config.get('packageJsonStrapi.telemetryDisabled');
|
17
|
+
const isDisabled = !uuid || isTruthy(process.env.STRAPI_TELEMETRY_DISABLED) || isTruthy(telemetryDisabled);
|
18
|
+
const crons = [];
|
19
|
+
const sender = createSender(strapi);
|
20
|
+
const sendEvent = wrapWithRateLimit(sender, {
|
21
|
+
limitedEvents: LIMITED_EVENTS
|
22
|
+
});
|
23
|
+
return {
|
24
|
+
get isDisabled () {
|
25
|
+
return isDisabled;
|
26
|
+
},
|
27
|
+
register () {
|
28
|
+
if (!isDisabled) {
|
29
|
+
const pingCron = scheduleJob('0 0 12 * * *', ()=>sendEvent('ping'));
|
30
|
+
crons.push(pingCron);
|
31
|
+
strapi.server.use(createMiddleware({
|
32
|
+
sendEvent
|
33
|
+
}));
|
34
|
+
}
|
35
|
+
},
|
36
|
+
bootstrap () {},
|
37
|
+
destroy () {
|
38
|
+
// Clear open handles
|
39
|
+
crons.forEach((cron)=>cron.cancel());
|
40
|
+
},
|
41
|
+
async send (event, payload = {}) {
|
42
|
+
if (isDisabled) return true;
|
43
|
+
return sendEvent(event, payload);
|
44
|
+
}
|
45
|
+
};
|
46
|
+
};
|
47
|
+
|
48
|
+
export { createTelemetryInstance as default };
|
49
|
+
//# sourceMappingURL=index.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../src/services/metrics/index.ts"],"sourcesContent":["/**\n * Strapi telemetry package.\n * You can learn more at https://docs.strapi.io/developer-docs/latest/getting-started/usage-information.html\n */\n\nimport { Job, scheduleJob } from 'node-schedule';\nimport type { Core } from '@strapi/types';\n\nimport wrapWithRateLimit from './rate-limiter';\nimport createSender from './sender';\nimport createMiddleware from './middleware';\nimport isTruthy from './is-truthy';\n\nconst LIMITED_EVENTS = [\n 'didSaveMediaWithAlternativeText',\n 'didSaveMediaWithCaption',\n 'didDisableResponsiveDimensions',\n 'didEnableResponsiveDimensions',\n 'didInitializePluginUpload',\n];\n\nconst createTelemetryInstance = (strapi: Core.Strapi) => {\n const uuid = strapi.config.get('uuid');\n const telemetryDisabled = strapi.config.get('packageJsonStrapi.telemetryDisabled');\n const isDisabled =\n !uuid || isTruthy(process.env.STRAPI_TELEMETRY_DISABLED) || isTruthy(telemetryDisabled);\n\n const crons: Job[] = [];\n const sender = createSender(strapi);\n const sendEvent = wrapWithRateLimit(sender, { limitedEvents: LIMITED_EVENTS });\n\n return {\n get isDisabled() {\n return isDisabled;\n },\n\n register() {\n if (!isDisabled) {\n const pingCron = scheduleJob('0 0 12 * * *', () => sendEvent('ping'));\n crons.push(pingCron);\n\n strapi.server.use(createMiddleware({ sendEvent }));\n }\n },\n\n bootstrap() {},\n\n destroy() {\n // Clear open handles\n crons.forEach((cron) => cron.cancel());\n },\n\n async send(event: string, payload: Record<string, unknown> = {}) {\n if (isDisabled) return true;\n return sendEvent(event, payload);\n },\n };\n};\n\nexport default createTelemetryInstance;\n"],"names":["LIMITED_EVENTS","createTelemetryInstance","strapi","uuid","config","get","telemetryDisabled","isDisabled","isTruthy","process","env","STRAPI_TELEMETRY_DISABLED","crons","sender","createSender","sendEvent","wrapWithRateLimit","limitedEvents","register","pingCron","scheduleJob","push","server","use","createMiddleware","bootstrap","destroy","forEach","cron","cancel","send","event","payload"],"mappings":";;;;;;AAaA,MAAMA,cAAiB,GAAA;AACrB,IAAA,iCAAA;AACA,IAAA,yBAAA;AACA,IAAA,gCAAA;AACA,IAAA,+BAAA;AACA,IAAA;AACD,CAAA;AAED,MAAMC,0BAA0B,CAACC,MAAAA,GAAAA;AAC/B,IAAA,MAAMC,IAAOD,GAAAA,MAAAA,CAAOE,MAAM,CAACC,GAAG,CAAC,MAAA,CAAA;AAC/B,IAAA,MAAMC,iBAAoBJ,GAAAA,MAAAA,CAAOE,MAAM,CAACC,GAAG,CAAC,qCAAA,CAAA;IAC5C,MAAME,UAAAA,GACJ,CAACJ,IAAQK,IAAAA,QAAAA,CAASC,QAAQC,GAAG,CAACC,yBAAyB,CAAA,IAAKH,QAASF,CAAAA,iBAAAA,CAAAA;AAEvE,IAAA,MAAMM,QAAe,EAAE;AACvB,IAAA,MAAMC,SAASC,YAAaZ,CAAAA,MAAAA,CAAAA;IAC5B,MAAMa,SAAAA,GAAYC,kBAAkBH,MAAQ,EAAA;QAAEI,aAAejB,EAAAA;AAAe,KAAA,CAAA;IAE5E,OAAO;AACL,QAAA,IAAIO,UAAa,CAAA,GAAA;YACf,OAAOA,UAAAA;AACT,SAAA;AAEAW,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,IAAI,CAACX,UAAY,EAAA;AACf,gBAAA,MAAMY,QAAWC,GAAAA,WAAAA,CAAY,cAAgB,EAAA,IAAML,SAAU,CAAA,MAAA,CAAA,CAAA;AAC7DH,gBAAAA,KAAAA,CAAMS,IAAI,CAACF,QAAAA,CAAAA;AAEXjB,gBAAAA,MAAAA,CAAOoB,MAAM,CAACC,GAAG,CAACC,gBAAiB,CAAA;AAAET,oBAAAA;AAAU,iBAAA,CAAA,CAAA;AACjD;AACF,SAAA;QAEAU,SAAa,CAAA,GAAA,EAAA;AAEbC,QAAAA,OAAAA,CAAAA,GAAAA;;AAEEd,YAAAA,KAAAA,CAAMe,OAAO,CAAC,CAACC,IAAAA,GAASA,KAAKC,MAAM,EAAA,CAAA;AACrC,SAAA;AAEA,QAAA,MAAMC,IAAKC,CAAAA,CAAAA,KAAa,EAAEC,OAAAA,GAAmC,EAAE,EAAA;AAC7D,YAAA,IAAIzB,YAAY,OAAO,IAAA;AACvB,YAAA,OAAOQ,UAAUgB,KAAOC,EAAAA,OAAAA,CAAAA;AAC1B;AACF,KAAA;AACF;;;;"}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var _ = require('lodash');
|
4
|
+
|
5
|
+
const isTruthy = (val)=>{
|
6
|
+
return [
|
7
|
+
1,
|
8
|
+
true
|
9
|
+
].includes(val) || [
|
10
|
+
'true',
|
11
|
+
'1'
|
12
|
+
].includes(_.toLower(val));
|
13
|
+
};
|
14
|
+
|
15
|
+
module.exports = isTruthy;
|
16
|
+
//# sourceMappingURL=is-truthy.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"is-truthy.js","sources":["../../../src/services/metrics/is-truthy.ts"],"sourcesContent":["import _ from 'lodash';\n\nconst isTruthy = (val: any) => {\n return [1, true].includes(val) || ['true', '1'].includes(_.toLower(val));\n};\n\nexport default isTruthy;\n"],"names":["isTruthy","val","includes","_","toLower"],"mappings":";;;;AAEA,MAAMA,WAAW,CAACC,GAAAA,GAAAA;IAChB,OAAO;AAAC,QAAA,CAAA;AAAG,QAAA;KAAK,CAACC,QAAQ,CAACD,GAAQ,CAAA,IAAA;AAAC,QAAA,MAAA;AAAQ,QAAA;AAAI,KAAA,CAACC,QAAQ,CAACC,CAAEC,CAAAA,OAAO,CAACH,GAAAA,CAAAA,CAAAA;AACrE;;;;"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"is-truthy.mjs","sources":["../../../src/services/metrics/is-truthy.ts"],"sourcesContent":["import _ from 'lodash';\n\nconst isTruthy = (val: any) => {\n return [1, true].includes(val) || ['true', '1'].includes(_.toLower(val));\n};\n\nexport default isTruthy;\n"],"names":["isTruthy","val","includes","_","toLower"],"mappings":";;AAEA,MAAMA,WAAW,CAACC,GAAAA,GAAAA;IAChB,OAAO;AAAC,QAAA,CAAA;AAAG,QAAA;KAAK,CAACC,QAAQ,CAACD,GAAQ,CAAA,IAAA;AAAC,QAAA,MAAA;AAAQ,QAAA;AAAI,KAAA,CAACC,QAAQ,CAACC,CAAEC,CAAAA,OAAO,CAACH,GAAAA,CAAAA,CAAAA;AACrE;;;;"}
|
@@ -0,0 +1,40 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
function nextResetDate() {
|
4
|
+
return Date.now() + 24 * 60 * 60 * 1000; // Now + 24 hours.
|
5
|
+
}
|
6
|
+
const createMiddleware = ({ sendEvent })=>{
|
7
|
+
const state = {
|
8
|
+
expires: nextResetDate(),
|
9
|
+
counter: 0
|
10
|
+
};
|
11
|
+
const middleware = async (ctx, next)=>{
|
12
|
+
const { url, method } = ctx.request;
|
13
|
+
if (!url.includes('.') && [
|
14
|
+
'GET',
|
15
|
+
'PUT',
|
16
|
+
'POST',
|
17
|
+
'DELETE'
|
18
|
+
].includes(method)) {
|
19
|
+
if (Date.now() > state.expires) {
|
20
|
+
state.expires = nextResetDate();
|
21
|
+
state.counter = 0;
|
22
|
+
}
|
23
|
+
// Send max. 1000 events per day.
|
24
|
+
if (state.counter < 1000) {
|
25
|
+
sendEvent('didReceiveRequest', {
|
26
|
+
eventProperties: {
|
27
|
+
url: ctx.request.url
|
28
|
+
}
|
29
|
+
});
|
30
|
+
// Increase counter.
|
31
|
+
state.counter += 1;
|
32
|
+
}
|
33
|
+
}
|
34
|
+
await next();
|
35
|
+
};
|
36
|
+
return middleware;
|
37
|
+
};
|
38
|
+
|
39
|
+
module.exports = createMiddleware;
|
40
|
+
//# sourceMappingURL=middleware.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"middleware.js","sources":["../../../src/services/metrics/middleware.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport type { Sender } from './sender';\n\ninterface State {\n expires: number;\n counter: number;\n}\n\nfunction nextResetDate(): number {\n return Date.now() + 24 * 60 * 60 * 1000; // Now + 24 hours.\n}\n\nconst createMiddleware = ({ sendEvent }: { sendEvent: Sender }) => {\n const state: State = {\n expires: nextResetDate(),\n counter: 0,\n };\n\n const middleware: Core.MiddlewareHandler = async (ctx, next) => {\n const { url, method } = ctx.request;\n\n if (!url.includes('.') && ['GET', 'PUT', 'POST', 'DELETE'].includes(method)) {\n if (Date.now() > state.expires) {\n state.expires = nextResetDate();\n state.counter = 0;\n }\n\n // Send max. 1000 events per day.\n if (state.counter < 1000) {\n sendEvent('didReceiveRequest', { eventProperties: { url: ctx.request.url } });\n\n // Increase counter.\n state.counter += 1;\n }\n }\n\n await next();\n };\n\n return middleware;\n};\n\nexport default createMiddleware;\n"],"names":["nextResetDate","Date","now","createMiddleware","sendEvent","state","expires","counter","middleware","ctx","next","url","method","request","includes","eventProperties"],"mappings":";;AAQA,SAASA,aAAAA,GAAAA;AACP,IAAA,OAAOC,KAAKC,GAAG,EAAA,GAAK,KAAK,EAAK,GAAA,EAAA,GAAK;AACrC;AAEA,MAAMC,gBAAmB,GAAA,CAAC,EAAEC,SAAS,EAAyB,GAAA;AAC5D,IAAA,MAAMC,KAAe,GAAA;QACnBC,OAASN,EAAAA,aAAAA,EAAAA;QACTO,OAAS,EAAA;AACX,KAAA;IAEA,MAAMC,UAAAA,GAAqC,OAAOC,GAAKC,EAAAA,IAAAA,GAAAA;AACrD,QAAA,MAAM,EAAEC,GAAG,EAAEC,MAAM,EAAE,GAAGH,IAAII,OAAO;AAEnC,QAAA,IAAI,CAACF,GAAAA,CAAIG,QAAQ,CAAC,GAAQ,CAAA,IAAA;AAAC,YAAA,KAAA;AAAO,YAAA,KAAA;AAAO,YAAA,MAAA;AAAQ,YAAA;SAAS,CAACA,QAAQ,CAACF,MAAS,CAAA,EAAA;AAC3E,YAAA,IAAIX,IAAKC,CAAAA,GAAG,EAAKG,GAAAA,KAAAA,CAAMC,OAAO,EAAE;AAC9BD,gBAAAA,KAAAA,CAAMC,OAAO,GAAGN,aAAAA,EAAAA;AAChBK,gBAAAA,KAAAA,CAAME,OAAO,GAAG,CAAA;AAClB;;YAGA,IAAIF,KAAAA,CAAME,OAAO,GAAG,IAAM,EAAA;AACxBH,gBAAAA,SAAAA,CAAU,mBAAqB,EAAA;oBAAEW,eAAiB,EAAA;wBAAEJ,GAAKF,EAAAA,GAAAA,CAAII,OAAO,CAACF;AAAI;AAAE,iBAAA,CAAA;;AAG3EN,gBAAAA,KAAAA,CAAME,OAAO,IAAI,CAAA;AACnB;AACF;QAEA,MAAMG,IAAAA,EAAAA;AACR,KAAA;IAEA,OAAOF,UAAAA;AACT;;;;"}
|
@@ -0,0 +1,38 @@
|
|
1
|
+
function nextResetDate() {
|
2
|
+
return Date.now() + 24 * 60 * 60 * 1000; // Now + 24 hours.
|
3
|
+
}
|
4
|
+
const createMiddleware = ({ sendEvent })=>{
|
5
|
+
const state = {
|
6
|
+
expires: nextResetDate(),
|
7
|
+
counter: 0
|
8
|
+
};
|
9
|
+
const middleware = async (ctx, next)=>{
|
10
|
+
const { url, method } = ctx.request;
|
11
|
+
if (!url.includes('.') && [
|
12
|
+
'GET',
|
13
|
+
'PUT',
|
14
|
+
'POST',
|
15
|
+
'DELETE'
|
16
|
+
].includes(method)) {
|
17
|
+
if (Date.now() > state.expires) {
|
18
|
+
state.expires = nextResetDate();
|
19
|
+
state.counter = 0;
|
20
|
+
}
|
21
|
+
// Send max. 1000 events per day.
|
22
|
+
if (state.counter < 1000) {
|
23
|
+
sendEvent('didReceiveRequest', {
|
24
|
+
eventProperties: {
|
25
|
+
url: ctx.request.url
|
26
|
+
}
|
27
|
+
});
|
28
|
+
// Increase counter.
|
29
|
+
state.counter += 1;
|
30
|
+
}
|
31
|
+
}
|
32
|
+
await next();
|
33
|
+
};
|
34
|
+
return middleware;
|
35
|
+
};
|
36
|
+
|
37
|
+
export { createMiddleware as default };
|
38
|
+
//# sourceMappingURL=middleware.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"middleware.mjs","sources":["../../../src/services/metrics/middleware.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport type { Sender } from './sender';\n\ninterface State {\n expires: number;\n counter: number;\n}\n\nfunction nextResetDate(): number {\n return Date.now() + 24 * 60 * 60 * 1000; // Now + 24 hours.\n}\n\nconst createMiddleware = ({ sendEvent }: { sendEvent: Sender }) => {\n const state: State = {\n expires: nextResetDate(),\n counter: 0,\n };\n\n const middleware: Core.MiddlewareHandler = async (ctx, next) => {\n const { url, method } = ctx.request;\n\n if (!url.includes('.') && ['GET', 'PUT', 'POST', 'DELETE'].includes(method)) {\n if (Date.now() > state.expires) {\n state.expires = nextResetDate();\n state.counter = 0;\n }\n\n // Send max. 1000 events per day.\n if (state.counter < 1000) {\n sendEvent('didReceiveRequest', { eventProperties: { url: ctx.request.url } });\n\n // Increase counter.\n state.counter += 1;\n }\n }\n\n await next();\n };\n\n return middleware;\n};\n\nexport default createMiddleware;\n"],"names":["nextResetDate","Date","now","createMiddleware","sendEvent","state","expires","counter","middleware","ctx","next","url","method","request","includes","eventProperties"],"mappings":"AAQA,SAASA,aAAAA,GAAAA;AACP,IAAA,OAAOC,KAAKC,GAAG,EAAA,GAAK,KAAK,EAAK,GAAA,EAAA,GAAK;AACrC;AAEA,MAAMC,gBAAmB,GAAA,CAAC,EAAEC,SAAS,EAAyB,GAAA;AAC5D,IAAA,MAAMC,KAAe,GAAA;QACnBC,OAASN,EAAAA,aAAAA,EAAAA;QACTO,OAAS,EAAA;AACX,KAAA;IAEA,MAAMC,UAAAA,GAAqC,OAAOC,GAAKC,EAAAA,IAAAA,GAAAA;AACrD,QAAA,MAAM,EAAEC,GAAG,EAAEC,MAAM,EAAE,GAAGH,IAAII,OAAO;AAEnC,QAAA,IAAI,CAACF,GAAAA,CAAIG,QAAQ,CAAC,GAAQ,CAAA,IAAA;AAAC,YAAA,KAAA;AAAO,YAAA,KAAA;AAAO,YAAA,MAAA;AAAQ,YAAA;SAAS,CAACA,QAAQ,CAACF,MAAS,CAAA,EAAA;AAC3E,YAAA,IAAIX,IAAKC,CAAAA,GAAG,EAAKG,GAAAA,KAAAA,CAAMC,OAAO,EAAE;AAC9BD,gBAAAA,KAAAA,CAAMC,OAAO,GAAGN,aAAAA,EAAAA;AAChBK,gBAAAA,KAAAA,CAAME,OAAO,GAAG,CAAA;AAClB;;YAGA,IAAIF,KAAAA,CAAME,OAAO,GAAG,IAAM,EAAA;AACxBH,gBAAAA,SAAAA,CAAU,mBAAqB,EAAA;oBAAEW,eAAiB,EAAA;wBAAEJ,GAAKF,EAAAA,GAAAA,CAAII,OAAO,CAACF;AAAI;AAAE,iBAAA,CAAA;;AAG3EN,gBAAAA,KAAAA,CAAME,OAAO,IAAI,CAAA;AACnB;AACF;QAEA,MAAMG,IAAAA,EAAAA;AACR,KAAA;IAEA,OAAOF,UAAAA;AACT;;;;"}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
function nextResetDate() {
|
4
|
+
return Date.now() + 24 * 60 * 60 * 1000; // Now + 24 hours.
|
5
|
+
}
|
6
|
+
var wrapWithRateLimit = ((sender, { limitedEvents = [] } = {})=>{
|
7
|
+
let cacheExpiresAt = nextResetDate();
|
8
|
+
const eventCache = new Map();
|
9
|
+
return async (event, ...args)=>{
|
10
|
+
if (!limitedEvents.includes(event)) {
|
11
|
+
return sender(event, ...args);
|
12
|
+
}
|
13
|
+
if (Date.now() > cacheExpiresAt) {
|
14
|
+
eventCache.clear();
|
15
|
+
cacheExpiresAt = nextResetDate();
|
16
|
+
}
|
17
|
+
if (eventCache.has(event)) {
|
18
|
+
return false;
|
19
|
+
}
|
20
|
+
eventCache.set(event, true);
|
21
|
+
return sender(event, ...args);
|
22
|
+
};
|
23
|
+
});
|
24
|
+
|
25
|
+
module.exports = wrapWithRateLimit;
|
26
|
+
//# sourceMappingURL=rate-limiter.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"rate-limiter.js","sources":["../../../src/services/metrics/rate-limiter.ts"],"sourcesContent":["import type { Sender } from './sender';\n\ninterface Options {\n limitedEvents?: string[];\n}\n\ntype TailParams<T extends (...args: any[]) => any> =\n Parameters<T> extends [unknown, ...infer U] ? U : never;\n\nfunction nextResetDate(): number {\n return Date.now() + 24 * 60 * 60 * 1000; // Now + 24 hours.\n}\n\nexport default (sender: Sender, { limitedEvents = [] }: Options = {}) => {\n let cacheExpiresAt = nextResetDate();\n const eventCache = new Map();\n\n return async (event: string, ...args: TailParams<Sender>) => {\n if (!limitedEvents.includes(event)) {\n return sender(event, ...args);\n }\n\n if (Date.now() > cacheExpiresAt) {\n eventCache.clear();\n cacheExpiresAt = nextResetDate();\n }\n\n if (eventCache.has(event)) {\n return false;\n }\n\n eventCache.set(event, true);\n return sender(event, ...args);\n };\n};\n"],"names":["nextResetDate","Date","now","sender","limitedEvents","cacheExpiresAt","eventCache","Map","event","args","includes","clear","has","set"],"mappings":";;AASA,SAASA,aAAAA,GAAAA;AACP,IAAA,OAAOC,KAAKC,GAAG,EAAA,GAAK,KAAK,EAAK,GAAA,EAAA,GAAK;AACrC;AAEA,wBAAe,CAAA,CAACC,MAAgB,EAAA,EAAEC,gBAAgB,EAAE,EAAW,GAAG,EAAE,GAAA;AAClE,IAAA,IAAIC,cAAiBL,GAAAA,aAAAA,EAAAA;AACrB,IAAA,MAAMM,aAAa,IAAIC,GAAAA,EAAAA;IAEvB,OAAO,OAAOC,OAAe,GAAGC,IAAAA,GAAAA;AAC9B,QAAA,IAAI,CAACL,aAAAA,CAAcM,QAAQ,CAACF,KAAQ,CAAA,EAAA;AAClC,YAAA,OAAOL,OAAOK,KAAUC,EAAAA,GAAAA,IAAAA,CAAAA;AAC1B;QAEA,IAAIR,IAAAA,CAAKC,GAAG,EAAA,GAAKG,cAAgB,EAAA;AAC/BC,YAAAA,UAAAA,CAAWK,KAAK,EAAA;YAChBN,cAAiBL,GAAAA,aAAAA,EAAAA;AACnB;QAEA,IAAIM,UAAAA,CAAWM,GAAG,CAACJ,KAAQ,CAAA,EAAA;YACzB,OAAO,KAAA;AACT;QAEAF,UAAWO,CAAAA,GAAG,CAACL,KAAO,EAAA,IAAA,CAAA;AACtB,QAAA,OAAOL,OAAOK,KAAUC,EAAAA,GAAAA,IAAAA,CAAAA;AAC1B,KAAA;AACF,CAAA;;;;"}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
function nextResetDate() {
|
2
|
+
return Date.now() + 24 * 60 * 60 * 1000; // Now + 24 hours.
|
3
|
+
}
|
4
|
+
var wrapWithRateLimit = ((sender, { limitedEvents = [] } = {})=>{
|
5
|
+
let cacheExpiresAt = nextResetDate();
|
6
|
+
const eventCache = new Map();
|
7
|
+
return async (event, ...args)=>{
|
8
|
+
if (!limitedEvents.includes(event)) {
|
9
|
+
return sender(event, ...args);
|
10
|
+
}
|
11
|
+
if (Date.now() > cacheExpiresAt) {
|
12
|
+
eventCache.clear();
|
13
|
+
cacheExpiresAt = nextResetDate();
|
14
|
+
}
|
15
|
+
if (eventCache.has(event)) {
|
16
|
+
return false;
|
17
|
+
}
|
18
|
+
eventCache.set(event, true);
|
19
|
+
return sender(event, ...args);
|
20
|
+
};
|
21
|
+
});
|
22
|
+
|
23
|
+
export { wrapWithRateLimit as default };
|
24
|
+
//# sourceMappingURL=rate-limiter.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"rate-limiter.mjs","sources":["../../../src/services/metrics/rate-limiter.ts"],"sourcesContent":["import type { Sender } from './sender';\n\ninterface Options {\n limitedEvents?: string[];\n}\n\ntype TailParams<T extends (...args: any[]) => any> =\n Parameters<T> extends [unknown, ...infer U] ? U : never;\n\nfunction nextResetDate(): number {\n return Date.now() + 24 * 60 * 60 * 1000; // Now + 24 hours.\n}\n\nexport default (sender: Sender, { limitedEvents = [] }: Options = {}) => {\n let cacheExpiresAt = nextResetDate();\n const eventCache = new Map();\n\n return async (event: string, ...args: TailParams<Sender>) => {\n if (!limitedEvents.includes(event)) {\n return sender(event, ...args);\n }\n\n if (Date.now() > cacheExpiresAt) {\n eventCache.clear();\n cacheExpiresAt = nextResetDate();\n }\n\n if (eventCache.has(event)) {\n return false;\n }\n\n eventCache.set(event, true);\n return sender(event, ...args);\n };\n};\n"],"names":["nextResetDate","Date","now","sender","limitedEvents","cacheExpiresAt","eventCache","Map","event","args","includes","clear","has","set"],"mappings":"AASA,SAASA,aAAAA,GAAAA;AACP,IAAA,OAAOC,KAAKC,GAAG,EAAA,GAAK,KAAK,EAAK,GAAA,EAAA,GAAK;AACrC;AAEA,wBAAe,CAAA,CAACC,MAAgB,EAAA,EAAEC,gBAAgB,EAAE,EAAW,GAAG,EAAE,GAAA;AAClE,IAAA,IAAIC,cAAiBL,GAAAA,aAAAA,EAAAA;AACrB,IAAA,MAAMM,aAAa,IAAIC,GAAAA,EAAAA;IAEvB,OAAO,OAAOC,OAAe,GAAGC,IAAAA,GAAAA;AAC9B,QAAA,IAAI,CAACL,aAAAA,CAAcM,QAAQ,CAACF,KAAQ,CAAA,EAAA;AAClC,YAAA,OAAOL,OAAOK,KAAUC,EAAAA,GAAAA,IAAAA,CAAAA;AAC1B;QAEA,IAAIR,IAAAA,CAAKC,GAAG,EAAA,GAAKG,cAAgB,EAAA;AAC/BC,YAAAA,UAAAA,CAAWK,KAAK,EAAA;YAChBN,cAAiBL,GAAAA,aAAAA,EAAAA;AACnB;QAEA,IAAIM,UAAAA,CAAWM,GAAG,CAACJ,KAAQ,CAAA,EAAA;YACzB,OAAO,KAAA;AACT;QAEAF,UAAWO,CAAAA,GAAG,CAACL,KAAO,EAAA,IAAA,CAAA;AACtB,QAAA,OAAOL,OAAOK,KAAUC,EAAAA,GAAAA,IAAAA,CAAAA;AAC1B,KAAA;AACF,CAAA;;;;"}
|
@@ -0,0 +1,85 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var os = require('os');
|
4
|
+
var path = require('path');
|
5
|
+
var _ = require('lodash');
|
6
|
+
var isDocker = require('is-docker');
|
7
|
+
var ciEnv = require('ci-info');
|
8
|
+
var tsUtils = require('@strapi/typescript-utils');
|
9
|
+
var strapiUtils = require('@strapi/utils');
|
10
|
+
var adminUserHash = require('./admin-user-hash.js');
|
11
|
+
|
12
|
+
const defaultQueryOpts = {
|
13
|
+
timeout: 1000,
|
14
|
+
headers: {
|
15
|
+
'Content-Type': 'application/json'
|
16
|
+
}
|
17
|
+
};
|
18
|
+
const ANALYTICS_URI = 'https://analytics.strapi.io';
|
19
|
+
/**
|
20
|
+
* Add properties from the package.json strapi key in the metadata
|
21
|
+
*/ const addPackageJsonStrapiMetadata = (metadata, strapi)=>{
|
22
|
+
const { packageJsonStrapi = {} } = strapi.config;
|
23
|
+
_.defaults(metadata, packageJsonStrapi);
|
24
|
+
};
|
25
|
+
/**
|
26
|
+
* Create a send function for event with all the necessary metadata
|
27
|
+
*/ var createSender = ((strapi)=>{
|
28
|
+
const { uuid } = strapi.config;
|
29
|
+
const deviceId = strapiUtils.machineID();
|
30
|
+
const serverRootPath = strapi.dirs.app.root;
|
31
|
+
const adminRootPath = path.join(strapi.dirs.app.root, 'src', 'admin');
|
32
|
+
const anonymousUserProperties = {
|
33
|
+
environment: strapi.config.environment,
|
34
|
+
os: os.type(),
|
35
|
+
osPlatform: os.platform(),
|
36
|
+
osArch: os.arch(),
|
37
|
+
osRelease: os.release(),
|
38
|
+
nodeVersion: process.versions.node
|
39
|
+
};
|
40
|
+
const anonymousGroupProperties = {
|
41
|
+
docker: process.env.DOCKER || isDocker(),
|
42
|
+
isCI: ciEnv.isCI,
|
43
|
+
version: strapi.config.get('info.strapi'),
|
44
|
+
useTypescriptOnServer: tsUtils.isUsingTypeScriptSync(serverRootPath),
|
45
|
+
useTypescriptOnAdmin: tsUtils.isUsingTypeScriptSync(adminRootPath),
|
46
|
+
projectId: uuid,
|
47
|
+
isHostedOnStrapiCloud: strapiUtils.env('STRAPI_HOSTING', null) === 'strapi.cloud'
|
48
|
+
};
|
49
|
+
addPackageJsonStrapiMetadata(anonymousGroupProperties, strapi);
|
50
|
+
return async (event, payload = {}, opts = {})=>{
|
51
|
+
const userId = adminUserHash.generateAdminUserHash(strapi);
|
52
|
+
const reqParams = {
|
53
|
+
method: 'POST',
|
54
|
+
body: JSON.stringify({
|
55
|
+
event,
|
56
|
+
userId,
|
57
|
+
deviceId,
|
58
|
+
eventProperties: payload.eventProperties,
|
59
|
+
userProperties: userId ? {
|
60
|
+
...anonymousUserProperties,
|
61
|
+
...payload.userProperties
|
62
|
+
} : {},
|
63
|
+
groupProperties: {
|
64
|
+
...anonymousGroupProperties,
|
65
|
+
projectType: strapi.EE ? 'Enterprise' : 'Community',
|
66
|
+
...payload.groupProperties
|
67
|
+
}
|
68
|
+
}),
|
69
|
+
..._.merge({
|
70
|
+
headers: {
|
71
|
+
'X-Strapi-Event': event
|
72
|
+
}
|
73
|
+
}, defaultQueryOpts, opts)
|
74
|
+
};
|
75
|
+
try {
|
76
|
+
const res = await strapi.fetch(`${ANALYTICS_URI}/api/v2/track`, reqParams);
|
77
|
+
return res.ok;
|
78
|
+
} catch (err) {
|
79
|
+
return false;
|
80
|
+
}
|
81
|
+
};
|
82
|
+
});
|
83
|
+
|
84
|
+
module.exports = createSender;
|
85
|
+
//# sourceMappingURL=sender.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sender.js","sources":["../../../src/services/metrics/sender.ts"],"sourcesContent":["import os from 'os';\nimport path from 'path';\nimport _ from 'lodash';\nimport isDocker from 'is-docker';\nimport ciEnv from 'ci-info';\nimport tsUtils from '@strapi/typescript-utils';\nimport { env, machineID } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { generateAdminUserHash } from './admin-user-hash';\n\nexport interface Payload {\n eventProperties?: Record<string, unknown>;\n userProperties?: Record<string, unknown>;\n groupProperties?: Record<string, unknown>;\n}\n\nexport type Sender = (\n event: string,\n payload?: Payload,\n opts?: Record<string, unknown>\n) => Promise<boolean>;\n\nconst defaultQueryOpts = {\n timeout: 1000,\n headers: { 'Content-Type': 'application/json' },\n};\n\nconst ANALYTICS_URI = 'https://analytics.strapi.io';\n\n/**\n * Add properties from the package.json strapi key in the metadata\n */\nconst addPackageJsonStrapiMetadata = (metadata: Record<string, unknown>, strapi: Core.Strapi) => {\n const { packageJsonStrapi = {} } = strapi.config;\n\n _.defaults(metadata, packageJsonStrapi);\n};\n\n/**\n * Create a send function for event with all the necessary metadata\n */\nexport default (strapi: Core.Strapi): Sender => {\n const { uuid } = strapi.config;\n const deviceId = machineID();\n\n const serverRootPath = strapi.dirs.app.root;\n const adminRootPath = path.join(strapi.dirs.app.root, 'src', 'admin');\n\n const anonymousUserProperties = {\n environment: strapi.config.environment,\n os: os.type(),\n osPlatform: os.platform(),\n osArch: os.arch(),\n osRelease: os.release(),\n nodeVersion: process.versions.node,\n };\n\n const anonymousGroupProperties = {\n docker: process.env.DOCKER || isDocker(),\n isCI: ciEnv.isCI,\n version: strapi.config.get('info.strapi'),\n useTypescriptOnServer: tsUtils.isUsingTypeScriptSync(serverRootPath),\n useTypescriptOnAdmin: tsUtils.isUsingTypeScriptSync(adminRootPath),\n projectId: uuid,\n isHostedOnStrapiCloud: env('STRAPI_HOSTING', null) === 'strapi.cloud',\n };\n\n addPackageJsonStrapiMetadata(anonymousGroupProperties, strapi);\n\n return async (event: string, payload: Payload = {}, opts = {}) => {\n const userId = generateAdminUserHash(strapi);\n\n const reqParams = {\n method: 'POST',\n body: JSON.stringify({\n event,\n userId,\n deviceId,\n eventProperties: payload.eventProperties,\n userProperties: userId ? { ...anonymousUserProperties, ...payload.userProperties } : {},\n groupProperties: {\n ...anonymousGroupProperties,\n projectType: strapi.EE ? 'Enterprise' : 'Community',\n ...payload.groupProperties,\n },\n }),\n ..._.merge({ headers: { 'X-Strapi-Event': event } }, defaultQueryOpts, opts),\n };\n\n try {\n const res = await strapi.fetch(`${ANALYTICS_URI}/api/v2/track`, reqParams);\n return res.ok;\n } catch (err) {\n return false;\n }\n };\n};\n"],"names":["defaultQueryOpts","timeout","headers","ANALYTICS_URI","addPackageJsonStrapiMetadata","metadata","strapi","packageJsonStrapi","config","_","defaults","uuid","deviceId","machineID","serverRootPath","dirs","app","root","adminRootPath","path","join","anonymousUserProperties","environment","os","type","osPlatform","platform","osArch","arch","osRelease","release","nodeVersion","process","versions","node","anonymousGroupProperties","docker","env","DOCKER","isDocker","isCI","ciEnv","version","get","useTypescriptOnServer","tsUtils","isUsingTypeScriptSync","useTypescriptOnAdmin","projectId","isHostedOnStrapiCloud","event","payload","opts","userId","generateAdminUserHash","reqParams","method","body","JSON","stringify","eventProperties","userProperties","groupProperties","projectType","EE","merge","res","fetch","ok","err"],"mappings":"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"}
|
@@ -0,0 +1,83 @@
|
|
1
|
+
import os from 'os';
|
2
|
+
import path from 'path';
|
3
|
+
import _ from 'lodash';
|
4
|
+
import isDocker from 'is-docker';
|
5
|
+
import ciEnv from 'ci-info';
|
6
|
+
import tsUtils from '@strapi/typescript-utils';
|
7
|
+
import { machineID, env } from '@strapi/utils';
|
8
|
+
import { generateAdminUserHash } from './admin-user-hash.mjs';
|
9
|
+
|
10
|
+
const defaultQueryOpts = {
|
11
|
+
timeout: 1000,
|
12
|
+
headers: {
|
13
|
+
'Content-Type': 'application/json'
|
14
|
+
}
|
15
|
+
};
|
16
|
+
const ANALYTICS_URI = 'https://analytics.strapi.io';
|
17
|
+
/**
|
18
|
+
* Add properties from the package.json strapi key in the metadata
|
19
|
+
*/ const addPackageJsonStrapiMetadata = (metadata, strapi)=>{
|
20
|
+
const { packageJsonStrapi = {} } = strapi.config;
|
21
|
+
_.defaults(metadata, packageJsonStrapi);
|
22
|
+
};
|
23
|
+
/**
|
24
|
+
* Create a send function for event with all the necessary metadata
|
25
|
+
*/ var createSender = ((strapi)=>{
|
26
|
+
const { uuid } = strapi.config;
|
27
|
+
const deviceId = machineID();
|
28
|
+
const serverRootPath = strapi.dirs.app.root;
|
29
|
+
const adminRootPath = path.join(strapi.dirs.app.root, 'src', 'admin');
|
30
|
+
const anonymousUserProperties = {
|
31
|
+
environment: strapi.config.environment,
|
32
|
+
os: os.type(),
|
33
|
+
osPlatform: os.platform(),
|
34
|
+
osArch: os.arch(),
|
35
|
+
osRelease: os.release(),
|
36
|
+
nodeVersion: process.versions.node
|
37
|
+
};
|
38
|
+
const anonymousGroupProperties = {
|
39
|
+
docker: process.env.DOCKER || isDocker(),
|
40
|
+
isCI: ciEnv.isCI,
|
41
|
+
version: strapi.config.get('info.strapi'),
|
42
|
+
useTypescriptOnServer: tsUtils.isUsingTypeScriptSync(serverRootPath),
|
43
|
+
useTypescriptOnAdmin: tsUtils.isUsingTypeScriptSync(adminRootPath),
|
44
|
+
projectId: uuid,
|
45
|
+
isHostedOnStrapiCloud: env('STRAPI_HOSTING', null) === 'strapi.cloud'
|
46
|
+
};
|
47
|
+
addPackageJsonStrapiMetadata(anonymousGroupProperties, strapi);
|
48
|
+
return async (event, payload = {}, opts = {})=>{
|
49
|
+
const userId = generateAdminUserHash(strapi);
|
50
|
+
const reqParams = {
|
51
|
+
method: 'POST',
|
52
|
+
body: JSON.stringify({
|
53
|
+
event,
|
54
|
+
userId,
|
55
|
+
deviceId,
|
56
|
+
eventProperties: payload.eventProperties,
|
57
|
+
userProperties: userId ? {
|
58
|
+
...anonymousUserProperties,
|
59
|
+
...payload.userProperties
|
60
|
+
} : {},
|
61
|
+
groupProperties: {
|
62
|
+
...anonymousGroupProperties,
|
63
|
+
projectType: strapi.EE ? 'Enterprise' : 'Community',
|
64
|
+
...payload.groupProperties
|
65
|
+
}
|
66
|
+
}),
|
67
|
+
..._.merge({
|
68
|
+
headers: {
|
69
|
+
'X-Strapi-Event': event
|
70
|
+
}
|
71
|
+
}, defaultQueryOpts, opts)
|
72
|
+
};
|
73
|
+
try {
|
74
|
+
const res = await strapi.fetch(`${ANALYTICS_URI}/api/v2/track`, reqParams);
|
75
|
+
return res.ok;
|
76
|
+
} catch (err) {
|
77
|
+
return false;
|
78
|
+
}
|
79
|
+
};
|
80
|
+
});
|
81
|
+
|
82
|
+
export { createSender as default };
|
83
|
+
//# sourceMappingURL=sender.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sender.mjs","sources":["../../../src/services/metrics/sender.ts"],"sourcesContent":["import os from 'os';\nimport path from 'path';\nimport _ from 'lodash';\nimport isDocker from 'is-docker';\nimport ciEnv from 'ci-info';\nimport tsUtils from '@strapi/typescript-utils';\nimport { env, machineID } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { generateAdminUserHash } from './admin-user-hash';\n\nexport interface Payload {\n eventProperties?: Record<string, unknown>;\n userProperties?: Record<string, unknown>;\n groupProperties?: Record<string, unknown>;\n}\n\nexport type Sender = (\n event: string,\n payload?: Payload,\n opts?: Record<string, unknown>\n) => Promise<boolean>;\n\nconst defaultQueryOpts = {\n timeout: 1000,\n headers: { 'Content-Type': 'application/json' },\n};\n\nconst ANALYTICS_URI = 'https://analytics.strapi.io';\n\n/**\n * Add properties from the package.json strapi key in the metadata\n */\nconst addPackageJsonStrapiMetadata = (metadata: Record<string, unknown>, strapi: Core.Strapi) => {\n const { packageJsonStrapi = {} } = strapi.config;\n\n _.defaults(metadata, packageJsonStrapi);\n};\n\n/**\n * Create a send function for event with all the necessary metadata\n */\nexport default (strapi: Core.Strapi): Sender => {\n const { uuid } = strapi.config;\n const deviceId = machineID();\n\n const serverRootPath = strapi.dirs.app.root;\n const adminRootPath = path.join(strapi.dirs.app.root, 'src', 'admin');\n\n const anonymousUserProperties = {\n environment: strapi.config.environment,\n os: os.type(),\n osPlatform: os.platform(),\n osArch: os.arch(),\n osRelease: os.release(),\n nodeVersion: process.versions.node,\n };\n\n const anonymousGroupProperties = {\n docker: process.env.DOCKER || isDocker(),\n isCI: ciEnv.isCI,\n version: strapi.config.get('info.strapi'),\n useTypescriptOnServer: tsUtils.isUsingTypeScriptSync(serverRootPath),\n useTypescriptOnAdmin: tsUtils.isUsingTypeScriptSync(adminRootPath),\n projectId: uuid,\n isHostedOnStrapiCloud: env('STRAPI_HOSTING', null) === 'strapi.cloud',\n };\n\n addPackageJsonStrapiMetadata(anonymousGroupProperties, strapi);\n\n return async (event: string, payload: Payload = {}, opts = {}) => {\n const userId = generateAdminUserHash(strapi);\n\n const reqParams = {\n method: 'POST',\n body: JSON.stringify({\n event,\n userId,\n deviceId,\n eventProperties: payload.eventProperties,\n userProperties: userId ? { ...anonymousUserProperties, ...payload.userProperties } : {},\n groupProperties: {\n ...anonymousGroupProperties,\n projectType: strapi.EE ? 'Enterprise' : 'Community',\n ...payload.groupProperties,\n },\n }),\n ..._.merge({ headers: { 'X-Strapi-Event': event } }, defaultQueryOpts, opts),\n };\n\n try {\n const res = await strapi.fetch(`${ANALYTICS_URI}/api/v2/track`, reqParams);\n return res.ok;\n } catch (err) {\n return false;\n }\n };\n};\n"],"names":["defaultQueryOpts","timeout","headers","ANALYTICS_URI","addPackageJsonStrapiMetadata","metadata","strapi","packageJsonStrapi","config","_","defaults","uuid","deviceId","machineID","serverRootPath","dirs","app","root","adminRootPath","path","join","anonymousUserProperties","environment","os","type","osPlatform","platform","osArch","arch","osRelease","release","nodeVersion","process","versions","node","anonymousGroupProperties","docker","env","DOCKER","isDocker","isCI","ciEnv","version","get","useTypescriptOnServer","tsUtils","isUsingTypeScriptSync","useTypescriptOnAdmin","projectId","isHostedOnStrapiCloud","event","payload","opts","userId","generateAdminUserHash","reqParams","method","body","JSON","stringify","eventProperties","userProperties","groupProperties","projectType","EE","merge","res","fetch","ok","err"],"mappings":"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"}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var strapiUtils = require('@strapi/utils');
|
4
|
+
|
5
|
+
var createQueryParamService = ((strapi)=>{
|
6
|
+
const { transformQueryParams } = strapiUtils.queryParams.createTransformer({
|
7
|
+
getModel: (uid)=>strapi.getModel(uid)
|
8
|
+
});
|
9
|
+
return {
|
10
|
+
transform: transformQueryParams
|
11
|
+
};
|
12
|
+
});
|
13
|
+
|
14
|
+
module.exports = createQueryParamService;
|
15
|
+
//# sourceMappingURL=query-params.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"query-params.js","sources":["../../src/services/query-params.ts"],"sourcesContent":["import { queryParams } from '@strapi/utils';\nimport type { Core, UID } from '@strapi/types';\n\nexport default (strapi: Core.Strapi) => {\n const { transformQueryParams } = queryParams.createTransformer({\n getModel: (uid: string) => strapi.getModel(uid as UID.Schema),\n });\n\n return {\n transform: transformQueryParams,\n };\n};\n"],"names":["strapi","transformQueryParams","queryParams","createTransformer","getModel","uid","transform"],"mappings":";;;;AAGA,8BAAe,CAAA,CAACA,MAAAA,GAAAA;AACd,IAAA,MAAM,EAAEC,oBAAoB,EAAE,GAAGC,uBAAAA,CAAYC,iBAAiB,CAAC;AAC7DC,QAAAA,QAAAA,EAAU,CAACC,GAAAA,GAAgBL,MAAOI,CAAAA,QAAQ,CAACC,GAAAA;AAC7C,KAAA,CAAA;IAEA,OAAO;QACLC,SAAWL,EAAAA;AACb,KAAA;AACF,CAAA;;;;"}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { queryParams } from '@strapi/utils';
|
2
|
+
|
3
|
+
var createQueryParamService = ((strapi)=>{
|
4
|
+
const { transformQueryParams } = queryParams.createTransformer({
|
5
|
+
getModel: (uid)=>strapi.getModel(uid)
|
6
|
+
});
|
7
|
+
return {
|
8
|
+
transform: transformQueryParams
|
9
|
+
};
|
10
|
+
});
|
11
|
+
|
12
|
+
export { createQueryParamService as default };
|
13
|
+
//# sourceMappingURL=query-params.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"query-params.mjs","sources":["../../src/services/query-params.ts"],"sourcesContent":["import { queryParams } from '@strapi/utils';\nimport type { Core, UID } from '@strapi/types';\n\nexport default (strapi: Core.Strapi) => {\n const { transformQueryParams } = queryParams.createTransformer({\n getModel: (uid: string) => strapi.getModel(uid as UID.Schema),\n });\n\n return {\n transform: transformQueryParams,\n };\n};\n"],"names":["strapi","transformQueryParams","queryParams","createTransformer","getModel","uid","transform"],"mappings":";;AAGA,8BAAe,CAAA,CAACA,MAAAA,GAAAA;AACd,IAAA,MAAM,EAAEC,oBAAoB,EAAE,GAAGC,WAAAA,CAAYC,iBAAiB,CAAC;AAC7DC,QAAAA,QAAAA,EAAU,CAACC,GAAAA,GAAgBL,MAAOI,CAAAA,QAAQ,CAACC,GAAAA;AAC7C,KAAA,CAAA;IAEA,OAAO;QACLC,SAAWL,EAAAA;AACb,KAAA;AACF,CAAA;;;;"}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const createReloader = (strapi)=>{
|
4
|
+
const state = {
|
5
|
+
shouldReload: 0,
|
6
|
+
isWatching: true
|
7
|
+
};
|
8
|
+
function reload() {
|
9
|
+
if (state.shouldReload > 0) {
|
10
|
+
// Reset the reloading state
|
11
|
+
state.shouldReload -= 1;
|
12
|
+
reload.isReloading = false;
|
13
|
+
return;
|
14
|
+
}
|
15
|
+
if (strapi.config.get('autoReload')) {
|
16
|
+
process.send?.('reload');
|
17
|
+
}
|
18
|
+
}
|
19
|
+
Object.defineProperty(reload, 'isWatching', {
|
20
|
+
configurable: true,
|
21
|
+
enumerable: true,
|
22
|
+
set (value) {
|
23
|
+
// Special state when the reloader is disabled temporarly (see GraphQL plugin example).
|
24
|
+
if (state.isWatching === false && value === true) {
|
25
|
+
state.shouldReload += 1;
|
26
|
+
}
|
27
|
+
state.isWatching = value;
|
28
|
+
},
|
29
|
+
get () {
|
30
|
+
return state.isWatching;
|
31
|
+
}
|
32
|
+
});
|
33
|
+
reload.isReloading = false;
|
34
|
+
reload.isWatching = true;
|
35
|
+
return reload;
|
36
|
+
};
|
37
|
+
|
38
|
+
exports.createReloader = createReloader;
|
39
|
+
//# sourceMappingURL=reloader.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"reloader.js","sources":["../../src/services/reloader.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nexport const createReloader = (strapi: Core.Strapi) => {\n const state = {\n shouldReload: 0,\n isWatching: true,\n };\n\n function reload() {\n if (state.shouldReload > 0) {\n // Reset the reloading state\n state.shouldReload -= 1;\n reload.isReloading = false;\n return;\n }\n\n if (strapi.config.get('autoReload')) {\n process.send?.('reload');\n }\n }\n\n Object.defineProperty(reload, 'isWatching', {\n configurable: true,\n enumerable: true,\n set(value) {\n // Special state when the reloader is disabled temporarly (see GraphQL plugin example).\n if (state.isWatching === false && value === true) {\n state.shouldReload += 1;\n }\n state.isWatching = value;\n },\n get() {\n return state.isWatching;\n },\n });\n\n reload.isReloading = false;\n reload.isWatching = true;\n\n return reload;\n};\n"],"names":["createReloader","strapi","state","shouldReload","isWatching","reload","isReloading","config","get","process","send","Object","defineProperty","configurable","enumerable","set","value"],"mappings":";;AAEO,MAAMA,iBAAiB,CAACC,MAAAA,GAAAA;AAC7B,IAAA,MAAMC,KAAQ,GAAA;QACZC,YAAc,EAAA,CAAA;QACdC,UAAY,EAAA;AACd,KAAA;IAEA,SAASC,MAAAA,GAAAA;QACP,IAAIH,KAAAA,CAAMC,YAAY,GAAG,CAAG,EAAA;;AAE1BD,YAAAA,KAAAA,CAAMC,YAAY,IAAI,CAAA;AACtBE,YAAAA,MAAAA,CAAOC,WAAW,GAAG,KAAA;AACrB,YAAA;AACF;AAEA,QAAA,IAAIL,MAAOM,CAAAA,MAAM,CAACC,GAAG,CAAC,YAAe,CAAA,EAAA;AACnCC,YAAAA,OAAAA,CAAQC,IAAI,GAAG,QAAA,CAAA;AACjB;AACF;IAEAC,MAAOC,CAAAA,cAAc,CAACP,MAAAA,EAAQ,YAAc,EAAA;QAC1CQ,YAAc,EAAA,IAAA;QACdC,UAAY,EAAA,IAAA;AACZC,QAAAA,GAAAA,CAAAA,CAAIC,KAAK,EAAA;;AAEP,YAAA,IAAId,KAAME,CAAAA,UAAU,KAAK,KAAA,IAASY,UAAU,IAAM,EAAA;AAChDd,gBAAAA,KAAAA,CAAMC,YAAY,IAAI,CAAA;AACxB;AACAD,YAAAA,KAAAA,CAAME,UAAU,GAAGY,KAAAA;AACrB,SAAA;AACAR,QAAAA,GAAAA,CAAAA,GAAAA;AACE,YAAA,OAAON,MAAME,UAAU;AACzB;AACF,KAAA,CAAA;AAEAC,IAAAA,MAAAA,CAAOC,WAAW,GAAG,KAAA;AACrBD,IAAAA,MAAAA,CAAOD,UAAU,GAAG,IAAA;IAEpB,OAAOC,MAAAA;AACT;;;;"}
|