@strapi/core 5.56.0 → 5.57.0
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.d.ts +1 -0
- package/dist/Strapi.d.ts.map +1 -1
- package/dist/Strapi.js +6 -3
- package/dist/Strapi.js.map +1 -1
- package/dist/Strapi.mjs +6 -3
- package/dist/Strapi.mjs.map +1 -1
- package/dist/configuration/get-dirs.js +2 -2
- package/dist/configuration/get-dirs.js.map +1 -1
- package/dist/configuration/get-dirs.mjs +2 -2
- package/dist/configuration/get-dirs.mjs.map +1 -1
- package/dist/configuration/index.d.ts +1 -2
- package/dist/configuration/index.d.ts.map +1 -1
- package/dist/configuration/index.js +1 -2
- package/dist/configuration/index.js.map +1 -1
- package/dist/configuration/index.mjs +2 -3
- package/dist/configuration/index.mjs.map +1 -1
- package/dist/core-api/controller/collection-type.js +3 -3
- package/dist/core-api/controller/collection-type.js.map +1 -1
- package/dist/core-api/controller/collection-type.mjs +1 -1
- package/dist/core-api/controller/collection-type.mjs.map +1 -1
- package/dist/core-api/controller/index.js +2 -2
- package/dist/core-api/controller/index.js.map +1 -1
- package/dist/core-api/controller/index.mjs +2 -2
- package/dist/core-api/controller/index.mjs.map +1 -1
- package/dist/core-api/controller/single-type.js +2 -2
- package/dist/core-api/controller/single-type.js.map +1 -1
- package/dist/core-api/controller/single-type.mjs +1 -1
- package/dist/core-api/controller/single-type.mjs.map +1 -1
- package/dist/core-api/controller/transform.d.ts +1 -4
- package/dist/core-api/controller/transform.d.ts.map +1 -1
- package/dist/core-api/controller/transform.js +8 -8
- package/dist/core-api/controller/transform.js.map +1 -1
- package/dist/core-api/controller/transform.mjs +5 -5
- package/dist/core-api/controller/transform.mjs.map +1 -1
- package/dist/core-api/routes/index.js +1 -1
- package/dist/core-api/routes/index.js.map +1 -1
- package/dist/core-api/routes/index.mjs +1 -1
- package/dist/core-api/routes/index.mjs.map +1 -1
- package/dist/core-api/service/pagination.js +9 -9
- package/dist/core-api/service/pagination.js.map +1 -1
- package/dist/core-api/service/pagination.mjs +7 -7
- package/dist/core-api/service/pagination.mjs.map +1 -1
- package/dist/domain/content-type/index.d.ts.map +1 -1
- package/dist/domain/content-type/index.js +1 -2
- package/dist/domain/content-type/index.js.map +1 -1
- package/dist/domain/content-type/index.mjs +1 -2
- package/dist/domain/content-type/index.mjs.map +1 -1
- package/dist/ee/index.js +4 -4
- package/dist/ee/index.js.map +1 -1
- package/dist/ee/index.mjs +3 -3
- package/dist/ee/index.mjs.map +1 -1
- package/dist/factories.d.ts.map +1 -1
- package/dist/factories.js +3 -2
- package/dist/factories.js.map +1 -1
- package/dist/factories.mjs +3 -2
- package/dist/factories.mjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/loaders/apis.d.ts.map +1 -1
- package/dist/loaders/apis.js +1 -2
- package/dist/loaders/apis.js.map +1 -1
- package/dist/loaders/apis.mjs +1 -2
- package/dist/loaders/apis.mjs.map +1 -1
- package/dist/loaders/plugins/get-enabled-plugins.d.ts +1 -1
- package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
- package/dist/loaders/plugins/get-enabled-plugins.js +6 -5
- package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
- package/dist/loaders/plugins/get-enabled-plugins.mjs +6 -5
- package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
- package/dist/loaders/plugins/get-user-plugins-config.js +2 -2
- package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
- package/dist/loaders/plugins/get-user-plugins-config.mjs +2 -2
- package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -1
- package/dist/loaders/plugins/index.js +9 -12
- package/dist/loaders/plugins/index.js.map +1 -1
- package/dist/loaders/plugins/index.mjs +9 -12
- package/dist/loaders/plugins/index.mjs.map +1 -1
- package/dist/middlewares/body.js +2 -2
- package/dist/middlewares/body.js.map +1 -1
- package/dist/middlewares/body.mjs +2 -2
- package/dist/middlewares/body.mjs.map +1 -1
- package/dist/middlewares/public.js +2 -2
- package/dist/middlewares/public.js.map +1 -1
- package/dist/middlewares/public.mjs +2 -2
- package/dist/middlewares/public.mjs.map +1 -1
- package/dist/middlewares/responses.d.ts.map +1 -1
- package/dist/middlewares/responses.js +1 -3
- package/dist/middlewares/responses.js.map +1 -1
- package/dist/middlewares/responses.mjs +1 -3
- package/dist/middlewares/responses.mjs.map +1 -1
- package/dist/middlewares/security.d.ts.map +1 -1
- package/dist/middlewares/security.js +3 -3
- package/dist/middlewares/security.js.map +1 -1
- package/dist/middlewares/security.mjs +3 -3
- package/dist/middlewares/security.mjs.map +1 -1
- package/dist/middlewares/session.js +2 -2
- package/dist/middlewares/session.js.map +1 -1
- package/dist/middlewares/session.mjs +2 -2
- package/dist/middlewares/session.mjs.map +1 -1
- package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -1
- package/dist/migrations/database/5.0.0-discard-drafts.js +1 -2
- package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -1
- package/dist/migrations/database/5.0.0-discard-drafts.mjs +1 -2
- package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -1
- package/dist/migrations/i18n.d.ts.map +1 -1
- package/dist/migrations/i18n.js +6 -4
- package/dist/migrations/i18n.js.map +1 -1
- package/dist/migrations/i18n.mjs +6 -4
- package/dist/migrations/i18n.mjs.map +1 -1
- package/dist/package.json.js +13 -13
- package/dist/package.json.mjs +13 -13
- package/dist/registries/apis.js +2 -2
- package/dist/registries/apis.js.map +1 -1
- package/dist/registries/apis.mjs +2 -2
- package/dist/registries/apis.mjs.map +1 -1
- package/dist/registries/components.js +2 -2
- package/dist/registries/components.js.map +1 -1
- package/dist/registries/components.mjs +2 -2
- package/dist/registries/components.mjs.map +1 -1
- package/dist/registries/content-types.d.ts +1 -1
- package/dist/registries/content-types.js +3 -3
- package/dist/registries/content-types.js.map +1 -1
- package/dist/registries/content-types.mjs +3 -3
- package/dist/registries/content-types.mjs.map +1 -1
- package/dist/registries/controllers.js +3 -3
- package/dist/registries/controllers.js.map +1 -1
- package/dist/registries/controllers.mjs +3 -3
- package/dist/registries/controllers.mjs.map +1 -1
- package/dist/registries/custom-fields.js +4 -4
- package/dist/registries/custom-fields.js.map +1 -1
- package/dist/registries/custom-fields.mjs +4 -4
- package/dist/registries/custom-fields.mjs.map +1 -1
- package/dist/registries/hooks.d.ts +1 -1
- package/dist/registries/hooks.js +2 -2
- package/dist/registries/hooks.js.map +1 -1
- package/dist/registries/hooks.mjs +2 -2
- package/dist/registries/hooks.mjs.map +1 -1
- package/dist/registries/middlewares.d.ts +1 -1
- package/dist/registries/middlewares.js +3 -3
- package/dist/registries/middlewares.js.map +1 -1
- package/dist/registries/middlewares.mjs +3 -3
- package/dist/registries/middlewares.mjs.map +1 -1
- package/dist/registries/modules.d.ts +1 -4
- package/dist/registries/modules.d.ts.map +1 -1
- package/dist/registries/modules.js +3 -3
- package/dist/registries/modules.js.map +1 -1
- package/dist/registries/modules.mjs +3 -3
- package/dist/registries/modules.mjs.map +1 -1
- package/dist/registries/plugins.js +2 -2
- package/dist/registries/plugins.js.map +1 -1
- package/dist/registries/plugins.mjs +2 -2
- package/dist/registries/plugins.mjs.map +1 -1
- package/dist/registries/policies.d.ts +1 -1
- package/dist/registries/policies.js +4 -4
- package/dist/registries/policies.js.map +1 -1
- package/dist/registries/policies.mjs +3 -3
- package/dist/registries/policies.mjs.map +1 -1
- package/dist/registries/services.js +3 -3
- package/dist/registries/services.js.map +1 -1
- package/dist/registries/services.mjs +3 -3
- package/dist/registries/services.mjs.map +1 -1
- package/dist/services/auth/index.js +3 -3
- package/dist/services/auth/index.js.map +1 -1
- package/dist/services/auth/index.mjs +3 -3
- package/dist/services/auth/index.mjs.map +1 -1
- package/dist/services/core-store.js +3 -3
- package/dist/services/core-store.js.map +1 -1
- package/dist/services/core-store.mjs +1 -1
- package/dist/services/core-store.mjs.map +1 -1
- package/dist/services/cron.d.ts.map +1 -1
- package/dist/services/cron.js +2 -4
- package/dist/services/cron.js.map +1 -1
- package/dist/services/cron.mjs +2 -4
- package/dist/services/cron.mjs.map +1 -1
- package/dist/services/document-service/attributes/index.js +2 -2
- package/dist/services/document-service/attributes/index.js.map +1 -1
- package/dist/services/document-service/attributes/index.mjs +1 -1
- package/dist/services/document-service/attributes/index.mjs.map +1 -1
- package/dist/services/document-service/attributes/transforms.js +3 -3
- package/dist/services/document-service/attributes/transforms.js.map +1 -1
- package/dist/services/document-service/attributes/transforms.mjs +2 -2
- package/dist/services/document-service/attributes/transforms.mjs.map +1 -1
- package/dist/services/document-service/components.d.ts.map +1 -1
- package/dist/services/document-service/components.js +13 -14
- package/dist/services/document-service/components.js.map +1 -1
- package/dist/services/document-service/components.mjs +12 -13
- package/dist/services/document-service/components.mjs.map +1 -1
- package/dist/services/document-service/draft-and-publish.js +65 -38
- package/dist/services/document-service/draft-and-publish.js.map +1 -1
- package/dist/services/document-service/draft-and-publish.mjs +59 -32
- package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
- package/dist/services/document-service/entries.d.ts +2 -2
- package/dist/services/document-service/entries.d.ts.map +1 -1
- package/dist/services/document-service/entries.js +16 -8
- package/dist/services/document-service/entries.js.map +1 -1
- package/dist/services/document-service/entries.mjs +17 -9
- package/dist/services/document-service/entries.mjs.map +1 -1
- package/dist/services/document-service/first-published-at.js +7 -5
- package/dist/services/document-service/first-published-at.js.map +1 -1
- package/dist/services/document-service/first-published-at.mjs +7 -5
- package/dist/services/document-service/first-published-at.mjs.map +1 -1
- package/dist/services/document-service/internationalization.d.ts.map +1 -1
- package/dist/services/document-service/internationalization.js +37 -28
- package/dist/services/document-service/internationalization.js.map +1 -1
- package/dist/services/document-service/internationalization.mjs +33 -24
- package/dist/services/document-service/internationalization.mjs.map +1 -1
- package/dist/services/document-service/params.d.ts +1 -0
- package/dist/services/document-service/params.d.ts.map +1 -1
- package/dist/services/document-service/params.js +6 -4
- package/dist/services/document-service/params.js.map +1 -1
- package/dist/services/document-service/params.mjs +6 -5
- package/dist/services/document-service/params.mjs.map +1 -1
- package/dist/services/document-service/repository.d.ts.map +1 -1
- package/dist/services/document-service/repository.js +84 -61
- package/dist/services/document-service/repository.js.map +1 -1
- package/dist/services/document-service/repository.mjs +47 -24
- package/dist/services/document-service/repository.mjs.map +1 -1
- package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
- package/dist/services/document-service/transform/id-map.js +2 -1
- package/dist/services/document-service/transform/id-map.js.map +1 -1
- package/dist/services/document-service/transform/id-map.mjs +2 -1
- package/dist/services/document-service/transform/id-map.mjs.map +1 -1
- package/dist/services/document-service/transform/id-transform.js +2 -2
- package/dist/services/document-service/transform/id-transform.js.map +1 -1
- package/dist/services/document-service/transform/id-transform.mjs +1 -1
- package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
- package/dist/services/document-service/transform/query.d.ts +3 -1
- package/dist/services/document-service/transform/query.d.ts.map +1 -1
- package/dist/services/document-service/transform/query.js +12 -6
- package/dist/services/document-service/transform/query.js.map +1 -1
- package/dist/services/document-service/transform/query.mjs +11 -5
- package/dist/services/document-service/transform/query.mjs.map +1 -1
- package/dist/services/document-service/transform/relations/extract/data-ids.js +2 -2
- package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
- package/dist/services/document-service/transform/relations/extract/data-ids.mjs +1 -1
- package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
- package/dist/services/document-service/transform/relations/transform/data-ids.js +2 -2
- package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
- package/dist/services/document-service/transform/relations/transform/data-ids.mjs +1 -1
- package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
- package/dist/services/document-service/transform/relations/transform/default-locale.js +1 -1
- package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -1
- package/dist/services/document-service/transform/relations/transform/default-locale.mjs +1 -1
- package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -1
- package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
- package/dist/services/document-service/transform/relations/utils/dp.js +1 -2
- package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
- package/dist/services/document-service/transform/relations/utils/dp.mjs +1 -2
- package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -1
- package/dist/services/document-service/transform/relations/utils/i18n.d.ts +2 -2
- package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
- package/dist/services/document-service/transform/relations/utils/i18n.js +2 -2
- package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
- package/dist/services/document-service/transform/relations/utils/i18n.mjs +2 -2
- package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
- package/dist/services/document-service/transform/relations/utils/map-relation.js +6 -6
- package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -1
- package/dist/services/document-service/transform/relations/utils/map-relation.mjs +3 -3
- package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -1
- package/dist/services/document-service/transform/relations/utils/xto-one.js +3 -3
- package/dist/services/document-service/transform/relations/utils/xto-one.js.map +1 -1
- package/dist/services/document-service/transform/relations/utils/xto-one.mjs +2 -2
- package/dist/services/document-service/transform/relations/utils/xto-one.mjs.map +1 -1
- package/dist/services/document-service/utils/bidirectional-relations.js +3 -3
- package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -1
- package/dist/services/document-service/utils/bidirectional-relations.mjs +3 -3
- package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -1
- package/dist/services/document-service/utils/clone-relations.js +3 -3
- package/dist/services/document-service/utils/clone-relations.js.map +1 -1
- package/dist/services/document-service/utils/clone-relations.mjs +3 -3
- package/dist/services/document-service/utils/clone-relations.mjs.map +1 -1
- package/dist/services/document-service/utils/self-referential-relations.js +4 -4
- package/dist/services/document-service/utils/self-referential-relations.js.map +1 -1
- package/dist/services/document-service/utils/self-referential-relations.mjs +4 -4
- package/dist/services/document-service/utils/self-referential-relations.mjs.map +1 -1
- package/dist/services/document-service/utils/unidirectional-relations.js +3 -3
- package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -1
- package/dist/services/document-service/utils/unidirectional-relations.mjs +3 -3
- package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -1
- package/dist/services/entity-validator/index.d.ts.map +1 -1
- package/dist/services/entity-validator/index.js +9 -10
- package/dist/services/entity-validator/index.js.map +1 -1
- package/dist/services/entity-validator/index.mjs +4 -5
- package/dist/services/entity-validator/index.mjs.map +1 -1
- package/dist/services/localization.d.ts +4 -0
- package/dist/services/localization.d.ts.map +1 -0
- package/dist/services/localization.js +51 -0
- package/dist/services/localization.js.map +1 -0
- package/dist/services/localization.mjs +49 -0
- package/dist/services/localization.mjs.map +1 -0
- package/dist/services/server/compose-endpoint.js +7 -7
- package/dist/services/server/compose-endpoint.js.map +1 -1
- package/dist/services/server/compose-endpoint.mjs +3 -3
- package/dist/services/server/compose-endpoint.mjs.map +1 -1
- package/dist/services/server/koa-methods.js +2 -2
- package/dist/services/server/koa-methods.js.map +1 -1
- package/dist/services/server/koa-methods.mjs +1 -1
- package/dist/services/server/koa-methods.mjs.map +1 -1
- package/dist/services/server/koa.d.ts.map +1 -1
- package/dist/services/server/koa.js +1 -2
- package/dist/services/server/koa.js.map +1 -1
- package/dist/services/server/koa.mjs +1 -2
- package/dist/services/server/koa.mjs.map +1 -1
- package/dist/services/server/middleware.d.ts.map +1 -1
- package/dist/services/server/middleware.js +1 -2
- package/dist/services/server/middleware.js.map +1 -1
- package/dist/services/server/middleware.mjs +1 -2
- package/dist/services/server/middleware.mjs.map +1 -1
- package/dist/services/server/routing.js +2 -2
- package/dist/services/server/routing.js.map +1 -1
- package/dist/services/server/routing.mjs +2 -2
- package/dist/services/server/routing.mjs.map +1 -1
- package/dist/services/utils/conditional-fields.d.ts +1 -1
- package/dist/services/utils/conditional-fields.d.ts.map +1 -1
- package/dist/services/utils/conditional-fields.js +2 -8
- package/dist/services/utils/conditional-fields.js.map +1 -1
- package/dist/services/utils/conditional-fields.mjs +2 -8
- package/dist/services/utils/conditional-fields.mjs.map +1 -1
- package/dist/services/utils/dynamic-zones.d.ts.map +1 -1
- package/dist/services/utils/dynamic-zones.js +2 -8
- package/dist/services/utils/dynamic-zones.js.map +1 -1
- package/dist/services/utils/dynamic-zones.mjs +2 -8
- package/dist/services/utils/dynamic-zones.mjs.map +1 -1
- package/dist/utils/cron.js +2 -2
- package/dist/utils/cron.js.map +1 -1
- package/dist/utils/cron.mjs +1 -1
- package/dist/utils/cron.mjs.map +1 -1
- package/dist/utils/filepath-to-prop-path.d.ts.map +1 -1
- package/dist/utils/filepath-to-prop-path.js +5 -12
- package/dist/utils/filepath-to-prop-path.js.map +1 -1
- package/dist/utils/filepath-to-prop-path.mjs +5 -11
- package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
- package/dist/utils/is-initialized.js +3 -3
- package/dist/utils/is-initialized.js.map +1 -1
- package/dist/utils/is-initialized.mjs +2 -2
- package/dist/utils/is-initialized.mjs.map +1 -1
- package/dist/utils/startup-logger.d.ts.map +1 -1
- package/dist/utils/startup-logger.js +2 -4
- package/dist/utils/startup-logger.js.map +1 -1
- package/dist/utils/startup-logger.mjs +2 -3
- package/dist/utils/startup-logger.mjs.map +1 -1
- package/dist/utils/transform-content-types-to-models.js +4 -4
- package/dist/utils/transform-content-types-to-models.js.map +1 -1
- package/dist/utils/transform-content-types-to-models.mjs +3 -3
- package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
- package/package.json +13 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.mjs","sources":["../../../src/services/server/middleware.ts"],"sourcesContent":["import path from 'path';\nimport {
|
|
1
|
+
{"version":3,"file":"middleware.mjs","sources":["../../../src/services/server/middleware.ts"],"sourcesContent":["import path from 'path';\nimport { importDefault } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nconst instantiateMiddleware = (\n middlewareFactory: Core.MiddlewareFactory,\n name: string,\n config: unknown,\n strapi: Core.Strapi\n) => {\n try {\n return middlewareFactory(config, { strapi });\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`Middleware \"${name}\": ${e.message}`);\n }\n }\n};\n\nconst resolveRouteMiddlewares = (route: Core.Route, strapi: Core.Strapi) => {\n const middlewaresConfig = route?.config?.middlewares ?? [];\n\n if (!Array.isArray(middlewaresConfig)) {\n throw new Error('Route middlewares config must be an array');\n }\n\n const middlewares = resolveMiddlewares(middlewaresConfig, strapi);\n\n return middlewares.map(({ handler }) => handler);\n};\n\nconst dummyMiddleware: Core.MiddlewareHandler = (_, next) => next();\n\n/**\n * Initialize every configured middlewares\n */\nconst resolveMiddlewares = (\n config: Array<Core.MiddlewareName | Core.MiddlewareConfig | Core.MiddlewareHandler>,\n strapi: Core.Strapi\n) => {\n const middlewares: {\n name: string | null;\n handler: Core.MiddlewareHandler;\n }[] = [];\n\n for (const item of config) {\n if (typeof item === 'function') {\n middlewares.push({\n name: null,\n handler: item,\n });\n\n continue;\n }\n\n if (typeof item === 'string') {\n const middlewareFactory = strapi.middleware(item);\n\n if (!middlewareFactory) {\n throw new Error(`Middleware ${item} not found.`);\n }\n\n middlewares.push({\n name: item,\n handler: instantiateMiddleware(middlewareFactory, item, {}, strapi) ?? dummyMiddleware,\n });\n\n continue;\n }\n\n if (typeof item === 'object' && item !== null) {\n const { name, resolve, config = {} } = item;\n\n if (name) {\n const middlewareFactory = strapi.middleware(name);\n middlewares.push({\n name,\n handler:\n instantiateMiddleware(middlewareFactory, name, config, strapi) ?? dummyMiddleware,\n });\n\n continue;\n }\n\n if (resolve) {\n const resolvedMiddlewareFactory = resolveCustomMiddleware(resolve, strapi);\n middlewares.push({\n name: resolve,\n handler:\n instantiateMiddleware(resolvedMiddlewareFactory, resolve, config, strapi) ??\n dummyMiddleware,\n });\n\n continue;\n }\n\n throw new Error('Invalid middleware configuration. Missing name or resolve properties.');\n }\n\n throw new Error(\n 'Middleware config must either be a string or an object {name?: string, resolve?: string, config: any}.'\n );\n }\n\n return middlewares;\n};\n\n/**\n * Resolve middleware from package name or path\n */\nconst resolveCustomMiddleware = (resolve: string, strapi: Core.Strapi) => {\n let modulePath;\n\n try {\n modulePath = require.resolve(resolve);\n } catch (error) {\n if (error instanceof Error && 'code' in error && error.code === 'MODULE_NOT_FOUND') {\n modulePath = path.resolve(strapi.dirs.dist.root, resolve);\n } else {\n throw error;\n }\n }\n\n try {\n return importDefault(modulePath);\n } catch {\n throw new Error(`Could not load middleware \"${modulePath}\".`);\n }\n};\n\nexport { resolveRouteMiddlewares, resolveMiddlewares };\n"],"names":["instantiateMiddleware","middlewareFactory","name","config","strapi","e","Error","message","resolveRouteMiddlewares","route","middlewaresConfig","middlewares","Array","isArray","resolveMiddlewares","map","handler","dummyMiddleware","_","next","item","push","middleware","resolve","resolvedMiddlewareFactory","resolveCustomMiddleware","modulePath","require","error","code","path","dirs","dist","root","importDefault"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var Router = require('@koa/router');
|
|
4
|
-
var
|
|
4
|
+
var _ = require('lodash');
|
|
5
5
|
var strapiUtils = require('@strapi/utils');
|
|
6
6
|
var composeEndpoint = require('./compose-endpoint.js');
|
|
7
7
|
|
|
@@ -98,7 +98,7 @@ const createRouteManager = (strapi, opts = {})=>{
|
|
|
98
98
|
prefix: routes.prefix
|
|
99
99
|
});
|
|
100
100
|
routes.routes.forEach((route)=>{
|
|
101
|
-
const hasPrefix =
|
|
101
|
+
const hasPrefix = _.has(route.config, 'prefix');
|
|
102
102
|
createRoute(route, hasPrefix ? router : subRouter);
|
|
103
103
|
});
|
|
104
104
|
return router.use(subRouter.routes(), subRouter.allowedMethods());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing.js","sources":["../../../src/services/server/routing.ts"],"sourcesContent":["import Router from '@koa/router';\nimport { has } from 'lodash
|
|
1
|
+
{"version":3,"file":"routing.js","sources":["../../../src/services/server/routing.ts"],"sourcesContent":["import Router from '@koa/router';\nimport { has } from 'lodash';\nimport { yup } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nimport createEndpointComposer from './compose-endpoint';\n\nconst policyOrMiddlewareSchema = yup.lazy((value) => {\n if (typeof value === 'string') {\n return yup.string().required();\n }\n\n if (typeof value === 'function') {\n return yup.mixed().isFunction();\n }\n\n return yup.object({\n name: yup.string().required(),\n options: yup.object().notRequired(), // any options\n });\n});\n\nconst routeSchema = yup.object({\n method: yup.string().oneOf(['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'ALL']).required(),\n path: yup.string().required(),\n handler: yup.lazy((value) => {\n if (typeof value === 'string') {\n return yup.string().required();\n }\n\n if (Array.isArray(value)) {\n return yup.array().required();\n }\n\n return yup.mixed().isFunction().required();\n }),\n request: yup\n .object({\n params: yup.object().notRequired(),\n query: yup.object().notRequired(),\n body: yup.object().notRequired(),\n })\n .notRequired(),\n response: yup.object().notRequired(),\n config: yup\n .object({\n auth: yup.lazy((value) => {\n if (value === false) {\n return yup.boolean().required();\n }\n\n return yup.object({\n scope: yup.array().of(yup.string()).required(),\n });\n }),\n policies: yup\n .array()\n // FIXME: fixed in yup v1\n .of(policyOrMiddlewareSchema as any)\n .notRequired(),\n middlewares: yup\n .array()\n // FIXME: fixed in yup v1\n .of(policyOrMiddlewareSchema as any)\n .notRequired(),\n })\n .notRequired(),\n});\n\nconst validateRouteConfig = (routeConfig: Core.RouteInput) => {\n try {\n return routeSchema.validateSync(routeConfig, {\n strict: true,\n abortEarly: false,\n stripUnknown: true,\n });\n } catch (error) {\n if (error instanceof yup.ValidationError) {\n throw new Error(`Invalid route config ${error.message}`);\n }\n }\n};\n\nconst createRouteManager = (strapi: Core.Strapi, opts: { type?: string } = {}) => {\n const { type } = opts;\n\n const composeEndpoint = createEndpointComposer(strapi);\n\n const createRoute = (route: Core.RouteInput, router: Router) => {\n validateRouteConfig(route);\n\n // NOTE: the router type is used to tag controller actions and for authentication / authorization so we need to pass this info down to the route level\n const routeWithInfo = Object.assign(route, {\n info: {\n ...route.info,\n type: type ?? 'api',\n },\n });\n\n composeEndpoint(routeWithInfo, { router });\n };\n\n const addRoutes = (routes: Core.Router | Core.RouteInput[], router: Router) => {\n if (Array.isArray(routes)) {\n routes.forEach((route) => createRoute(route, router));\n } else if (routes.routes) {\n const subRouter = new Router({ prefix: routes.prefix });\n\n routes.routes.forEach((route) => {\n const hasPrefix = has(route.config, 'prefix');\n createRoute(route, hasPrefix ? router : subRouter);\n });\n\n return router.use(subRouter.routes(), subRouter.allowedMethods());\n }\n };\n\n return {\n addRoutes,\n };\n};\n\nexport { validateRouteConfig, createRouteManager };\n"],"names":["policyOrMiddlewareSchema","yup","lazy","value","string","required","mixed","isFunction","object","name","options","notRequired","routeSchema","method","oneOf","path","handler","Array","isArray","array","request","params","query","body","response","config","auth","boolean","scope","of","policies","middlewares","validateRouteConfig","routeConfig","validateSync","strict","abortEarly","stripUnknown","error","ValidationError","Error","message","createRouteManager","strapi","opts","type","composeEndpoint","createEndpointComposer","createRoute","route","router","routeWithInfo","Object","assign","info","addRoutes","routes","forEach","subRouter","Router","prefix","hasPrefix","has","use","allowedMethods"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Router from '@koa/router';
|
|
2
|
-
import { has } from 'lodash
|
|
2
|
+
import { has } from 'lodash';
|
|
3
3
|
import { yup } from '@strapi/utils';
|
|
4
4
|
import createEndpointComposer from './compose-endpoint.mjs';
|
|
5
5
|
|
|
@@ -92,7 +92,7 @@ const createRouteManager = (strapi, opts = {})=>{
|
|
|
92
92
|
prefix: routes.prefix
|
|
93
93
|
});
|
|
94
94
|
routes.routes.forEach((route)=>{
|
|
95
|
-
const hasPrefix = has('prefix'
|
|
95
|
+
const hasPrefix = has(route.config, 'prefix');
|
|
96
96
|
createRoute(route, hasPrefix ? router : subRouter);
|
|
97
97
|
});
|
|
98
98
|
return router.use(subRouter.routes(), subRouter.allowedMethods());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing.mjs","sources":["../../../src/services/server/routing.ts"],"sourcesContent":["import Router from '@koa/router';\nimport { has } from 'lodash
|
|
1
|
+
{"version":3,"file":"routing.mjs","sources":["../../../src/services/server/routing.ts"],"sourcesContent":["import Router from '@koa/router';\nimport { has } from 'lodash';\nimport { yup } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nimport createEndpointComposer from './compose-endpoint';\n\nconst policyOrMiddlewareSchema = yup.lazy((value) => {\n if (typeof value === 'string') {\n return yup.string().required();\n }\n\n if (typeof value === 'function') {\n return yup.mixed().isFunction();\n }\n\n return yup.object({\n name: yup.string().required(),\n options: yup.object().notRequired(), // any options\n });\n});\n\nconst routeSchema = yup.object({\n method: yup.string().oneOf(['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'ALL']).required(),\n path: yup.string().required(),\n handler: yup.lazy((value) => {\n if (typeof value === 'string') {\n return yup.string().required();\n }\n\n if (Array.isArray(value)) {\n return yup.array().required();\n }\n\n return yup.mixed().isFunction().required();\n }),\n request: yup\n .object({\n params: yup.object().notRequired(),\n query: yup.object().notRequired(),\n body: yup.object().notRequired(),\n })\n .notRequired(),\n response: yup.object().notRequired(),\n config: yup\n .object({\n auth: yup.lazy((value) => {\n if (value === false) {\n return yup.boolean().required();\n }\n\n return yup.object({\n scope: yup.array().of(yup.string()).required(),\n });\n }),\n policies: yup\n .array()\n // FIXME: fixed in yup v1\n .of(policyOrMiddlewareSchema as any)\n .notRequired(),\n middlewares: yup\n .array()\n // FIXME: fixed in yup v1\n .of(policyOrMiddlewareSchema as any)\n .notRequired(),\n })\n .notRequired(),\n});\n\nconst validateRouteConfig = (routeConfig: Core.RouteInput) => {\n try {\n return routeSchema.validateSync(routeConfig, {\n strict: true,\n abortEarly: false,\n stripUnknown: true,\n });\n } catch (error) {\n if (error instanceof yup.ValidationError) {\n throw new Error(`Invalid route config ${error.message}`);\n }\n }\n};\n\nconst createRouteManager = (strapi: Core.Strapi, opts: { type?: string } = {}) => {\n const { type } = opts;\n\n const composeEndpoint = createEndpointComposer(strapi);\n\n const createRoute = (route: Core.RouteInput, router: Router) => {\n validateRouteConfig(route);\n\n // NOTE: the router type is used to tag controller actions and for authentication / authorization so we need to pass this info down to the route level\n const routeWithInfo = Object.assign(route, {\n info: {\n ...route.info,\n type: type ?? 'api',\n },\n });\n\n composeEndpoint(routeWithInfo, { router });\n };\n\n const addRoutes = (routes: Core.Router | Core.RouteInput[], router: Router) => {\n if (Array.isArray(routes)) {\n routes.forEach((route) => createRoute(route, router));\n } else if (routes.routes) {\n const subRouter = new Router({ prefix: routes.prefix });\n\n routes.routes.forEach((route) => {\n const hasPrefix = has(route.config, 'prefix');\n createRoute(route, hasPrefix ? router : subRouter);\n });\n\n return router.use(subRouter.routes(), subRouter.allowedMethods());\n }\n };\n\n return {\n addRoutes,\n };\n};\n\nexport { validateRouteConfig, createRouteManager };\n"],"names":["policyOrMiddlewareSchema","yup","lazy","value","string","required","mixed","isFunction","object","name","options","notRequired","routeSchema","method","oneOf","path","handler","Array","isArray","array","request","params","query","body","response","config","auth","boolean","scope","of","policies","middlewares","validateRouteConfig","routeConfig","validateSync","strict","abortEarly","stripUnknown","error","ValidationError","Error","message","createRouteManager","strapi","opts","type","composeEndpoint","createEndpointComposer","createRoute","route","router","routeWithInfo","Object","assign","info","addRoutes","routes","forEach","subRouter","Router","prefix","hasPrefix","has","use","allowedMethods"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditional-fields.d.ts","sourceRoot":"","sources":["../../../src/services/utils/conditional-fields.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"conditional-fields.d.ts","sourceRoot":"","sources":["../../../src/services/utils/conditional-fields.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,4BAA4B,cAmBjC,CAAC;AAEF,eAAe,4BAA4B,CAAC"}
|
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var fp = require('lodash/fp');
|
|
4
|
-
|
|
5
3
|
const getNumberOfConditionalFields = ()=>{
|
|
6
4
|
const contentTypes = strapi.contentTypes;
|
|
7
5
|
const components = strapi.components;
|
|
8
6
|
const countConditionalFieldsInSchema = (schema)=>{
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
return 1;
|
|
12
|
-
}
|
|
13
|
-
return 0;
|
|
14
|
-
}))(schema);
|
|
7
|
+
const attributes = Object.values(schema ?? {}).flatMap((model)=>Object.values(model.attributes ?? {}));
|
|
8
|
+
return attributes.filter((attribute)=>attribute.conditions && typeof attribute.conditions === 'object').length;
|
|
15
9
|
};
|
|
16
10
|
const contentTypeCount = countConditionalFieldsInSchema(contentTypes);
|
|
17
11
|
const componentCount = countConditionalFieldsInSchema(components);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditional-fields.js","sources":["../../../src/services/utils/conditional-fields.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"conditional-fields.js","sources":["../../../src/services/utils/conditional-fields.ts"],"sourcesContent":["import type { Schema, UID } from '@strapi/types';\n\nconst getNumberOfConditionalFields = () => {\n const contentTypes: Record<UID.ContentType, Schema.ContentType> = strapi.contentTypes;\n const components: Record<UID.Component, Schema.Component> = strapi.components;\n\n const countConditionalFieldsInSchema = (\n schema: Record<string, Schema.ContentType | Schema.Component>\n ) => {\n const attributes = Object.values(schema ?? {}).flatMap((model) =>\n Object.values(model.attributes ?? {})\n );\n return attributes.filter(\n (attribute) => attribute.conditions && typeof attribute.conditions === 'object'\n ).length;\n };\n\n const contentTypeCount = countConditionalFieldsInSchema(contentTypes);\n const componentCount = countConditionalFieldsInSchema(components);\n\n return contentTypeCount + componentCount;\n};\n\nexport default getNumberOfConditionalFields;\n"],"names":["getNumberOfConditionalFields","contentTypes","strapi","components","countConditionalFieldsInSchema","schema","attributes","Object","values","flatMap","model","filter","attribute","conditions","length","contentTypeCount","componentCount"],"mappings":";;AAEA,MAAMA,4BAAAA,GAA+B,IAAA;IACnC,MAAMC,YAAAA,GAA4DC,OAAOD,YAAY;IACrF,MAAME,UAAAA,GAAsDD,OAAOC,UAAU;AAE7E,IAAA,MAAMC,iCAAiC,CACrCC,MAAAA,GAAAA;AAEA,QAAA,MAAMC,aAAaC,MAAAA,CAAOC,MAAM,CAACH,MAAAA,IAAU,EAAC,CAAA,CAAGI,OAAO,CAAC,CAACC,QACtDH,MAAAA,CAAOC,MAAM,CAACE,KAAAA,CAAMJ,UAAU,IAAI,EAAC,CAAA,CAAA;AAErC,QAAA,OAAOA,UAAAA,CAAWK,MAAM,CACtB,CAACC,SAAAA,GAAcA,SAAAA,CAAUC,UAAU,IAAI,OAAOD,SAAAA,CAAUC,UAAU,KAAK,UACvEC,MAAM;AACV,IAAA,CAAA;AAEA,IAAA,MAAMC,mBAAmBX,8BAAAA,CAA+BH,YAAAA,CAAAA;AACxD,IAAA,MAAMe,iBAAiBZ,8BAAAA,CAA+BD,UAAAA,CAAAA;AAEtD,IAAA,OAAOY,gBAAAA,GAAmBC,cAAAA;AAC5B;;;;"}
|
|
@@ -1,15 +1,9 @@
|
|
|
1
|
-
import { pipe, map, flatMap, values, sumBy } from 'lodash/fp';
|
|
2
|
-
|
|
3
1
|
const getNumberOfConditionalFields = ()=>{
|
|
4
2
|
const contentTypes = strapi.contentTypes;
|
|
5
3
|
const components = strapi.components;
|
|
6
4
|
const countConditionalFieldsInSchema = (schema)=>{
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
return 1;
|
|
10
|
-
}
|
|
11
|
-
return 0;
|
|
12
|
-
}))(schema);
|
|
5
|
+
const attributes = Object.values(schema ?? {}).flatMap((model)=>Object.values(model.attributes ?? {}));
|
|
6
|
+
return attributes.filter((attribute)=>attribute.conditions && typeof attribute.conditions === 'object').length;
|
|
13
7
|
};
|
|
14
8
|
const contentTypeCount = countConditionalFieldsInSchema(contentTypes);
|
|
15
9
|
const componentCount = countConditionalFieldsInSchema(components);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditional-fields.mjs","sources":["../../../src/services/utils/conditional-fields.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"conditional-fields.mjs","sources":["../../../src/services/utils/conditional-fields.ts"],"sourcesContent":["import type { Schema, UID } from '@strapi/types';\n\nconst getNumberOfConditionalFields = () => {\n const contentTypes: Record<UID.ContentType, Schema.ContentType> = strapi.contentTypes;\n const components: Record<UID.Component, Schema.Component> = strapi.components;\n\n const countConditionalFieldsInSchema = (\n schema: Record<string, Schema.ContentType | Schema.Component>\n ) => {\n const attributes = Object.values(schema ?? {}).flatMap((model) =>\n Object.values(model.attributes ?? {})\n );\n return attributes.filter(\n (attribute) => attribute.conditions && typeof attribute.conditions === 'object'\n ).length;\n };\n\n const contentTypeCount = countConditionalFieldsInSchema(contentTypes);\n const componentCount = countConditionalFieldsInSchema(components);\n\n return contentTypeCount + componentCount;\n};\n\nexport default getNumberOfConditionalFields;\n"],"names":["getNumberOfConditionalFields","contentTypes","strapi","components","countConditionalFieldsInSchema","schema","attributes","Object","values","flatMap","model","filter","attribute","conditions","length","contentTypeCount","componentCount"],"mappings":"AAEA,MAAMA,4BAAAA,GAA+B,IAAA;IACnC,MAAMC,YAAAA,GAA4DC,OAAOD,YAAY;IACrF,MAAME,UAAAA,GAAsDD,OAAOC,UAAU;AAE7E,IAAA,MAAMC,iCAAiC,CACrCC,MAAAA,GAAAA;AAEA,QAAA,MAAMC,aAAaC,MAAAA,CAAOC,MAAM,CAACH,MAAAA,IAAU,EAAC,CAAA,CAAGI,OAAO,CAAC,CAACC,QACtDH,MAAAA,CAAOC,MAAM,CAACE,KAAAA,CAAMJ,UAAU,IAAI,EAAC,CAAA,CAAA;AAErC,QAAA,OAAOA,UAAAA,CAAWK,MAAM,CACtB,CAACC,SAAAA,GAAcA,SAAAA,CAAUC,UAAU,IAAI,OAAOD,SAAAA,CAAUC,UAAU,KAAK,UACvEC,MAAM;AACV,IAAA,CAAA;AAEA,IAAA,MAAMC,mBAAmBX,8BAAAA,CAA+BH,YAAAA,CAAAA;AACxD,IAAA,MAAMe,iBAAiBZ,8BAAAA,CAA+BD,UAAAA,CAAAA;AAEtD,IAAA,OAAOY,gBAAAA,GAAmBC,cAAAA;AAC5B;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-zones.d.ts","sourceRoot":"","sources":["../../../src/services/utils/dynamic-zones.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dynamic-zones.d.ts","sourceRoot":"","sources":["../../../src/services/utils/dynamic-zones.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,uBAAuB,cAO5B,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
|
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var fp = require('lodash/fp');
|
|
4
|
-
|
|
5
3
|
const getNumberOfDynamicZones = ()=>{
|
|
6
4
|
const contentTypes = strapi.contentTypes;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
return 1;
|
|
10
|
-
}
|
|
11
|
-
return 0;
|
|
12
|
-
}))(contentTypes);
|
|
5
|
+
const attributes = Object.values(contentTypes ?? {}).flatMap((contentType)=>Object.values(contentType.attributes ?? {}));
|
|
6
|
+
return attributes.filter((attribute)=>attribute.type === 'dynamiczone').length;
|
|
13
7
|
};
|
|
14
8
|
|
|
15
9
|
module.exports = getNumberOfDynamicZones;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-zones.js","sources":["../../../src/services/utils/dynamic-zones.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"dynamic-zones.js","sources":["../../../src/services/utils/dynamic-zones.ts"],"sourcesContent":["import type { Schema, UID } from '@strapi/types';\n\nconst getNumberOfDynamicZones = () => {\n const contentTypes: Record<UID.ContentType, Schema.ContentType> = strapi.contentTypes;\n\n const attributes = Object.values(contentTypes ?? {}).flatMap((contentType) =>\n Object.values(contentType.attributes ?? {})\n );\n return attributes.filter((attribute) => attribute.type === 'dynamiczone').length;\n};\n\nexport default getNumberOfDynamicZones;\n"],"names":["getNumberOfDynamicZones","contentTypes","strapi","attributes","Object","values","flatMap","contentType","filter","attribute","type","length"],"mappings":";;AAEA,MAAMA,uBAAAA,GAA0B,IAAA;IAC9B,MAAMC,YAAAA,GAA4DC,OAAOD,YAAY;AAErF,IAAA,MAAME,aAAaC,MAAAA,CAAOC,MAAM,CAACJ,YAAAA,IAAgB,EAAC,CAAA,CAAGK,OAAO,CAAC,CAACC,cAC5DH,MAAAA,CAAOC,MAAM,CAACE,WAAAA,CAAYJ,UAAU,IAAI,EAAC,CAAA,CAAA;IAE3C,OAAOA,UAAAA,CAAWK,MAAM,CAAC,CAACC,YAAcA,SAAAA,CAAUC,IAAI,KAAK,aAAA,CAAA,CAAeC,MAAM;AAClF;;;;"}
|
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
import { pipe, map, flatMap, values, sumBy } from 'lodash/fp';
|
|
2
|
-
|
|
3
1
|
const getNumberOfDynamicZones = ()=>{
|
|
4
2
|
const contentTypes = strapi.contentTypes;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
return 1;
|
|
8
|
-
}
|
|
9
|
-
return 0;
|
|
10
|
-
}))(contentTypes);
|
|
3
|
+
const attributes = Object.values(contentTypes ?? {}).flatMap((contentType)=>Object.values(contentType.attributes ?? {}));
|
|
4
|
+
return attributes.filter((attribute)=>attribute.type === 'dynamiczone').length;
|
|
11
5
|
};
|
|
12
6
|
|
|
13
7
|
export { getNumberOfDynamicZones as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-zones.mjs","sources":["../../../src/services/utils/dynamic-zones.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"dynamic-zones.mjs","sources":["../../../src/services/utils/dynamic-zones.ts"],"sourcesContent":["import type { Schema, UID } from '@strapi/types';\n\nconst getNumberOfDynamicZones = () => {\n const contentTypes: Record<UID.ContentType, Schema.ContentType> = strapi.contentTypes;\n\n const attributes = Object.values(contentTypes ?? {}).flatMap((contentType) =>\n Object.values(contentType.attributes ?? {})\n );\n return attributes.filter((attribute) => attribute.type === 'dynamiczone').length;\n};\n\nexport default getNumberOfDynamicZones;\n"],"names":["getNumberOfDynamicZones","contentTypes","strapi","attributes","Object","values","flatMap","contentType","filter","attribute","type","length"],"mappings":"AAEA,MAAMA,uBAAAA,GAA0B,IAAA;IAC9B,MAAMC,YAAAA,GAA4DC,OAAOD,YAAY;AAErF,IAAA,MAAME,aAAaC,MAAAA,CAAOC,MAAM,CAACJ,YAAAA,IAAgB,EAAC,CAAA,CAAGK,OAAO,CAAC,CAACC,cAC5DH,MAAAA,CAAOC,MAAM,CAACE,WAAAA,CAAYJ,UAAU,IAAI,EAAC,CAAA,CAAA;IAE3C,OAAOA,UAAAA,CAAWK,MAAM,CAAC,CAACC,YAAcA,SAAAA,CAAUC,IAAI,KAAK,aAAA,CAAA,CAAeC,MAAM;AAClF;;;;"}
|
package/dist/utils/cron.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _ = require('lodash');
|
|
4
4
|
|
|
5
5
|
const INTEGER_REGEX = /^\d+$/;
|
|
6
6
|
const STEP_REGEX = /^\*\/\d+$/;
|
|
@@ -63,7 +63,7 @@ const shift = (component, index, date)=>{
|
|
|
63
63
|
* @param {Date} date The date that's gonna be used as the start of the "interval", it defaults to now.
|
|
64
64
|
* @returns The shifted cron expression.
|
|
65
65
|
*/ const shiftCronExpression = (rule, date = new Date())=>{
|
|
66
|
-
const components = rule.trim().split(' ').filter(
|
|
66
|
+
const components = rule.trim().split(' ').filter(_.negate(_.isEmpty));
|
|
67
67
|
const secondsIncluded = components.length === 6;
|
|
68
68
|
return components.map((component, index)=>shift(component, secondsIncluded ? index : index + 1, date)).join(' ');
|
|
69
69
|
};
|
package/dist/utils/cron.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cron.js","sources":["../../src/utils/cron.ts"],"sourcesContent":["import { isEmpty, negate } from 'lodash
|
|
1
|
+
{"version":3,"file":"cron.js","sources":["../../src/utils/cron.ts"],"sourcesContent":["import { isEmpty, negate } from 'lodash';\n\nconst DATE_FUNCTIONS = [\n 'getSeconds',\n 'getMinutes',\n 'getHours',\n 'getDate',\n 'getMonth',\n 'getDay',\n] as const;\n\nconst INTEGER_REGEX = /^\\d+$/;\nconst STEP_REGEX = /^\\*\\/\\d+$/;\nconst COMPONENTS: {\n limit: number;\n zeroBasedIndices: boolean;\n functionName: (typeof DATE_FUNCTIONS)[number];\n}[] = [\n { limit: 60, zeroBasedIndices: true, functionName: 'getSeconds' },\n { limit: 60, zeroBasedIndices: true, functionName: 'getMinutes' },\n { limit: 24, zeroBasedIndices: true, functionName: 'getHours' },\n { limit: 31, zeroBasedIndices: false, functionName: 'getDate' },\n { limit: 12, zeroBasedIndices: false, functionName: 'getMonth' },\n { limit: 7, zeroBasedIndices: true, functionName: 'getDay' },\n];\n\nconst shift = (component: string, index: number, date: Date) => {\n if (component === '*') {\n return '*';\n }\n\n const { limit, zeroBasedIndices, functionName } = COMPONENTS[index];\n const offset = +!zeroBasedIndices;\n const currentValue = date[functionName]();\n\n if (INTEGER_REGEX.test(component)) {\n return ((Number.parseInt(component, 10) + currentValue) % limit) + offset;\n }\n\n if (STEP_REGEX.test(component)) {\n const [, step] = component.split('/');\n const frequency = Math.floor(limit / Number(step));\n const list = Array.from({ length: frequency }, (_, index) => index * Number(step));\n return list.map((value) => ((value + currentValue) % limit) + offset).sort((a, b) => a - b);\n }\n\n // Unsupported syntax\n return component;\n};\n\n/**\n * Simulate an interval by shifting a cron expression using the specified date.\n * @param {string} rule A cron expression you want to shift.\n * @param {Date} date The date that's gonna be used as the start of the \"interval\", it defaults to now.\n * @returns The shifted cron expression.\n */\nexport const shiftCronExpression = (rule: string, date = new Date()) => {\n const components = rule.trim().split(' ').filter(negate(isEmpty));\n const secondsIncluded = components.length === 6;\n return components\n .map((component, index) => shift(component, secondsIncluded ? index : index + 1, date))\n .join(' ');\n};\n"],"names":["INTEGER_REGEX","STEP_REGEX","COMPONENTS","limit","zeroBasedIndices","functionName","shift","component","index","date","offset","currentValue","test","Number","parseInt","step","split","frequency","Math","floor","list","Array","from","length","_","map","value","sort","a","b","shiftCronExpression","rule","Date","components","trim","filter","negate","isEmpty","secondsIncluded","join"],"mappings":"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"}
|
package/dist/utils/cron.mjs
CHANGED
package/dist/utils/cron.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cron.mjs","sources":["../../src/utils/cron.ts"],"sourcesContent":["import { isEmpty, negate } from 'lodash
|
|
1
|
+
{"version":3,"file":"cron.mjs","sources":["../../src/utils/cron.ts"],"sourcesContent":["import { isEmpty, negate } from 'lodash';\n\nconst DATE_FUNCTIONS = [\n 'getSeconds',\n 'getMinutes',\n 'getHours',\n 'getDate',\n 'getMonth',\n 'getDay',\n] as const;\n\nconst INTEGER_REGEX = /^\\d+$/;\nconst STEP_REGEX = /^\\*\\/\\d+$/;\nconst COMPONENTS: {\n limit: number;\n zeroBasedIndices: boolean;\n functionName: (typeof DATE_FUNCTIONS)[number];\n}[] = [\n { limit: 60, zeroBasedIndices: true, functionName: 'getSeconds' },\n { limit: 60, zeroBasedIndices: true, functionName: 'getMinutes' },\n { limit: 24, zeroBasedIndices: true, functionName: 'getHours' },\n { limit: 31, zeroBasedIndices: false, functionName: 'getDate' },\n { limit: 12, zeroBasedIndices: false, functionName: 'getMonth' },\n { limit: 7, zeroBasedIndices: true, functionName: 'getDay' },\n];\n\nconst shift = (component: string, index: number, date: Date) => {\n if (component === '*') {\n return '*';\n }\n\n const { limit, zeroBasedIndices, functionName } = COMPONENTS[index];\n const offset = +!zeroBasedIndices;\n const currentValue = date[functionName]();\n\n if (INTEGER_REGEX.test(component)) {\n return ((Number.parseInt(component, 10) + currentValue) % limit) + offset;\n }\n\n if (STEP_REGEX.test(component)) {\n const [, step] = component.split('/');\n const frequency = Math.floor(limit / Number(step));\n const list = Array.from({ length: frequency }, (_, index) => index * Number(step));\n return list.map((value) => ((value + currentValue) % limit) + offset).sort((a, b) => a - b);\n }\n\n // Unsupported syntax\n return component;\n};\n\n/**\n * Simulate an interval by shifting a cron expression using the specified date.\n * @param {string} rule A cron expression you want to shift.\n * @param {Date} date The date that's gonna be used as the start of the \"interval\", it defaults to now.\n * @returns The shifted cron expression.\n */\nexport const shiftCronExpression = (rule: string, date = new Date()) => {\n const components = rule.trim().split(' ').filter(negate(isEmpty));\n const secondsIncluded = components.length === 6;\n return components\n .map((component, index) => shift(component, secondsIncluded ? index : index + 1, date))\n .join(' ');\n};\n"],"names":["INTEGER_REGEX","STEP_REGEX","COMPONENTS","limit","zeroBasedIndices","functionName","shift","component","index","date","offset","currentValue","test","Number","parseInt","step","split","frequency","Math","floor","list","Array","from","length","_","map","value","sort","a","b","shiftCronExpression","rule","Date","components","trim","filter","negate","isEmpty","secondsIncluded","join"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filepath-to-prop-path.d.ts","sourceRoot":"","sources":["../../src/utils/filepath-to-prop-path.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,WAAW,MAAM,EACjB,mBAAkB,OAAc,KAC/B,MAAM,
|
|
1
|
+
{"version":3,"file":"filepath-to-prop-path.d.ts","sourceRoot":"","sources":["../../src/utils/filepath-to-prop-path.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,WAAW,MAAM,EACjB,mBAAkB,OAAc,KAC/B,MAAM,EAaR,CAAC"}
|
|
@@ -1,26 +1,19 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var path = require('node:path');
|
|
4
|
-
var
|
|
4
|
+
var _ = require('lodash');
|
|
5
5
|
|
|
6
6
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
7
|
|
|
8
8
|
var path__default = /*#__PURE__*/_interopDefault(path);
|
|
9
|
-
var fp__default = /*#__PURE__*/_interopDefault(fp);
|
|
10
9
|
|
|
11
10
|
/**
|
|
12
11
|
* Returns a path (as an array) from a file path
|
|
13
12
|
*/ const filePathToPropPath = (entryPath, useFileNameAsKey = true)=>{
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
fp__default.default.toLower, // Split the cleaned path by matching every possible separator (either "/" or "\" depending on the OS)
|
|
19
|
-
fp__default.default.split(new RegExp(`[\\${path__default.default.win32.sep}|${path__default.default.posix.sep}]`, 'g')), // Make sure to remove leading '.' from the different path parts
|
|
20
|
-
fp__default.default.map(fp__default.default.trimCharsStart('.')), // join + split in case some '.' characters are still present in different parts of the path
|
|
21
|
-
fp__default.default.join('.'), fp__default.default.split('.'), // Remove the last portion of the path array if the file name shouldn't be used as a key
|
|
22
|
-
useFileNameAsKey ? fp__default.default.identity : fp__default.default.slice(0, -1));
|
|
23
|
-
return transform(entryPath);
|
|
13
|
+
const cleanPath = removeRelativePrefix(entryPath).replace(/(\.settings|\.json|\.js)/g, '').toLowerCase();
|
|
14
|
+
const parts = cleanPath.split(new RegExp(`[\\${path__default.default.win32.sep}|${path__default.default.posix.sep}]`, 'g')).map((part)=>_.trimStart(part, '.'))// Dots can also delimit properties within a path segment.
|
|
15
|
+
.join('.').split('.');
|
|
16
|
+
return useFileNameAsKey ? parts : parts.slice(0, -1);
|
|
24
17
|
};
|
|
25
18
|
const removeRelativePrefix = (filePath)=>{
|
|
26
19
|
return filePath.startsWith(`.${path__default.default.win32.sep}`) || filePath.startsWith(`.${path__default.default.posix.sep}`) ? filePath.slice(2) : filePath;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filepath-to-prop-path.js","sources":["../../src/utils/filepath-to-prop-path.ts"],"sourcesContent":["import path from 'node:path';\nimport
|
|
1
|
+
{"version":3,"file":"filepath-to-prop-path.js","sources":["../../src/utils/filepath-to-prop-path.ts"],"sourcesContent":["import path from 'node:path';\nimport { trimStart } from 'lodash';\n\n/**\n * Returns a path (as an array) from a file path\n */\nexport const filePathToPropPath = (\n entryPath: string,\n useFileNameAsKey: boolean = true\n): string[] => {\n const cleanPath = removeRelativePrefix(entryPath)\n .replace(/(\\.settings|\\.json|\\.js)/g, '')\n .toLowerCase();\n\n const parts = cleanPath\n .split(new RegExp(`[\\\\${path.win32.sep}|${path.posix.sep}]`, 'g'))\n .map((part) => trimStart(part, '.'))\n // Dots can also delimit properties within a path segment.\n .join('.')\n .split('.');\n\n return useFileNameAsKey ? parts : parts.slice(0, -1);\n};\n\nconst removeRelativePrefix = (filePath: string) => {\n return filePath.startsWith(`.${path.win32.sep}`) || filePath.startsWith(`.${path.posix.sep}`)\n ? filePath.slice(2)\n : filePath;\n};\n"],"names":["filePathToPropPath","entryPath","useFileNameAsKey","cleanPath","removeRelativePrefix","replace","toLowerCase","parts","split","RegExp","path","win32","sep","posix","map","part","trimStart","join","slice","filePath","startsWith"],"mappings":";;;;;;;;;AAGA;;AAEC,IACM,MAAMA,kBAAAA,GAAqB,CAChCC,SAAAA,EACAC,mBAA4B,IAAI,GAAA;AAEhC,IAAA,MAAMC,YAAYC,oBAAAA,CAAqBH,SAAAA,CAAAA,CACpCI,OAAO,CAAC,2BAAA,EAA6B,IACrCC,WAAW,EAAA;AAEd,IAAA,MAAMC,KAAAA,GAAQJ,SAAAA,CACXK,KAAK,CAAC,IAAIC,MAAAA,CAAO,CAAC,GAAG,EAAEC,qBAAAA,CAAKC,KAAK,CAACC,GAAG,CAAC,CAAC,EAAEF,qBAAAA,CAAKG,KAAK,CAACD,GAAG,CAAC,CAAC,CAAC,EAAE,GAAA,CAAA,CAAA,CAC5DE,GAAG,CAAC,CAACC,IAAAA,GAASC,WAAAA,CAAUD,IAAAA,EAAM,KAC/B;KACCE,IAAI,CAAC,GAAA,CAAA,CACLT,KAAK,CAAC,GAAA,CAAA;AAET,IAAA,OAAON,mBAAmBK,KAAAA,GAAQA,KAAAA,CAAMW,KAAK,CAAC,GAAG,EAAC,CAAA;AACpD;AAEA,MAAMd,uBAAuB,CAACe,QAAAA,GAAAA;IAC5B,OAAOA,QAAAA,CAASC,UAAU,CAAC,CAAC,CAAC,EAAEV,qBAAAA,CAAKC,KAAK,CAACC,GAAG,CAAA,CAAE,CAAA,IAAKO,QAAAA,CAASC,UAAU,CAAC,CAAC,CAAC,EAAEV,qBAAAA,CAAKG,KAAK,CAACD,GAAG,CAAA,CAAE,CAAA,GACxFO,QAAAA,CAASD,KAAK,CAAC,CAAA,CAAA,GACfC,QAAAA;AACN,CAAA;;;;"}
|
|
@@ -1,19 +1,13 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
-
import
|
|
2
|
+
import { trimStart } from 'lodash';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Returns a path (as an array) from a file path
|
|
6
6
|
*/ const filePathToPropPath = (entryPath, useFileNameAsKey = true)=>{
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
fp.toLower, // Split the cleaned path by matching every possible separator (either "/" or "\" depending on the OS)
|
|
12
|
-
fp.split(new RegExp(`[\\${path.win32.sep}|${path.posix.sep}]`, 'g')), // Make sure to remove leading '.' from the different path parts
|
|
13
|
-
fp.map(fp.trimCharsStart('.')), // join + split in case some '.' characters are still present in different parts of the path
|
|
14
|
-
fp.join('.'), fp.split('.'), // Remove the last portion of the path array if the file name shouldn't be used as a key
|
|
15
|
-
useFileNameAsKey ? fp.identity : fp.slice(0, -1));
|
|
16
|
-
return transform(entryPath);
|
|
7
|
+
const cleanPath = removeRelativePrefix(entryPath).replace(/(\.settings|\.json|\.js)/g, '').toLowerCase();
|
|
8
|
+
const parts = cleanPath.split(new RegExp(`[\\${path.win32.sep}|${path.posix.sep}]`, 'g')).map((part)=>trimStart(part, '.'))// Dots can also delimit properties within a path segment.
|
|
9
|
+
.join('.').split('.');
|
|
10
|
+
return useFileNameAsKey ? parts : parts.slice(0, -1);
|
|
17
11
|
};
|
|
18
12
|
const removeRelativePrefix = (filePath)=>{
|
|
19
13
|
return filePath.startsWith(`.${path.win32.sep}`) || filePath.startsWith(`.${path.posix.sep}`) ? filePath.slice(2) : filePath;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filepath-to-prop-path.mjs","sources":["../../src/utils/filepath-to-prop-path.ts"],"sourcesContent":["import path from 'node:path';\nimport
|
|
1
|
+
{"version":3,"file":"filepath-to-prop-path.mjs","sources":["../../src/utils/filepath-to-prop-path.ts"],"sourcesContent":["import path from 'node:path';\nimport { trimStart } from 'lodash';\n\n/**\n * Returns a path (as an array) from a file path\n */\nexport const filePathToPropPath = (\n entryPath: string,\n useFileNameAsKey: boolean = true\n): string[] => {\n const cleanPath = removeRelativePrefix(entryPath)\n .replace(/(\\.settings|\\.json|\\.js)/g, '')\n .toLowerCase();\n\n const parts = cleanPath\n .split(new RegExp(`[\\\\${path.win32.sep}|${path.posix.sep}]`, 'g'))\n .map((part) => trimStart(part, '.'))\n // Dots can also delimit properties within a path segment.\n .join('.')\n .split('.');\n\n return useFileNameAsKey ? parts : parts.slice(0, -1);\n};\n\nconst removeRelativePrefix = (filePath: string) => {\n return filePath.startsWith(`.${path.win32.sep}`) || filePath.startsWith(`.${path.posix.sep}`)\n ? filePath.slice(2)\n : filePath;\n};\n"],"names":["filePathToPropPath","entryPath","useFileNameAsKey","cleanPath","removeRelativePrefix","replace","toLowerCase","parts","split","RegExp","path","win32","sep","posix","map","part","trimStart","join","slice","filePath","startsWith"],"mappings":";;;AAGA;;AAEC,IACM,MAAMA,kBAAAA,GAAqB,CAChCC,SAAAA,EACAC,mBAA4B,IAAI,GAAA;AAEhC,IAAA,MAAMC,YAAYC,oBAAAA,CAAqBH,SAAAA,CAAAA,CACpCI,OAAO,CAAC,2BAAA,EAA6B,IACrCC,WAAW,EAAA;AAEd,IAAA,MAAMC,KAAAA,GAAQJ,SAAAA,CACXK,KAAK,CAAC,IAAIC,MAAAA,CAAO,CAAC,GAAG,EAAEC,IAAAA,CAAKC,KAAK,CAACC,GAAG,CAAC,CAAC,EAAEF,IAAAA,CAAKG,KAAK,CAACD,GAAG,CAAC,CAAC,CAAC,EAAE,GAAA,CAAA,CAAA,CAC5DE,GAAG,CAAC,CAACC,IAAAA,GAASC,SAAAA,CAAUD,IAAAA,EAAM,KAC/B;KACCE,IAAI,CAAC,GAAA,CAAA,CACLT,KAAK,CAAC,GAAA,CAAA;AAET,IAAA,OAAON,mBAAmBK,KAAAA,GAAQA,KAAAA,CAAMW,KAAK,CAAC,GAAG,EAAC,CAAA;AACpD;AAEA,MAAMd,uBAAuB,CAACe,QAAAA,GAAAA;IAC5B,OAAOA,QAAAA,CAASC,UAAU,CAAC,CAAC,CAAC,EAAEV,IAAAA,CAAKC,KAAK,CAACC,GAAG,CAAA,CAAE,CAAA,IAAKO,QAAAA,CAASC,UAAU,CAAC,CAAC,CAAC,EAAEV,IAAAA,CAAKG,KAAK,CAACD,GAAG,CAAA,CAAE,CAAA,GACxFO,QAAAA,CAASD,KAAK,CAAC,CAAA,CAAA,GACfC,QAAAA;AACN,CAAA;;;;"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _ = require('lodash');
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Test if the strapi application is considered as initialized (1st user has been created)
|
|
7
7
|
*/ const isInitialized = async (strapi)=>{
|
|
8
8
|
try {
|
|
9
|
-
if (
|
|
9
|
+
if (_.isEmpty(strapi.admin)) {
|
|
10
10
|
return true;
|
|
11
11
|
}
|
|
12
12
|
// test if there is at least one admin
|
|
@@ -15,7 +15,7 @@ var fp = require('lodash/fp');
|
|
|
15
15
|
'id'
|
|
16
16
|
]
|
|
17
17
|
});
|
|
18
|
-
return
|
|
18
|
+
return anyAdministrator != null;
|
|
19
19
|
} catch (err) {
|
|
20
20
|
strapi.stopWithError(err);
|
|
21
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-initialized.js","sources":["../../src/utils/is-initialized.ts"],"sourcesContent":["import { isEmpty
|
|
1
|
+
{"version":3,"file":"is-initialized.js","sources":["../../src/utils/is-initialized.ts"],"sourcesContent":["import { isEmpty } from 'lodash';\n\nimport type { Core } from '@strapi/types';\n\n/**\n * Test if the strapi application is considered as initialized (1st user has been created)\n */\nexport const isInitialized = async (strapi: Core.Strapi): Promise<boolean> => {\n try {\n if (isEmpty(strapi.admin)) {\n return true;\n }\n\n // test if there is at least one admin\n const anyAdministrator = await strapi.db.query('admin::user').findOne({ select: ['id'] });\n\n return anyAdministrator != null;\n } catch (err) {\n strapi.stopWithError(err);\n }\n};\n"],"names":["isInitialized","strapi","isEmpty","admin","anyAdministrator","db","query","findOne","select","err","stopWithError"],"mappings":";;;;AAIA;;IAGO,MAAMA,aAAAA,GAAgB,OAAOC,MAAAA,GAAAA;IAClC,IAAI;QACF,IAAIC,SAAAA,CAAQD,MAAAA,CAAOE,KAAK,CAAA,EAAG;YACzB,OAAO,IAAA;AACT,QAAA;;QAGA,MAAMC,gBAAAA,GAAmB,MAAMH,MAAAA,CAAOI,EAAE,CAACC,KAAK,CAAC,aAAA,CAAA,CAAeC,OAAO,CAAC;YAAEC,MAAAA,EAAQ;AAAC,gBAAA;AAAK;AAAC,SAAA,CAAA;AAEvF,QAAA,OAAOJ,gBAAAA,IAAoB,IAAA;AAC7B,IAAA,CAAA,CAAE,OAAOK,GAAAA,EAAK;AACZR,QAAAA,MAAAA,CAAOS,aAAa,CAACD,GAAAA,CAAAA;AACvB,IAAA;AACF;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isEmpty
|
|
1
|
+
import { isEmpty } from 'lodash';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Test if the strapi application is considered as initialized (1st user has been created)
|
|
@@ -13,7 +13,7 @@ import { isEmpty, isNil } from 'lodash/fp';
|
|
|
13
13
|
'id'
|
|
14
14
|
]
|
|
15
15
|
});
|
|
16
|
-
return
|
|
16
|
+
return anyAdministrator != null;
|
|
17
17
|
} catch (err) {
|
|
18
18
|
strapi.stopWithError(err);
|
|
19
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-initialized.mjs","sources":["../../src/utils/is-initialized.ts"],"sourcesContent":["import { isEmpty
|
|
1
|
+
{"version":3,"file":"is-initialized.mjs","sources":["../../src/utils/is-initialized.ts"],"sourcesContent":["import { isEmpty } from 'lodash';\n\nimport type { Core } from '@strapi/types';\n\n/**\n * Test if the strapi application is considered as initialized (1st user has been created)\n */\nexport const isInitialized = async (strapi: Core.Strapi): Promise<boolean> => {\n try {\n if (isEmpty(strapi.admin)) {\n return true;\n }\n\n // test if there is at least one admin\n const anyAdministrator = await strapi.db.query('admin::user').findOne({ select: ['id'] });\n\n return anyAdministrator != null;\n } catch (err) {\n strapi.stopWithError(err);\n }\n};\n"],"names":["isInitialized","strapi","isEmpty","admin","anyAdministrator","db","query","findOne","select","err","stopWithError"],"mappings":";;AAIA;;IAGO,MAAMA,aAAAA,GAAgB,OAAOC,MAAAA,GAAAA;IAClC,IAAI;QACF,IAAIC,OAAAA,CAAQD,MAAAA,CAAOE,KAAK,CAAA,EAAG;YACzB,OAAO,IAAA;AACT,QAAA;;QAGA,MAAMC,gBAAAA,GAAmB,MAAMH,MAAAA,CAAOI,EAAE,CAACC,KAAK,CAAC,aAAA,CAAA,CAAeC,OAAO,CAAC;YAAEC,MAAAA,EAAQ;AAAC,gBAAA;AAAK;AAAC,SAAA,CAAA;AAEvF,QAAA,OAAOJ,gBAAAA,IAAoB,IAAA;AAC7B,IAAA,CAAA,CAAE,OAAOK,GAAAA,EAAK;AACZR,QAAAA,MAAAA,CAAOS,aAAa,CAACD,GAAAA,CAAAA;AACvB,IAAA;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startup-logger.d.ts","sourceRoot":"","sources":["../../src/utils/startup-logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"startup-logger.d.ts","sourceRoot":"","sources":["../../src/utils/startup-logger.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAoB1C,eAAO,MAAM,mBAAmB,GAAI,KAAK,IAAI,CAAC,MAAM;;;;yCAuFX;QAAE,aAAa,EAAE,OAAO,CAAA;KAAE;CAWlE,CAAC"}
|