@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook-store.js","
|
|
1
|
+
{"version":3,"file":"webhook-store.js","sources":["../../src/services/webhook-store.ts"],"sourcesContent":["/**\n * Webhook store is the implementation of webhook storage over the core_store\n */\n\nimport { errors } from '@strapi/utils';\nimport type { Database } from '@strapi/database';\n\nconst { ValidationError } = errors;\n\nconst webhookModel = {\n uid: 'webhook',\n collectionName: 'strapi_webhooks',\n attributes: {\n name: {\n type: 'string',\n },\n url: {\n type: 'text',\n },\n headers: {\n type: 'json',\n },\n events: {\n type: 'json',\n },\n enabled: {\n type: 'boolean',\n },\n },\n};\n\ninterface DBInput {\n name: string;\n url: string;\n headers: Record<string, string>;\n events: string[];\n enabled: boolean;\n}\n\ninterface DBOutput {\n id: string;\n name: string;\n url: string;\n headers: Record<string, string>;\n events: string[];\n enabled: boolean;\n}\n\nexport interface Webhook {\n id: string;\n name: string;\n url: string;\n headers: Record<string, string>;\n events: string[];\n isEnabled: boolean;\n}\n\nconst toDBObject = (data: Webhook): DBInput => {\n return {\n name: data.name,\n url: data.url,\n headers: data.headers,\n events: data.events,\n enabled: data.isEnabled,\n };\n};\n\nconst fromDBObject = (row: DBOutput): Webhook => {\n return {\n id: row.id,\n name: row.name,\n url: row.url,\n headers: row.headers,\n events: row.events,\n isEnabled: row.enabled,\n };\n};\n\nconst webhookEventValidator = async (allowedEvents: Map<string, string>, events: string[]) => {\n const allowedValues = Array.from(allowedEvents.values());\n\n events.forEach((event) => {\n if (allowedValues.includes(event)) {\n return;\n }\n\n throw new ValidationError(`Webhook event ${event} is not supported`);\n });\n};\n\nexport interface WebhookStore {\n allowedEvents: Map<string, string>;\n addAllowedEvent(key: string, value: string): void;\n removeAllowedEvent(key: string): void;\n listAllowedEvents(): string[];\n getAllowedEvent(key: string): string | undefined;\n findWebhooks(): Promise<Webhook[]>;\n findWebhook(id: string): Promise<Webhook | null>;\n createWebhook(data: Webhook): Promise<Webhook>;\n updateWebhook(id: string, data: Webhook): Promise<Webhook | null>;\n deleteWebhook(id: string): Promise<Webhook | null>;\n}\n\nconst createWebhookStore = ({ db }: { db: Database }): WebhookStore => {\n const webhookQueries = db.query('webhook');\n\n return {\n allowedEvents: new Map([]),\n addAllowedEvent(key, value) {\n this.allowedEvents.set(key, value);\n },\n removeAllowedEvent(key) {\n this.allowedEvents.delete(key);\n },\n listAllowedEvents() {\n return Array.from(this.allowedEvents.keys());\n },\n getAllowedEvent(key) {\n return this.allowedEvents.get(key);\n },\n async findWebhooks() {\n const results = await webhookQueries.findMany();\n\n return results.map(fromDBObject);\n },\n async findWebhook(id) {\n const result = await webhookQueries.findOne({ where: { id } });\n return result ? fromDBObject(result) : null;\n },\n async createWebhook(data) {\n await webhookEventValidator(this.allowedEvents, data.events);\n\n return webhookQueries\n .create({\n data: toDBObject({ ...data, isEnabled: true }),\n })\n .then(fromDBObject);\n },\n async updateWebhook(id, data) {\n await webhookEventValidator(this.allowedEvents, data.events);\n\n const webhook = await webhookQueries.update({\n where: { id },\n data: toDBObject(data),\n });\n\n return webhook ? fromDBObject(webhook) : null;\n },\n async deleteWebhook(id) {\n const webhook = await webhookQueries.delete({ where: { id } });\n return webhook ? fromDBObject(webhook) : null;\n },\n };\n};\n\nexport { webhookModel, createWebhookStore };\n"],"names":["errors"],"mappings":";;;AAOA,MAAM,EAAE,gBAAoB,IAAAA;AAE5B,MAAM,eAAe;AAAA,EACnB,KAAK;AAAA,EACL,gBAAgB;AAAA,EAChB,YAAY;AAAA,IACV,MAAM;AAAA,MACJ,MAAM;AAAA,IACR;AAAA,IACA,KAAK;AAAA,MACH,MAAM;AAAA,IACR;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,IACR;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,IACR;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AACF;AA4BA,MAAM,aAAa,CAAC,SAA2B;AACtC,SAAA;AAAA,IACL,MAAM,KAAK;AAAA,IACX,KAAK,KAAK;AAAA,IACV,SAAS,KAAK;AAAA,IACd,QAAQ,KAAK;AAAA,IACb,SAAS,KAAK;AAAA,EAAA;AAElB;AAEA,MAAM,eAAe,CAAC,QAA2B;AACxC,SAAA;AAAA,IACL,IAAI,IAAI;AAAA,IACR,MAAM,IAAI;AAAA,IACV,KAAK,IAAI;AAAA,IACT,SAAS,IAAI;AAAA,IACb,QAAQ,IAAI;AAAA,IACZ,WAAW,IAAI;AAAA,EAAA;AAEnB;AAEA,MAAM,wBAAwB,OAAO,eAAoC,WAAqB;AAC5F,QAAM,gBAAgB,MAAM,KAAK,cAAc,OAAQ,CAAA;AAEhD,SAAA,QAAQ,CAAC,UAAU;AACpB,QAAA,cAAc,SAAS,KAAK,GAAG;AACjC;AAAA,IACF;AAEA,UAAM,IAAI,gBAAgB,iBAAiB,KAAK,mBAAmB;AAAA,EAAA,CACpE;AACH;AAeA,MAAM,qBAAqB,CAAC,EAAE,SAAyC;AAC/D,QAAA,iBAAiB,GAAG,MAAM,SAAS;AAElC,SAAA;AAAA,IACL,eAAe,oBAAI,IAAI,EAAE;AAAA,IACzB,gBAAgB,KAAK,OAAO;AACrB,WAAA,cAAc,IAAI,KAAK,KAAK;AAAA,IACnC;AAAA,IACA,mBAAmB,KAAK;AACjB,WAAA,cAAc,OAAO,GAAG;AAAA,IAC/B;AAAA,IACA,oBAAoB;AAClB,aAAO,MAAM,KAAK,KAAK,cAAc,KAAM,CAAA;AAAA,IAC7C;AAAA,IACA,gBAAgB,KAAK;AACZ,aAAA,KAAK,cAAc,IAAI,GAAG;AAAA,IACnC;AAAA,IACA,MAAM,eAAe;AACb,YAAA,UAAU,MAAM,eAAe;AAE9B,aAAA,QAAQ,IAAI,YAAY;AAAA,IACjC;AAAA,IACA,MAAM,YAAY,IAAI;AACd,YAAA,SAAS,MAAM,eAAe,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAA,CAAG;AACtD,aAAA,SAAS,aAAa,MAAM,IAAI;AAAA,IACzC;AAAA,IACA,MAAM,cAAc,MAAM;AACxB,YAAM,sBAAsB,KAAK,eAAe,KAAK,MAAM;AAE3D,aAAO,eACJ,OAAO;AAAA,QACN,MAAM,WAAW,EAAE,GAAG,MAAM,WAAW,MAAM;AAAA,MAAA,CAC9C,EACA,KAAK,YAAY;AAAA,IACtB;AAAA,IACA,MAAM,cAAc,IAAI,MAAM;AAC5B,YAAM,sBAAsB,KAAK,eAAe,KAAK,MAAM;AAErD,YAAA,UAAU,MAAM,eAAe,OAAO;AAAA,QAC1C,OAAO,EAAE,GAAG;AAAA,QACZ,MAAM,WAAW,IAAI;AAAA,MAAA,CACtB;AAEM,aAAA,UAAU,aAAa,OAAO,IAAI;AAAA,IAC3C;AAAA,IACA,MAAM,cAAc,IAAI;AAChB,YAAA,UAAU,MAAM,eAAe,OAAO,EAAE,OAAO,EAAE,GAAG,EAAA,CAAG;AACtD,aAAA,UAAU,aAAa,OAAO,IAAI;AAAA,IAC3C;AAAA,EAAA;AAEJ;;;"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { errors } from "@strapi/utils";
|
|
2
|
+
const { ValidationError } = errors;
|
|
3
|
+
const webhookModel = {
|
|
4
|
+
uid: "webhook",
|
|
5
|
+
collectionName: "strapi_webhooks",
|
|
6
|
+
attributes: {
|
|
7
|
+
name: {
|
|
8
|
+
type: "string"
|
|
9
|
+
},
|
|
10
|
+
url: {
|
|
11
|
+
type: "text"
|
|
12
|
+
},
|
|
13
|
+
headers: {
|
|
14
|
+
type: "json"
|
|
15
|
+
},
|
|
16
|
+
events: {
|
|
17
|
+
type: "json"
|
|
18
|
+
},
|
|
19
|
+
enabled: {
|
|
20
|
+
type: "boolean"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
const toDBObject = (data) => {
|
|
25
|
+
return {
|
|
26
|
+
name: data.name,
|
|
27
|
+
url: data.url,
|
|
28
|
+
headers: data.headers,
|
|
29
|
+
events: data.events,
|
|
30
|
+
enabled: data.isEnabled
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
const fromDBObject = (row) => {
|
|
34
|
+
return {
|
|
35
|
+
id: row.id,
|
|
36
|
+
name: row.name,
|
|
37
|
+
url: row.url,
|
|
38
|
+
headers: row.headers,
|
|
39
|
+
events: row.events,
|
|
40
|
+
isEnabled: row.enabled
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
const webhookEventValidator = async (allowedEvents, events) => {
|
|
44
|
+
const allowedValues = Array.from(allowedEvents.values());
|
|
45
|
+
events.forEach((event) => {
|
|
46
|
+
if (allowedValues.includes(event)) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
throw new ValidationError(`Webhook event ${event} is not supported`);
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
const createWebhookStore = ({ db }) => {
|
|
53
|
+
const webhookQueries = db.query("webhook");
|
|
54
|
+
return {
|
|
55
|
+
allowedEvents: /* @__PURE__ */ new Map([]),
|
|
56
|
+
addAllowedEvent(key, value) {
|
|
57
|
+
this.allowedEvents.set(key, value);
|
|
58
|
+
},
|
|
59
|
+
removeAllowedEvent(key) {
|
|
60
|
+
this.allowedEvents.delete(key);
|
|
61
|
+
},
|
|
62
|
+
listAllowedEvents() {
|
|
63
|
+
return Array.from(this.allowedEvents.keys());
|
|
64
|
+
},
|
|
65
|
+
getAllowedEvent(key) {
|
|
66
|
+
return this.allowedEvents.get(key);
|
|
67
|
+
},
|
|
68
|
+
async findWebhooks() {
|
|
69
|
+
const results = await webhookQueries.findMany();
|
|
70
|
+
return results.map(fromDBObject);
|
|
71
|
+
},
|
|
72
|
+
async findWebhook(id) {
|
|
73
|
+
const result = await webhookQueries.findOne({ where: { id } });
|
|
74
|
+
return result ? fromDBObject(result) : null;
|
|
75
|
+
},
|
|
76
|
+
async createWebhook(data) {
|
|
77
|
+
await webhookEventValidator(this.allowedEvents, data.events);
|
|
78
|
+
return webhookQueries.create({
|
|
79
|
+
data: toDBObject({ ...data, isEnabled: true })
|
|
80
|
+
}).then(fromDBObject);
|
|
81
|
+
},
|
|
82
|
+
async updateWebhook(id, data) {
|
|
83
|
+
await webhookEventValidator(this.allowedEvents, data.events);
|
|
84
|
+
const webhook = await webhookQueries.update({
|
|
85
|
+
where: { id },
|
|
86
|
+
data: toDBObject(data)
|
|
87
|
+
});
|
|
88
|
+
return webhook ? fromDBObject(webhook) : null;
|
|
89
|
+
},
|
|
90
|
+
async deleteWebhook(id) {
|
|
91
|
+
const webhook = await webhookQueries.delete({ where: { id } });
|
|
92
|
+
return webhook ? fromDBObject(webhook) : null;
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
export {
|
|
97
|
+
createWebhookStore,
|
|
98
|
+
webhookModel
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=webhook-store.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-store.mjs","sources":["../../src/services/webhook-store.ts"],"sourcesContent":["/**\n * Webhook store is the implementation of webhook storage over the core_store\n */\n\nimport { errors } from '@strapi/utils';\nimport type { Database } from '@strapi/database';\n\nconst { ValidationError } = errors;\n\nconst webhookModel = {\n uid: 'webhook',\n collectionName: 'strapi_webhooks',\n attributes: {\n name: {\n type: 'string',\n },\n url: {\n type: 'text',\n },\n headers: {\n type: 'json',\n },\n events: {\n type: 'json',\n },\n enabled: {\n type: 'boolean',\n },\n },\n};\n\ninterface DBInput {\n name: string;\n url: string;\n headers: Record<string, string>;\n events: string[];\n enabled: boolean;\n}\n\ninterface DBOutput {\n id: string;\n name: string;\n url: string;\n headers: Record<string, string>;\n events: string[];\n enabled: boolean;\n}\n\nexport interface Webhook {\n id: string;\n name: string;\n url: string;\n headers: Record<string, string>;\n events: string[];\n isEnabled: boolean;\n}\n\nconst toDBObject = (data: Webhook): DBInput => {\n return {\n name: data.name,\n url: data.url,\n headers: data.headers,\n events: data.events,\n enabled: data.isEnabled,\n };\n};\n\nconst fromDBObject = (row: DBOutput): Webhook => {\n return {\n id: row.id,\n name: row.name,\n url: row.url,\n headers: row.headers,\n events: row.events,\n isEnabled: row.enabled,\n };\n};\n\nconst webhookEventValidator = async (allowedEvents: Map<string, string>, events: string[]) => {\n const allowedValues = Array.from(allowedEvents.values());\n\n events.forEach((event) => {\n if (allowedValues.includes(event)) {\n return;\n }\n\n throw new ValidationError(`Webhook event ${event} is not supported`);\n });\n};\n\nexport interface WebhookStore {\n allowedEvents: Map<string, string>;\n addAllowedEvent(key: string, value: string): void;\n removeAllowedEvent(key: string): void;\n listAllowedEvents(): string[];\n getAllowedEvent(key: string): string | undefined;\n findWebhooks(): Promise<Webhook[]>;\n findWebhook(id: string): Promise<Webhook | null>;\n createWebhook(data: Webhook): Promise<Webhook>;\n updateWebhook(id: string, data: Webhook): Promise<Webhook | null>;\n deleteWebhook(id: string): Promise<Webhook | null>;\n}\n\nconst createWebhookStore = ({ db }: { db: Database }): WebhookStore => {\n const webhookQueries = db.query('webhook');\n\n return {\n allowedEvents: new Map([]),\n addAllowedEvent(key, value) {\n this.allowedEvents.set(key, value);\n },\n removeAllowedEvent(key) {\n this.allowedEvents.delete(key);\n },\n listAllowedEvents() {\n return Array.from(this.allowedEvents.keys());\n },\n getAllowedEvent(key) {\n return this.allowedEvents.get(key);\n },\n async findWebhooks() {\n const results = await webhookQueries.findMany();\n\n return results.map(fromDBObject);\n },\n async findWebhook(id) {\n const result = await webhookQueries.findOne({ where: { id } });\n return result ? fromDBObject(result) : null;\n },\n async createWebhook(data) {\n await webhookEventValidator(this.allowedEvents, data.events);\n\n return webhookQueries\n .create({\n data: toDBObject({ ...data, isEnabled: true }),\n })\n .then(fromDBObject);\n },\n async updateWebhook(id, data) {\n await webhookEventValidator(this.allowedEvents, data.events);\n\n const webhook = await webhookQueries.update({\n where: { id },\n data: toDBObject(data),\n });\n\n return webhook ? fromDBObject(webhook) : null;\n },\n async deleteWebhook(id) {\n const webhook = await webhookQueries.delete({ where: { id } });\n return webhook ? fromDBObject(webhook) : null;\n },\n };\n};\n\nexport { webhookModel, createWebhookStore };\n"],"names":[],"mappings":";AAOA,MAAM,EAAE,gBAAoB,IAAA;AAE5B,MAAM,eAAe;AAAA,EACnB,KAAK;AAAA,EACL,gBAAgB;AAAA,EAChB,YAAY;AAAA,IACV,MAAM;AAAA,MACJ,MAAM;AAAA,IACR;AAAA,IACA,KAAK;AAAA,MACH,MAAM;AAAA,IACR;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,IACR;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,IACR;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AACF;AA4BA,MAAM,aAAa,CAAC,SAA2B;AACtC,SAAA;AAAA,IACL,MAAM,KAAK;AAAA,IACX,KAAK,KAAK;AAAA,IACV,SAAS,KAAK;AAAA,IACd,QAAQ,KAAK;AAAA,IACb,SAAS,KAAK;AAAA,EAAA;AAElB;AAEA,MAAM,eAAe,CAAC,QAA2B;AACxC,SAAA;AAAA,IACL,IAAI,IAAI;AAAA,IACR,MAAM,IAAI;AAAA,IACV,KAAK,IAAI;AAAA,IACT,SAAS,IAAI;AAAA,IACb,QAAQ,IAAI;AAAA,IACZ,WAAW,IAAI;AAAA,EAAA;AAEnB;AAEA,MAAM,wBAAwB,OAAO,eAAoC,WAAqB;AAC5F,QAAM,gBAAgB,MAAM,KAAK,cAAc,OAAQ,CAAA;AAEhD,SAAA,QAAQ,CAAC,UAAU;AACpB,QAAA,cAAc,SAAS,KAAK,GAAG;AACjC;AAAA,IACF;AAEA,UAAM,IAAI,gBAAgB,iBAAiB,KAAK,mBAAmB;AAAA,EAAA,CACpE;AACH;AAeA,MAAM,qBAAqB,CAAC,EAAE,SAAyC;AAC/D,QAAA,iBAAiB,GAAG,MAAM,SAAS;AAElC,SAAA;AAAA,IACL,eAAe,oBAAI,IAAI,EAAE;AAAA,IACzB,gBAAgB,KAAK,OAAO;AACrB,WAAA,cAAc,IAAI,KAAK,KAAK;AAAA,IACnC;AAAA,IACA,mBAAmB,KAAK;AACjB,WAAA,cAAc,OAAO,GAAG;AAAA,IAC/B;AAAA,IACA,oBAAoB;AAClB,aAAO,MAAM,KAAK,KAAK,cAAc,KAAM,CAAA;AAAA,IAC7C;AAAA,IACA,gBAAgB,KAAK;AACZ,aAAA,KAAK,cAAc,IAAI,GAAG;AAAA,IACnC;AAAA,IACA,MAAM,eAAe;AACb,YAAA,UAAU,MAAM,eAAe;AAE9B,aAAA,QAAQ,IAAI,YAAY;AAAA,IACjC;AAAA,IACA,MAAM,YAAY,IAAI;AACd,YAAA,SAAS,MAAM,eAAe,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAA,CAAG;AACtD,aAAA,SAAS,aAAa,MAAM,IAAI;AAAA,IACzC;AAAA,IACA,MAAM,cAAc,MAAM;AACxB,YAAM,sBAAsB,KAAK,eAAe,KAAK,MAAM;AAE3D,aAAO,eACJ,OAAO;AAAA,QACN,MAAM,WAAW,EAAE,GAAG,MAAM,WAAW,MAAM;AAAA,MAAA,CAC9C,EACA,KAAK,YAAY;AAAA,IACtB;AAAA,IACA,MAAM,cAAc,IAAI,MAAM;AAC5B,YAAM,sBAAsB,KAAK,eAAe,KAAK,MAAM;AAErD,YAAA,UAAU,MAAM,eAAe,OAAO;AAAA,QAC1C,OAAO,EAAE,GAAG;AAAA,QACZ,MAAM,WAAW,IAAI;AAAA,MAAA,CACtB;AAEM,aAAA,UAAU,aAAa,OAAO,IAAI;AAAA,IAC3C;AAAA,IACA,MAAM,cAAc,IAAI;AAChB,YAAA,UAAU,MAAM,eAAe,OAAO,EAAE,OAAO,EAAE,GAAG,EAAA,CAAG;AACtD,aAAA,UAAU,aAAa,OAAO,IAAI;AAAA,IAC3C;AAAA,EAAA;AAEJ;"}
|
|
@@ -1,64 +1,56 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
const createDebugger = require("debug");
|
|
3
|
+
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
4
|
+
const createDebugger__default = /* @__PURE__ */ _interopDefault(createDebugger);
|
|
5
|
+
const debug = createDebugger__default.default("strapi:worker-queue");
|
|
6
|
+
const noop = () => {
|
|
4
7
|
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
/**
|
|
7
|
-
* Simple worker queue in memory
|
|
8
|
-
*/
|
|
9
|
-
const debug_1 = __importDefault(require("debug"));
|
|
10
|
-
const debug = (0, debug_1.default)('strapi:worker-queue');
|
|
11
|
-
const noop = () => { };
|
|
12
8
|
class WorkerQueue {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
9
|
+
logger;
|
|
10
|
+
worker;
|
|
11
|
+
concurrency;
|
|
12
|
+
running;
|
|
13
|
+
queue;
|
|
14
|
+
constructor({ logger, concurrency = 5 }) {
|
|
15
|
+
debug("Initialize worker queue");
|
|
16
|
+
this.logger = logger;
|
|
17
|
+
this.worker = noop;
|
|
18
|
+
this.concurrency = concurrency;
|
|
19
|
+
this.running = 0;
|
|
20
|
+
this.queue = [];
|
|
21
|
+
}
|
|
22
|
+
subscribe(worker) {
|
|
23
|
+
debug("Subscribe to worker queue");
|
|
24
|
+
this.worker = worker;
|
|
25
|
+
}
|
|
26
|
+
enqueue(payload) {
|
|
27
|
+
debug("Enqueue event in worker queue");
|
|
28
|
+
if (this.running < this.concurrency) {
|
|
29
|
+
this.running += 1;
|
|
30
|
+
this.execute(payload);
|
|
31
|
+
} else {
|
|
32
|
+
this.queue.unshift(payload);
|
|
25
33
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
34
|
+
}
|
|
35
|
+
pop() {
|
|
36
|
+
debug("Pop worker queue and execute");
|
|
37
|
+
const payload = this.queue.pop();
|
|
38
|
+
if (payload) {
|
|
39
|
+
this.execute(payload);
|
|
40
|
+
} else {
|
|
41
|
+
this.running -= 1;
|
|
29
42
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
pop() {
|
|
41
|
-
debug('Pop worker queue and execute');
|
|
42
|
-
const payload = this.queue.pop();
|
|
43
|
-
if (payload) {
|
|
44
|
-
this.execute(payload);
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
this.running -= 1;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
async execute(payload) {
|
|
51
|
-
debug('Execute worker');
|
|
52
|
-
try {
|
|
53
|
-
await this.worker(payload);
|
|
54
|
-
}
|
|
55
|
-
catch (error) {
|
|
56
|
-
this.logger.error(error);
|
|
57
|
-
}
|
|
58
|
-
finally {
|
|
59
|
-
this.pop();
|
|
60
|
-
}
|
|
43
|
+
}
|
|
44
|
+
async execute(payload) {
|
|
45
|
+
debug("Execute worker");
|
|
46
|
+
try {
|
|
47
|
+
await this.worker(payload);
|
|
48
|
+
} catch (error) {
|
|
49
|
+
this.logger.error(error);
|
|
50
|
+
} finally {
|
|
51
|
+
this.pop();
|
|
61
52
|
}
|
|
53
|
+
}
|
|
62
54
|
}
|
|
63
|
-
exports
|
|
64
|
-
//# sourceMappingURL=worker-queue.js.map
|
|
55
|
+
module.exports = WorkerQueue;
|
|
56
|
+
//# sourceMappingURL=worker-queue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-queue.js","
|
|
1
|
+
{"version":3,"file":"worker-queue.js","sources":["../../src/services/worker-queue.ts"],"sourcesContent":["/**\n * Simple worker queue in memory\n */\nimport createDebugger from 'debug';\nimport type { Logger } from '@strapi/logger';\nimport type { Utils } from '@strapi/types';\n\nconst debug = createDebugger('strapi:worker-queue');\n\ninterface ConstructorParameters {\n logger: Logger;\n concurrency?: number;\n}\n\ntype Worker<TPayload, TReturn> = (payload: TPayload) => Promise<TReturn> | TReturn;\n\nconst noop: Utils.Function.Any = () => {};\n\nexport default class WorkerQueue<TPayload, TReturn> {\n logger: Logger;\n\n worker: Worker<TPayload, TReturn>;\n\n concurrency: number;\n\n running: number;\n\n queue: TPayload[];\n\n constructor({ logger, concurrency = 5 }: ConstructorParameters) {\n debug('Initialize worker queue');\n\n this.logger = logger;\n this.worker = noop;\n\n this.concurrency = concurrency;\n this.running = 0;\n this.queue = [];\n }\n\n subscribe(worker: Worker<TPayload, TReturn>) {\n debug('Subscribe to worker queue');\n this.worker = worker;\n }\n\n enqueue(payload: TPayload) {\n debug('Enqueue event in worker queue');\n if (this.running < this.concurrency) {\n this.running += 1;\n this.execute(payload);\n } else {\n this.queue.unshift(payload);\n }\n }\n\n pop() {\n debug('Pop worker queue and execute');\n const payload = this.queue.pop();\n\n if (payload) {\n this.execute(payload);\n } else {\n this.running -= 1;\n }\n }\n\n async execute(payload: TPayload) {\n debug('Execute worker');\n try {\n await this.worker(payload);\n } catch (error) {\n this.logger.error(error);\n } finally {\n this.pop();\n }\n }\n}\n"],"names":["createDebugger"],"mappings":";;;;AAOA,MAAM,QAAQA,wBAAAA,QAAe,qBAAqB;AASlD,MAAM,OAA2B,MAAM;AAAC;AAExC,MAAqB,YAA+B;AAAA,EAClD;AAAA,EAEA;AAAA,EAEA;AAAA,EAEA;AAAA,EAEA;AAAA,EAEA,YAAY,EAAE,QAAQ,cAAc,KAA4B;AAC9D,UAAM,yBAAyB;AAE/B,SAAK,SAAS;AACd,SAAK,SAAS;AAEd,SAAK,cAAc;AACnB,SAAK,UAAU;AACf,SAAK,QAAQ;EACf;AAAA,EAEA,UAAU,QAAmC;AAC3C,UAAM,2BAA2B;AACjC,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,QAAQ,SAAmB;AACzB,UAAM,+BAA+B;AACjC,QAAA,KAAK,UAAU,KAAK,aAAa;AACnC,WAAK,WAAW;AAChB,WAAK,QAAQ,OAAO;AAAA,IAAA,OACf;AACA,WAAA,MAAM,QAAQ,OAAO;AAAA,IAC5B;AAAA,EACF;AAAA,EAEA,MAAM;AACJ,UAAM,8BAA8B;AAC9B,UAAA,UAAU,KAAK,MAAM,IAAI;AAE/B,QAAI,SAAS;AACX,WAAK,QAAQ,OAAO;AAAA,IAAA,OACf;AACL,WAAK,WAAW;AAAA,IAClB;AAAA,EACF;AAAA,EAEA,MAAM,QAAQ,SAAmB;AAC/B,UAAM,gBAAgB;AAClB,QAAA;AACI,YAAA,KAAK,OAAO,OAAO;AAAA,aAClB,OAAO;AACT,WAAA,OAAO,MAAM,KAAK;AAAA,IAAA,UACvB;AACA,WAAK,IAAI;AAAA,IACX;AAAA,EACF;AACF;;"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import createDebugger from "debug";
|
|
2
|
+
const debug = createDebugger("strapi:worker-queue");
|
|
3
|
+
const noop = () => {
|
|
4
|
+
};
|
|
5
|
+
class WorkerQueue {
|
|
6
|
+
logger;
|
|
7
|
+
worker;
|
|
8
|
+
concurrency;
|
|
9
|
+
running;
|
|
10
|
+
queue;
|
|
11
|
+
constructor({ logger, concurrency = 5 }) {
|
|
12
|
+
debug("Initialize worker queue");
|
|
13
|
+
this.logger = logger;
|
|
14
|
+
this.worker = noop;
|
|
15
|
+
this.concurrency = concurrency;
|
|
16
|
+
this.running = 0;
|
|
17
|
+
this.queue = [];
|
|
18
|
+
}
|
|
19
|
+
subscribe(worker) {
|
|
20
|
+
debug("Subscribe to worker queue");
|
|
21
|
+
this.worker = worker;
|
|
22
|
+
}
|
|
23
|
+
enqueue(payload) {
|
|
24
|
+
debug("Enqueue event in worker queue");
|
|
25
|
+
if (this.running < this.concurrency) {
|
|
26
|
+
this.running += 1;
|
|
27
|
+
this.execute(payload);
|
|
28
|
+
} else {
|
|
29
|
+
this.queue.unshift(payload);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
pop() {
|
|
33
|
+
debug("Pop worker queue and execute");
|
|
34
|
+
const payload = this.queue.pop();
|
|
35
|
+
if (payload) {
|
|
36
|
+
this.execute(payload);
|
|
37
|
+
} else {
|
|
38
|
+
this.running -= 1;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
async execute(payload) {
|
|
42
|
+
debug("Execute worker");
|
|
43
|
+
try {
|
|
44
|
+
await this.worker(payload);
|
|
45
|
+
} catch (error) {
|
|
46
|
+
this.logger.error(error);
|
|
47
|
+
} finally {
|
|
48
|
+
this.pop();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
export {
|
|
53
|
+
WorkerQueue as default
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=worker-queue.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-queue.mjs","sources":["../../src/services/worker-queue.ts"],"sourcesContent":["/**\n * Simple worker queue in memory\n */\nimport createDebugger from 'debug';\nimport type { Logger } from '@strapi/logger';\nimport type { Utils } from '@strapi/types';\n\nconst debug = createDebugger('strapi:worker-queue');\n\ninterface ConstructorParameters {\n logger: Logger;\n concurrency?: number;\n}\n\ntype Worker<TPayload, TReturn> = (payload: TPayload) => Promise<TReturn> | TReturn;\n\nconst noop: Utils.Function.Any = () => {};\n\nexport default class WorkerQueue<TPayload, TReturn> {\n logger: Logger;\n\n worker: Worker<TPayload, TReturn>;\n\n concurrency: number;\n\n running: number;\n\n queue: TPayload[];\n\n constructor({ logger, concurrency = 5 }: ConstructorParameters) {\n debug('Initialize worker queue');\n\n this.logger = logger;\n this.worker = noop;\n\n this.concurrency = concurrency;\n this.running = 0;\n this.queue = [];\n }\n\n subscribe(worker: Worker<TPayload, TReturn>) {\n debug('Subscribe to worker queue');\n this.worker = worker;\n }\n\n enqueue(payload: TPayload) {\n debug('Enqueue event in worker queue');\n if (this.running < this.concurrency) {\n this.running += 1;\n this.execute(payload);\n } else {\n this.queue.unshift(payload);\n }\n }\n\n pop() {\n debug('Pop worker queue and execute');\n const payload = this.queue.pop();\n\n if (payload) {\n this.execute(payload);\n } else {\n this.running -= 1;\n }\n }\n\n async execute(payload: TPayload) {\n debug('Execute worker');\n try {\n await this.worker(payload);\n } catch (error) {\n this.logger.error(error);\n } finally {\n this.pop();\n }\n }\n}\n"],"names":[],"mappings":";AAOA,MAAM,QAAQ,eAAe,qBAAqB;AASlD,MAAM,OAA2B,MAAM;AAAC;AAExC,MAAqB,YAA+B;AAAA,EAClD;AAAA,EAEA;AAAA,EAEA;AAAA,EAEA;AAAA,EAEA;AAAA,EAEA,YAAY,EAAE,QAAQ,cAAc,KAA4B;AAC9D,UAAM,yBAAyB;AAE/B,SAAK,SAAS;AACd,SAAK,SAAS;AAEd,SAAK,cAAc;AACnB,SAAK,UAAU;AACf,SAAK,QAAQ;EACf;AAAA,EAEA,UAAU,QAAmC;AAC3C,UAAM,2BAA2B;AACjC,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,QAAQ,SAAmB;AACzB,UAAM,+BAA+B;AACjC,QAAA,KAAK,UAAU,KAAK,aAAa;AACnC,WAAK,WAAW;AAChB,WAAK,QAAQ,OAAO;AAAA,IAAA,OACf;AACA,WAAA,MAAM,QAAQ,OAAO;AAAA,IAC5B;AAAA,EACF;AAAA,EAEA,MAAM;AACJ,UAAM,8BAA8B;AAC9B,UAAA,UAAU,KAAK,MAAM,IAAI;AAE/B,QAAI,SAAS;AACX,WAAK,QAAQ,OAAO;AAAA,IAAA,OACf;AACL,WAAK,WAAW;AAAA,IAClB;AAAA,EACF;AAAA,EAEA,MAAM,QAAQ,SAAmB;AAC/B,UAAM,gBAAgB;AAClB,QAAA;AACI,YAAA,KAAK,OAAO,OAAO;AAAA,aAClB,OAAO;AACT,WAAA,OAAO,MAAM,KAAK;AAAA,IAAA,UACvB;AACA,WAAK,IAAI;AAAA,IACX;AAAA,EACF;AACF;"}
|
package/dist/utils/addSlash.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return tmpPath;
|
|
2
|
+
const addSlash = (path) => {
|
|
3
|
+
let tmpPath = path;
|
|
4
|
+
if (typeof tmpPath !== "string")
|
|
5
|
+
throw new Error("admin.url must be a string");
|
|
6
|
+
if (tmpPath === "" || tmpPath === "/")
|
|
7
|
+
return "/";
|
|
8
|
+
if (tmpPath[0] !== "/")
|
|
9
|
+
tmpPath = `/${tmpPath}`;
|
|
10
|
+
if (tmpPath[tmpPath.length - 1] !== "/")
|
|
11
|
+
tmpPath += "/";
|
|
12
|
+
return tmpPath;
|
|
14
13
|
};
|
|
15
|
-
|
|
14
|
+
module.exports = addSlash;
|
|
15
|
+
//# sourceMappingURL=addSlash.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addSlash.js","
|
|
1
|
+
{"version":3,"file":"addSlash.js","sources":["../../src/utils/addSlash.ts"],"sourcesContent":["export default (path: string) => {\n let tmpPath = path;\n if (typeof tmpPath !== 'string') throw new Error('admin.url must be a string');\n if (tmpPath === '' || tmpPath === '/') return '/';\n\n if (tmpPath[0] !== '/') tmpPath = `/${tmpPath}`;\n if (tmpPath[tmpPath.length - 1] !== '/') tmpPath += '/';\n return tmpPath;\n};\n"],"names":[],"mappings":";AAAA,MAAe,WAAA,CAAC,SAAiB;AAC/B,MAAI,UAAU;AACd,MAAI,OAAO,YAAY;AAAgB,UAAA,IAAI,MAAM,4BAA4B;AACzE,MAAA,YAAY,MAAM,YAAY;AAAY,WAAA;AAE1C,MAAA,QAAQ,CAAC,MAAM;AAAK,cAAU,IAAI,OAAO;AAC7C,MAAI,QAAQ,QAAQ,SAAS,CAAC,MAAM;AAAgB,eAAA;AAC7C,SAAA;AACT;;"}
|
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
2
|
const convertCustomFieldType = (strapi) => {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
3
|
+
const allContentTypeSchemaAttributes = Object.values(strapi.contentTypes).map(
|
|
4
|
+
(schema) => schema.attributes
|
|
5
|
+
);
|
|
6
|
+
const allComponentSchemaAttributes = Object.values(strapi.components).map(
|
|
7
|
+
(schema) => schema.attributes
|
|
8
|
+
);
|
|
9
|
+
const allSchemasAttributes = [
|
|
10
|
+
...allContentTypeSchemaAttributes,
|
|
11
|
+
...allComponentSchemaAttributes
|
|
12
|
+
];
|
|
13
|
+
for (const schemaAttrbutes of allSchemasAttributes) {
|
|
14
|
+
for (const attribute of Object.values(schemaAttrbutes)) {
|
|
15
|
+
if (attribute.type === "customField") {
|
|
16
|
+
const customField = strapi.container.get("custom-fields").get(attribute.customField);
|
|
17
|
+
attribute.type = customField.type;
|
|
18
|
+
}
|
|
17
19
|
}
|
|
20
|
+
}
|
|
18
21
|
};
|
|
19
|
-
exports
|
|
20
|
-
//# sourceMappingURL=convert-custom-field-type.js.map
|
|
22
|
+
module.exports = convertCustomFieldType;
|
|
23
|
+
//# sourceMappingURL=convert-custom-field-type.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert-custom-field-type.js","
|
|
1
|
+
{"version":3,"file":"convert-custom-field-type.js","sources":["../../src/utils/convert-custom-field-type.ts"],"sourcesContent":["import type { Strapi } from '@strapi/types';\n\ntype InputAttributes = {\n [key: string]: {\n type: string;\n customField?: string;\n };\n};\n\nconst convertCustomFieldType = (strapi: Strapi) => {\n const allContentTypeSchemaAttributes = Object.values(strapi.contentTypes).map(\n (schema) => schema.attributes\n );\n\n const allComponentSchemaAttributes = Object.values(strapi.components).map(\n (schema) => schema.attributes\n );\n const allSchemasAttributes: InputAttributes[] = [\n ...allContentTypeSchemaAttributes,\n ...allComponentSchemaAttributes,\n ];\n\n for (const schemaAttrbutes of allSchemasAttributes) {\n for (const attribute of Object.values(schemaAttrbutes)) {\n if (attribute.type === 'customField') {\n const customField = strapi.container.get('custom-fields').get(attribute.customField);\n attribute.type = customField.type;\n }\n }\n }\n};\n\nexport default convertCustomFieldType;\n"],"names":[],"mappings":";AASM,MAAA,yBAAyB,CAAC,WAAmB;AACjD,QAAM,iCAAiC,OAAO,OAAO,OAAO,YAAY,EAAE;AAAA,IACxE,CAAC,WAAW,OAAO;AAAA,EAAA;AAGrB,QAAM,+BAA+B,OAAO,OAAO,OAAO,UAAU,EAAE;AAAA,IACpE,CAAC,WAAW,OAAO;AAAA,EAAA;AAErB,QAAM,uBAA0C;AAAA,IAC9C,GAAG;AAAA,IACH,GAAG;AAAA,EAAA;AAGL,aAAW,mBAAmB,sBAAsB;AAClD,eAAW,aAAa,OAAO,OAAO,eAAe,GAAG;AAClD,UAAA,UAAU,SAAS,eAAe;AAC9B,cAAA,cAAc,OAAO,UAAU,IAAI,eAAe,EAAE,IAAI,UAAU,WAAW;AACnF,kBAAU,OAAO,YAAY;AAAA,MAC/B;AAAA,IACF;AAAA,EACF;AACF;;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
const convertCustomFieldType = (strapi) => {
|
|
2
|
+
const allContentTypeSchemaAttributes = Object.values(strapi.contentTypes).map(
|
|
3
|
+
(schema) => schema.attributes
|
|
4
|
+
);
|
|
5
|
+
const allComponentSchemaAttributes = Object.values(strapi.components).map(
|
|
6
|
+
(schema) => schema.attributes
|
|
7
|
+
);
|
|
8
|
+
const allSchemasAttributes = [
|
|
9
|
+
...allContentTypeSchemaAttributes,
|
|
10
|
+
...allComponentSchemaAttributes
|
|
11
|
+
];
|
|
12
|
+
for (const schemaAttrbutes of allSchemasAttributes) {
|
|
13
|
+
for (const attribute of Object.values(schemaAttrbutes)) {
|
|
14
|
+
if (attribute.type === "customField") {
|
|
15
|
+
const customField = strapi.container.get("custom-fields").get(attribute.customField);
|
|
16
|
+
attribute.type = customField.type;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
export {
|
|
22
|
+
convertCustomFieldType as default
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=convert-custom-field-type.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-custom-field-type.mjs","sources":["../../src/utils/convert-custom-field-type.ts"],"sourcesContent":["import type { Strapi } from '@strapi/types';\n\ntype InputAttributes = {\n [key: string]: {\n type: string;\n customField?: string;\n };\n};\n\nconst convertCustomFieldType = (strapi: Strapi) => {\n const allContentTypeSchemaAttributes = Object.values(strapi.contentTypes).map(\n (schema) => schema.attributes\n );\n\n const allComponentSchemaAttributes = Object.values(strapi.components).map(\n (schema) => schema.attributes\n );\n const allSchemasAttributes: InputAttributes[] = [\n ...allContentTypeSchemaAttributes,\n ...allComponentSchemaAttributes,\n ];\n\n for (const schemaAttrbutes of allSchemasAttributes) {\n for (const attribute of Object.values(schemaAttrbutes)) {\n if (attribute.type === 'customField') {\n const customField = strapi.container.get('custom-fields').get(attribute.customField);\n attribute.type = customField.type;\n }\n }\n }\n};\n\nexport default convertCustomFieldType;\n"],"names":[],"mappings":"AASM,MAAA,yBAAyB,CAAC,WAAmB;AACjD,QAAM,iCAAiC,OAAO,OAAO,OAAO,YAAY,EAAE;AAAA,IACxE,CAAC,WAAW,OAAO;AAAA,EAAA;AAGrB,QAAM,+BAA+B,OAAO,OAAO,OAAO,UAAU,EAAE;AAAA,IACpE,CAAC,WAAW,OAAO;AAAA,EAAA;AAErB,QAAM,uBAA0C;AAAA,IAC9C,GAAG;AAAA,IACH,GAAG;AAAA,EAAA;AAGL,aAAW,mBAAmB,sBAAsB;AAClD,eAAW,aAAa,OAAO,OAAO,eAAe,GAAG;AAClD,UAAA,UAAU,SAAS,eAAe;AAC9B,cAAA,cAAc,OAAO,UAAU,IAAI,eAAe,EAAE,IAAI,UAAU,WAAW;AACnF,kBAAU,OAAO,YAAY;AAAA,MAC/B;AAAA,IACF;AAAA,EACF;AACF;"}
|
package/dist/utils/cron.js
CHANGED
|
@@ -1,56 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports,
|
|
3
|
-
|
|
4
|
-
const fp_1 = require("lodash/fp");
|
|
5
|
-
const DATE_FUNCTIONS = [
|
|
6
|
-
'getSeconds',
|
|
7
|
-
'getMinutes',
|
|
8
|
-
'getHours',
|
|
9
|
-
'getDate',
|
|
10
|
-
'getMonth',
|
|
11
|
-
'getDay',
|
|
12
|
-
];
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const _ = require("lodash/fp");
|
|
13
4
|
const INTEGER_REGEX = /^\d+$/;
|
|
14
5
|
const STEP_REGEX = /^\*\/\d+$/;
|
|
15
6
|
const COMPONENTS = [
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
7
|
+
{ limit: 60, zeroBasedIndices: true, functionName: "getSeconds" },
|
|
8
|
+
{ limit: 60, zeroBasedIndices: true, functionName: "getMinutes" },
|
|
9
|
+
{ limit: 24, zeroBasedIndices: true, functionName: "getHours" },
|
|
10
|
+
{ limit: 31, zeroBasedIndices: false, functionName: "getDate" },
|
|
11
|
+
{ limit: 12, zeroBasedIndices: false, functionName: "getMonth" },
|
|
12
|
+
{ limit: 7, zeroBasedIndices: true, functionName: "getDay" }
|
|
22
13
|
];
|
|
23
14
|
const shift = (component, index, date) => {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
return component;
|
|
15
|
+
if (component === "*") {
|
|
16
|
+
return "*";
|
|
17
|
+
}
|
|
18
|
+
const { limit, zeroBasedIndices, functionName } = COMPONENTS[index];
|
|
19
|
+
const offset = +!zeroBasedIndices;
|
|
20
|
+
const currentValue = date[functionName]();
|
|
21
|
+
if (INTEGER_REGEX.test(component)) {
|
|
22
|
+
return (Number.parseInt(component, 10) + currentValue) % limit + offset;
|
|
23
|
+
}
|
|
24
|
+
if (STEP_REGEX.test(component)) {
|
|
25
|
+
const [, step] = component.split("/");
|
|
26
|
+
const frequency = Math.floor(limit / Number(step));
|
|
27
|
+
const list = Array.from({ length: frequency }, (_2, index2) => index2 * Number(step));
|
|
28
|
+
return list.map((value) => (value + currentValue) % limit + offset).sort((a, b) => a - b);
|
|
29
|
+
}
|
|
30
|
+
return component;
|
|
41
31
|
};
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
* @returns The shifted cron expression.
|
|
47
|
-
*/
|
|
48
|
-
const shiftCronExpression = (rule, date = new Date()) => {
|
|
49
|
-
const components = rule.trim().split(' ').filter((0, fp_1.negate)(fp_1.isEmpty));
|
|
50
|
-
const secondsIncluded = components.length === 6;
|
|
51
|
-
return components
|
|
52
|
-
.map((component, index) => shift(component, secondsIncluded ? index : index + 1, date))
|
|
53
|
-
.join(' ');
|
|
32
|
+
const shiftCronExpression = (rule, date = /* @__PURE__ */ new Date()) => {
|
|
33
|
+
const components = rule.trim().split(" ").filter(_.negate(_.isEmpty));
|
|
34
|
+
const secondsIncluded = components.length === 6;
|
|
35
|
+
return components.map((component, index) => shift(component, secondsIncluded ? index : index + 1, date)).join(" ");
|
|
54
36
|
};
|
|
55
37
|
exports.shiftCronExpression = shiftCronExpression;
|
|
56
|
-
//# sourceMappingURL=cron.js.map
|
|
38
|
+
//# sourceMappingURL=cron.js.map
|
package/dist/utils/cron.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cron.js","
|
|
1
|
+
{"version":3,"file":"cron.js","sources":["../../src/utils/cron.ts"],"sourcesContent":["import { isEmpty, negate } from 'lodash/fp';\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":["_","index","negate","isEmpty"],"mappings":";;;AAWA,MAAM,gBAAgB;AACtB,MAAM,aAAa;AACnB,MAAM,aAIA;AAAA,EACJ,EAAE,OAAO,IAAI,kBAAkB,MAAM,cAAc,aAAa;AAAA,EAChE,EAAE,OAAO,IAAI,kBAAkB,MAAM,cAAc,aAAa;AAAA,EAChE,EAAE,OAAO,IAAI,kBAAkB,MAAM,cAAc,WAAW;AAAA,EAC9D,EAAE,OAAO,IAAI,kBAAkB,OAAO,cAAc,UAAU;AAAA,EAC9D,EAAE,OAAO,IAAI,kBAAkB,OAAO,cAAc,WAAW;AAAA,EAC/D,EAAE,OAAO,GAAG,kBAAkB,MAAM,cAAc,SAAS;AAC7D;AAEA,MAAM,QAAQ,CAAC,WAAmB,OAAe,SAAe;AAC9D,MAAI,cAAc,KAAK;AACd,WAAA;AAAA,EACT;AAEA,QAAM,EAAE,OAAO,kBAAkB,aAAa,IAAI,WAAW,KAAK;AAC5D,QAAA,SAAS,CAAC,CAAC;AACX,QAAA,eAAe,KAAK,YAAY;AAElC,MAAA,cAAc,KAAK,SAAS,GAAG;AACjC,YAAS,OAAO,SAAS,WAAW,EAAE,IAAI,gBAAgB,QAAS;AAAA,EACrE;AAEI,MAAA,WAAW,KAAK,SAAS,GAAG;AAC9B,UAAM,CAAG,EAAA,IAAI,IAAI,UAAU,MAAM,GAAG;AACpC,UAAM,YAAY,KAAK,MAAM,QAAQ,OAAO,IAAI,CAAC;AACjD,UAAM,OAAO,MAAM,KAAK,EAAE,QAAQ,UAAA,GAAa,CAACA,IAAGC,WAAUA,SAAQ,OAAO,IAAI,CAAC;AACjF,WAAO,KAAK,IAAI,CAAC,WAAY,QAAQ,gBAAgB,QAAS,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC;AAAA,EAC5F;AAGO,SAAA;AACT;AAQO,MAAM,sBAAsB,CAAC,MAAc,OAAO,oBAAI,WAAW;AAChE,QAAA,aAAa,KAAK,KAAA,EAAO,MAAM,GAAG,EAAE,OAAOC,EAAAA,OAAOC,EAAO,OAAA,CAAC;AAC1D,QAAA,kBAAkB,WAAW,WAAW;AAC9C,SAAO,WACJ,IAAI,CAAC,WAAW,UAAU,MAAM,WAAW,kBAAkB,QAAQ,QAAQ,GAAG,IAAI,CAAC,EACrF,KAAK,GAAG;AACb;;"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { negate, isEmpty } from "lodash/fp";
|
|
2
|
+
const INTEGER_REGEX = /^\d+$/;
|
|
3
|
+
const STEP_REGEX = /^\*\/\d+$/;
|
|
4
|
+
const COMPONENTS = [
|
|
5
|
+
{ limit: 60, zeroBasedIndices: true, functionName: "getSeconds" },
|
|
6
|
+
{ limit: 60, zeroBasedIndices: true, functionName: "getMinutes" },
|
|
7
|
+
{ limit: 24, zeroBasedIndices: true, functionName: "getHours" },
|
|
8
|
+
{ limit: 31, zeroBasedIndices: false, functionName: "getDate" },
|
|
9
|
+
{ limit: 12, zeroBasedIndices: false, functionName: "getMonth" },
|
|
10
|
+
{ limit: 7, zeroBasedIndices: true, functionName: "getDay" }
|
|
11
|
+
];
|
|
12
|
+
const shift = (component, index, date) => {
|
|
13
|
+
if (component === "*") {
|
|
14
|
+
return "*";
|
|
15
|
+
}
|
|
16
|
+
const { limit, zeroBasedIndices, functionName } = COMPONENTS[index];
|
|
17
|
+
const offset = +!zeroBasedIndices;
|
|
18
|
+
const currentValue = date[functionName]();
|
|
19
|
+
if (INTEGER_REGEX.test(component)) {
|
|
20
|
+
return (Number.parseInt(component, 10) + currentValue) % limit + offset;
|
|
21
|
+
}
|
|
22
|
+
if (STEP_REGEX.test(component)) {
|
|
23
|
+
const [, step] = component.split("/");
|
|
24
|
+
const frequency = Math.floor(limit / Number(step));
|
|
25
|
+
const list = Array.from({ length: frequency }, (_, index2) => index2 * Number(step));
|
|
26
|
+
return list.map((value) => (value + currentValue) % limit + offset).sort((a, b) => a - b);
|
|
27
|
+
}
|
|
28
|
+
return component;
|
|
29
|
+
};
|
|
30
|
+
const shiftCronExpression = (rule, date = /* @__PURE__ */ new Date()) => {
|
|
31
|
+
const components = rule.trim().split(" ").filter(negate(isEmpty));
|
|
32
|
+
const secondsIncluded = components.length === 6;
|
|
33
|
+
return components.map((component, index) => shift(component, secondsIncluded ? index : index + 1, date)).join(" ");
|
|
34
|
+
};
|
|
35
|
+
export {
|
|
36
|
+
shiftCronExpression
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=cron.mjs.map
|