@strapi/strapi 4.14.5 → 4.15.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/README.md +1 -0
- package/bin/strapi.js +1 -6
- package/dist/Strapi.js +454 -532
- package/dist/Strapi.js.map +1 -1
- package/dist/Strapi.mjs +464 -0
- package/dist/Strapi.mjs.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/actions/admin/create-user/action.js +75 -94
- package/dist/commands/actions/admin/create-user/action.js.map +1 -1
- package/dist/commands/actions/admin/create-user/command.d.ts.map +1 -1
- package/dist/commands/actions/admin/create-user/command.js +6 -17
- package/dist/commands/actions/admin/create-user/command.js.map +1 -1
- package/dist/commands/actions/admin/reset-user-password/action.js +33 -36
- package/dist/commands/actions/admin/reset-user-password/action.js.map +1 -1
- package/dist/commands/actions/admin/reset-user-password/command.d.ts.map +1 -1
- package/dist/commands/actions/admin/reset-user-password/command.js +6 -15
- package/dist/commands/actions/admin/reset-user-password/command.js.map +1 -1
- package/dist/commands/actions/build-command/action.js +15 -18
- package/dist/commands/actions/build-command/action.js.map +1 -1
- package/dist/commands/actions/build-command/command.d.ts.map +1 -1
- package/dist/commands/actions/build-command/command.js +6 -13
- package/dist/commands/actions/build-command/command.js.map +1 -1
- package/dist/commands/actions/components/list/action.js +18 -18
- package/dist/commands/actions/components/list/action.js.map +1 -1
- package/dist/commands/actions/components/list/command.d.ts.map +1 -1
- package/dist/commands/actions/components/list/command.js +6 -12
- package/dist/commands/actions/components/list/command.js.map +1 -1
- package/dist/commands/actions/configuration/dump/action.js +33 -43
- package/dist/commands/actions/configuration/dump/action.js.map +1 -1
- package/dist/commands/actions/configuration/dump/command.d.ts.map +1 -1
- package/dist/commands/actions/configuration/dump/command.js +6 -15
- package/dist/commands/actions/configuration/dump/command.js.map +1 -1
- package/dist/commands/actions/configuration/restore/action.js +122 -139
- package/dist/commands/actions/configuration/restore/action.js.map +1 -1
- package/dist/commands/actions/configuration/restore/command.d.ts.map +1 -1
- package/dist/commands/actions/configuration/restore/command.js +6 -15
- package/dist/commands/actions/configuration/restore/command.js.map +1 -1
- package/dist/commands/actions/console/action.js +19 -23
- package/dist/commands/actions/console/action.js.map +1 -1
- package/dist/commands/actions/console/command.d.ts.map +1 -1
- package/dist/commands/actions/console/command.js +6 -12
- package/dist/commands/actions/console/command.js.map +1 -1
- package/dist/commands/actions/content-types/list/action.js +18 -18
- package/dist/commands/actions/content-types/list/action.js.map +1 -1
- package/dist/commands/actions/content-types/list/command.d.ts.map +1 -1
- package/dist/commands/actions/content-types/list/command.js +6 -12
- package/dist/commands/actions/content-types/list/command.js.map +1 -1
- package/dist/commands/actions/controllers/list/action.js +18 -18
- package/dist/commands/actions/controllers/list/action.js.map +1 -1
- package/dist/commands/actions/controllers/list/command.d.ts.map +1 -1
- package/dist/commands/actions/controllers/list/command.js +6 -12
- package/dist/commands/actions/controllers/list/command.js.map +1 -1
- package/dist/commands/actions/develop/action.d.ts +1 -75
- package/dist/commands/actions/develop/action.d.ts.map +1 -1
- package/dist/commands/actions/develop/action.js +184 -177
- package/dist/commands/actions/develop/action.js.map +1 -1
- package/dist/commands/actions/develop/command.d.ts.map +1 -1
- package/dist/commands/actions/develop/command.js +6 -17
- package/dist/commands/actions/develop/command.js.map +1 -1
- package/dist/commands/actions/generate/command.js +30 -16
- package/dist/commands/actions/generate/command.js.map +1 -1
- package/dist/commands/actions/hooks/list/action.js +18 -18
- package/dist/commands/actions/hooks/list/action.js.map +1 -1
- package/dist/commands/actions/hooks/list/command.d.ts.map +1 -1
- package/dist/commands/actions/hooks/list/command.js +6 -12
- package/dist/commands/actions/hooks/list/command.js.map +1 -1
- package/dist/commands/actions/install/action.js +41 -45
- package/dist/commands/actions/install/action.js.map +1 -1
- package/dist/commands/actions/install/command.d.ts.map +1 -1
- package/dist/commands/actions/install/command.js +6 -12
- package/dist/commands/actions/install/command.js.map +1 -1
- package/dist/commands/actions/middlewares/list/action.js +18 -18
- package/dist/commands/actions/middlewares/list/action.js.map +1 -1
- package/dist/commands/actions/middlewares/list/command.d.ts.map +1 -1
- package/dist/commands/actions/middlewares/list/command.js +6 -12
- package/dist/commands/actions/middlewares/list/command.js.map +1 -1
- package/dist/commands/actions/new/action.js +5 -10
- package/dist/commands/actions/new/action.js.map +1 -1
- package/dist/commands/actions/new/command.js +14 -33
- package/dist/commands/actions/new/command.js.map +1 -1
- package/dist/commands/actions/plugin/build-command/action.js +80 -79
- package/dist/commands/actions/plugin/build-command/action.js.map +1 -1
- package/dist/commands/actions/plugin/build-command/command.d.ts.map +1 -1
- package/dist/commands/actions/plugin/build-command/command.js +7 -18
- package/dist/commands/actions/plugin/build-command/command.js.map +1 -1
- package/dist/commands/actions/plugin/watch/action.d.ts +7 -0
- package/dist/commands/actions/plugin/watch/action.d.ts.map +1 -0
- package/dist/commands/actions/plugin/watch/action.js +85 -0
- package/dist/commands/actions/plugin/watch/action.js.map +1 -0
- package/dist/commands/actions/plugin/watch/command.d.ts +7 -0
- package/dist/commands/actions/plugin/watch/command.d.ts.map +1 -0
- package/dist/commands/actions/plugin/watch/command.js +8 -0
- package/dist/commands/actions/plugin/watch/command.js.map +1 -0
- package/dist/commands/actions/policies/list/action.js +18 -18
- package/dist/commands/actions/policies/list/action.js.map +1 -1
- package/dist/commands/actions/policies/list/command.d.ts.map +1 -1
- package/dist/commands/actions/policies/list/command.js +6 -12
- package/dist/commands/actions/policies/list/command.js.map +1 -1
- package/dist/commands/actions/report/action.js +22 -25
- package/dist/commands/actions/report/action.js.map +1 -1
- package/dist/commands/actions/report/command.d.ts.map +1 -1
- package/dist/commands/actions/report/command.js +6 -15
- package/dist/commands/actions/report/command.js.map +1 -1
- package/dist/commands/actions/routes/list/action.js +22 -24
- package/dist/commands/actions/routes/list/action.js.map +1 -1
- package/dist/commands/actions/routes/list/command.d.ts.map +1 -1
- package/dist/commands/actions/routes/list/command.js +6 -12
- package/dist/commands/actions/routes/list/command.js.map +1 -1
- package/dist/commands/actions/services/list/action.js +18 -18
- package/dist/commands/actions/services/list/action.js.map +1 -1
- package/dist/commands/actions/services/list/command.d.ts.map +1 -1
- package/dist/commands/actions/services/list/command.js +6 -12
- package/dist/commands/actions/services/list/command.js.map +1 -1
- package/dist/commands/actions/start/action.d.ts +1 -74
- package/dist/commands/actions/start/action.d.ts.map +1 -1
- package/dist/commands/actions/start/action.js +19 -20
- package/dist/commands/actions/start/action.js.map +1 -1
- package/dist/commands/actions/start/command.d.ts.map +1 -1
- package/dist/commands/actions/start/command.js +6 -12
- package/dist/commands/actions/start/command.js.map +1 -1
- package/dist/commands/actions/telemetry/disable/action.js +72 -72
- package/dist/commands/actions/telemetry/disable/action.js.map +1 -1
- package/dist/commands/actions/telemetry/disable/command.d.ts.map +1 -1
- package/dist/commands/actions/telemetry/disable/command.js +6 -12
- package/dist/commands/actions/telemetry/disable/command.js.map +1 -1
- package/dist/commands/actions/telemetry/enable/action.js +87 -88
- package/dist/commands/actions/telemetry/enable/action.js.map +1 -1
- package/dist/commands/actions/telemetry/enable/command.d.ts.map +1 -1
- package/dist/commands/actions/telemetry/enable/command.js +6 -12
- package/dist/commands/actions/telemetry/enable/command.js.map +1 -1
- package/dist/commands/actions/templates/generate/action.js +59 -73
- package/dist/commands/actions/templates/generate/action.js.map +1 -1
- package/dist/commands/actions/templates/generate/command.d.ts.map +1 -1
- package/dist/commands/actions/templates/generate/command.js +6 -12
- package/dist/commands/actions/templates/generate/command.js.map +1 -1
- package/dist/commands/actions/ts/generate-types/action.js +25 -26
- package/dist/commands/actions/ts/generate-types/action.js.map +1 -1
- package/dist/commands/actions/ts/generate-types/command.d.ts.map +1 -1
- package/dist/commands/actions/ts/generate-types/command.js +9 -16
- package/dist/commands/actions/ts/generate-types/command.js.map +1 -1
- package/dist/commands/actions/uninstall/action.js +60 -62
- package/dist/commands/actions/uninstall/action.js.map +1 -1
- package/dist/commands/actions/uninstall/command.d.ts.map +1 -1
- package/dist/commands/actions/uninstall/command.js +6 -13
- package/dist/commands/actions/uninstall/command.js.map +1 -1
- package/dist/commands/actions/version/command.js +10 -17
- package/dist/commands/actions/version/command.js.map +1 -1
- package/dist/commands/actions/watch-admin/action.js +33 -34
- package/dist/commands/actions/watch-admin/action.js.map +1 -1
- package/dist/commands/actions/watch-admin/command.d.ts.map +1 -1
- package/dist/commands/actions/watch-admin/command.js +6 -13
- package/dist/commands/actions/watch-admin/command.js.map +1 -1
- package/dist/commands/builders/admin.js +46 -50
- package/dist/commands/builders/admin.js.map +1 -1
- package/dist/commands/builders/typescript.js +28 -25
- package/dist/commands/builders/typescript.js.map +1 -1
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +102 -91
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/utils/commander.js +11 -136
- package/dist/commands/utils/commander.js.map +1 -1
- package/dist/commands/utils/helpers.d.ts +4 -6
- package/dist/commands/utils/helpers.d.ts.map +1 -1
- package/dist/commands/utils/helpers.js +57 -155
- package/dist/commands/utils/helpers.js.map +1 -1
- package/dist/commands/utils/logger.js +59 -49
- package/dist/commands/utils/logger.js.map +1 -1
- package/dist/commands/utils/pkg.js +98 -107
- package/dist/commands/utils/pkg.js.map +1 -1
- package/dist/compile.js +15 -17
- package/dist/compile.js.map +1 -1
- package/dist/compile.mjs +17 -0
- package/dist/compile.mjs.map +1 -0
- package/dist/container.js +32 -35
- package/dist/container.js.map +1 -1
- package/dist/container.mjs +36 -0
- package/dist/container.mjs.map +1 -0
- package/dist/core/app-configuration/config-loader.js +17 -20
- package/dist/core/app-configuration/config-loader.js.map +1 -1
- package/dist/core/app-configuration/config-loader.mjs +17 -0
- package/dist/core/app-configuration/config-loader.mjs.map +1 -0
- package/dist/core/app-configuration/index.js +51 -50
- package/dist/core/app-configuration/index.js.map +1 -1
- package/dist/core/app-configuration/index.mjs +51 -0
- package/dist/core/app-configuration/index.mjs.map +1 -0
- package/dist/core/app-configuration/load-config-file.js +34 -38
- package/dist/core/app-configuration/load-config-file.js.map +1 -1
- package/dist/core/app-configuration/load-config-file.mjs +42 -0
- package/dist/core/app-configuration/load-config-file.mjs.map +1 -0
- package/dist/core/bootstrap.js +25 -24
- package/dist/core/bootstrap.js.map +1 -1
- package/dist/core/bootstrap.mjs +27 -0
- package/dist/core/bootstrap.mjs.map +1 -0
- package/dist/core/domain/content-type/index.js +108 -104
- package/dist/core/domain/content-type/index.js.map +1 -1
- package/dist/core/domain/content-type/index.mjs +119 -0
- package/dist/core/domain/content-type/index.mjs.map +1 -0
- package/dist/core/domain/content-type/validator.js +69 -83
- package/dist/core/domain/content-type/validator.js.map +1 -1
- package/dist/core/domain/content-type/validator.mjs +75 -0
- package/dist/core/domain/content-type/validator.mjs.map +1 -0
- package/dist/core/domain/module/index.js +97 -100
- package/dist/core/domain/module/index.js.map +1 -1
- package/dist/core/domain/module/index.mjs +105 -0
- package/dist/core/domain/module/index.mjs.map +1 -0
- package/dist/core/domain/module/validation.js +21 -25
- package/dist/core/domain/module/validation.js.map +1 -1
- package/dist/core/domain/module/validation.mjs +25 -0
- package/dist/core/domain/module/validation.mjs.map +1 -0
- package/dist/core/loaders/admin.js +13 -15
- package/dist/core/loaders/admin.js.map +1 -1
- package/dist/core/loaders/admin.mjs +15 -0
- package/dist/core/loaders/admin.mjs.map +1 -0
- package/dist/core/loaders/apis.js +109 -135
- package/dist/core/loaders/apis.js.map +1 -1
- package/dist/core/loaders/apis.mjs +128 -0
- package/dist/core/loaders/apis.mjs.map +1 -0
- package/dist/core/loaders/components.js +34 -34
- package/dist/core/loaders/components.js.map +1 -1
- package/dist/core/loaders/components.mjs +36 -0
- package/dist/core/loaders/components.mjs.map +1 -0
- package/dist/core/loaders/index.js +21 -24
- package/dist/core/loaders/index.js.map +1 -1
- package/dist/core/loaders/index.mjs +24 -0
- package/dist/core/loaders/index.mjs.map +1 -0
- package/dist/core/loaders/middlewares.js +25 -28
- package/dist/core/loaders/middlewares.js.map +1 -1
- package/dist/core/loaders/middlewares.mjs +30 -0
- package/dist/core/loaders/middlewares.mjs.map +1 -0
- package/dist/core/loaders/plugins/get-enabled-plugins.js +96 -99
- package/dist/core/loaders/plugins/get-enabled-plugins.js.map +1 -1
- package/dist/core/loaders/plugins/get-enabled-plugins.mjs +108 -0
- package/dist/core/loaders/plugins/get-enabled-plugins.mjs.map +1 -0
- package/dist/core/loaders/plugins/get-user-plugins-config.js +23 -27
- package/dist/core/loaders/plugins/get-user-plugins-config.js.map +1 -1
- package/dist/core/loaders/plugins/get-user-plugins-config.mjs +25 -0
- package/dist/core/loaders/plugins/get-user-plugins-config.mjs.map +1 -0
- package/dist/core/loaders/plugins/index.js +92 -96
- package/dist/core/loaders/plugins/index.js.map +1 -1
- package/dist/core/loaders/plugins/index.mjs +104 -0
- package/dist/core/loaders/plugins/index.mjs.map +1 -0
- package/dist/core/loaders/policies.js +21 -24
- package/dist/core/loaders/policies.js.map +1 -1
- package/dist/core/loaders/policies.mjs +24 -0
- package/dist/core/loaders/policies.mjs.map +1 -0
- package/dist/core/loaders/sanitizers.js +4 -4
- package/dist/core/loaders/sanitizers.js.map +1 -1
- package/dist/core/loaders/sanitizers.mjs +7 -0
- package/dist/core/loaders/sanitizers.mjs.map +1 -0
- package/dist/core/loaders/src-index.js +28 -32
- package/dist/core/loaders/src-index.js.map +1 -1
- package/dist/core/loaders/src-index.mjs +34 -0
- package/dist/core/loaders/src-index.mjs.map +1 -0
- package/dist/core/loaders/validators.js +4 -4
- package/dist/core/loaders/validators.js.map +1 -1
- package/dist/core/loaders/validators.mjs +7 -0
- package/dist/core/loaders/validators.mjs.map +1 -0
- package/dist/core/registries/apis.js +20 -21
- package/dist/core/registries/apis.js.map +1 -1
- package/dist/core/registries/apis.mjs +24 -0
- package/dist/core/registries/apis.mjs.map +1 -0
- package/dist/core/registries/config.js +21 -21
- package/dist/core/registries/config.js.map +1 -1
- package/dist/core/registries/config.mjs +22 -0
- package/dist/core/registries/config.mjs.map +1 -0
- package/dist/core/registries/content-types.js +65 -64
- package/dist/core/registries/content-types.js.map +1 -1
- package/dist/core/registries/content-types.mjs +72 -0
- package/dist/core/registries/content-types.mjs.map +1 -0
- package/dist/core/registries/controllers.js +77 -78
- package/dist/core/registries/controllers.js.map +1 -1
- package/dist/core/registries/controllers.mjs +81 -0
- package/dist/core/registries/controllers.mjs.map +1 -0
- package/dist/core/registries/custom-fields.js +66 -69
- package/dist/core/registries/custom-fields.js.map +1 -1
- package/dist/core/registries/custom-fields.mjs +72 -0
- package/dist/core/registries/custom-fields.mjs.map +1 -0
- package/dist/core/registries/hooks.js +55 -56
- package/dist/core/registries/hooks.js.map +1 -1
- package/dist/core/registries/hooks.mjs +59 -0
- package/dist/core/registries/hooks.mjs.map +1 -0
- package/dist/core/registries/middlewares.js +57 -59
- package/dist/core/registries/middlewares.js.map +1 -1
- package/dist/core/registries/middlewares.mjs +61 -0
- package/dist/core/registries/middlewares.mjs.map +1 -0
- package/dist/core/registries/modules.js +36 -37
- package/dist/core/registries/modules.js.map +1 -1
- package/dist/core/registries/modules.mjs +40 -0
- package/dist/core/registries/modules.mjs.map +1 -0
- package/dist/core/registries/plugins.js +20 -21
- package/dist/core/registries/plugins.js.map +1 -1
- package/dist/core/registries/plugins.mjs +24 -0
- package/dist/core/registries/plugins.mjs.map +1 -0
- package/dist/core/registries/policies.js +59 -61
- package/dist/core/registries/policies.js.map +1 -1
- package/dist/core/registries/policies.mjs +63 -0
- package/dist/core/registries/policies.mjs.map +1 -0
- package/dist/core/registries/sanitizers.js +22 -24
- package/dist/core/registries/sanitizers.js.map +1 -1
- package/dist/core/registries/sanitizers.mjs +24 -0
- package/dist/core/registries/sanitizers.mjs.map +1 -0
- package/dist/core/registries/services.js +77 -79
- package/dist/core/registries/services.js.map +1 -1
- package/dist/core/registries/services.mjs +81 -0
- package/dist/core/registries/services.mjs.map +1 -0
- package/dist/core/registries/validators.js +22 -24
- package/dist/core/registries/validators.js.map +1 -1
- package/dist/core/registries/validators.mjs +24 -0
- package/dist/core/registries/validators.mjs.map +1 -0
- package/dist/core/utils.js +19 -20
- package/dist/core/utils.js.map +1 -1
- package/dist/core/utils.mjs +27 -0
- package/dist/core/utils.mjs.map +1 -0
- package/dist/core-api/controller/collection-type.js +90 -93
- package/dist/core-api/controller/collection-type.js.map +1 -1
- package/dist/core-api/controller/collection-type.mjs +93 -0
- package/dist/core-api/controller/collection-type.mjs.map +1 -0
- package/dist/core-api/controller/index.js +43 -46
- package/dist/core-api/controller/index.js.map +1 -1
- package/dist/core-api/controller/index.mjs +47 -0
- package/dist/core-api/controller/index.mjs.map +1 -0
- package/dist/core-api/controller/single-type.js +48 -50
- package/dist/core-api/controller/single-type.js.map +1 -1
- package/dist/core-api/controller/single-type.mjs +51 -0
- package/dist/core-api/controller/single-type.mjs.map +1 -0
- package/dist/core-api/controller/transform.js +70 -72
- package/dist/core-api/controller/transform.js.map +1 -1
- package/dist/core-api/controller/transform.mjs +84 -0
- package/dist/core-api/controller/transform.mjs.map +1 -0
- package/dist/core-api/routes/index.js +60 -61
- package/dist/core-api/routes/index.js.map +1 -1
- 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 +57 -57
- package/dist/core-api/service/collection-type.js.map +1 -1
- package/dist/core-api/service/collection-type.mjs +62 -0
- package/dist/core-api/service/collection-type.mjs.map +1 -0
- package/dist/core-api/service/get-fetch-params.js +10 -12
- package/dist/core-api/service/get-fetch-params.js.map +1 -1
- package/dist/core-api/service/get-fetch-params.mjs +14 -0
- package/dist/core-api/service/get-fetch-params.mjs.map +1 -0
- package/dist/core-api/service/index.js +13 -15
- package/dist/core-api/service/index.js.map +1 -1
- package/dist/core-api/service/index.mjs +16 -0
- package/dist/core-api/service/index.mjs.map +1 -0
- package/dist/core-api/service/pagination.js +71 -79
- package/dist/core-api/service/pagination.js.map +1 -1
- package/dist/core-api/service/pagination.mjs +89 -0
- package/dist/core-api/service/pagination.mjs.map +1 -0
- package/dist/core-api/service/single-type.js +53 -53
- package/dist/core-api/service/single-type.js.map +1 -1
- package/dist/core-api/service/single-type.mjs +58 -0
- package/dist/core-api/service/single-type.mjs.map +1 -0
- package/dist/ee/index.js +128 -160
- package/dist/ee/index.js.map +1 -1
- package/dist/ee/index.mjs +154 -0
- package/dist/ee/index.mjs.map +1 -0
- package/dist/ee/license.js +72 -77
- package/dist/ee/license.js.map +1 -1
- package/dist/ee/license.mjs +86 -0
- package/dist/ee/license.mjs.map +1 -0
- package/dist/factories.js +62 -61
- package/dist/factories.js.map +1 -1
- package/dist/factories.mjs +71 -0
- package/dist/factories.mjs.map +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -34
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +8 -0
- package/dist/index.mjs.map +1 -0
- package/dist/load/filepath-to-prop-path.js +9 -19
- package/dist/load/filepath-to-prop-path.js.map +1 -1
- package/dist/load/filepath-to-prop-path.mjs +10 -0
- package/dist/load/filepath-to-prop-path.mjs.map +1 -0
- package/dist/load/glob.js +11 -16
- package/dist/load/glob.js.map +1 -1
- package/dist/load/glob.mjs +14 -0
- package/dist/load/glob.mjs.map +1 -0
- package/dist/load/load-files.js +35 -43
- package/dist/load/load-files.js.map +1 -1
- package/dist/load/load-files.mjs +35 -0
- package/dist/load/load-files.mjs.map +1 -0
- package/dist/load/package-path.js +6 -10
- package/dist/load/package-path.js.map +1 -1
- package/dist/middlewares/body.js +53 -66
- package/dist/middlewares/body.js.map +1 -1
- package/dist/middlewares/body.mjs +61 -0
- package/dist/middlewares/body.mjs.map +1 -0
- package/dist/middlewares/compression.js +6 -8
- package/dist/middlewares/compression.js.map +1 -1
- package/dist/middlewares/compression.mjs +6 -0
- package/dist/middlewares/compression.mjs.map +1 -0
- package/dist/middlewares/cors.js +45 -48
- package/dist/middlewares/cors.js.map +1 -1
- package/dist/middlewares/cors.mjs +49 -0
- package/dist/middlewares/cors.mjs.map +1 -0
- package/dist/middlewares/errors.js +30 -32
- package/dist/middlewares/errors.js.map +1 -1
- package/dist/middlewares/errors.mjs +33 -0
- package/dist/middlewares/errors.mjs.map +1 -0
- package/dist/middlewares/favicon.js +16 -24
- package/dist/middlewares/favicon.js.map +1 -1
- package/dist/middlewares/favicon.mjs +20 -0
- package/dist/middlewares/favicon.mjs.map +1 -0
- package/dist/middlewares/index.js +32 -32
- package/dist/middlewares/index.js.map +1 -1
- package/dist/middlewares/index.mjs +34 -0
- package/dist/middlewares/index.mjs.map +1 -0
- package/dist/middlewares/ip.js +6 -8
- package/dist/middlewares/ip.js.map +1 -1
- package/dist/middlewares/ip.mjs +6 -0
- package/dist/middlewares/ip.mjs.map +1 -0
- package/dist/middlewares/logger.js +8 -9
- package/dist/middlewares/logger.js.map +1 -1
- package/dist/middlewares/logger.mjs +12 -0
- package/dist/middlewares/logger.mjs.map +1 -0
- package/dist/middlewares/powered-by.js +8 -9
- package/dist/middlewares/powered-by.js.map +1 -1
- package/dist/middlewares/powered-by.mjs +14 -0
- package/dist/middlewares/powered-by.mjs.map +1 -0
- package/dist/middlewares/public/index.js +85 -106
- package/dist/middlewares/public/index.js.map +1 -1
- package/dist/middlewares/public/index.mjs +85 -0
- package/dist/middlewares/public/index.mjs.map +1 -0
- package/dist/middlewares/public/serve-static.js +20 -23
- package/dist/middlewares/public/serve-static.js.map +1 -1
- package/dist/middlewares/public/serve-static.mjs +21 -0
- package/dist/middlewares/public/serve-static.mjs.map +1 -0
- package/dist/middlewares/query.js +32 -37
- package/dist/middlewares/query.js.map +1 -1
- package/dist/middlewares/query.mjs +38 -0
- package/dist/middlewares/query.mjs.map +1 -0
- package/dist/middlewares/response-time.js +8 -9
- package/dist/middlewares/response-time.js.map +1 -1
- package/dist/middlewares/response-time.mjs +12 -0
- package/dist/middlewares/response-time.mjs.map +1 -0
- package/dist/middlewares/responses.js +11 -12
- package/dist/middlewares/responses.js.map +1 -1
- package/dist/middlewares/responses.mjs +15 -0
- package/dist/middlewares/responses.mjs.map +1 -0
- package/dist/middlewares/security.js +44 -46
- package/dist/middlewares/security.js.map +1 -1
- package/dist/middlewares/security.mjs +48 -0
- package/dist/middlewares/security.mjs.map +1 -0
- package/dist/middlewares/session.js +24 -24
- package/dist/middlewares/session.js.map +1 -1
- package/dist/middlewares/session.mjs +28 -0
- package/dist/middlewares/session.mjs.map +1 -0
- package/dist/migrations/draft-publish.js +27 -36
- package/dist/migrations/draft-publish.js.map +1 -1
- package/dist/migrations/draft-publish.mjs +37 -0
- package/dist/migrations/draft-publish.mjs.map +1 -0
- package/dist/services/auth/index.js +74 -77
- package/dist/services/auth/index.js.map +1 -1
- package/dist/services/auth/index.mjs +80 -0
- package/dist/services/auth/index.mjs.map +1 -0
- package/dist/services/content-api/index.js +54 -57
- package/dist/services/content-api/index.js.map +1 -1
- package/dist/services/content-api/index.mjs +58 -0
- package/dist/services/content-api/index.mjs.map +1 -0
- package/dist/services/content-api/permissions/engine.js +6 -7
- package/dist/services/content-api/permissions/engine.js.map +1 -1
- package/dist/services/content-api/permissions/engine.mjs +6 -0
- package/dist/services/content-api/permissions/engine.mjs.map +1 -0
- package/dist/services/content-api/permissions/index.js +79 -102
- package/dist/services/content-api/permissions/index.js.map +1 -1
- package/dist/services/content-api/permissions/index.mjs +86 -0
- package/dist/services/content-api/permissions/index.mjs.map +1 -0
- package/dist/services/content-api/permissions/providers/action.js +14 -14
- package/dist/services/content-api/permissions/providers/action.js.map +1 -1
- 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 +14 -14
- package/dist/services/content-api/permissions/providers/condition.js.map +1 -1
- 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 +91 -111
- package/dist/services/core-store.js.map +1 -1
- package/dist/services/core-store.mjs +103 -0
- package/dist/services/core-store.mjs.map +1 -0
- package/dist/services/cron.js +60 -66
- package/dist/services/cron.js.map +1 -1
- package/dist/services/cron.mjs +64 -0
- package/dist/services/cron.mjs.map +1 -0
- package/dist/services/custom-fields.js +7 -8
- package/dist/services/custom-fields.js.map +1 -1
- package/dist/services/custom-fields.mjs +11 -0
- package/dist/services/custom-fields.mjs.map +1 -0
- package/dist/services/entity-service/attributes/index.js +17 -21
- package/dist/services/entity-service/attributes/index.js.map +1 -1
- package/dist/services/entity-service/attributes/index.mjs +22 -0
- package/dist/services/entity-service/attributes/index.mjs.map +1 -0
- package/dist/services/entity-service/attributes/transforms.js +17 -19
- package/dist/services/entity-service/attributes/transforms.js.map +1 -1
- package/dist/services/entity-service/attributes/transforms.mjs +19 -0
- package/dist/services/entity-service/attributes/transforms.mjs.map +1 -0
- package/dist/services/entity-service/components.js +336 -333
- package/dist/services/entity-service/components.js.map +1 -1
- package/dist/services/entity-service/components.mjs +382 -0
- package/dist/services/entity-service/components.mjs.map +1 -0
- package/dist/services/entity-service/index.js +314 -297
- package/dist/services/entity-service/index.js.map +1 -1
- package/dist/services/entity-service/index.mjs +326 -0
- package/dist/services/entity-service/index.mjs.map +1 -0
- package/dist/services/entity-service/params.js +4 -5
- package/dist/services/entity-service/params.js.map +1 -1
- package/dist/services/entity-service/params.mjs +8 -0
- package/dist/services/entity-service/params.mjs.map +1 -0
- package/dist/services/entity-validator/blocks-validator.js +95 -116
- package/dist/services/entity-validator/blocks-validator.js.map +1 -1
- package/dist/services/entity-validator/blocks-validator.mjs +108 -0
- package/dist/services/entity-validator/blocks-validator.mjs.map +1 -0
- package/dist/services/entity-validator/index.js +284 -297
- package/dist/services/entity-validator/index.js.map +1 -1
- package/dist/services/entity-validator/index.mjs +318 -0
- package/dist/services/entity-validator/index.mjs.map +1 -0
- package/dist/services/entity-validator/validators.js +92 -124
- package/dist/services/entity-validator/validators.js.map +1 -1
- package/dist/services/entity-validator/validators.mjs +115 -0
- package/dist/services/entity-validator/validators.mjs.map +1 -0
- package/dist/services/errors.js +64 -66
- package/dist/services/errors.js.map +1 -1
- package/dist/services/errors.mjs +74 -0
- package/dist/services/errors.mjs.map +1 -0
- package/dist/services/event-hub.js +64 -74
- package/dist/services/event-hub.js.map +1 -1
- package/dist/services/event-hub.mjs +68 -0
- package/dist/services/event-hub.mjs.map +1 -0
- package/dist/services/fs.js +48 -51
- package/dist/services/fs.js.map +1 -1
- package/dist/services/fs.mjs +49 -0
- package/dist/services/fs.mjs.map +1 -0
- package/dist/services/metrics/admin-user-hash.js +10 -15
- package/dist/services/metrics/admin-user-hash.js.map +1 -1
- package/dist/services/metrics/admin-user-hash.mjs +12 -0
- package/dist/services/metrics/admin-user-hash.mjs.map +1 -0
- package/dist/services/metrics/index.js +40 -48
- package/dist/services/metrics/index.js.map +1 -1
- package/dist/services/metrics/index.mjs +46 -0
- package/dist/services/metrics/index.mjs.map +1 -0
- package/dist/services/metrics/is-truthy.js +6 -8
- package/dist/services/metrics/is-truthy.js.map +1 -1
- package/dist/services/metrics/is-truthy.mjs +8 -0
- package/dist/services/metrics/is-truthy.mjs.map +1 -0
- package/dist/services/metrics/middleware.js +22 -25
- package/dist/services/metrics/middleware.js.map +1 -1
- package/dist/services/metrics/middleware.mjs +26 -0
- package/dist/services/metrics/middleware.mjs.map +1 -0
- package/dist/services/metrics/rate-limiter.js +19 -19
- package/dist/services/metrics/rate-limiter.js.map +1 -1
- package/dist/services/metrics/rate-limiter.mjs +22 -0
- package/dist/services/metrics/rate-limiter.mjs.map +1 -0
- package/dist/services/metrics/sender.js +69 -72
- package/dist/services/metrics/sender.js.map +1 -1
- package/dist/services/metrics/sender.mjs +71 -0
- package/dist/services/metrics/sender.mjs.map +1 -0
- package/dist/services/request-context.js +10 -11
- package/dist/services/request-context.js.map +1 -1
- package/dist/services/request-context.mjs +14 -0
- package/dist/services/request-context.mjs.map +1 -0
- package/dist/services/server/admin-api.js +9 -9
- package/dist/services/server/admin-api.js.map +1 -1
- package/dist/services/server/admin-api.mjs +13 -0
- package/dist/services/server/admin-api.mjs.map +1 -0
- package/dist/services/server/api.js +26 -28
- package/dist/services/server/api.js.map +1 -1
- package/dist/services/server/api.mjs +28 -0
- package/dist/services/server/api.mjs.map +1 -0
- package/dist/services/server/compose-endpoint.js +94 -100
- package/dist/services/server/compose-endpoint.js.map +1 -1
- package/dist/services/server/compose-endpoint.mjs +114 -0
- package/dist/services/server/compose-endpoint.mjs.map +1 -0
- package/dist/services/server/content-api.js +8 -9
- package/dist/services/server/content-api.js.map +1 -1
- 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 +42 -47
- package/dist/services/server/http-server.js.map +1 -1
- package/dist/services/server/http-server.mjs +47 -0
- package/dist/services/server/http-server.mjs.map +1 -0
- package/dist/services/server/index.js +82 -85
- package/dist/services/server/index.js.map +1 -1
- package/dist/services/server/index.mjs +86 -0
- package/dist/services/server/index.mjs.map +1 -0
- package/dist/services/server/koa.js +46 -50
- package/dist/services/server/koa.js.map +1 -1
- package/dist/services/server/koa.mjs +48 -0
- package/dist/services/server/koa.mjs.map +1 -0
- package/dist/services/server/middleware.js +80 -91
- package/dist/services/server/middleware.js.map +1 -1
- package/dist/services/server/middleware.mjs +90 -0
- package/dist/services/server/middleware.mjs.map +1 -0
- package/dist/services/server/policy.js +16 -17
- package/dist/services/server/policy.js.map +1 -1
- package/dist/services/server/policy.mjs +20 -0
- package/dist/services/server/policy.mjs.map +1 -0
- package/dist/services/server/register-middlewares.js +58 -68
- package/dist/services/server/register-middlewares.js.map +1 -1
- package/dist/services/server/register-middlewares.mjs +73 -0
- package/dist/services/server/register-middlewares.mjs.map +1 -0
- package/dist/services/server/register-routes.js +64 -82
- package/dist/services/server/register-routes.js.map +1 -1
- package/dist/services/server/register-routes.mjs +75 -0
- package/dist/services/server/register-routes.mjs.map +1 -0
- package/dist/services/server/routing.js +80 -94
- package/dist/services/server/routing.js.map +1 -1
- package/dist/services/server/routing.mjs +89 -0
- package/dist/services/server/routing.mjs.map +1 -0
- package/dist/services/utils/dynamic-zones.js +13 -10
- package/dist/services/utils/dynamic-zones.js.map +1 -1
- package/dist/services/utils/dynamic-zones.mjs +17 -0
- package/dist/services/utils/dynamic-zones.mjs.map +1 -0
- package/dist/services/utils/upload-files.js +59 -68
- package/dist/services/utils/upload-files.js.map +1 -1
- package/dist/services/utils/upload-files.mjs +63 -0
- package/dist/services/utils/upload-files.mjs.map +1 -0
- package/dist/services/webhook-runner.js +122 -130
- package/dist/services/webhook-runner.js.map +1 -1
- package/dist/services/webhook-runner.mjs +131 -0
- package/dist/services/webhook-runner.mjs.map +1 -0
- package/dist/services/webhook-store.js +87 -93
- package/dist/services/webhook-store.js.map +1 -1
- package/dist/services/webhook-store.mjs +100 -0
- package/dist/services/webhook-store.mjs.map +1 -0
- package/dist/services/worker-queue.js +49 -57
- package/dist/services/worker-queue.js.map +1 -1
- package/dist/services/worker-queue.mjs +55 -0
- package/dist/services/worker-queue.mjs.map +1 -0
- package/dist/utils/addSlash.js +13 -13
- package/dist/utils/addSlash.js.map +1 -1
- package/dist/utils/convert-custom-field-type.js +19 -16
- package/dist/utils/convert-custom-field-type.js.map +1 -1
- package/dist/utils/convert-custom-field-type.mjs +24 -0
- package/dist/utils/convert-custom-field-type.mjs.map +1 -0
- package/dist/utils/cron.js +29 -47
- package/dist/utils/cron.js.map +1 -1
- package/dist/utils/cron.mjs +38 -0
- package/dist/utils/cron.mjs.map +1 -0
- package/dist/utils/ee.js +3 -7
- package/dist/utils/ee.js.map +1 -1
- package/dist/utils/ee.mjs +5 -0
- package/dist/utils/ee.mjs.map +1 -0
- package/dist/utils/fetch.js +17 -19
- package/dist/utils/fetch.js.map +1 -1
- package/dist/utils/fetch.mjs +19 -0
- package/dist/utils/fetch.mjs.map +1 -0
- package/dist/utils/get-dirs.js +26 -27
- package/dist/utils/get-dirs.js.map +1 -1
- package/dist/utils/get-dirs.mjs +30 -0
- package/dist/utils/get-dirs.mjs.map +1 -0
- package/dist/utils/is-initialized.js +11 -17
- package/dist/utils/is-initialized.js.map +1 -1
- package/dist/utils/is-initialized.mjs +16 -0
- package/dist/utils/is-initialized.mjs.map +1 -0
- package/dist/utils/lifecycles.js +7 -7
- package/dist/utils/lifecycles.js.map +1 -1
- package/dist/utils/lifecycles.mjs +9 -0
- package/dist/utils/lifecycles.mjs.map +1 -0
- package/dist/utils/machine-id.js +12 -13
- package/dist/utils/machine-id.js.map +1 -1
- package/dist/utils/machine-id.mjs +15 -0
- package/dist/utils/machine-id.mjs.map +1 -0
- package/dist/utils/open-browser.js +8 -10
- package/dist/utils/open-browser.js.map +1 -1
- package/dist/utils/open-browser.mjs +10 -0
- package/dist/utils/open-browser.mjs.map +1 -0
- package/dist/utils/signals.js +13 -16
- package/dist/utils/signals.js.map +1 -1
- package/dist/utils/signals.mjs +17 -0
- package/dist/utils/signals.mjs.map +1 -0
- package/dist/utils/startup-logger.js +73 -66
- package/dist/utils/startup-logger.js.map +1 -1
- package/dist/utils/startup-logger.mjs +72 -0
- package/dist/utils/startup-logger.mjs.map +1 -0
- package/dist/utils/update-notifier/index.js +69 -72
- package/dist/utils/update-notifier/index.js.map +1 -1
- package/dist/utils/update-notifier/index.mjs +76 -0
- package/dist/utils/update-notifier/index.mjs.map +1 -0
- package/package.json +26 -25
- package/dist/commands/builders/index.js +0 -11
- package/dist/commands/builders/index.js.map +0 -1
- package/dist/commands/types.js +0 -3
- package/dist/commands/types.js.map +0 -1
- package/dist/load/index.js +0 -11
- package/dist/load/index.js.map +0 -1
- package/dist/services/content-api/permissions/providers/index.js +0 -11
- package/dist/services/content-api/permissions/providers/index.js.map +0 -1
- package/dist/utils/index.js +0 -13
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/postinstall.js +0 -32
- package/dist/utils/postinstall.js.map +0 -1
- package/index.js +0 -5
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import _ from "lodash";
|
|
2
|
+
import instantiatePermissionsUtilities from "./permissions/index.mjs";
|
|
3
|
+
const transformRoutePrefixFor = (pluginName) => (route) => {
|
|
4
|
+
const prefix = route.config && route.config.prefix;
|
|
5
|
+
const path = prefix !== void 0 ? `${prefix}${route.path}` : `/${pluginName}${route.path}`;
|
|
6
|
+
return {
|
|
7
|
+
...route,
|
|
8
|
+
path
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
const filterContentAPI = (route) => route.info.type === "content-api";
|
|
12
|
+
const createContentAPI = (strapi) => {
|
|
13
|
+
const getRoutesMap = async () => {
|
|
14
|
+
const routesMap = {};
|
|
15
|
+
_.forEach(strapi.api, (api, apiName) => {
|
|
16
|
+
const routes = _.flatMap(api.routes, (route) => {
|
|
17
|
+
if ("routes" in route) {
|
|
18
|
+
return route.routes;
|
|
19
|
+
}
|
|
20
|
+
return route;
|
|
21
|
+
}).filter(filterContentAPI);
|
|
22
|
+
if (routes.length === 0) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const apiPrefix = strapi.config.get("api.rest.prefix");
|
|
26
|
+
routesMap[`api::${apiName}`] = routes.map((route) => ({
|
|
27
|
+
...route,
|
|
28
|
+
path: `${apiPrefix}${route.path}`
|
|
29
|
+
}));
|
|
30
|
+
});
|
|
31
|
+
_.forEach(strapi.plugins, (plugin, pluginName) => {
|
|
32
|
+
const transformPrefix = transformRoutePrefixFor(pluginName);
|
|
33
|
+
if (Array.isArray(plugin.routes)) {
|
|
34
|
+
return plugin.routes.map(transformPrefix).filter(filterContentAPI);
|
|
35
|
+
}
|
|
36
|
+
const routes = _.flatMap(plugin.routes, (route) => route.routes.map(transformPrefix)).filter(
|
|
37
|
+
filterContentAPI
|
|
38
|
+
);
|
|
39
|
+
if (routes.length === 0) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const apiPrefix = strapi.config.get("api.rest.prefix");
|
|
43
|
+
routesMap[`plugin::${pluginName}`] = routes.map((route) => ({
|
|
44
|
+
...route,
|
|
45
|
+
path: `${apiPrefix}${route.path}`
|
|
46
|
+
}));
|
|
47
|
+
});
|
|
48
|
+
return routesMap;
|
|
49
|
+
};
|
|
50
|
+
return {
|
|
51
|
+
permissions: instantiatePermissionsUtilities(strapi),
|
|
52
|
+
getRoutesMap
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
export {
|
|
56
|
+
createContentAPI as default
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../src/services/content-api/index.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Strapi, Common } from '@strapi/types';\nimport instantiatePermissionsUtilities from './permissions';\n\nconst transformRoutePrefixFor = (pluginName: string) => (route: Common.Route) => {\n const prefix = route.config && route.config.prefix;\n const path = prefix !== undefined ? `${prefix}${route.path}` : `/${pluginName}${route.path}`;\n\n return {\n ...route,\n path,\n };\n};\n\nconst filterContentAPI = (route: Common.Route) => route.info.type === 'content-api';\n\n/**\n * Create a content API container that holds logic, tools and utils. (eg: permissions, ...)\n */\nconst createContentAPI = (strapi: Strapi) => {\n const getRoutesMap = async () => {\n const routesMap: Record<string, Common.Route[]> = {};\n\n _.forEach(strapi.api, (api, apiName) => {\n const routes = _.flatMap(api.routes, (route) => {\n if ('routes' in route) {\n return route.routes;\n }\n\n return route;\n }).filter(filterContentAPI);\n\n if (routes.length === 0) {\n return;\n }\n\n const apiPrefix = strapi.config.get('api.rest.prefix');\n routesMap[`api::${apiName}`] = routes.map((route) => ({\n ...route,\n path: `${apiPrefix}${route.path}`,\n }));\n });\n\n _.forEach(strapi.plugins, (plugin, pluginName) => {\n const transformPrefix = transformRoutePrefixFor(pluginName);\n\n if (Array.isArray(plugin.routes)) {\n return plugin.routes.map(transformPrefix).filter(filterContentAPI);\n }\n\n const routes = _.flatMap(plugin.routes, (route) => route.routes.map(transformPrefix)).filter(\n filterContentAPI\n );\n\n if (routes.length === 0) {\n return;\n }\n\n const apiPrefix = strapi.config.get('api.rest.prefix');\n routesMap[`plugin::${pluginName}`] = routes.map((route) => ({\n ...route,\n path: `${apiPrefix}${route.path}`,\n }));\n });\n\n return routesMap;\n };\n\n return {\n permissions: instantiatePermissionsUtilities(strapi),\n getRoutesMap,\n };\n};\n\nexport default createContentAPI;\n"],"names":[],"mappings":";;AAIA,MAAM,0BAA0B,CAAC,eAAuB,CAAC,UAAwB;AAC/E,QAAM,SAAS,MAAM,UAAU,MAAM,OAAO;AAC5C,QAAM,OAAO,WAAW,SAAY,GAAG,MAAM,GAAG,MAAM,IAAI,KAAK,IAAI,UAAU,GAAG,MAAM,IAAI;AAEnF,SAAA;AAAA,IACL,GAAG;AAAA,IACH;AAAA,EAAA;AAEJ;AAEA,MAAM,mBAAmB,CAAC,UAAwB,MAAM,KAAK,SAAS;AAKhE,MAAA,mBAAmB,CAAC,WAAmB;AAC3C,QAAM,eAAe,YAAY;AAC/B,UAAM,YAA4C,CAAA;AAElD,MAAE,QAAQ,OAAO,KAAK,CAAC,KAAK,YAAY;AACtC,YAAM,SAAS,EAAE,QAAQ,IAAI,QAAQ,CAAC,UAAU;AAC9C,YAAI,YAAY,OAAO;AACrB,iBAAO,MAAM;AAAA,QACf;AAEO,eAAA;AAAA,MAAA,CACR,EAAE,OAAO,gBAAgB;AAEtB,UAAA,OAAO,WAAW,GAAG;AACvB;AAAA,MACF;AAEA,YAAM,YAAY,OAAO,OAAO,IAAI,iBAAiB;AACrD,gBAAU,QAAQ,OAAO,EAAE,IAAI,OAAO,IAAI,CAAC,WAAW;AAAA,QACpD,GAAG;AAAA,QACH,MAAM,GAAG,SAAS,GAAG,MAAM,IAAI;AAAA,MAC/B,EAAA;AAAA,IAAA,CACH;AAED,MAAE,QAAQ,OAAO,SAAS,CAAC,QAAQ,eAAe;AAC1C,YAAA,kBAAkB,wBAAwB,UAAU;AAE1D,UAAI,MAAM,QAAQ,OAAO,MAAM,GAAG;AAChC,eAAO,OAAO,OAAO,IAAI,eAAe,EAAE,OAAO,gBAAgB;AAAA,MACnE;AAEA,YAAM,SAAS,EAAE,QAAQ,OAAO,QAAQ,CAAC,UAAU,MAAM,OAAO,IAAI,eAAe,CAAC,EAAE;AAAA,QACpF;AAAA,MAAA;AAGE,UAAA,OAAO,WAAW,GAAG;AACvB;AAAA,MACF;AAEA,YAAM,YAAY,OAAO,OAAO,IAAI,iBAAiB;AACrD,gBAAU,WAAW,UAAU,EAAE,IAAI,OAAO,IAAI,CAAC,WAAW;AAAA,QAC1D,GAAG;AAAA,QACH,MAAM,GAAG,SAAS,GAAG,MAAM,IAAI;AAAA,MAC/B,EAAA;AAAA,IAAA,CACH;AAEM,WAAA;AAAA,EAAA;AAGF,SAAA;AAAA,IACL,aAAa,gCAAgC,MAAM;AAAA,IACnD;AAAA,EAAA;AAEJ;"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
//# sourceMappingURL=engine.js.map
|
|
2
|
+
const permissions = require("@strapi/permissions");
|
|
3
|
+
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
4
|
+
const permissions__default = /* @__PURE__ */ _interopDefault(permissions);
|
|
5
|
+
const createPermissionEngine = ({ providers }) => permissions__default.default.engine.new({ providers });
|
|
6
|
+
module.exports = createPermissionEngine;
|
|
7
|
+
//# sourceMappingURL=engine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","
|
|
1
|
+
{"version":3,"file":"engine.js","sources":["../../../../src/services/content-api/permissions/engine.ts"],"sourcesContent":["import permissions from '@strapi/permissions';\n\ntype Options = Parameters<typeof permissions.engine.new>[0];\n\nexport default ({ providers }: Options) => permissions.engine.new({ providers });\n"],"names":["permissions"],"mappings":";;;;AAIA,MAAA,yBAAe,CAAC,EAAE,UAAU,MAAeA,6BAAY,OAAO,IAAI,EAAE,WAAW;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.mjs","sources":["../../../../src/services/content-api/permissions/engine.ts"],"sourcesContent":["import permissions from '@strapi/permissions';\n\ntype Options = Parameters<typeof permissions.engine.new>[0];\n\nexport default ({ providers }: Options) => permissions.engine.new({ providers });\n"],"names":[],"mappings":";AAIA,MAAA,yBAAe,CAAC,EAAE,UAAU,MAAe,YAAY,OAAO,IAAI,EAAE,WAAW;"}
|
|
@@ -1,110 +1,87 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const typeSymbol = Symbol.for('__type__');
|
|
10
|
-
/**
|
|
11
|
-
* Creates an handler that checks if the permission's action exists in the action registry
|
|
12
|
-
*/
|
|
2
|
+
const _ = require("lodash");
|
|
3
|
+
const action = require("./providers/action.js");
|
|
4
|
+
const condition = require("./providers/condition.js");
|
|
5
|
+
const engine = require("./engine.js");
|
|
6
|
+
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
7
|
+
const ___default = /* @__PURE__ */ _interopDefault(_);
|
|
8
|
+
const typeSymbol = Symbol.for("__type__");
|
|
13
9
|
const createValidatePermissionHandler = (actionProvider) => ({ permission }) => {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
10
|
+
const action2 = actionProvider.get(permission.action);
|
|
11
|
+
if (!action2) {
|
|
12
|
+
strapi.log.debug(
|
|
13
|
+
`Unknown action "${permission.action}" supplied when registering a new permission`
|
|
14
|
+
);
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
return true;
|
|
21
18
|
};
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
* Get a tree representation of the available Content API actions
|
|
35
|
-
* based on the methods of the Content API controllers.
|
|
36
|
-
*
|
|
37
|
-
* @note Only actions bound to a content-API route are returned.
|
|
38
|
-
*/
|
|
39
|
-
const getActionsMap = () => {
|
|
40
|
-
const actionMap = {};
|
|
41
|
-
/**
|
|
42
|
-
* Check if a controller's action is bound to the
|
|
43
|
-
* content-api by looking at a potential __type__ symbol
|
|
44
|
-
*/
|
|
45
|
-
const isContentApi = (action) => {
|
|
46
|
-
if (!lodash_1.default.has(action, typeSymbol)) {
|
|
47
|
-
return false;
|
|
48
|
-
}
|
|
49
|
-
return action[typeSymbol].includes('content-api');
|
|
50
|
-
};
|
|
51
|
-
/**
|
|
52
|
-
* Register actions from a specific API source into the result tree
|
|
53
|
-
*/
|
|
54
|
-
const registerAPIsActions = (apis, source) => {
|
|
55
|
-
lodash_1.default.forEach(apis, (api, apiName) => {
|
|
56
|
-
const controllers = lodash_1.default.reduce(api.controllers, (acc, controller, controllerName) => {
|
|
57
|
-
const contentApiActions = lodash_1.default.pickBy(controller, isContentApi);
|
|
58
|
-
if (lodash_1.default.isEmpty(contentApiActions)) {
|
|
59
|
-
return acc;
|
|
60
|
-
}
|
|
61
|
-
acc[controllerName] = Object.keys(contentApiActions);
|
|
62
|
-
return acc;
|
|
63
|
-
}, {});
|
|
64
|
-
if (!lodash_1.default.isEmpty(controllers)) {
|
|
65
|
-
actionMap[`${source}::${apiName}`] = { controllers };
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
};
|
|
69
|
-
registerAPIsActions(strapi.api, 'api');
|
|
70
|
-
registerAPIsActions(strapi.plugins, 'plugin');
|
|
71
|
-
return actionMap;
|
|
19
|
+
const instantiatePermissionsUtilities = (strapi2) => {
|
|
20
|
+
const providers = {
|
|
21
|
+
action: action(),
|
|
22
|
+
condition: condition()
|
|
23
|
+
};
|
|
24
|
+
const getActionsMap = () => {
|
|
25
|
+
const actionMap = {};
|
|
26
|
+
const isContentApi = (action2) => {
|
|
27
|
+
if (!___default.default.has(action2, typeSymbol)) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
return action2[typeSymbol].includes("content-api");
|
|
72
31
|
};
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
// For each API
|
|
82
|
-
for (const [api, value] of Object.entries(actionsMap)) {
|
|
83
|
-
const { controllers } = value;
|
|
84
|
-
// Register controllers methods as actions
|
|
85
|
-
for (const [controller, actions] of Object.entries(controllers)) {
|
|
86
|
-
// Register each action individually
|
|
87
|
-
await Promise.all(actions.map((action) => {
|
|
88
|
-
const actionUID = `${api}.${controller}.${action}`;
|
|
89
|
-
return providers.action.register(actionUID, {
|
|
90
|
-
api,
|
|
91
|
-
controller,
|
|
92
|
-
action,
|
|
93
|
-
uid: actionUID,
|
|
94
|
-
});
|
|
95
|
-
}));
|
|
32
|
+
const registerAPIsActions = (apis, source) => {
|
|
33
|
+
___default.default.forEach(apis, (api, apiName) => {
|
|
34
|
+
const controllers = ___default.default.reduce(
|
|
35
|
+
api.controllers,
|
|
36
|
+
(acc, controller, controllerName) => {
|
|
37
|
+
const contentApiActions = ___default.default.pickBy(controller, isContentApi);
|
|
38
|
+
if (___default.default.isEmpty(contentApiActions)) {
|
|
39
|
+
return acc;
|
|
96
40
|
}
|
|
41
|
+
acc[controllerName] = Object.keys(contentApiActions);
|
|
42
|
+
return acc;
|
|
43
|
+
},
|
|
44
|
+
{}
|
|
45
|
+
);
|
|
46
|
+
if (!___default.default.isEmpty(controllers)) {
|
|
47
|
+
actionMap[`${source}::${apiName}`] = { controllers };
|
|
97
48
|
}
|
|
49
|
+
});
|
|
98
50
|
};
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
51
|
+
registerAPIsActions(strapi2.api, "api");
|
|
52
|
+
registerAPIsActions(strapi2.plugins, "plugin");
|
|
53
|
+
return actionMap;
|
|
54
|
+
};
|
|
55
|
+
const registerActions = async () => {
|
|
56
|
+
const actionsMap = getActionsMap();
|
|
57
|
+
for (const [api, value] of Object.entries(actionsMap)) {
|
|
58
|
+
const { controllers } = value;
|
|
59
|
+
for (const [controller, actions] of Object.entries(controllers)) {
|
|
60
|
+
await Promise.all(
|
|
61
|
+
actions.map((action2) => {
|
|
62
|
+
const actionUID = `${api}.${controller}.${action2}`;
|
|
63
|
+
return providers.action.register(actionUID, {
|
|
64
|
+
api,
|
|
65
|
+
controller,
|
|
66
|
+
action: action2,
|
|
67
|
+
uid: actionUID
|
|
68
|
+
});
|
|
69
|
+
})
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
const engine$1 = engine({ providers });
|
|
75
|
+
engine$1.on(
|
|
76
|
+
"before-format::validate.permission",
|
|
77
|
+
createValidatePermissionHandler(providers.action)
|
|
78
|
+
);
|
|
79
|
+
return {
|
|
80
|
+
engine: engine$1,
|
|
81
|
+
providers,
|
|
82
|
+
registerActions,
|
|
83
|
+
getActionsMap
|
|
84
|
+
};
|
|
109
85
|
};
|
|
110
|
-
|
|
86
|
+
module.exports = instantiatePermissionsUtilities;
|
|
87
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/services/content-api/permissions/index.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Strapi, Common } from '@strapi/types';\nimport { createActionProvider, createConditionProvider } from './providers';\nimport createPermissionEngine from './engine';\n\nconst typeSymbol = Symbol.for('__type__');\n\ninterface ValidatePermissionHandler {\n (params: { permission: { action: string } }): boolean;\n}\n\n/**\n * Creates an handler that checks if the permission's action exists in the action registry\n */\nconst createValidatePermissionHandler =\n (actionProvider: ReturnType<typeof createActionProvider>): ValidatePermissionHandler =>\n ({ permission }) => {\n const action = actionProvider.get(permission.action);\n\n // If the action isn't registered into the action provider, then ignore the permission and warn the user\n if (!action) {\n strapi.log.debug(\n `Unknown action \"${permission.action}\" supplied when registering a new permission`\n );\n\n return false;\n }\n\n return true;\n };\n\n/**\n * Create instances of providers and permission engine for the core content-API service.\n * Also, expose utilities to get informations about available actions and such.\n */\nexport default (strapi: Strapi) => {\n // NOTE: Here we define both an action and condition provider,\n // but at the moment, we're only using the action one.\n const providers = {\n action: createActionProvider(),\n condition: createConditionProvider(),\n };\n\n /**\n * Get a tree representation of the available Content API actions\n * based on the methods of the Content API controllers.\n *\n * @note Only actions bound to a content-API route are returned.\n */\n const getActionsMap = () => {\n const actionMap: Record<\n string,\n {\n controllers: Record<string, string[]>;\n }\n > = {};\n\n /**\n * Check if a controller's action is bound to the\n * content-api by looking at a potential __type__ symbol\n */\n const isContentApi = (action: Common.ControllerHandler & { [s: symbol]: any }) => {\n if (!_.has(action, typeSymbol)) {\n return false;\n }\n\n return action[typeSymbol].includes('content-api');\n };\n\n /**\n * Register actions from a specific API source into the result tree\n */\n const registerAPIsActions = (\n apis: Record<string, Common.Plugin | Common.Module>,\n source: 'api' | 'plugin'\n ) => {\n _.forEach(apis, (api, apiName) => {\n const controllers = _.reduce(\n api.controllers,\n (acc, controller, controllerName) => {\n const contentApiActions = _.pickBy(controller, isContentApi);\n\n if (_.isEmpty(contentApiActions)) {\n return acc;\n }\n\n acc[controllerName] = Object.keys(contentApiActions);\n\n return acc;\n },\n {} as Record<string, string[]>\n );\n\n if (!_.isEmpty(controllers)) {\n actionMap[`${source}::${apiName}`] = { controllers };\n }\n });\n };\n\n registerAPIsActions(strapi.api, 'api');\n registerAPIsActions(strapi.plugins, 'plugin');\n\n return actionMap;\n };\n\n /**\n * Register all the content-API's controllers actions into the action provider.\n * This method make use of the {@link getActionsMap} to generate the list of actions to register.\n *\n * @return {void}\n */\n const registerActions = async () => {\n const actionsMap = getActionsMap();\n\n // For each API\n for (const [api, value] of Object.entries(actionsMap)) {\n const { controllers } = value;\n\n // Register controllers methods as actions\n for (const [controller, actions] of Object.entries(controllers)) {\n // Register each action individually\n await Promise.all(\n actions.map((action) => {\n const actionUID = `${api}.${controller}.${action}`;\n\n return providers.action.register(actionUID, {\n api,\n controller,\n action,\n uid: actionUID,\n });\n })\n );\n }\n }\n };\n\n // Create an instance of a content-API permission engine\n // and binds a custom validation handler to it\n const engine = createPermissionEngine({ providers });\n\n engine.on(\n 'before-format::validate.permission',\n createValidatePermissionHandler(providers.action)\n );\n\n return {\n engine,\n providers,\n registerActions,\n getActionsMap,\n };\n};\n"],"names":["action","strapi","createActionProvider","createConditionProvider","_","engine","createPermissionEngine"],"mappings":";;;;;;;AAKA,MAAM,aAAa,OAAO,IAAI,UAAU;AASxC,MAAM,kCACJ,CAAC,mBACD,CAAC,EAAE,iBAAiB;AAClB,QAAMA,UAAS,eAAe,IAAI,WAAW,MAAM;AAGnD,MAAI,CAACA,SAAQ;AACX,WAAO,IAAI;AAAA,MACT,mBAAmB,WAAW,MAAM;AAAA,IAAA;AAG/B,WAAA;AAAA,EACT;AAEO,SAAA;AACT;AAMF,MAAe,kCAAA,CAACC,YAAmB;AAGjC,QAAM,YAAY;AAAA,IAChB,QAAQC,OAAqB;AAAA,IAC7B,WAAWC,UAAwB;AAAA,EAAA;AASrC,QAAM,gBAAgB,MAAM;AAC1B,UAAM,YAKF,CAAA;AAME,UAAA,eAAe,CAACH,YAA4D;AAChF,UAAI,CAACI,WAAAA,QAAE,IAAIJ,SAAQ,UAAU,GAAG;AACvB,eAAA;AAAA,MACT;AAEA,aAAOA,QAAO,UAAU,EAAE,SAAS,aAAa;AAAA,IAAA;AAM5C,UAAA,sBAAsB,CAC1B,MACA,WACG;AACHI,iBAAAA,QAAE,QAAQ,MAAM,CAAC,KAAK,YAAY;AAChC,cAAM,cAAcA,WAAAA,QAAE;AAAA,UACpB,IAAI;AAAA,UACJ,CAAC,KAAK,YAAY,mBAAmB;AACnC,kBAAM,oBAAoBA,WAAA,QAAE,OAAO,YAAY,YAAY;AAEvD,gBAAAA,WAAA,QAAE,QAAQ,iBAAiB,GAAG;AACzB,qBAAA;AAAA,YACT;AAEA,gBAAI,cAAc,IAAI,OAAO,KAAK,iBAAiB;AAE5C,mBAAA;AAAA,UACT;AAAA,UACA,CAAC;AAAA,QAAA;AAGH,YAAI,CAACA,WAAA,QAAE,QAAQ,WAAW,GAAG;AAC3B,oBAAU,GAAG,MAAM,KAAK,OAAO,EAAE,IAAI,EAAE;QACzC;AAAA,MAAA,CACD;AAAA,IAAA;AAGiBH,wBAAAA,QAAO,KAAK,KAAK;AACjBA,wBAAAA,QAAO,SAAS,QAAQ;AAErC,WAAA;AAAA,EAAA;AAST,QAAM,kBAAkB,YAAY;AAClC,UAAM,aAAa;AAGnB,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,UAAU,GAAG;AAC/C,YAAA,EAAE,YAAgB,IAAA;AAGxB,iBAAW,CAAC,YAAY,OAAO,KAAK,OAAO,QAAQ,WAAW,GAAG;AAE/D,cAAM,QAAQ;AAAA,UACZ,QAAQ,IAAI,CAACD,YAAW;AACtB,kBAAM,YAAY,GAAG,GAAG,IAAI,UAAU,IAAIA,OAAM;AAEzC,mBAAA,UAAU,OAAO,SAAS,WAAW;AAAA,cAC1C;AAAA,cACA;AAAA,cACA,QAAAA;AAAA,cACA,KAAK;AAAA,YAAA,CACN;AAAA,UAAA,CACF;AAAA,QAAA;AAAA,MAEL;AAAA,IACF;AAAA,EAAA;AAKF,QAAMK,WAASC,OAAuB,EAAE,UAAW,CAAA;AAE5CD,WAAA;AAAA,IACL;AAAA,IACA,gCAAgC,UAAU,MAAM;AAAA,EAAA;AAG3C,SAAA;AAAA,IAAA,QACLA;AAAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;;"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import _ from "lodash";
|
|
2
|
+
import createActionProvider from "./providers/action.mjs";
|
|
3
|
+
import createConditionProvider from "./providers/condition.mjs";
|
|
4
|
+
import createPermissionEngine from "./engine.mjs";
|
|
5
|
+
const typeSymbol = Symbol.for("__type__");
|
|
6
|
+
const createValidatePermissionHandler = (actionProvider) => ({ permission }) => {
|
|
7
|
+
const action = actionProvider.get(permission.action);
|
|
8
|
+
if (!action) {
|
|
9
|
+
strapi.log.debug(
|
|
10
|
+
`Unknown action "${permission.action}" supplied when registering a new permission`
|
|
11
|
+
);
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
return true;
|
|
15
|
+
};
|
|
16
|
+
const instantiatePermissionsUtilities = (strapi2) => {
|
|
17
|
+
const providers = {
|
|
18
|
+
action: createActionProvider(),
|
|
19
|
+
condition: createConditionProvider()
|
|
20
|
+
};
|
|
21
|
+
const getActionsMap = () => {
|
|
22
|
+
const actionMap = {};
|
|
23
|
+
const isContentApi = (action) => {
|
|
24
|
+
if (!_.has(action, typeSymbol)) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
return action[typeSymbol].includes("content-api");
|
|
28
|
+
};
|
|
29
|
+
const registerAPIsActions = (apis, source) => {
|
|
30
|
+
_.forEach(apis, (api, apiName) => {
|
|
31
|
+
const controllers = _.reduce(
|
|
32
|
+
api.controllers,
|
|
33
|
+
(acc, controller, controllerName) => {
|
|
34
|
+
const contentApiActions = _.pickBy(controller, isContentApi);
|
|
35
|
+
if (_.isEmpty(contentApiActions)) {
|
|
36
|
+
return acc;
|
|
37
|
+
}
|
|
38
|
+
acc[controllerName] = Object.keys(contentApiActions);
|
|
39
|
+
return acc;
|
|
40
|
+
},
|
|
41
|
+
{}
|
|
42
|
+
);
|
|
43
|
+
if (!_.isEmpty(controllers)) {
|
|
44
|
+
actionMap[`${source}::${apiName}`] = { controllers };
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
registerAPIsActions(strapi2.api, "api");
|
|
49
|
+
registerAPIsActions(strapi2.plugins, "plugin");
|
|
50
|
+
return actionMap;
|
|
51
|
+
};
|
|
52
|
+
const registerActions = async () => {
|
|
53
|
+
const actionsMap = getActionsMap();
|
|
54
|
+
for (const [api, value] of Object.entries(actionsMap)) {
|
|
55
|
+
const { controllers } = value;
|
|
56
|
+
for (const [controller, actions] of Object.entries(controllers)) {
|
|
57
|
+
await Promise.all(
|
|
58
|
+
actions.map((action) => {
|
|
59
|
+
const actionUID = `${api}.${controller}.${action}`;
|
|
60
|
+
return providers.action.register(actionUID, {
|
|
61
|
+
api,
|
|
62
|
+
controller,
|
|
63
|
+
action,
|
|
64
|
+
uid: actionUID
|
|
65
|
+
});
|
|
66
|
+
})
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
const engine = createPermissionEngine({ providers });
|
|
72
|
+
engine.on(
|
|
73
|
+
"before-format::validate.permission",
|
|
74
|
+
createValidatePermissionHandler(providers.action)
|
|
75
|
+
);
|
|
76
|
+
return {
|
|
77
|
+
engine,
|
|
78
|
+
providers,
|
|
79
|
+
registerActions,
|
|
80
|
+
getActionsMap
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
export {
|
|
84
|
+
instantiatePermissionsUtilities as default
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../src/services/content-api/permissions/index.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Strapi, Common } from '@strapi/types';\nimport { createActionProvider, createConditionProvider } from './providers';\nimport createPermissionEngine from './engine';\n\nconst typeSymbol = Symbol.for('__type__');\n\ninterface ValidatePermissionHandler {\n (params: { permission: { action: string } }): boolean;\n}\n\n/**\n * Creates an handler that checks if the permission's action exists in the action registry\n */\nconst createValidatePermissionHandler =\n (actionProvider: ReturnType<typeof createActionProvider>): ValidatePermissionHandler =>\n ({ permission }) => {\n const action = actionProvider.get(permission.action);\n\n // If the action isn't registered into the action provider, then ignore the permission and warn the user\n if (!action) {\n strapi.log.debug(\n `Unknown action \"${permission.action}\" supplied when registering a new permission`\n );\n\n return false;\n }\n\n return true;\n };\n\n/**\n * Create instances of providers and permission engine for the core content-API service.\n * Also, expose utilities to get informations about available actions and such.\n */\nexport default (strapi: Strapi) => {\n // NOTE: Here we define both an action and condition provider,\n // but at the moment, we're only using the action one.\n const providers = {\n action: createActionProvider(),\n condition: createConditionProvider(),\n };\n\n /**\n * Get a tree representation of the available Content API actions\n * based on the methods of the Content API controllers.\n *\n * @note Only actions bound to a content-API route are returned.\n */\n const getActionsMap = () => {\n const actionMap: Record<\n string,\n {\n controllers: Record<string, string[]>;\n }\n > = {};\n\n /**\n * Check if a controller's action is bound to the\n * content-api by looking at a potential __type__ symbol\n */\n const isContentApi = (action: Common.ControllerHandler & { [s: symbol]: any }) => {\n if (!_.has(action, typeSymbol)) {\n return false;\n }\n\n return action[typeSymbol].includes('content-api');\n };\n\n /**\n * Register actions from a specific API source into the result tree\n */\n const registerAPIsActions = (\n apis: Record<string, Common.Plugin | Common.Module>,\n source: 'api' | 'plugin'\n ) => {\n _.forEach(apis, (api, apiName) => {\n const controllers = _.reduce(\n api.controllers,\n (acc, controller, controllerName) => {\n const contentApiActions = _.pickBy(controller, isContentApi);\n\n if (_.isEmpty(contentApiActions)) {\n return acc;\n }\n\n acc[controllerName] = Object.keys(contentApiActions);\n\n return acc;\n },\n {} as Record<string, string[]>\n );\n\n if (!_.isEmpty(controllers)) {\n actionMap[`${source}::${apiName}`] = { controllers };\n }\n });\n };\n\n registerAPIsActions(strapi.api, 'api');\n registerAPIsActions(strapi.plugins, 'plugin');\n\n return actionMap;\n };\n\n /**\n * Register all the content-API's controllers actions into the action provider.\n * This method make use of the {@link getActionsMap} to generate the list of actions to register.\n *\n * @return {void}\n */\n const registerActions = async () => {\n const actionsMap = getActionsMap();\n\n // For each API\n for (const [api, value] of Object.entries(actionsMap)) {\n const { controllers } = value;\n\n // Register controllers methods as actions\n for (const [controller, actions] of Object.entries(controllers)) {\n // Register each action individually\n await Promise.all(\n actions.map((action) => {\n const actionUID = `${api}.${controller}.${action}`;\n\n return providers.action.register(actionUID, {\n api,\n controller,\n action,\n uid: actionUID,\n });\n })\n );\n }\n }\n };\n\n // Create an instance of a content-API permission engine\n // and binds a custom validation handler to it\n const engine = createPermissionEngine({ providers });\n\n engine.on(\n 'before-format::validate.permission',\n createValidatePermissionHandler(providers.action)\n );\n\n return {\n engine,\n providers,\n registerActions,\n getActionsMap,\n };\n};\n"],"names":["strapi"],"mappings":";;;;AAKA,MAAM,aAAa,OAAO,IAAI,UAAU;AASxC,MAAM,kCACJ,CAAC,mBACD,CAAC,EAAE,iBAAiB;AAClB,QAAM,SAAS,eAAe,IAAI,WAAW,MAAM;AAGnD,MAAI,CAAC,QAAQ;AACX,WAAO,IAAI;AAAA,MACT,mBAAmB,WAAW,MAAM;AAAA,IAAA;AAG/B,WAAA;AAAA,EACT;AAEO,SAAA;AACT;AAMF,MAAe,kCAAA,CAACA,YAAmB;AAGjC,QAAM,YAAY;AAAA,IAChB,QAAQ,qBAAqB;AAAA,IAC7B,WAAW,wBAAwB;AAAA,EAAA;AASrC,QAAM,gBAAgB,MAAM;AAC1B,UAAM,YAKF,CAAA;AAME,UAAA,eAAe,CAAC,WAA4D;AAChF,UAAI,CAAC,EAAE,IAAI,QAAQ,UAAU,GAAG;AACvB,eAAA;AAAA,MACT;AAEA,aAAO,OAAO,UAAU,EAAE,SAAS,aAAa;AAAA,IAAA;AAM5C,UAAA,sBAAsB,CAC1B,MACA,WACG;AACH,QAAE,QAAQ,MAAM,CAAC,KAAK,YAAY;AAChC,cAAM,cAAc,EAAE;AAAA,UACpB,IAAI;AAAA,UACJ,CAAC,KAAK,YAAY,mBAAmB;AACnC,kBAAM,oBAAoB,EAAE,OAAO,YAAY,YAAY;AAEvD,gBAAA,EAAE,QAAQ,iBAAiB,GAAG;AACzB,qBAAA;AAAA,YACT;AAEA,gBAAI,cAAc,IAAI,OAAO,KAAK,iBAAiB;AAE5C,mBAAA;AAAA,UACT;AAAA,UACA,CAAC;AAAA,QAAA;AAGH,YAAI,CAAC,EAAE,QAAQ,WAAW,GAAG;AAC3B,oBAAU,GAAG,MAAM,KAAK,OAAO,EAAE,IAAI,EAAE;QACzC;AAAA,MAAA,CACD;AAAA,IAAA;AAGiBA,wBAAAA,QAAO,KAAK,KAAK;AACjBA,wBAAAA,QAAO,SAAS,QAAQ;AAErC,WAAA;AAAA,EAAA;AAST,QAAM,kBAAkB,YAAY;AAClC,UAAM,aAAa;AAGnB,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,UAAU,GAAG;AAC/C,YAAA,EAAE,YAAgB,IAAA;AAGxB,iBAAW,CAAC,YAAY,OAAO,KAAK,OAAO,QAAQ,WAAW,GAAG;AAE/D,cAAM,QAAQ;AAAA,UACZ,QAAQ,IAAI,CAAC,WAAW;AACtB,kBAAM,YAAY,GAAG,GAAG,IAAI,UAAU,IAAI,MAAM;AAEzC,mBAAA,UAAU,OAAO,SAAS,WAAW;AAAA,cAC1C;AAAA,cACA;AAAA,cACA;AAAA,cACA,KAAK;AAAA,YAAA,CACN;AAAA,UAAA,CACF;AAAA,QAAA;AAAA,MAEL;AAAA,IACF;AAAA,EAAA;AAKF,QAAM,SAAS,uBAAuB,EAAE,UAAW,CAAA;AAE5C,SAAA;AAAA,IACL;AAAA,IACA,gCAAgC,UAAU,MAAM;AAAA,EAAA;AAG3C,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
};
|
|
2
|
+
const strapiUtils = require("@strapi/utils");
|
|
3
|
+
const createActionProvider = (options = {}) => {
|
|
4
|
+
const provider = strapiUtils.providerFactory(options);
|
|
5
|
+
return {
|
|
6
|
+
...provider,
|
|
7
|
+
async register(action, payload) {
|
|
8
|
+
if (strapi.isLoaded) {
|
|
9
|
+
throw new Error(`You can't register new actions outside the bootstrap function.`);
|
|
10
|
+
}
|
|
11
|
+
return provider.register(action, payload);
|
|
12
|
+
}
|
|
13
|
+
};
|
|
15
14
|
};
|
|
16
|
-
|
|
15
|
+
module.exports = createActionProvider;
|
|
16
|
+
//# sourceMappingURL=action.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.js","
|
|
1
|
+
{"version":3,"file":"action.js","sources":["../../../../../src/services/content-api/permissions/providers/action.ts"],"sourcesContent":["import { providerFactory } from '@strapi/utils';\n\nexport default (options = {}) => {\n const provider = providerFactory(options);\n\n return {\n ...provider,\n\n async register(action: string, payload: Record<string, unknown>) {\n if (strapi.isLoaded) {\n throw new Error(`You can't register new actions outside the bootstrap function.`);\n }\n\n return provider.register(action, payload);\n },\n };\n};\n"],"names":["providerFactory"],"mappings":";;AAEA,MAAA,uBAAe,CAAC,UAAU,CAAA,MAAO;AACzB,QAAA,WAAWA,4BAAgB,OAAO;AAEjC,SAAA;AAAA,IACL,GAAG;AAAA,IAEH,MAAM,SAAS,QAAgB,SAAkC;AAC/D,UAAI,OAAO,UAAU;AACb,cAAA,IAAI,MAAM,gEAAgE;AAAA,MAClF;AAEO,aAAA,SAAS,SAAS,QAAQ,OAAO;AAAA,IAC1C;AAAA,EAAA;AAEJ;;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { providerFactory } from "@strapi/utils";
|
|
2
|
+
const createActionProvider = (options = {}) => {
|
|
3
|
+
const provider = providerFactory(options);
|
|
4
|
+
return {
|
|
5
|
+
...provider,
|
|
6
|
+
async register(action, payload) {
|
|
7
|
+
if (strapi.isLoaded) {
|
|
8
|
+
throw new Error(`You can't register new actions outside the bootstrap function.`);
|
|
9
|
+
}
|
|
10
|
+
return provider.register(action, payload);
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
export {
|
|
15
|
+
createActionProvider as default
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=action.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action.mjs","sources":["../../../../../src/services/content-api/permissions/providers/action.ts"],"sourcesContent":["import { providerFactory } from '@strapi/utils';\n\nexport default (options = {}) => {\n const provider = providerFactory(options);\n\n return {\n ...provider,\n\n async register(action: string, payload: Record<string, unknown>) {\n if (strapi.isLoaded) {\n throw new Error(`You can't register new actions outside the bootstrap function.`);\n }\n\n return provider.register(action, payload);\n },\n };\n};\n"],"names":[],"mappings":";AAEA,MAAA,uBAAe,CAAC,UAAU,CAAA,MAAO;AACzB,QAAA,WAAW,gBAAgB,OAAO;AAEjC,SAAA;AAAA,IACL,GAAG;AAAA,IAEH,MAAM,SAAS,QAAgB,SAAkC;AAC/D,UAAI,OAAO,UAAU;AACb,cAAA,IAAI,MAAM,gEAAgE;AAAA,MAClF;AAEO,aAAA,SAAS,SAAS,QAAQ,OAAO;AAAA,IAC1C;AAAA,EAAA;AAEJ;"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
};
|
|
2
|
+
const strapiUtils = require("@strapi/utils");
|
|
3
|
+
const createConditionProvider = (options = {}) => {
|
|
4
|
+
const provider = strapiUtils.providerFactory(options);
|
|
5
|
+
return {
|
|
6
|
+
...provider,
|
|
7
|
+
async register(condition) {
|
|
8
|
+
if (strapi.isLoaded) {
|
|
9
|
+
throw new Error(`You can't register new conditions outside the bootstrap function.`);
|
|
10
|
+
}
|
|
11
|
+
return provider.register(condition.name, condition);
|
|
12
|
+
}
|
|
13
|
+
};
|
|
15
14
|
};
|
|
16
|
-
|
|
15
|
+
module.exports = createConditionProvider;
|
|
16
|
+
//# sourceMappingURL=condition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"condition.js","
|
|
1
|
+
{"version":3,"file":"condition.js","sources":["../../../../../src/services/content-api/permissions/providers/condition.ts"],"sourcesContent":["import { providerFactory } from '@strapi/utils';\n\nexport interface Condition {\n name: string;\n [key: string]: unknown;\n}\n\nexport default (options = {}) => {\n const provider = providerFactory(options);\n\n return {\n ...provider,\n\n async register(condition: Condition) {\n if (strapi.isLoaded) {\n throw new Error(`You can't register new conditions outside the bootstrap function.`);\n }\n\n return provider.register(condition.name, condition);\n },\n };\n};\n"],"names":["providerFactory"],"mappings":";;AAOA,MAAA,0BAAe,CAAC,UAAU,CAAA,MAAO;AACzB,QAAA,WAAWA,4BAAgB,OAAO;AAEjC,SAAA;AAAA,IACL,GAAG;AAAA,IAEH,MAAM,SAAS,WAAsB;AACnC,UAAI,OAAO,UAAU;AACb,cAAA,IAAI,MAAM,mEAAmE;AAAA,MACrF;AAEA,aAAO,SAAS,SAAS,UAAU,MAAM,SAAS;AAAA,IACpD;AAAA,EAAA;AAEJ;;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { providerFactory } from "@strapi/utils";
|
|
2
|
+
const createConditionProvider = (options = {}) => {
|
|
3
|
+
const provider = providerFactory(options);
|
|
4
|
+
return {
|
|
5
|
+
...provider,
|
|
6
|
+
async register(condition) {
|
|
7
|
+
if (strapi.isLoaded) {
|
|
8
|
+
throw new Error(`You can't register new conditions outside the bootstrap function.`);
|
|
9
|
+
}
|
|
10
|
+
return provider.register(condition.name, condition);
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
export {
|
|
15
|
+
createConditionProvider as default
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=condition.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"condition.mjs","sources":["../../../../../src/services/content-api/permissions/providers/condition.ts"],"sourcesContent":["import { providerFactory } from '@strapi/utils';\n\nexport interface Condition {\n name: string;\n [key: string]: unknown;\n}\n\nexport default (options = {}) => {\n const provider = providerFactory(options);\n\n return {\n ...provider,\n\n async register(condition: Condition) {\n if (strapi.isLoaded) {\n throw new Error(`You can't register new conditions outside the bootstrap function.`);\n }\n\n return provider.register(condition.name, condition);\n },\n };\n};\n"],"names":[],"mappings":";AAOA,MAAA,0BAAe,CAAC,UAAU,CAAA,MAAO;AACzB,QAAA,WAAW,gBAAgB,OAAO;AAEjC,SAAA;AAAA,IACL,GAAG;AAAA,IAEH,MAAM,SAAS,WAAsB;AACnC,UAAI,OAAO,UAAU;AACb,cAAA,IAAI,MAAM,mEAAmE;AAAA,MACrF;AAEA,aAAO,SAAS,SAAS,UAAU,MAAM,SAAS;AAAA,IACpD;AAAA,EAAA;AAEJ;"}
|