@webiny/background-tasks 0.0.0-unstable.7be00a75a9 → 6.4.0-beta.4
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/admin/BackgroundTaskRoutes.js +20 -13
- package/admin/BackgroundTaskRoutes.js.map +1 -1
- package/admin/BackgroundTasks.js +9 -0
- package/admin/BackgroundTasks.js.map +1 -1
- package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsGateway.d.ts +12 -0
- package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsGateway.js +40 -0
- package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsGateway.js.map +1 -0
- package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsUseCase.d.ts +11 -0
- package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsUseCase.js +18 -0
- package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsUseCase.js.map +1 -0
- package/admin/features/getBackgroundTaskSettings/abstractions.d.ts +15 -0
- package/admin/features/getBackgroundTaskSettings/abstractions.js +6 -0
- package/admin/features/getBackgroundTaskSettings/abstractions.js.map +1 -0
- package/admin/features/getBackgroundTaskSettings/feature.d.ts +3 -0
- package/admin/features/getBackgroundTaskSettings/feature.js +19 -0
- package/admin/features/getBackgroundTaskSettings/feature.js.map +1 -0
- package/admin/features/getBackgroundTaskSettings/index.d.ts +3 -0
- package/admin/features/getBackgroundTaskSettings/index.js +2 -0
- package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsGateway.d.ts +12 -0
- package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsGateway.js +43 -0
- package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsGateway.js.map +1 -0
- package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.d.ts +11 -0
- package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js +18 -0
- package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js.map +1 -0
- package/admin/features/updateBackgroundTaskSettings/abstractions.d.ts +18 -0
- package/admin/features/updateBackgroundTaskSettings/abstractions.js +6 -0
- package/admin/features/updateBackgroundTaskSettings/abstractions.js.map +1 -0
- package/admin/features/updateBackgroundTaskSettings/feature.d.ts +3 -0
- package/admin/features/updateBackgroundTaskSettings/feature.js +19 -0
- package/admin/features/updateBackgroundTaskSettings/feature.js.map +1 -0
- package/admin/features/updateBackgroundTaskSettings/index.d.ts +3 -0
- package/admin/features/updateBackgroundTaskSettings/index.js +2 -0
- package/admin/presentation/BackgroundTaskSettings/BackgroundTaskSettingsPresenter.d.ts +21 -0
- package/admin/presentation/BackgroundTaskSettings/BackgroundTaskSettingsPresenter.js +86 -0
- package/admin/presentation/BackgroundTaskSettings/BackgroundTaskSettingsPresenter.js.map +1 -0
- package/admin/presentation/BackgroundTaskSettings/abstractions.d.ts +16 -0
- package/admin/presentation/BackgroundTaskSettings/abstractions.js +5 -0
- package/admin/presentation/BackgroundTaskSettings/abstractions.js.map +1 -0
- package/admin/presentation/BackgroundTaskSettings/components/BackgroundTaskSettingsView.d.ts +2 -0
- package/admin/presentation/BackgroundTaskSettings/components/BackgroundTaskSettingsView.js +56 -0
- package/admin/presentation/BackgroundTaskSettings/components/BackgroundTaskSettingsView.js.map +1 -0
- package/admin/presentation/BackgroundTaskSettings/feature.d.ts +3 -0
- package/admin/presentation/BackgroundTaskSettings/feature.js +17 -0
- package/admin/presentation/BackgroundTaskSettings/feature.js.map +1 -0
- package/admin/presentation/BackgroundTaskSettings/index.d.ts +2 -0
- package/admin/presentation/BackgroundTaskSettings/index.js +2 -0
- package/admin/presentation/TaskDefinitions/components/TaskDefinitionsView.js +2 -1
- package/admin/presentation/TaskDefinitions/components/TaskDefinitionsView.js.map +1 -1
- package/admin/presentation/TaskDefinitions/components/TaskExecutionsButton.d.ts +2 -0
- package/admin/presentation/TaskDefinitions/components/TaskExecutionsButton.js +16 -0
- package/admin/presentation/TaskDefinitions/components/TaskExecutionsButton.js.map +1 -0
- package/admin/presentation/TaskExecutions/components/TaskDefinitionsButton.d.ts +2 -0
- package/admin/presentation/TaskExecutions/components/TaskDefinitionsButton.js +16 -0
- package/admin/presentation/TaskExecutions/components/TaskDefinitionsButton.js.map +1 -0
- package/admin/presentation/TaskExecutions/components/TaskExecutionsView.js +53 -35
- package/admin/presentation/TaskExecutions/components/TaskExecutionsView.js.map +1 -1
- package/admin/routes.d.ts +1 -0
- package/admin/routes.js +4 -0
- package/admin/routes.js.map +1 -1
- package/admin/shared/types.d.ts +3 -0
- package/api/context.d.ts +2 -0
- package/api/context.js +66 -0
- package/api/context.js.map +1 -0
- package/api/crud/TaskLogPrivateModel.d.ts +9 -0
- package/api/crud/TaskLogPrivateModel.js +40 -0
- package/api/crud/TaskLogPrivateModel.js.map +1 -0
- package/api/crud/TaskPrivateModel.d.ts +9 -0
- package/api/crud/TaskPrivateModel.js +55 -0
- package/api/crud/TaskPrivateModel.js.map +1 -0
- package/api/crud/cleanupTaskSubtree.d.ts +8 -0
- package/api/crud/cleanupTaskSubtree.js +62 -0
- package/api/crud/cleanupTaskSubtree.js.map +1 -0
- package/api/crud/crud.tasks.d.ts +2 -0
- package/api/crud/crud.tasks.js +318 -0
- package/api/crud/crud.tasks.js.map +1 -0
- package/api/crud/definition.tasks.d.ts +2 -0
- package/api/crud/definition.tasks.js +17 -0
- package/api/crud/definition.tasks.js.map +1 -0
- package/api/crud/service.tasks.d.ts +2 -0
- package/api/crud/service.tasks.js +130 -0
- package/api/crud/service.tasks.js.map +1 -0
- package/api/decorators/RunnableTaskDecorator.d.ts +32 -0
- package/api/decorators/RunnableTaskDecorator.js +69 -0
- package/api/decorators/RunnableTaskDecorator.js.map +1 -0
- package/api/decorators/SelfCleaningTaskDecorator.d.ts +30 -0
- package/api/decorators/SelfCleaningTaskDecorator.js +84 -0
- package/api/decorators/SelfCleaningTaskDecorator.js.map +1 -0
- package/api/domain/BackgroundTaskSettings.d.ts +3 -0
- package/api/domain/BackgroundTaskSettings.js +0 -0
- package/api/domain/constants.d.ts +3 -0
- package/api/domain/constants.js +6 -0
- package/api/domain/constants.js.map +1 -0
- package/api/domain/errors.d.ts +57 -0
- package/api/domain/errors.js +101 -0
- package/api/domain/errors.js.map +1 -0
- package/api/events/TaskAfterCreateEvent.d.ts +6 -0
- package/api/events/TaskAfterCreateEvent.js +13 -0
- package/api/events/TaskAfterCreateEvent.js.map +1 -0
- package/api/events/TaskAfterDeleteEvent.d.ts +6 -0
- package/api/events/TaskAfterDeleteEvent.js +13 -0
- package/api/events/TaskAfterDeleteEvent.js.map +1 -0
- package/api/events/TaskAfterUpdateEvent.d.ts +6 -0
- package/api/events/TaskAfterUpdateEvent.js +13 -0
- package/api/events/TaskAfterUpdateEvent.js.map +1 -0
- package/api/events/TaskBeforeCreateEvent.d.ts +6 -0
- package/api/events/TaskBeforeCreateEvent.js +13 -0
- package/api/events/TaskBeforeCreateEvent.js.map +1 -0
- package/api/events/TaskBeforeDeleteEvent.d.ts +6 -0
- package/api/events/TaskBeforeDeleteEvent.js +13 -0
- package/api/events/TaskBeforeDeleteEvent.js.map +1 -0
- package/api/events/TaskBeforeUpdateEvent.d.ts +6 -0
- package/api/events/TaskBeforeUpdateEvent.js +13 -0
- package/api/events/TaskBeforeUpdateEvent.js.map +1 -0
- package/api/events/abstractions.d.ts +53 -0
- package/api/events/abstractions.js +10 -0
- package/api/events/abstractions.js.map +1 -0
- package/api/events/index.d.ts +7 -0
- package/api/events/index.js +7 -0
- package/api/features/AbortTask/AbortTaskUseCase.d.ts +10 -0
- package/api/features/AbortTask/AbortTaskUseCase.js +12 -0
- package/api/features/AbortTask/AbortTaskUseCase.js.map +1 -0
- package/api/features/AbortTask/abstractions.d.ts +25 -0
- package/api/features/AbortTask/abstractions.js +5 -0
- package/api/features/AbortTask/abstractions.js.map +1 -0
- package/api/features/AbortTask/feature.d.ts +5 -0
- package/api/features/AbortTask/feature.js +12 -0
- package/api/features/AbortTask/feature.js.map +1 -0
- package/api/features/AbortTask/index.d.ts +2 -0
- package/api/features/AbortTask/index.js +2 -0
- package/api/features/BackgroundTaskPermissions/abstractions.d.ts +17 -0
- package/api/features/BackgroundTaskPermissions/abstractions.js +6 -0
- package/api/features/BackgroundTaskPermissions/abstractions.js.map +1 -0
- package/api/features/BackgroundTaskPermissions/feature.d.ts +4 -0
- package/api/features/BackgroundTaskPermissions/feature.js +7 -0
- package/api/features/BackgroundTaskPermissions/feature.js.map +1 -0
- package/api/features/BackgroundTaskPermissions/index.d.ts +2 -0
- package/api/features/BackgroundTaskPermissions/index.js +2 -0
- package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.d.ts +7 -0
- package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js +11 -0
- package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js.map +1 -0
- package/api/features/CleanupTaskSubtree/abstractions.d.ts +7 -0
- package/api/features/CleanupTaskSubtree/abstractions.js +5 -0
- package/api/features/CleanupTaskSubtree/abstractions.js.map +1 -0
- package/api/features/CleanupTaskSubtree/index.d.ts +2 -0
- package/api/features/CleanupTaskSubtree/index.js +2 -0
- package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.d.ts +21 -0
- package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.js +60 -0
- package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.js.map +1 -0
- package/api/features/GetBackgroundTaskSettings/abstractions.d.ts +13 -0
- package/api/features/GetBackgroundTaskSettings/abstractions.js +5 -0
- package/api/features/GetBackgroundTaskSettings/abstractions.js.map +1 -0
- package/api/features/GetBackgroundTaskSettings/feature.d.ts +4 -0
- package/api/features/GetBackgroundTaskSettings/feature.js +11 -0
- package/api/features/GetBackgroundTaskSettings/feature.js.map +1 -0
- package/api/features/GetBackgroundTaskSettings/index.d.ts +2 -0
- package/api/features/GetBackgroundTaskSettings/index.js +2 -0
- package/api/features/GetTask/GetTaskUseCase.d.ts +9 -0
- package/api/features/GetTask/GetTaskUseCase.js +11 -0
- package/api/features/GetTask/GetTaskUseCase.js.map +1 -0
- package/api/features/GetTask/abstractions.d.ts +10 -0
- package/api/features/GetTask/abstractions.js +5 -0
- package/api/features/GetTask/abstractions.js.map +1 -0
- package/api/features/GetTask/feature.d.ts +5 -0
- package/api/features/GetTask/feature.js +12 -0
- package/api/features/GetTask/feature.js.map +1 -0
- package/api/features/GetTask/index.d.ts +2 -0
- package/api/features/GetTask/index.js +2 -0
- package/api/features/GetTaskDefinition/GetTaskDefinitionUseCase.d.ts +12 -0
- package/api/features/GetTaskDefinition/GetTaskDefinitionUseCase.js +27 -0
- package/api/features/GetTaskDefinition/GetTaskDefinitionUseCase.js.map +1 -0
- package/api/features/GetTaskDefinition/abstractions.d.ts +17 -0
- package/api/features/GetTaskDefinition/abstractions.js +5 -0
- package/api/features/GetTaskDefinition/abstractions.js.map +1 -0
- package/api/features/GetTaskDefinition/feature.d.ts +4 -0
- package/api/features/GetTaskDefinition/feature.js +11 -0
- package/api/features/GetTaskDefinition/feature.js.map +1 -0
- package/api/features/GetTaskDefinition/index.d.ts +2 -0
- package/api/features/GetTaskDefinition/index.js +2 -0
- package/api/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.d.ts +11 -0
- package/api/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js +24 -0
- package/api/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js.map +1 -0
- package/api/features/ListTaskDefinitions/abstractions.d.ts +9 -0
- package/api/features/ListTaskDefinitions/abstractions.js +5 -0
- package/api/features/ListTaskDefinitions/abstractions.js.map +1 -0
- package/api/features/ListTaskDefinitions/feature.d.ts +4 -0
- package/api/features/ListTaskDefinitions/feature.js +11 -0
- package/api/features/ListTaskDefinitions/feature.js.map +1 -0
- package/api/features/ListTaskDefinitions/index.d.ts +2 -0
- package/api/features/ListTaskDefinitions/index.js +2 -0
- package/api/features/ListTasks/ListTasksUseCase.d.ts +9 -0
- package/api/features/ListTasks/ListTasksUseCase.js +11 -0
- package/api/features/ListTasks/ListTasksUseCase.js.map +1 -0
- package/api/features/ListTasks/abstractions.d.ts +13 -0
- package/api/features/ListTasks/abstractions.js +5 -0
- package/api/features/ListTasks/abstractions.js.map +1 -0
- package/api/features/ListTasks/feature.d.ts +5 -0
- package/api/features/ListTasks/feature.js +12 -0
- package/api/features/ListTasks/feature.js.map +1 -0
- package/api/features/ListTasks/index.d.ts +2 -0
- package/api/features/ListTasks/index.js +2 -0
- package/api/features/TaskController/TaskController.d.ts +49 -0
- package/api/features/TaskController/TaskController.js +71 -0
- package/api/features/TaskController/TaskController.js.map +1 -0
- package/api/features/TaskController/augmentation.d.ts +60 -0
- package/api/features/TaskController/augmentation.js +0 -0
- package/api/features/TaskController/index.d.ts +2 -0
- package/api/features/TaskController/index.js +2 -0
- package/api/features/TaskExecutionContext/TaskExecutionContext.d.ts +24 -0
- package/api/features/TaskExecutionContext/TaskExecutionContext.js +43 -0
- package/api/features/TaskExecutionContext/TaskExecutionContext.js.map +1 -0
- package/api/features/TaskExecutionContext/abstractions.d.ts +26 -0
- package/api/features/TaskExecutionContext/abstractions.js +5 -0
- package/api/features/TaskExecutionContext/abstractions.js.map +1 -0
- package/api/features/TaskExecutionContext/feature.d.ts +4 -0
- package/api/features/TaskExecutionContext/feature.js +11 -0
- package/api/features/TaskExecutionContext/feature.js.map +1 -0
- package/api/features/TaskExecutionContext/index.d.ts +1 -0
- package/api/features/TaskExecutionContext/index.js +1 -0
- package/api/features/TriggerTask/TriggerTaskUseCase.d.ts +10 -0
- package/api/features/TriggerTask/TriggerTaskUseCase.js +12 -0
- package/api/features/TriggerTask/TriggerTaskUseCase.js.map +1 -0
- package/api/features/TriggerTask/abstractions.d.ts +28 -0
- package/api/features/TriggerTask/abstractions.js +5 -0
- package/api/features/TriggerTask/abstractions.js.map +1 -0
- package/api/features/TriggerTask/feature.d.ts +5 -0
- package/api/features/TriggerTask/feature.js +12 -0
- package/api/features/TriggerTask/feature.js.map +1 -0
- package/api/features/TriggerTask/index.d.ts +2 -0
- package/api/features/TriggerTask/index.js +2 -0
- package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.d.ts +23 -0
- package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.js +64 -0
- package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.js.map +1 -0
- package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.d.ts +14 -0
- package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js +27 -0
- package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js.map +1 -0
- package/api/features/UpdateBackgroundTaskSettings/abstractions.d.ts +26 -0
- package/api/features/UpdateBackgroundTaskSettings/abstractions.js +6 -0
- package/api/features/UpdateBackgroundTaskSettings/abstractions.js.map +1 -0
- package/api/features/UpdateBackgroundTaskSettings/feature.d.ts +4 -0
- package/api/features/UpdateBackgroundTaskSettings/feature.js +13 -0
- package/api/features/UpdateBackgroundTaskSettings/feature.js.map +1 -0
- package/api/features/UpdateBackgroundTaskSettings/index.d.ts +2 -0
- package/api/features/UpdateBackgroundTaskSettings/index.js +2 -0
- package/api/features/UpdateBackgroundTaskSettings/schema.d.ts +4 -0
- package/api/features/UpdateBackgroundTaskSettings/schema.js +8 -0
- package/api/features/UpdateBackgroundTaskSettings/schema.js.map +1 -0
- package/api/global.d.ts +1 -0
- package/api/global.js +1 -0
- package/api/graphql/BackgroundTaskSettingsSchema.d.ts +2 -0
- package/api/graphql/BackgroundTaskSettingsSchema.js +84 -0
- package/api/graphql/BackgroundTaskSettingsSchema.js.map +1 -0
- package/api/graphql/checkPermissions.d.ts +7 -0
- package/api/graphql/checkPermissions.js +21 -0
- package/api/graphql/checkPermissions.js.map +1 -0
- package/api/graphql/index.d.ts +2 -0
- package/api/graphql/index.js +302 -0
- package/api/graphql/index.js.map +1 -0
- package/api/graphql/utils.d.ts +9 -0
- package/api/graphql/utils.js +20 -0
- package/api/graphql/utils.js.map +1 -0
- package/api/handler/index.d.ts +6 -0
- package/api/handler/index.js +55 -0
- package/api/handler/index.js.map +1 -0
- package/api/handler/register.d.ts +1 -0
- package/api/handler/register.js +15 -0
- package/api/handler/register.js.map +1 -0
- package/api/handler/types.d.ts +23 -0
- package/api/handler/types.js +0 -0
- package/api/index.d.ts +5 -0
- package/api/index.js +5 -0
- package/api/models/BackgroundTaskSettingsModel.d.ts +8 -0
- package/api/models/BackgroundTaskSettingsModel.js +27 -0
- package/api/models/BackgroundTaskSettingsModel.js.map +1 -0
- package/api/permissions.d.ts +12 -0
- package/api/permissions.js +22 -0
- package/api/permissions.js.map +1 -0
- package/api/plugins/TaskServicePlugin.d.ts +19 -0
- package/api/plugins/TaskServicePlugin.js +13 -0
- package/api/plugins/TaskServicePlugin.js.map +1 -0
- package/api/plugins/index.d.ts +1 -0
- package/api/plugins/index.js +1 -0
- package/api/response/DatabaseResponse.d.ts +12 -0
- package/api/response/DatabaseResponse.js +127 -0
- package/api/response/DatabaseResponse.js.map +1 -0
- package/api/response/Response.d.ts +14 -0
- package/api/response/Response.js +91 -0
- package/api/response/Response.js.map +1 -0
- package/api/response/ResponseAbortedResult.d.ts +9 -0
- package/api/response/ResponseAbortedResult.js +12 -0
- package/api/response/ResponseAbortedResult.js.map +1 -0
- package/api/response/ResponseContinueResult.d.ts +17 -0
- package/api/response/ResponseContinueResult.js +16 -0
- package/api/response/ResponseContinueResult.js.map +1 -0
- package/api/response/ResponseDoneResult.d.ts +11 -0
- package/api/response/ResponseDoneResult.js +14 -0
- package/api/response/ResponseDoneResult.js.map +1 -0
- package/api/response/ResponseErrorResult.d.ts +10 -0
- package/api/response/ResponseErrorResult.js +13 -0
- package/api/response/ResponseErrorResult.js.map +1 -0
- package/api/response/TaskResponse.d.ts +12 -0
- package/api/response/TaskResponse.js +53 -0
- package/api/response/TaskResponse.js.map +1 -0
- package/api/response/abstractions/Response.d.ts +25 -0
- package/api/response/abstractions/Response.js +0 -0
- package/api/response/abstractions/ResponseAbortedResult.d.ts +5 -0
- package/api/response/abstractions/ResponseAbortedResult.js +0 -0
- package/api/response/abstractions/ResponseBaseResult.d.ts +7 -0
- package/api/response/abstractions/ResponseBaseResult.js +0 -0
- package/api/response/abstractions/ResponseContinueResult.d.ts +21 -0
- package/api/response/abstractions/ResponseContinueResult.js +0 -0
- package/api/response/abstractions/ResponseDoneResult.d.ts +13 -0
- package/api/response/abstractions/ResponseDoneResult.js +0 -0
- package/api/response/abstractions/ResponseErrorResult.d.ts +18 -0
- package/api/response/abstractions/ResponseErrorResult.js +0 -0
- package/api/response/abstractions/TaskResponse.d.ts +16 -0
- package/api/response/abstractions/TaskResponse.js +0 -0
- package/api/response/abstractions/index.d.ts +7 -0
- package/api/response/abstractions/index.js +7 -0
- package/api/response/index.d.ts +7 -0
- package/api/response/index.js +7 -0
- package/api/runner/TaskControl.d.ts +14 -0
- package/api/runner/TaskControl.js +173 -0
- package/api/runner/TaskControl.js.map +1 -0
- package/api/runner/TaskEventValidation.d.ts +5 -0
- package/api/runner/TaskEventValidation.js +20 -0
- package/api/runner/TaskEventValidation.js.map +1 -0
- package/api/runner/TaskManager.d.ts +11 -0
- package/api/runner/TaskManager.js +81 -0
- package/api/runner/TaskManager.js.map +1 -0
- package/api/runner/TaskManagerStore.d.ts +40 -0
- package/api/runner/TaskManagerStore.js +109 -0
- package/api/runner/TaskManagerStore.js.map +1 -0
- package/api/runner/TaskRunner.d.ts +25 -0
- package/api/runner/TaskRunner.js +55 -0
- package/api/runner/TaskRunner.js.map +1 -0
- package/api/runner/abstractions/TaskControl.d.ts +10 -0
- package/api/runner/abstractions/TaskControl.js +0 -0
- package/api/runner/abstractions/TaskEventValidation.d.ts +5 -0
- package/api/runner/abstractions/TaskEventValidation.js +0 -0
- package/api/runner/abstractions/TaskManager.d.ts +5 -0
- package/api/runner/abstractions/TaskManager.js +0 -0
- package/api/runner/abstractions/TaskManagerStore.d.ts +92 -0
- package/api/runner/abstractions/TaskManagerStore.js +0 -0
- package/api/runner/abstractions/TaskRunner.d.ts +13 -0
- package/api/runner/abstractions/TaskRunner.js +0 -0
- package/api/runner/abstractions/index.d.ts +5 -0
- package/api/runner/abstractions/index.js +5 -0
- package/api/runner/index.d.ts +1 -0
- package/api/runner/index.js +1 -0
- package/api/service/EventBridgeEventTransportPlugin.d.ts +16 -0
- package/api/service/EventBridgeEventTransportPlugin.js +52 -0
- package/api/service/EventBridgeEventTransportPlugin.js.map +1 -0
- package/api/service/StepFunctionServicePlugin.d.ts +25 -0
- package/api/service/StepFunctionServicePlugin.js +77 -0
- package/api/service/StepFunctionServicePlugin.js.map +1 -0
- package/api/service/createService.d.ts +6 -0
- package/api/service/createService.js +16 -0
- package/api/service/createService.js.map +1 -0
- package/api/service/index.d.ts +4 -0
- package/api/service/index.js +12 -0
- package/api/service/index.js.map +1 -0
- package/api/tasks/testingRunTask.d.ts +11 -0
- package/api/tasks/testingRunTask.js +18 -0
- package/api/tasks/testingRunTask.js.map +1 -0
- package/api/types.d.ts +167 -0
- package/api/types.js +20 -0
- package/api/types.js.map +1 -0
- package/api/utils/ObjectUpdater.d.ts +8 -0
- package/api/utils/ObjectUpdater.js +33 -0
- package/api/utils/ObjectUpdater.js.map +1 -0
- package/api/utils/getErrorProperties.d.ts +2 -0
- package/api/utils/getErrorProperties.js +9 -0
- package/api/utils/getErrorProperties.js.map +1 -0
- package/api/utils/getObjectProperties.d.ts +8 -0
- package/api/utils/getObjectProperties.js +11 -0
- package/api/utils/getObjectProperties.js.map +1 -0
- package/api/utils/index.d.ts +3 -0
- package/api/utils/index.js +3 -0
- package/api/utils/normalizeSelfCleanup.d.ts +2 -0
- package/api/utils/normalizeSelfCleanup.js +16 -0
- package/api/utils/normalizeSelfCleanup.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/package.json +28 -11
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js","sources":["../../../../src/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n UpdateBackgroundTaskSettingsRepository,\n UpdateBackgroundTaskSettingsUseCase as UseCaseAbstraction\n} from \"./abstractions.js\";\nimport { UpdateBackgroundTaskSettingsInputSchema } from \"./schema.js\";\nimport {\n BackgroundTaskNotAuthorizedError,\n BackgroundTaskValidationError\n} from \"~/api/domain/errors.js\";\nimport type { IBackgroundTaskSettings } from \"~/api/domain/BackgroundTaskSettings.js\";\nimport { BackgroundTaskPermissions } from \"~/api/features/BackgroundTaskPermissions/abstractions.js\";\n\nclass UpdateBackgroundTaskSettingsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private readonly permissions: BackgroundTaskPermissions.Interface,\n private readonly repository: UpdateBackgroundTaskSettingsRepository.Interface\n ) {}\n\n async execute(\n input: UseCaseAbstraction.Input\n ): Promise<Result<IBackgroundTaskSettings, UseCaseAbstraction.Error>> {\n if (!(await this.permissions.canEdit(\"task\"))) {\n return Result.fail(new BackgroundTaskNotAuthorizedError());\n }\n\n const parsed = UpdateBackgroundTaskSettingsInputSchema.safeParse(input);\n if (!parsed.success) {\n return Result.fail(new BackgroundTaskValidationError(parsed.error));\n }\n\n return this.repository.execute(parsed.data);\n }\n}\n\nexport const UpdateBackgroundTaskSettingsUseCase = UseCaseAbstraction.createImplementation({\n implementation: UpdateBackgroundTaskSettingsUseCaseImpl,\n dependencies: [BackgroundTaskPermissions, UpdateBackgroundTaskSettingsRepository]\n});\n"],"names":["UpdateBackgroundTaskSettingsUseCaseImpl","permissions","repository","input","Result","BackgroundTaskNotAuthorizedError","parsed","UpdateBackgroundTaskSettingsInputSchema","BackgroundTaskValidationError","UpdateBackgroundTaskSettingsUseCase","UseCaseAbstraction","BackgroundTaskPermissions","UpdateBackgroundTaskSettingsRepository"],"mappings":";;;;;AAaA,MAAMA;IACF,YACqBC,WAAgD,EAChDC,UAA4D,CAC/E;aAFmBD,WAAW,GAAXA;aACAC,UAAU,GAAVA;IAClB;IAEH,MAAM,QACFC,KAA+B,EACmC;QAClE,IAAI,CAAE,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SACjC,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAG3B,MAAMC,SAASC,wCAAwC,SAAS,CAACJ;QACjE,IAAI,CAACG,OAAO,OAAO,EACf,OAAOF,OAAO,IAAI,CAAC,IAAII,8BAA8BF,OAAO,KAAK;QAGrE,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAACA,OAAO,IAAI;IAC9C;AACJ;AAEO,MAAMG,0EAAsCC,oCAAAA,oBAAuC,CAAC;IACvF,gBAAgBV;IAChB,cAAc;QAACW;QAA2BC;KAAuC;AACrF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type Result } from "@webiny/feature/api";
|
|
2
|
+
import type { IBackgroundTaskSettings } from "../../../api/domain/BackgroundTaskSettings.js";
|
|
3
|
+
import type { BackgroundTaskModelNotFoundError, BackgroundTaskNotAuthorizedError, BackgroundTaskPersistenceError, BackgroundTaskValidationError } from "../../../api/domain/errors.js";
|
|
4
|
+
export interface IUpdateBackgroundTaskSettingsInput {
|
|
5
|
+
retentionDays?: number;
|
|
6
|
+
}
|
|
7
|
+
type IError = BackgroundTaskModelNotFoundError | BackgroundTaskPersistenceError | BackgroundTaskNotAuthorizedError | BackgroundTaskValidationError;
|
|
8
|
+
export interface IUpdateBackgroundTaskSettingsUseCase {
|
|
9
|
+
execute(input: IUpdateBackgroundTaskSettingsInput): Promise<Result<IBackgroundTaskSettings, IError>>;
|
|
10
|
+
}
|
|
11
|
+
export declare const UpdateBackgroundTaskSettingsUseCase: import("@webiny/di").Abstraction<IUpdateBackgroundTaskSettingsUseCase>;
|
|
12
|
+
export declare namespace UpdateBackgroundTaskSettingsUseCase {
|
|
13
|
+
type Interface = IUpdateBackgroundTaskSettingsUseCase;
|
|
14
|
+
type Input = IUpdateBackgroundTaskSettingsInput;
|
|
15
|
+
type Error = IError;
|
|
16
|
+
}
|
|
17
|
+
type IRepositoryError = BackgroundTaskModelNotFoundError | BackgroundTaskPersistenceError;
|
|
18
|
+
export interface IUpdateBackgroundTaskSettingsRepository {
|
|
19
|
+
execute(input: IUpdateBackgroundTaskSettingsInput): Promise<Result<IBackgroundTaskSettings, IRepositoryError>>;
|
|
20
|
+
}
|
|
21
|
+
export declare const UpdateBackgroundTaskSettingsRepository: import("@webiny/di").Abstraction<IUpdateBackgroundTaskSettingsRepository>;
|
|
22
|
+
export declare namespace UpdateBackgroundTaskSettingsRepository {
|
|
23
|
+
type Interface = IUpdateBackgroundTaskSettingsRepository;
|
|
24
|
+
type Error = IRepositoryError;
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
+
const UpdateBackgroundTaskSettingsUseCase = createAbstraction("BackgroundTasks/UpdateBackgroundTaskSettingsUseCase");
|
|
3
|
+
const UpdateBackgroundTaskSettingsRepository = createAbstraction("BackgroundTasks/UpdateBackgroundTaskSettingsRepository");
|
|
4
|
+
export { UpdateBackgroundTaskSettingsRepository, UpdateBackgroundTaskSettingsUseCase };
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=abstractions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/UpdateBackgroundTaskSettings/abstractions.js","sources":["../../../../src/api/features/UpdateBackgroundTaskSettings/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IBackgroundTaskSettings } from \"~/api/domain/BackgroundTaskSettings.js\";\nimport type {\n BackgroundTaskModelNotFoundError,\n BackgroundTaskNotAuthorizedError,\n BackgroundTaskPersistenceError,\n BackgroundTaskValidationError\n} from \"~/api/domain/errors.js\";\n\nexport interface IUpdateBackgroundTaskSettingsInput {\n retentionDays?: number;\n}\n\ntype IError =\n | BackgroundTaskModelNotFoundError\n | BackgroundTaskPersistenceError\n | BackgroundTaskNotAuthorizedError\n | BackgroundTaskValidationError;\n\nexport interface IUpdateBackgroundTaskSettingsUseCase {\n execute(\n input: IUpdateBackgroundTaskSettingsInput\n ): Promise<Result<IBackgroundTaskSettings, IError>>;\n}\n\nexport const UpdateBackgroundTaskSettingsUseCase =\n createAbstraction<IUpdateBackgroundTaskSettingsUseCase>(\n \"BackgroundTasks/UpdateBackgroundTaskSettingsUseCase\"\n );\n\nexport namespace UpdateBackgroundTaskSettingsUseCase {\n export type Interface = IUpdateBackgroundTaskSettingsUseCase;\n export type Input = IUpdateBackgroundTaskSettingsInput;\n export type Error = IError;\n}\n\ntype IRepositoryError = BackgroundTaskModelNotFoundError | BackgroundTaskPersistenceError;\n\nexport interface IUpdateBackgroundTaskSettingsRepository {\n execute(\n input: IUpdateBackgroundTaskSettingsInput\n ): Promise<Result<IBackgroundTaskSettings, IRepositoryError>>;\n}\n\nexport const UpdateBackgroundTaskSettingsRepository =\n createAbstraction<IUpdateBackgroundTaskSettingsRepository>(\n \"BackgroundTasks/UpdateBackgroundTaskSettingsRepository\"\n );\n\nexport namespace UpdateBackgroundTaskSettingsRepository {\n export type Interface = IUpdateBackgroundTaskSettingsRepository;\n export type Error = IRepositoryError;\n}\n"],"names":["UpdateBackgroundTaskSettingsUseCase","createAbstraction","UpdateBackgroundTaskSettingsRepository"],"mappings":";AAyBO,MAAMA,sCACTC,kBACI;AAiBD,MAAMC,yCACTD,kBACI"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { UpdateBackgroundTaskSettingsUseCase } from "./UpdateBackgroundTaskSettingsUseCase.js";
|
|
3
|
+
import { UpdateBackgroundTaskSettingsRepository } from "./UpdateBackgroundTaskSettingsRepository.js";
|
|
4
|
+
const UpdateBackgroundTaskSettingsFeature = createFeature({
|
|
5
|
+
name: "UpdateBackgroundTaskSettings",
|
|
6
|
+
register (container) {
|
|
7
|
+
container.register(UpdateBackgroundTaskSettingsUseCase);
|
|
8
|
+
container.register(UpdateBackgroundTaskSettingsRepository).inSingletonScope();
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
export { UpdateBackgroundTaskSettingsFeature };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/UpdateBackgroundTaskSettings/feature.js","sources":["../../../../src/api/features/UpdateBackgroundTaskSettings/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { UpdateBackgroundTaskSettingsUseCase } from \"./UpdateBackgroundTaskSettingsUseCase.js\";\nimport { UpdateBackgroundTaskSettingsRepository } from \"./UpdateBackgroundTaskSettingsRepository.js\";\n\nexport const UpdateBackgroundTaskSettingsFeature = createFeature({\n name: \"UpdateBackgroundTaskSettings\",\n register(container) {\n container.register(UpdateBackgroundTaskSettingsUseCase);\n container.register(UpdateBackgroundTaskSettingsRepository).inSingletonScope();\n }\n});\n"],"names":["UpdateBackgroundTaskSettingsFeature","createFeature","container","UpdateBackgroundTaskSettingsUseCase","UpdateBackgroundTaskSettingsRepository"],"mappings":";;;AAIO,MAAMA,sCAAsCC,cAAc;IAC7D,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE,wCAAwC,gBAAgB;IAC/E;AACJ"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { BACKGROUND_TASK_MAX_RETENTION_DAYS } from "../../domain/constants.js";
|
|
3
|
+
const UpdateBackgroundTaskSettingsInputSchema = z.object({
|
|
4
|
+
retentionDays: z.number().int().min(0).max(BACKGROUND_TASK_MAX_RETENTION_DAYS).optional()
|
|
5
|
+
});
|
|
6
|
+
export { UpdateBackgroundTaskSettingsInputSchema };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/UpdateBackgroundTaskSettings/schema.js","sources":["../../../../src/api/features/UpdateBackgroundTaskSettings/schema.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { BACKGROUND_TASK_MAX_RETENTION_DAYS } from \"~/api/domain/constants.js\";\n\nexport const UpdateBackgroundTaskSettingsInputSchema = z.object({\n retentionDays: z.number().int().min(0).max(BACKGROUND_TASK_MAX_RETENTION_DAYS).optional()\n});\n"],"names":["UpdateBackgroundTaskSettingsInputSchema","z","BACKGROUND_TASK_MAX_RETENTION_DAYS"],"mappings":";;AAGO,MAAMA,0CAA0CC,EAAE,MAAM,CAAC;IAC5D,eAAeA,EAAE,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAACC,oCAAoC,QAAQ;AAC3F"}
|
package/api/global.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./features/TaskController/augmentation.js";
|
package/api/global.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./features/TaskController/augmentation.js";
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { GraphQLSchemaPlugin } from "@webiny/handler-graphql";
|
|
2
|
+
import { ContextPlugin } from "@webiny/handler";
|
|
3
|
+
import { GetBackgroundTaskSettingsRepository } from "../features/GetBackgroundTaskSettings/abstractions.js";
|
|
4
|
+
import { UpdateBackgroundTaskSettingsUseCase } from "../features/UpdateBackgroundTaskSettings/abstractions.js";
|
|
5
|
+
import { checkPermissions } from "./checkPermissions.js";
|
|
6
|
+
const resolve = async (fn)=>{
|
|
7
|
+
try {
|
|
8
|
+
const data = await fn();
|
|
9
|
+
return {
|
|
10
|
+
data,
|
|
11
|
+
error: null
|
|
12
|
+
};
|
|
13
|
+
} catch (error) {
|
|
14
|
+
return {
|
|
15
|
+
data: null,
|
|
16
|
+
error: {
|
|
17
|
+
message: error.message,
|
|
18
|
+
code: error.code,
|
|
19
|
+
data: error.data
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
const createBackgroundTaskSettingsGraphQL = ()=>{
|
|
25
|
+
const plugin = new ContextPlugin(async (ctx)=>{
|
|
26
|
+
if (!ctx.tenancy.getCurrentTenant()) return;
|
|
27
|
+
const schema = new GraphQLSchemaPlugin({
|
|
28
|
+
typeDefs: `
|
|
29
|
+
type WebinyBackgroundTaskSettings {
|
|
30
|
+
retentionDays: Int
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
type WebinyBackgroundTaskSettingsResponse {
|
|
34
|
+
data: WebinyBackgroundTaskSettings
|
|
35
|
+
error: WebinyBackgroundTaskError
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
input UpdateBackgroundTaskSettingsInput {
|
|
39
|
+
retentionDays: Int
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
extend type WebinyBackgroundTaskQuery {
|
|
43
|
+
getSettings: WebinyBackgroundTaskSettingsResponse
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
extend type WebinyBackgroundTaskMutation {
|
|
47
|
+
updateSettings(
|
|
48
|
+
input: UpdateBackgroundTaskSettingsInput!
|
|
49
|
+
): WebinyBackgroundTaskSettingsResponse
|
|
50
|
+
}
|
|
51
|
+
`,
|
|
52
|
+
resolvers: {
|
|
53
|
+
WebinyBackgroundTaskQuery: {
|
|
54
|
+
getSettings: async (_, __, context)=>resolve(async ()=>{
|
|
55
|
+
await checkPermissions(context, {
|
|
56
|
+
rwd: "r"
|
|
57
|
+
});
|
|
58
|
+
const repository = context.container.resolve(GetBackgroundTaskSettingsRepository);
|
|
59
|
+
const result = await repository.execute();
|
|
60
|
+
if (result.isFail()) throw result.error;
|
|
61
|
+
return result.value;
|
|
62
|
+
})
|
|
63
|
+
},
|
|
64
|
+
WebinyBackgroundTaskMutation: {
|
|
65
|
+
updateSettings: async (_, args, context)=>resolve(async ()=>{
|
|
66
|
+
const useCase = context.container.resolve(UpdateBackgroundTaskSettingsUseCase);
|
|
67
|
+
const result = await useCase.execute(args.input);
|
|
68
|
+
if (result.isFail()) throw result.error;
|
|
69
|
+
return result.value;
|
|
70
|
+
})
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
schema.name = "backgroundTasks.settings.graphql.schema";
|
|
75
|
+
ctx.plugins.register(schema);
|
|
76
|
+
});
|
|
77
|
+
plugin.name = "backgroundTasks.settings.graphql";
|
|
78
|
+
return [
|
|
79
|
+
plugin
|
|
80
|
+
];
|
|
81
|
+
};
|
|
82
|
+
export { createBackgroundTaskSettingsGraphQL };
|
|
83
|
+
|
|
84
|
+
//# sourceMappingURL=BackgroundTaskSettingsSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/graphql/BackgroundTaskSettingsSchema.js","sources":["../../../src/api/graphql/BackgroundTaskSettingsSchema.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { ContextPlugin } from \"@webiny/handler\";\nimport type { Context } from \"~/api/types.js\";\nimport { GetBackgroundTaskSettingsRepository } from \"~/api/features/GetBackgroundTaskSettings/abstractions.js\";\nimport { UpdateBackgroundTaskSettingsUseCase } from \"~/api/features/UpdateBackgroundTaskSettings/abstractions.js\";\nimport type { IUpdateBackgroundTaskSettingsInput } from \"~/api/features/UpdateBackgroundTaskSettings/abstractions.js\";\nimport type { Plugin } from \"@webiny/plugins/types.js\";\nimport { checkPermissions } from \"./checkPermissions.js\";\n\ninterface IUpdateSettingsArgs {\n input: IUpdateBackgroundTaskSettingsInput;\n}\n\nconst resolve = async <T = unknown>(fn: () => Promise<T>) => {\n try {\n const data = await fn();\n return { data, error: null };\n } catch (error: any) {\n return {\n data: null,\n error: {\n message: error.message,\n code: error.code,\n data: error.data\n }\n };\n }\n};\n\nexport const createBackgroundTaskSettingsGraphQL = (): Plugin[] => {\n const plugin = new ContextPlugin<Context>(async ctx => {\n if (!ctx.tenancy.getCurrentTenant()) {\n return;\n }\n\n const schema = new GraphQLSchemaPlugin<Context>({\n typeDefs: /* GraphQL */ `\n type WebinyBackgroundTaskSettings {\n retentionDays: Int\n }\n\n type WebinyBackgroundTaskSettingsResponse {\n data: WebinyBackgroundTaskSettings\n error: WebinyBackgroundTaskError\n }\n\n input UpdateBackgroundTaskSettingsInput {\n retentionDays: Int\n }\n\n extend type WebinyBackgroundTaskQuery {\n getSettings: WebinyBackgroundTaskSettingsResponse\n }\n\n extend type WebinyBackgroundTaskMutation {\n updateSettings(\n input: UpdateBackgroundTaskSettingsInput!\n ): WebinyBackgroundTaskSettingsResponse\n }\n `,\n resolvers: {\n WebinyBackgroundTaskQuery: {\n getSettings: async (_, __, context) => {\n return resolve(async () => {\n await checkPermissions(context, { rwd: \"r\" });\n const repository = context.container.resolve(\n GetBackgroundTaskSettingsRepository\n );\n const result = await repository.execute();\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n });\n }\n },\n WebinyBackgroundTaskMutation: {\n updateSettings: async (_, args: IUpdateSettingsArgs, context) => {\n return resolve(async () => {\n const useCase = context.container.resolve(\n UpdateBackgroundTaskSettingsUseCase\n );\n const result = await useCase.execute(args.input);\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n });\n }\n }\n }\n });\n\n schema.name = \"backgroundTasks.settings.graphql.schema\";\n ctx.plugins.register(schema);\n });\n\n plugin.name = \"backgroundTasks.settings.graphql\";\n\n return [plugin];\n};\n"],"names":["resolve","fn","data","error","createBackgroundTaskSettingsGraphQL","plugin","ContextPlugin","ctx","schema","GraphQLSchemaPlugin","_","__","context","checkPermissions","repository","GetBackgroundTaskSettingsRepository","result","args","useCase","UpdateBackgroundTaskSettingsUseCase"],"mappings":";;;;;AAaA,MAAMA,UAAU,OAAoBC;IAChC,IAAI;QACA,MAAMC,OAAO,MAAMD;QACnB,OAAO;YAAEC;YAAM,OAAO;QAAK;IAC/B,EAAE,OAAOC,OAAY;QACjB,OAAO;YACH,MAAM;YACN,OAAO;gBACH,SAASA,MAAM,OAAO;gBACtB,MAAMA,MAAM,IAAI;gBAChB,MAAMA,MAAM,IAAI;YACpB;QACJ;IACJ;AACJ;AAEO,MAAMC,sCAAsC;IAC/C,MAAMC,SAAS,IAAIC,cAAuB,OAAMC;QAC5C,IAAI,CAACA,IAAI,OAAO,CAAC,gBAAgB,IAC7B;QAGJ,MAAMC,SAAS,IAAIC,oBAA6B;YAC5C,UAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;YAuBzB,CAAC;YACD,WAAW;gBACP,2BAA2B;oBACvB,aAAa,OAAOC,GAAGC,IAAIC,UAChBZ,QAAQ;4BACX,MAAMa,iBAAiBD,SAAS;gCAAE,KAAK;4BAAI;4BAC3C,MAAME,aAAaF,QAAQ,SAAS,CAAC,OAAO,CACxCG;4BAEJ,MAAMC,SAAS,MAAMF,WAAW,OAAO;4BACvC,IAAIE,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;4BAEtB,OAAOA,OAAO,KAAK;wBACvB;gBAER;gBACA,8BAA8B;oBAC1B,gBAAgB,OAAON,GAAGO,MAA2BL,UAC1CZ,QAAQ;4BACX,MAAMkB,UAAUN,QAAQ,SAAS,CAAC,OAAO,CACrCO;4BAEJ,MAAMH,SAAS,MAAME,QAAQ,OAAO,CAACD,KAAK,KAAK;4BAC/C,IAAID,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;4BAEtB,OAAOA,OAAO,KAAK;wBACvB;gBAER;YACJ;QACJ;QAEAR,OAAO,IAAI,GAAG;QACdD,IAAI,OAAO,CAAC,QAAQ,CAACC;IACzB;IAEAH,OAAO,IAAI,GAAG;IAEd,OAAO;QAACA;KAAO;AACnB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { NotAuthorizedError } from "@webiny/api-core/features/security/shared/index.js";
|
|
2
|
+
const checkPermissions = async (context, check = {})=>{
|
|
3
|
+
const taskPermissions = await context.security.getPermissions("tasks");
|
|
4
|
+
const relevant = taskPermissions.filter((current)=>{
|
|
5
|
+
if (check.rwd && !hasRwd(current, check.rwd)) return false;
|
|
6
|
+
return true;
|
|
7
|
+
});
|
|
8
|
+
if (0 === relevant.length) throw new NotAuthorizedError();
|
|
9
|
+
};
|
|
10
|
+
const hasRwd = (permissions, rwd)=>{
|
|
11
|
+
if (!Array.isArray(permissions)) permissions = [
|
|
12
|
+
permissions
|
|
13
|
+
];
|
|
14
|
+
if (!rwd) return true;
|
|
15
|
+
const permissionWithoutRwdRestrictions = permissions.some((permission)=>"string" != typeof permission.rwd);
|
|
16
|
+
if (permissionWithoutRwdRestrictions) return true;
|
|
17
|
+
return permissions.some((permission)=>permission.rwd && permission.rwd.includes(rwd));
|
|
18
|
+
};
|
|
19
|
+
export { checkPermissions };
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=checkPermissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/graphql/checkPermissions.js","sources":["../../../src/api/graphql/checkPermissions.ts"],"sourcesContent":["import type { Context, TaskPermission } from \"~/api/types.js\";\nimport { NotAuthorizedError } from \"@webiny/api-core/features/security/shared/index.js\";\n\n/**\n * @throws\n */\nexport const checkPermissions = async (\n context: Context,\n check: { rwd?: string } = {}\n): Promise<void> => {\n const taskPermissions = await context.security.getPermissions<TaskPermission>(\"tasks\");\n\n const relevant = taskPermissions.filter(current => {\n if (check.rwd && !hasRwd(current, check.rwd)) {\n return false;\n }\n\n return true;\n });\n\n if (relevant.length === 0) {\n throw new NotAuthorizedError();\n }\n};\n\nconst hasRwd = (permissions: TaskPermission | TaskPermission[], rwd: string): boolean => {\n if (!Array.isArray(permissions)) {\n permissions = [permissions];\n }\n\n if (!rwd) {\n return true;\n }\n\n // Is there a permission that doesn't restrict RWD permissions, that means all RWD permissions are allowed.\n const permissionWithoutRwdRestrictions = permissions.some(permission => {\n return typeof permission.rwd !== \"string\";\n });\n\n if (permissionWithoutRwdRestrictions) {\n return true;\n }\n\n // If there is no permission that doesn't restrict RWD permissions, that means we need to check if the RWD.\n return permissions.some(permission => {\n return permission.rwd && permission.rwd.includes(rwd);\n });\n};\n"],"names":["checkPermissions","context","check","taskPermissions","relevant","current","hasRwd","NotAuthorizedError","permissions","rwd","Array","permissionWithoutRwdRestrictions","permission"],"mappings":";AAMO,MAAMA,mBAAmB,OAC5BC,SACAC,QAA0B,CAAC,CAAC;IAE5B,MAAMC,kBAAkB,MAAMF,QAAQ,QAAQ,CAAC,cAAc,CAAiB;IAE9E,MAAMG,WAAWD,gBAAgB,MAAM,CAACE,CAAAA;QACpC,IAAIH,MAAM,GAAG,IAAI,CAACI,OAAOD,SAASH,MAAM,GAAG,GACvC,OAAO;QAGX,OAAO;IACX;IAEA,IAAIE,AAAoB,MAApBA,SAAS,MAAM,EACf,MAAM,IAAIG;AAElB;AAEA,MAAMD,SAAS,CAACE,aAAgDC;IAC5D,IAAI,CAACC,MAAM,OAAO,CAACF,cACfA,cAAc;QAACA;KAAY;IAG/B,IAAI,CAACC,KACD,OAAO;IAIX,MAAME,mCAAmCH,YAAY,IAAI,CAACI,CAAAA,aAC/C,AAA0B,YAA1B,OAAOA,WAAW,GAAG;IAGhC,IAAID,kCACA,OAAO;IAIX,OAAOH,YAAY,IAAI,CAACI,CAAAA,aACbA,WAAW,GAAG,IAAIA,WAAW,GAAG,CAAC,QAAQ,CAACH;AAEzD"}
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
import { GraphQLSchemaPlugin } from "@webiny/handler-graphql";
|
|
2
|
+
import { renderSortEnum } from "@webiny/api-headless-cms/utils/renderSortEnum.js";
|
|
3
|
+
import { ContextPlugin } from "@webiny/handler";
|
|
4
|
+
import { renderListFilterFields } from "@webiny/api-headless-cms/utils/renderListFilterFields.js";
|
|
5
|
+
import { emptyResolver, resolve, resolveList } from "./utils.js";
|
|
6
|
+
import { renderFields } from "@webiny/api-headless-cms/utils/renderFields.js";
|
|
7
|
+
import { checkPermissions } from "./checkPermissions.js";
|
|
8
|
+
import { ListModelsUseCase } from "@webiny/api-headless-cms/features/contentModel/ListModels/index.js";
|
|
9
|
+
import { CmsModelFieldToGraphQLRegistry } from "@webiny/api-headless-cms/exports/api/cms/graphql.js";
|
|
10
|
+
const createGraphQL = ()=>{
|
|
11
|
+
const plugin = new ContextPlugin(async (ctx)=>{
|
|
12
|
+
if (!ctx.tenancy.getCurrentTenant()) return;
|
|
13
|
+
const taskModel = await ctx.tasks.getTaskModel();
|
|
14
|
+
const logModel = await ctx.tasks.getLogModel();
|
|
15
|
+
const listModels = ctx.container.resolve(ListModelsUseCase);
|
|
16
|
+
const fieldRegistry = ctx.container.resolve(CmsModelFieldToGraphQLRegistry);
|
|
17
|
+
const models = await ctx.security.withoutAuthorization(async ()=>{
|
|
18
|
+
const modelsResult = await listModels.execute({
|
|
19
|
+
includePrivate: false
|
|
20
|
+
});
|
|
21
|
+
return modelsResult.value.filter((model)=>model.fields.length > 0);
|
|
22
|
+
});
|
|
23
|
+
const taskFields = renderFields({
|
|
24
|
+
models,
|
|
25
|
+
model: taskModel,
|
|
26
|
+
fields: taskModel.fields,
|
|
27
|
+
type: "manage",
|
|
28
|
+
fieldRegistry
|
|
29
|
+
});
|
|
30
|
+
const logFields = renderFields({
|
|
31
|
+
models,
|
|
32
|
+
model: logModel,
|
|
33
|
+
fields: logModel.fields.filter((field)=>"task" !== field.fieldId),
|
|
34
|
+
type: "manage",
|
|
35
|
+
fieldRegistry
|
|
36
|
+
});
|
|
37
|
+
const listTasksFilterFieldsRender = renderListFilterFields({
|
|
38
|
+
model: taskModel,
|
|
39
|
+
fields: taskModel.fields,
|
|
40
|
+
type: "manage",
|
|
41
|
+
fieldRegistry,
|
|
42
|
+
excludeFields: [
|
|
43
|
+
"entryId"
|
|
44
|
+
]
|
|
45
|
+
});
|
|
46
|
+
const listLogsFilterFieldsRender = renderListFilterFields({
|
|
47
|
+
model: logModel,
|
|
48
|
+
fields: logModel.fields,
|
|
49
|
+
type: "manage",
|
|
50
|
+
fieldRegistry,
|
|
51
|
+
excludeFields: [
|
|
52
|
+
"entryId"
|
|
53
|
+
]
|
|
54
|
+
});
|
|
55
|
+
const sortTasksEnumRender = renderSortEnum({
|
|
56
|
+
model: taskModel,
|
|
57
|
+
fields: taskModel.fields,
|
|
58
|
+
fieldRegistry,
|
|
59
|
+
sorters: []
|
|
60
|
+
});
|
|
61
|
+
const sortLogsEnumRender = renderSortEnum({
|
|
62
|
+
model: logModel,
|
|
63
|
+
fields: logModel.fields,
|
|
64
|
+
fieldRegistry,
|
|
65
|
+
sorters: []
|
|
66
|
+
});
|
|
67
|
+
const plugin = new GraphQLSchemaPlugin({
|
|
68
|
+
typeDefs: `
|
|
69
|
+
type WebinyBackgroundTaskError {
|
|
70
|
+
message: String
|
|
71
|
+
code: String
|
|
72
|
+
data: JSON
|
|
73
|
+
stack: String
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
${taskFields.map((f)=>f.typeDefs).join("\n")}
|
|
77
|
+
${logFields.map((f)=>f.typeDefs).join("\n")}
|
|
78
|
+
|
|
79
|
+
type WebinyBackgroundTask {
|
|
80
|
+
id: String!
|
|
81
|
+
createdOn: DateTime!
|
|
82
|
+
savedOn: DateTime
|
|
83
|
+
createdBy: WebinyBackgroundTaskIdentity!
|
|
84
|
+
logs(
|
|
85
|
+
where: WebinyBackgroundTaskLogListWhereInput
|
|
86
|
+
limit: Number
|
|
87
|
+
sort: [WebinyBackgroundTaskLogListSorter!]
|
|
88
|
+
): [WebinyBackgroundTaskLog!]!
|
|
89
|
+
${taskFields.map((f)=>f.fields).join("\n")}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
type WebinyBackgroundTaskResponse {
|
|
93
|
+
data: WebinyBackgroundTask
|
|
94
|
+
error: WebinyBackgroundTaskError
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
type WebinyBackgroundTaskMeta {
|
|
98
|
+
cursor: String
|
|
99
|
+
hasMoreItems: Boolean!
|
|
100
|
+
totalCount: Int!
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
type WebinyBackgroundTaskListResponse {
|
|
104
|
+
data: [WebinyBackgroundTask!]
|
|
105
|
+
meta: WebinyBackgroundTaskMeta
|
|
106
|
+
error: WebinyBackgroundTaskError
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
type WebinyBackgroundTaskLog {
|
|
110
|
+
id: String!
|
|
111
|
+
createdOn: DateTime!
|
|
112
|
+
createdBy: WebinyBackgroundTaskIdentity!
|
|
113
|
+
task: WebinyBackgroundTask!
|
|
114
|
+
${logFields.map((f)=>f.fields).join("\n")}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
type WebinyBackgroundTaskLogListResponse {
|
|
118
|
+
data: [WebinyBackgroundTaskLog!]
|
|
119
|
+
meta: WebinyBackgroundTaskMeta
|
|
120
|
+
error: WebinyBackgroundTaskError
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
type WebinyBackgroundTaskDefinition {
|
|
124
|
+
id: String!
|
|
125
|
+
title: String!
|
|
126
|
+
description: String
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
type WebinyBackgroundTaskListDefinitionsResponse {
|
|
130
|
+
data: [WebinyBackgroundTaskDefinition!]
|
|
131
|
+
error: WebinyBackgroundTaskError
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
type WebinyBackgroundTaskIdentity {
|
|
135
|
+
id: String!
|
|
136
|
+
displayName: String!
|
|
137
|
+
type: String
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
type WebinyBackgroundTaskTriggerResponse {
|
|
141
|
+
data: WebinyBackgroundTask
|
|
142
|
+
error: WebinyBackgroundTaskError
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
type WebinyBackgroundTaskDeleteResponse {
|
|
146
|
+
data: Boolean
|
|
147
|
+
error: WebinyBackgroundTaskError
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
input WebinyBackgroundTaskListWhereInput {
|
|
151
|
+
${listTasksFilterFieldsRender.allFiltersAsString() || "_empty: String"}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
input WebinyBackgroundTaskLogListWhereInput {
|
|
155
|
+
${listLogsFilterFieldsRender.allFiltersAsString() || "_empty: String"}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
enum WebinyBackgroundTaskListSorter {
|
|
159
|
+
${sortTasksEnumRender}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
enum WebinyBackgroundTaskLogListSorter {
|
|
163
|
+
${sortLogsEnumRender}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
type WebinyBackgroundTaskQuery {
|
|
167
|
+
_empty: String
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
type WebinyBackgroundTaskMutation {
|
|
171
|
+
_empty: String
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
extend type Query {
|
|
175
|
+
backgroundTasks: WebinyBackgroundTaskQuery
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
extend type Mutation {
|
|
179
|
+
backgroundTasks: WebinyBackgroundTaskMutation
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
extend type WebinyBackgroundTaskQuery {
|
|
183
|
+
getTask(id: ID!): WebinyBackgroundTaskResponse!
|
|
184
|
+
listTasks(
|
|
185
|
+
where: WebinyBackgroundTaskListWhereInput
|
|
186
|
+
sort: [WebinyBackgroundTaskListSorter!]
|
|
187
|
+
limit: Int
|
|
188
|
+
after: String
|
|
189
|
+
search: String
|
|
190
|
+
): WebinyBackgroundTaskListResponse!
|
|
191
|
+
listDefinitions: WebinyBackgroundTaskListDefinitionsResponse!
|
|
192
|
+
|
|
193
|
+
listLogs(
|
|
194
|
+
where: WebinyBackgroundTaskLogListWhereInput
|
|
195
|
+
sort: [WebinyBackgroundTaskLogListSorter!]
|
|
196
|
+
limit: Int
|
|
197
|
+
after: String
|
|
198
|
+
search: String
|
|
199
|
+
): WebinyBackgroundTaskLogListResponse!
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
extend type WebinyBackgroundTaskMutation {
|
|
203
|
+
triggerTask(definition: String!, input: JSON, name: String, delay: Number): WebinyBackgroundTaskTriggerResponse!
|
|
204
|
+
abortTask(id: ID!, message: String): WebinyBackgroundTaskResponse!
|
|
205
|
+
deleteTask(id: ID!): WebinyBackgroundTaskDeleteResponse!
|
|
206
|
+
}
|
|
207
|
+
`,
|
|
208
|
+
resolvers: {
|
|
209
|
+
Query: {
|
|
210
|
+
backgroundTasks: emptyResolver
|
|
211
|
+
},
|
|
212
|
+
Mutation: {
|
|
213
|
+
backgroundTasks: emptyResolver
|
|
214
|
+
},
|
|
215
|
+
WebinyBackgroundTaskQuery: {
|
|
216
|
+
getTask: async (_, args, context)=>resolve(async ()=>{
|
|
217
|
+
await checkPermissions(context, {
|
|
218
|
+
rwd: "r"
|
|
219
|
+
});
|
|
220
|
+
return await context.tasks.getTask(args.id);
|
|
221
|
+
}),
|
|
222
|
+
listTasks: async (_, args, context)=>resolveList(async ()=>{
|
|
223
|
+
await checkPermissions(context, {
|
|
224
|
+
rwd: "r"
|
|
225
|
+
});
|
|
226
|
+
return await context.tasks.listTasks(args);
|
|
227
|
+
}),
|
|
228
|
+
listDefinitions: async (_, __, context)=>resolve(async ()=>{
|
|
229
|
+
await checkPermissions(context, {
|
|
230
|
+
rwd: "r"
|
|
231
|
+
});
|
|
232
|
+
const result = context.tasks.listDefinitions();
|
|
233
|
+
return result.filter((item)=>!item.isPrivate);
|
|
234
|
+
}),
|
|
235
|
+
listLogs: async (_, args, context)=>resolveList(async ()=>{
|
|
236
|
+
await checkPermissions(context, {
|
|
237
|
+
rwd: "r"
|
|
238
|
+
});
|
|
239
|
+
return await context.tasks.listLogs(args);
|
|
240
|
+
})
|
|
241
|
+
},
|
|
242
|
+
WebinyBackgroundTaskMutation: {
|
|
243
|
+
abortTask: async (_, args, context)=>{
|
|
244
|
+
await checkPermissions(context, {
|
|
245
|
+
rwd: "w"
|
|
246
|
+
});
|
|
247
|
+
return resolve(async ()=>{
|
|
248
|
+
const result = await context.tasks.abort(args);
|
|
249
|
+
if (result.isOk()) return result.value;
|
|
250
|
+
throw result.error;
|
|
251
|
+
});
|
|
252
|
+
},
|
|
253
|
+
triggerTask: async (_, args, context)=>{
|
|
254
|
+
await checkPermissions(context, {
|
|
255
|
+
rwd: "w"
|
|
256
|
+
});
|
|
257
|
+
return resolve(async ()=>{
|
|
258
|
+
const result = await context.tasks.trigger(args);
|
|
259
|
+
if (result.isOk()) return result.value;
|
|
260
|
+
throw result.error;
|
|
261
|
+
});
|
|
262
|
+
},
|
|
263
|
+
deleteTask: async (_, args, context)=>{
|
|
264
|
+
await checkPermissions(context, {
|
|
265
|
+
rwd: "d"
|
|
266
|
+
});
|
|
267
|
+
return resolve(async ()=>await context.tasks.deleteTask(args.id));
|
|
268
|
+
}
|
|
269
|
+
},
|
|
270
|
+
WebinyBackgroundTask: {
|
|
271
|
+
logs: async (parent, args, context)=>{
|
|
272
|
+
const { items } = await context.tasks.listLogs({
|
|
273
|
+
sort: [
|
|
274
|
+
"createdBy_ASC"
|
|
275
|
+
],
|
|
276
|
+
limit: 10000,
|
|
277
|
+
...args,
|
|
278
|
+
where: {
|
|
279
|
+
...args?.where,
|
|
280
|
+
task: parent.id
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
return items;
|
|
284
|
+
}
|
|
285
|
+
},
|
|
286
|
+
WebinyBackgroundTaskLog: {
|
|
287
|
+
task: async (parent, _, context)=>await context.tasks.getTask(parent.task)
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
});
|
|
291
|
+
plugin.name = "tasks.graphql.schema";
|
|
292
|
+
ctx.plugins.register(plugin);
|
|
293
|
+
});
|
|
294
|
+
plugin.name = "tasks.graphql";
|
|
295
|
+
return plugin;
|
|
296
|
+
};
|
|
297
|
+
const createBackgroundTaskGraphQL = ()=>[
|
|
298
|
+
createGraphQL()
|
|
299
|
+
];
|
|
300
|
+
export { createBackgroundTaskGraphQL };
|
|
301
|
+
|
|
302
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/graphql/index.js","sources":["../../../src/api/graphql/index.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { renderSortEnum } from \"@webiny/api-headless-cms/utils/renderSortEnum.js\";\nimport { ContextPlugin } from \"@webiny/handler\";\nimport type { Context, IListTaskLogParams, IListTaskParams, ITask, ITaskLog } from \"~/api/types.js\";\nimport { renderListFilterFields } from \"@webiny/api-headless-cms/utils/renderListFilterFields.js\";\nimport { emptyResolver, resolve, resolveList } from \"./utils.js\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields.js\";\nimport { checkPermissions } from \"./checkPermissions.js\";\nimport type { Plugin } from \"@webiny/plugins/types.js\";\nimport { ListModelsUseCase } from \"@webiny/api-headless-cms/features/contentModel/ListModels/index.js\";\nimport { CmsModelFieldToGraphQLRegistry } from \"@webiny/api-headless-cms/exports/api/cms/graphql.js\";\n\ninterface IGetTaskQueryParams {\n id: string;\n}\n\ninterface IAbortTaskMutationParams {\n id: string;\n message?: string;\n}\n\ninterface ITriggerTaskMutationParams {\n name?: string;\n definition: string;\n input?: Record<string, any>;\n delay?: number;\n}\n\ninterface IDeleteTaskMutationParams {\n id: string;\n}\n\nconst createGraphQL = () => {\n const plugin = new ContextPlugin<Context>(async ctx => {\n if (!ctx.tenancy.getCurrentTenant()) {\n return;\n }\n\n const taskModel = await ctx.tasks.getTaskModel();\n const logModel = await ctx.tasks.getLogModel();\n\n const listModels = ctx.container.resolve(ListModelsUseCase);\n const fieldRegistry = ctx.container.resolve(CmsModelFieldToGraphQLRegistry);\n\n const models = await ctx.security.withoutAuthorization(async () => {\n const modelsResult = await listModels.execute({ includePrivate: false });\n\n return modelsResult.value.filter(model => model.fields.length > 0);\n });\n const taskFields = renderFields({\n models,\n model: taskModel,\n fields: taskModel.fields,\n type: \"manage\",\n fieldRegistry\n });\n\n const logFields = renderFields({\n models,\n model: logModel,\n fields: logModel.fields.filter(field => field.fieldId !== \"task\"),\n type: \"manage\",\n fieldRegistry\n });\n\n const listTasksFilterFieldsRender = renderListFilterFields({\n model: taskModel,\n fields: taskModel.fields,\n type: \"manage\",\n fieldRegistry,\n excludeFields: [\"entryId\"]\n });\n\n const listLogsFilterFieldsRender = renderListFilterFields({\n model: logModel,\n fields: logModel.fields,\n type: \"manage\",\n fieldRegistry,\n excludeFields: [\"entryId\"]\n });\n\n const sortTasksEnumRender = renderSortEnum({\n model: taskModel,\n fields: taskModel.fields,\n fieldRegistry,\n sorters: []\n });\n\n const sortLogsEnumRender = renderSortEnum({\n model: logModel,\n fields: logModel.fields,\n fieldRegistry,\n sorters: []\n });\n\n const plugin = new GraphQLSchemaPlugin<Context>({\n typeDefs: /* GraphQL */ `\n type WebinyBackgroundTaskError {\n message: String\n code: String\n data: JSON\n stack: String\n }\n\n ${taskFields.map(f => f.typeDefs).join(\"\\n\")}\n ${logFields.map(f => f.typeDefs).join(\"\\n\")}\n\n type WebinyBackgroundTask {\n id: String!\n createdOn: DateTime!\n savedOn: DateTime\n createdBy: WebinyBackgroundTaskIdentity!\n logs(\n where: WebinyBackgroundTaskLogListWhereInput\n limit: Number\n sort: [WebinyBackgroundTaskLogListSorter!]\n ): [WebinyBackgroundTaskLog!]!\n ${taskFields.map(f => f.fields).join(\"\\n\")}\n }\n\n type WebinyBackgroundTaskResponse {\n data: WebinyBackgroundTask\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskMeta {\n cursor: String\n hasMoreItems: Boolean!\n totalCount: Int!\n }\n\n type WebinyBackgroundTaskListResponse {\n data: [WebinyBackgroundTask!]\n meta: WebinyBackgroundTaskMeta\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskLog {\n id: String!\n createdOn: DateTime!\n createdBy: WebinyBackgroundTaskIdentity!\n task: WebinyBackgroundTask!\n ${logFields.map(f => f.fields).join(\"\\n\")}\n }\n\n type WebinyBackgroundTaskLogListResponse {\n data: [WebinyBackgroundTaskLog!]\n meta: WebinyBackgroundTaskMeta\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskDefinition {\n id: String!\n title: String!\n description: String\n }\n\n type WebinyBackgroundTaskListDefinitionsResponse {\n data: [WebinyBackgroundTaskDefinition!]\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskIdentity {\n id: String!\n displayName: String!\n type: String\n }\n\n type WebinyBackgroundTaskTriggerResponse {\n data: WebinyBackgroundTask\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskDeleteResponse {\n data: Boolean\n error: WebinyBackgroundTaskError\n }\n\n input WebinyBackgroundTaskListWhereInput {\n ${listTasksFilterFieldsRender.allFiltersAsString() || \"_empty: String\"}\n }\n\n input WebinyBackgroundTaskLogListWhereInput {\n ${listLogsFilterFieldsRender.allFiltersAsString() || \"_empty: String\"}\n }\n\n enum WebinyBackgroundTaskListSorter {\n ${sortTasksEnumRender}\n }\n\n enum WebinyBackgroundTaskLogListSorter {\n ${sortLogsEnumRender}\n }\n\n type WebinyBackgroundTaskQuery {\n _empty: String\n }\n\n type WebinyBackgroundTaskMutation {\n _empty: String\n }\n\n extend type Query {\n backgroundTasks: WebinyBackgroundTaskQuery\n }\n\n extend type Mutation {\n backgroundTasks: WebinyBackgroundTaskMutation\n }\n\n extend type WebinyBackgroundTaskQuery {\n getTask(id: ID!): WebinyBackgroundTaskResponse!\n listTasks(\n where: WebinyBackgroundTaskListWhereInput\n sort: [WebinyBackgroundTaskListSorter!]\n limit: Int\n after: String\n search: String\n ): WebinyBackgroundTaskListResponse!\n listDefinitions: WebinyBackgroundTaskListDefinitionsResponse!\n\n listLogs(\n where: WebinyBackgroundTaskLogListWhereInput\n sort: [WebinyBackgroundTaskLogListSorter!]\n limit: Int\n after: String\n search: String\n ): WebinyBackgroundTaskLogListResponse!\n }\n\n extend type WebinyBackgroundTaskMutation {\n triggerTask(definition: String!, input: JSON, name: String, delay: Number): WebinyBackgroundTaskTriggerResponse!\n abortTask(id: ID!, message: String): WebinyBackgroundTaskResponse!\n deleteTask(id: ID!): WebinyBackgroundTaskDeleteResponse!\n }\n `,\n resolvers: {\n Query: {\n backgroundTasks: emptyResolver\n },\n Mutation: {\n backgroundTasks: emptyResolver\n },\n WebinyBackgroundTaskQuery: {\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n getTask: async (_, args: IGetTaskQueryParams, context) => {\n return resolve(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n return await context.tasks.getTask(args.id);\n });\n },\n listTasks: async (_, args: IListTaskParams, context) => {\n return resolveList(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n return await context.tasks.listTasks(args);\n });\n },\n listDefinitions: async (_, __, context) => {\n return resolve(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n const result = context.tasks.listDefinitions();\n /**\n * Do not output private tasks.\n */\n return result.filter(item => {\n return !item.isPrivate;\n });\n });\n },\n listLogs: async (_, args: IListTaskLogParams, context) => {\n return resolveList(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n return await context.tasks.listLogs(args);\n });\n }\n },\n WebinyBackgroundTaskMutation: {\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n abortTask: async (_, args: IAbortTaskMutationParams, context) => {\n await checkPermissions(context, {\n rwd: \"w\"\n });\n return resolve<ITask>(async () => {\n const result = await context.tasks.abort(args);\n if (result.isOk()) {\n return result.value;\n }\n\n throw result.error;\n });\n },\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n triggerTask: async (_, args: ITriggerTaskMutationParams, context) => {\n await checkPermissions(context, {\n rwd: \"w\"\n });\n return resolve<ITask>(async () => {\n const result = await context.tasks.trigger(args);\n if (result.isOk()) {\n return result.value;\n }\n\n throw result.error;\n });\n },\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n deleteTask: async (_, args: IDeleteTaskMutationParams, context) => {\n await checkPermissions(context, {\n rwd: \"d\"\n });\n return resolve(async () => {\n return await context.tasks.deleteTask(args.id);\n });\n }\n },\n /**\n * Custom resolvers for fields\n */\n WebinyBackgroundTask: {\n logs: async (parent: ITask, args: IListTaskLogParams, context) => {\n const { items } = await context.tasks.listLogs({\n sort: [\"createdBy_ASC\"],\n limit: 10000,\n ...args,\n where: {\n ...args?.where,\n task: parent.id\n }\n });\n return items;\n }\n },\n WebinyBackgroundTaskLog: {\n task: async (parent: ITaskLog, _, context) => {\n return await context.tasks.getTask(parent.task);\n }\n }\n }\n });\n\n plugin.name = \"tasks.graphql.schema\";\n\n ctx.plugins.register(plugin);\n });\n\n plugin.name = \"tasks.graphql\";\n\n return plugin;\n};\n\nexport const createBackgroundTaskGraphQL = (): Plugin[] => {\n return [createGraphQL()];\n};\n"],"names":["createGraphQL","plugin","ContextPlugin","ctx","taskModel","logModel","listModels","ListModelsUseCase","fieldRegistry","CmsModelFieldToGraphQLRegistry","models","modelsResult","model","taskFields","renderFields","logFields","field","listTasksFilterFieldsRender","renderListFilterFields","listLogsFilterFieldsRender","sortTasksEnumRender","renderSortEnum","sortLogsEnumRender","GraphQLSchemaPlugin","f","emptyResolver","_","args","context","resolve","checkPermissions","resolveList","__","result","item","parent","items","createBackgroundTaskGraphQL"],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ErrorResponse, ListErrorResponse, ListResponse, Response } from "@webiny/handler-graphql";
|
|
2
|
+
import type { CmsEntryMeta } from "@webiny/api-headless-cms/types/index.js";
|
|
3
|
+
export declare const emptyResolver: () => {};
|
|
4
|
+
interface ResolveCallable<T = any> {
|
|
5
|
+
(): Promise<T>;
|
|
6
|
+
}
|
|
7
|
+
export declare const resolve: <T = any>(fn: ResolveCallable<T>) => Promise<Response<Awaited<T>> | ErrorResponse>;
|
|
8
|
+
export declare const resolveList: (fn: ResolveCallable) => Promise<ListResponse<any, CmsEntryMeta> | ListErrorResponse>;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ErrorResponse, ListErrorResponse, ListResponse, Response } from "@webiny/handler-graphql";
|
|
2
|
+
const emptyResolver = ()=>({});
|
|
3
|
+
const resolve = async (fn)=>{
|
|
4
|
+
try {
|
|
5
|
+
return new Response(await fn());
|
|
6
|
+
} catch (ex) {
|
|
7
|
+
return new ErrorResponse(ex);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
const resolveList = async (fn)=>{
|
|
11
|
+
try {
|
|
12
|
+
const result = await fn();
|
|
13
|
+
return new ListResponse(result.items, result.meta);
|
|
14
|
+
} catch (ex) {
|
|
15
|
+
return new ListErrorResponse(ex);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
export { emptyResolver, resolve, resolveList };
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=utils.js.map
|