@webiny/background-tasks 0.0.0-unstable.7be00a75a9 → 6.4.0-beta.5
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/graphql/utils.js","sources":["../../../src/api/graphql/utils.ts"],"sourcesContent":["import { ErrorResponse, ListErrorResponse, ListResponse, Response } from \"@webiny/handler-graphql\";\nimport type { CmsEntryMeta } from \"@webiny/api-headless-cms/types/index.js\";\n\nexport const emptyResolver = () => ({});\n\ninterface ResolveCallable<T = any> {\n (): Promise<T>;\n}\n\nexport const resolve = async <T = any>(fn: ResolveCallable<T>) => {\n try {\n return new Response(await fn());\n } catch (ex) {\n return new ErrorResponse(ex);\n }\n};\n\ninterface IListResult {\n items: any[];\n meta: CmsEntryMeta;\n}\n\nexport const resolveList = async (fn: ResolveCallable) => {\n try {\n const result = (await fn()) as IListResult;\n return new ListResponse(result.items, result.meta);\n } catch (ex) {\n return new ListErrorResponse(ex);\n }\n};\n"],"names":["emptyResolver","resolve","fn","Response","ex","ErrorResponse","resolveList","result","ListResponse","ListErrorResponse"],"mappings":";AAGO,MAAMA,gBAAgB,IAAO,EAAC;AAM9B,MAAMC,UAAU,OAAgBC;IACnC,IAAI;QACA,OAAO,IAAIC,SAAS,MAAMD;IAC9B,EAAE,OAAOE,IAAI;QACT,OAAO,IAAIC,cAAcD;IAC7B;AACJ;AAOO,MAAME,cAAc,OAAOJ;IAC9B,IAAI;QACA,MAAMK,SAAU,MAAML;QACtB,OAAO,IAAIM,aAAaD,OAAO,KAAK,EAAEA,OAAO,IAAI;IACrD,EAAE,OAAOH,IAAI;QACT,OAAO,IAAIK,kBAAkBL;IACjC;AACJ"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { APIGatewayProxyResult, Context as LambdaContext } from "@webiny/aws-sdk/types/index.js";
|
|
2
|
+
import type { HandlerParams, ITaskRawEvent } from "../../api/handler/types.js";
|
|
3
|
+
export interface HandlerCallable {
|
|
4
|
+
(event: ITaskRawEvent, context: LambdaContext): Promise<APIGatewayProxyResult>;
|
|
5
|
+
}
|
|
6
|
+
export declare const createHandler: (params: HandlerParams) => HandlerCallable;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { createHandler } from "@webiny/handler";
|
|
2
|
+
import { registerDefaultPlugins } from "@webiny/handler-aws/plugins/index.js";
|
|
3
|
+
import { execute } from "@webiny/handler-aws/execute.js";
|
|
4
|
+
import { TaskRunner } from "../runner/index.js";
|
|
5
|
+
import { timerFactory } from "@webiny/handler-aws/utils/index.js";
|
|
6
|
+
import { TaskEventValidation } from "../runner/TaskEventValidation.js";
|
|
7
|
+
import { TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
8
|
+
const url = "/webiny-background-task-event";
|
|
9
|
+
const handler_createHandler = (params)=>async (event, context)=>{
|
|
10
|
+
const app = createHandler({
|
|
11
|
+
...params,
|
|
12
|
+
options: {
|
|
13
|
+
logger: true === params.debug,
|
|
14
|
+
...params.options || {}
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
registerDefaultPlugins(app.webiny);
|
|
18
|
+
app.addHook("preSerialization", async (_, __, payload)=>{
|
|
19
|
+
if (!payload.body) return payload;
|
|
20
|
+
return payload.body;
|
|
21
|
+
});
|
|
22
|
+
await app.register(async (taskApp)=>{
|
|
23
|
+
taskApp.setErrorHandler(async (error, _, reply)=>{
|
|
24
|
+
app.__webiny_raw_result = {
|
|
25
|
+
error: {
|
|
26
|
+
message: error.message,
|
|
27
|
+
code: error.code,
|
|
28
|
+
data: error.data
|
|
29
|
+
},
|
|
30
|
+
status: TaskResultStatus.ERROR
|
|
31
|
+
};
|
|
32
|
+
return reply.send();
|
|
33
|
+
});
|
|
34
|
+
taskApp.post(url, async (_, reply)=>{
|
|
35
|
+
const handler = new TaskRunner(app.webiny, timerFactory(context), new TaskEventValidation());
|
|
36
|
+
app.__webiny_raw_result = await handler.run(event);
|
|
37
|
+
return reply.send({});
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
return execute({
|
|
41
|
+
app,
|
|
42
|
+
url: url,
|
|
43
|
+
payload: {
|
|
44
|
+
...event,
|
|
45
|
+
headers: {
|
|
46
|
+
["x-tenant"]: event.tenant,
|
|
47
|
+
["x-webiny-cms-endpoint"]: event.endpoint,
|
|
48
|
+
["accept-language"]: "en-US"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
export { handler_createHandler as createHandler };
|
|
54
|
+
|
|
55
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/handler/index.js","sources":["../../../src/api/handler/index.ts"],"sourcesContent":["import { createHandler as createBaseHandler } from \"@webiny/handler\";\nimport { registerDefaultPlugins } from \"@webiny/handler-aws/plugins/index.js\";\nimport { execute } from \"@webiny/handler-aws/execute.js\";\nimport type {\n APIGatewayProxyResult,\n Context as LambdaContext\n} from \"@webiny/aws-sdk/types/index.js\";\nimport type { Context } from \"~/api/types.js\";\nimport type { HandlerParams, ITaskRawEvent } from \"~/api/handler/types.js\";\nimport { TaskRunner } from \"~/api/runner/index.js\";\nimport type WebinyError from \"@webiny/error\";\nimport { timerFactory } from \"@webiny/handler-aws/utils/index.js\";\nimport { TaskEventValidation } from \"~/api/runner/TaskEventValidation.js\";\nimport { TaskResultStatus } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport interface HandlerCallable {\n (event: ITaskRawEvent, context: LambdaContext): Promise<APIGatewayProxyResult>;\n}\n\nconst url = \"/webiny-background-task-event\";\n\nexport const createHandler = (params: HandlerParams): HandlerCallable => {\n return async (event, context) => {\n const app = createBaseHandler({\n ...params,\n options: {\n logger: params.debug === true,\n ...(params.options || {})\n }\n });\n\n registerDefaultPlugins(app.webiny);\n\n app.addHook(\"preSerialization\", async (_, __, payload: Record<string, any>) => {\n if (!payload.body) {\n return payload;\n }\n return payload.body;\n });\n\n await app.register(async taskApp => {\n taskApp.setErrorHandler<WebinyError>(async (error, _, reply) => {\n app.__webiny_raw_result = {\n error: {\n message: error.message,\n code: error.code,\n data: error.data\n },\n status: TaskResultStatus.ERROR\n };\n return reply.send();\n });\n\n taskApp.post(url, async (_, reply) => {\n const handler = new TaskRunner(\n /**\n * We can safely cast because we know that the context is of type tasks/Context\n */\n app.webiny as Context,\n timerFactory(context),\n new TaskEventValidation()\n );\n\n app.__webiny_raw_result = await handler.run(event);\n return reply.send({});\n });\n });\n\n return execute({\n app,\n url,\n payload: {\n ...event,\n headers: {\n [\"x-tenant\"]: event.tenant,\n [\"x-webiny-cms-endpoint\"]: event.endpoint,\n [\"accept-language\"]: \"en-US\"\n }\n }\n });\n };\n};\n"],"names":["url","createHandler","params","event","context","app","createBaseHandler","registerDefaultPlugins","_","__","payload","taskApp","error","reply","TaskResultStatus","handler","TaskRunner","timerFactory","TaskEventValidation","execute"],"mappings":";;;;;;;AAmBA,MAAMA,MAAM;AAEL,MAAMC,wBAAgB,CAACC,SACnB,OAAOC,OAAOC;QACjB,MAAMC,MAAMC,cAAkB;YAC1B,GAAGJ,MAAM;YACT,SAAS;gBACL,QAAQA,AAAiB,SAAjBA,OAAO,KAAK;gBACpB,GAAIA,OAAO,OAAO,IAAI,CAAC,CAAC;YAC5B;QACJ;QAEAK,uBAAuBF,IAAI,MAAM;QAEjCA,IAAI,OAAO,CAAC,oBAAoB,OAAOG,GAAGC,IAAIC;YAC1C,IAAI,CAACA,QAAQ,IAAI,EACb,OAAOA;YAEX,OAAOA,QAAQ,IAAI;QACvB;QAEA,MAAML,IAAI,QAAQ,CAAC,OAAMM;YACrBA,QAAQ,eAAe,CAAc,OAAOC,OAAOJ,GAAGK;gBAClDR,IAAI,mBAAmB,GAAG;oBACtB,OAAO;wBACH,SAASO,MAAM,OAAO;wBACtB,MAAMA,MAAM,IAAI;wBAChB,MAAMA,MAAM,IAAI;oBACpB;oBACA,QAAQE,iBAAiB,KAAK;gBAClC;gBACA,OAAOD,MAAM,IAAI;YACrB;YAEAF,QAAQ,IAAI,CAACX,KAAK,OAAOQ,GAAGK;gBACxB,MAAME,UAAU,IAAIC,WAIhBX,IAAI,MAAM,EACVY,aAAab,UACb,IAAIc;gBAGRb,IAAI,mBAAmB,GAAG,MAAMU,QAAQ,GAAG,CAACZ;gBAC5C,OAAOU,MAAM,IAAI,CAAC,CAAC;YACvB;QACJ;QAEA,OAAOM,QAAQ;YACXd;YACAL,KAAAA;YACA,SAAS;gBACL,GAAGG,KAAK;gBACR,SAAS;oBACL,CAAC,WAAW,EAAEA,MAAM,MAAM;oBAC1B,CAAC,wBAAwB,EAAEA,MAAM,QAAQ;oBACzC,CAAC,kBAAkB,EAAE;gBACzB;YACJ;QACJ;IACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { registry } from "@webiny/handler-aws/registry.js";
|
|
2
|
+
import { createSourceHandler } from "@webiny/handler-aws";
|
|
3
|
+
const handler = createSourceHandler({
|
|
4
|
+
name: "handler-webiny-background-task",
|
|
5
|
+
canUse: (event)=>!!event.payload?.webinyTaskId,
|
|
6
|
+
handle: async ({ params, event, context })=>{
|
|
7
|
+
const { createHandler } = await import("./index.js");
|
|
8
|
+
return createHandler(params)(event.payload, context);
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
registry.register(handler, {
|
|
12
|
+
silent: true
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=register.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/handler/register.js","sources":["../../../src/api/handler/register.ts"],"sourcesContent":["import { registry } from \"@webiny/handler-aws/registry.js\";\nimport { createSourceHandler } from \"@webiny/handler-aws\";\nimport type { HandlerParams, IIncomingEvent, ITaskEvent } from \"./types.js\";\n\nconst handler = createSourceHandler<IIncomingEvent<ITaskEvent>, HandlerParams>({\n name: \"handler-webiny-background-task\",\n canUse: event => {\n return !!event.payload?.webinyTaskId;\n },\n handle: async ({ params, event, context }) => {\n const { createHandler } = await import(\n /* webpackChunkName: \"tasks.handler.createHandler\" */\n \"./index.js\"\n );\n return createHandler(params)(event.payload, context);\n }\n});\n\nregistry.register(handler, {\n silent: true\n});\n"],"names":["handler","createSourceHandler","event","params","context","createHandler","registry"],"mappings":";;AAIA,MAAMA,UAAUC,oBAA+D;IAC3E,MAAM;IACN,QAAQC,CAAAA,QACG,CAAC,CAACA,MAAM,OAAO,EAAE;IAE5B,QAAQ,OAAO,EAAEC,MAAM,EAAED,KAAK,EAAEE,OAAO,EAAE;QACrC,MAAM,EAAEC,aAAa,EAAE,GAAG,MAAM,MAAM,CAAN;QAIhC,OAAOA,cAAcF,QAAQD,MAAM,OAAO,EAAEE;IAChD;AACJ;AAEAE,SAAS,QAAQ,CAACN,SAAS;IACvB,QAAQ;AACZ"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { HandlerFactoryParams } from "@webiny/handler-aws/types.js";
|
|
2
|
+
export type HandlerParams = HandlerFactoryParams;
|
|
3
|
+
export interface IIncomingEvent<TEvent> {
|
|
4
|
+
name: string;
|
|
5
|
+
payload: TEvent;
|
|
6
|
+
}
|
|
7
|
+
export interface ITaskEventInput {
|
|
8
|
+
tenant: string;
|
|
9
|
+
webinyTaskId: string;
|
|
10
|
+
webinyTaskDefinitionId: string;
|
|
11
|
+
delay?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface ITaskEvent {
|
|
14
|
+
tenant: string;
|
|
15
|
+
endpoint: string;
|
|
16
|
+
webinyTaskId: string;
|
|
17
|
+
webinyTaskDefinitionId: string;
|
|
18
|
+
executionName: string;
|
|
19
|
+
stateMachineId: string;
|
|
20
|
+
}
|
|
21
|
+
export interface ITaskRawEvent extends ITaskEvent {
|
|
22
|
+
delay?: number;
|
|
23
|
+
}
|
|
File without changes
|
package/api/index.d.ts
CHANGED
package/api/index.js
CHANGED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ModelFactory } from "@webiny/api-headless-cms/features/modelBuilder/index.js";
|
|
2
|
+
declare class BackgroundTaskSettingsModelFactory implements ModelFactory.Interface {
|
|
3
|
+
execute(builder: ModelFactory.Builder): Promise<import("@webiny/api-headless-cms/features/modelBuilder/index.js").PublicModelBuilder[]>;
|
|
4
|
+
}
|
|
5
|
+
export declare const BackgroundTaskSettingsModel: typeof BackgroundTaskSettingsModelFactory & {
|
|
6
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/modelBuilder/abstractions").IModelFactory>;
|
|
7
|
+
};
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ModelFactory } from "@webiny/api-headless-cms/features/modelBuilder/index.js";
|
|
2
|
+
import { BACKGROUND_TASK_MAX_RETENTION_DAYS, BACKGROUND_TASK_SETTINGS_MODEL_ID } from "../domain/constants.js";
|
|
3
|
+
class BackgroundTaskSettingsModelFactory {
|
|
4
|
+
async execute(builder) {
|
|
5
|
+
const model = builder.public({
|
|
6
|
+
modelId: BACKGROUND_TASK_SETTINGS_MODEL_ID,
|
|
7
|
+
name: "Background Task Settings",
|
|
8
|
+
group: "hidden"
|
|
9
|
+
}).description("Global settings for the background tasks system.").titleFieldId("retentionDays").singularApiName("BackgroundTaskSettings").pluralApiName("BackgroundTaskSettings").tags([
|
|
10
|
+
"$publishing:false",
|
|
11
|
+
"$hidden:true"
|
|
12
|
+
]).singleEntry();
|
|
13
|
+
model.fields((fields)=>({
|
|
14
|
+
retentionDays: fields.number().label("Retention (days)").gte(0, "Must be 0 or greater.").lte(BACKGROUND_TASK_MAX_RETENTION_DAYS, `Must be at most ${BACKGROUND_TASK_MAX_RETENTION_DAYS}.`).description(`How long to keep completed task runs. 0 = never delete. Max ${BACKGROUND_TASK_MAX_RETENTION_DAYS} days.`)
|
|
15
|
+
}));
|
|
16
|
+
return [
|
|
17
|
+
model
|
|
18
|
+
];
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
const BackgroundTaskSettingsModel = ModelFactory.createImplementation({
|
|
22
|
+
implementation: BackgroundTaskSettingsModelFactory,
|
|
23
|
+
dependencies: []
|
|
24
|
+
});
|
|
25
|
+
export { BackgroundTaskSettingsModel };
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=BackgroundTaskSettingsModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/models/BackgroundTaskSettingsModel.js","sources":["../../../src/api/models/BackgroundTaskSettingsModel.ts"],"sourcesContent":["import { ModelFactory } from \"@webiny/api-headless-cms/features/modelBuilder/index.js\";\nimport {\n BACKGROUND_TASK_SETTINGS_MODEL_ID,\n BACKGROUND_TASK_MAX_RETENTION_DAYS\n} from \"~/api/domain/constants.js\";\n\nclass BackgroundTaskSettingsModelFactory implements ModelFactory.Interface {\n async execute(builder: ModelFactory.Builder) {\n const model = builder\n .public({\n modelId: BACKGROUND_TASK_SETTINGS_MODEL_ID,\n name: \"Background Task Settings\",\n group: \"hidden\"\n })\n .description(\"Global settings for the background tasks system.\")\n .titleFieldId(\"retentionDays\")\n .singularApiName(\"BackgroundTaskSettings\")\n .pluralApiName(\"BackgroundTaskSettings\")\n .tags([\"$publishing:false\", \"$hidden:true\"])\n .singleEntry();\n\n model.fields(fields => ({\n retentionDays: fields\n .number()\n .label(\"Retention (days)\")\n .gte(0, \"Must be 0 or greater.\")\n .lte(\n BACKGROUND_TASK_MAX_RETENTION_DAYS,\n `Must be at most ${BACKGROUND_TASK_MAX_RETENTION_DAYS}.`\n )\n .description(\n `How long to keep completed task runs. 0 = never delete. Max ${BACKGROUND_TASK_MAX_RETENTION_DAYS} days.`\n )\n }));\n\n return [model];\n }\n}\n\nexport const BackgroundTaskSettingsModel = ModelFactory.createImplementation({\n implementation: BackgroundTaskSettingsModelFactory,\n dependencies: []\n});\n"],"names":["BackgroundTaskSettingsModelFactory","builder","model","BACKGROUND_TASK_SETTINGS_MODEL_ID","fields","BACKGROUND_TASK_MAX_RETENTION_DAYS","BackgroundTaskSettingsModel","ModelFactory"],"mappings":";;AAMA,MAAMA;IACF,MAAM,QAAQC,OAA6B,EAAE;QACzC,MAAMC,QAAQD,QACT,MAAM,CAAC;YACJ,SAASE;YACT,MAAM;YACN,OAAO;QACX,GACC,WAAW,CAAC,oDACZ,YAAY,CAAC,iBACb,eAAe,CAAC,0BAChB,aAAa,CAAC,0BACd,IAAI,CAAC;YAAC;YAAqB;SAAe,EAC1C,WAAW;QAEhBD,MAAM,MAAM,CAACE,CAAAA,SAAW;gBACpB,eAAeA,OACV,MAAM,GACN,KAAK,CAAC,oBACN,GAAG,CAAC,GAAG,yBACP,GAAG,CACAC,oCACA,CAAC,gBAAgB,EAAEA,mCAAmC,CAAC,CAAC,EAE3D,WAAW,CACR,CAAC,4DAA4D,EAAEA,mCAAmC,MAAM,CAAC;YAErH;QAEA,OAAO;YAACH;SAAM;IAClB;AACJ;AAEO,MAAMI,8BAA8BC,aAAa,oBAAoB,CAAC;IACzE,gBAAgBP;IAChB,cAAc,EAAE;AACpB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const BACKGROUND_TASK_PERMISSIONS_SCHEMA: {
|
|
2
|
+
readonly prefix: "backgroundTasks";
|
|
3
|
+
readonly fullAccess: true;
|
|
4
|
+
readonly entities: readonly [{
|
|
5
|
+
readonly id: "task";
|
|
6
|
+
readonly permission: "backgroundTasks.task";
|
|
7
|
+
readonly scopes: readonly ["full"];
|
|
8
|
+
readonly actions: readonly [{
|
|
9
|
+
readonly name: "rwd";
|
|
10
|
+
}];
|
|
11
|
+
}];
|
|
12
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { createPermissionSchema } from "@webiny/api-core/exports/api/security.js";
|
|
2
|
+
const BACKGROUND_TASK_PERMISSIONS_SCHEMA = createPermissionSchema({
|
|
3
|
+
prefix: "backgroundTasks",
|
|
4
|
+
fullAccess: true,
|
|
5
|
+
entities: [
|
|
6
|
+
{
|
|
7
|
+
id: "task",
|
|
8
|
+
permission: "backgroundTasks.task",
|
|
9
|
+
scopes: [
|
|
10
|
+
"full"
|
|
11
|
+
],
|
|
12
|
+
actions: [
|
|
13
|
+
{
|
|
14
|
+
name: "rwd"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
});
|
|
20
|
+
export { BACKGROUND_TASK_PERMISSIONS_SCHEMA };
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=permissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/permissions.js","sources":["../../src/api/permissions.ts"],"sourcesContent":["import { createPermissionSchema } from \"@webiny/api-core/exports/api/security.js\";\n\nexport const BACKGROUND_TASK_PERMISSIONS_SCHEMA = createPermissionSchema({\n prefix: \"backgroundTasks\",\n fullAccess: true,\n entities: [\n {\n id: \"task\",\n permission: \"backgroundTasks.task\",\n scopes: [\"full\"],\n actions: [{ name: \"rwd\" }]\n }\n ]\n});\n"],"names":["BACKGROUND_TASK_PERMISSIONS_SCHEMA","createPermissionSchema"],"mappings":";AAEO,MAAMA,qCAAqCC,uBAAuB;IACrE,QAAQ;IACR,YAAY;IACZ,UAAU;QACN;YACI,IAAI;YACJ,YAAY;YACZ,QAAQ;gBAAC;aAAO;YAChB,SAAS;gBAAC;oBAAE,MAAM;gBAAM;aAAE;QAC9B;KACH;AACL"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Plugin } from "@webiny/plugins";
|
|
2
|
+
import type { ITask } from "../../api/types.js";
|
|
3
|
+
export interface ITaskServiceCreatePluginParams {
|
|
4
|
+
getTenant(): string;
|
|
5
|
+
}
|
|
6
|
+
export type ITaskServiceTask = Pick<ITask, "id" | "definitionId">;
|
|
7
|
+
export interface ITaskService {
|
|
8
|
+
send(task: ITaskServiceTask, delay: number): Promise<unknown | null>;
|
|
9
|
+
fetch(task: ITask): Promise<unknown | null>;
|
|
10
|
+
}
|
|
11
|
+
export interface ITaskServicePluginParams {
|
|
12
|
+
default?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare abstract class TaskServicePlugin extends Plugin {
|
|
15
|
+
static readonly type: string;
|
|
16
|
+
readonly default: boolean;
|
|
17
|
+
constructor(params?: ITaskServicePluginParams);
|
|
18
|
+
abstract createService(params: ITaskServiceCreatePluginParams): ITaskService;
|
|
19
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Plugin } from "@webiny/plugins";
|
|
2
|
+
class TaskServicePlugin extends Plugin {
|
|
3
|
+
static{
|
|
4
|
+
this.type = "tasks.taskService";
|
|
5
|
+
}
|
|
6
|
+
constructor(params){
|
|
7
|
+
super();
|
|
8
|
+
this.default = !!params?.default;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export { TaskServicePlugin };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=TaskServicePlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/plugins/TaskServicePlugin.js","sources":["../../../src/api/plugins/TaskServicePlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport type { ITask } from \"~/api/types.js\";\n\nexport interface ITaskServiceCreatePluginParams {\n getTenant(): string;\n}\n\nexport type ITaskServiceTask = Pick<ITask, \"id\" | \"definitionId\">;\n\nexport interface ITaskService {\n send(task: ITaskServiceTask, delay: number): Promise<unknown | null>;\n fetch(task: ITask): Promise<unknown | null>;\n}\n\nexport interface ITaskServicePluginParams {\n default?: boolean;\n}\n\nexport abstract class TaskServicePlugin extends Plugin {\n public static override readonly type: string = \"tasks.taskService\";\n public readonly default: boolean;\n\n public constructor(params?: ITaskServicePluginParams) {\n super();\n this.default = !!params?.default;\n }\n\n public abstract createService(params: ITaskServiceCreatePluginParams): ITaskService;\n}\n"],"names":["TaskServicePlugin","Plugin","params"],"mappings":";AAkBO,MAAeA,0BAA0BC;;aACZ,IAAI,GAAW;;IAG/C,YAAmBC,MAAiC,CAAE;QAClD,KAAK;QACL,IAAI,CAAC,OAAO,GAAG,CAAC,CAACA,QAAQ;IAC7B;AAGJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./TaskServicePlugin.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./TaskServicePlugin.js";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { IResponse, IResponseAsync, IResponseContinueParams, IResponseContinueResult, IResponseDoneParams, IResponseDoneResult, IResponseErrorParams, IResponseErrorResult, IResponseResult } from "./abstractions/index.js";
|
|
2
|
+
import type { ITaskManagerStorePrivate } from "../../api/runner/abstractions/index.js";
|
|
3
|
+
export declare class DatabaseResponse implements IResponseAsync {
|
|
4
|
+
readonly response: IResponse;
|
|
5
|
+
private readonly store;
|
|
6
|
+
constructor(response: IResponse, store: ITaskManagerStorePrivate);
|
|
7
|
+
from(result: IResponseResult): Promise<IResponseResult>;
|
|
8
|
+
done(params: IResponseDoneParams): Promise<IResponseDoneResult>;
|
|
9
|
+
aborted(): Promise<import("~/api/types.js").IResponseAbortedResult>;
|
|
10
|
+
continue(params: IResponseContinueParams): Promise<IResponseContinueResult | IResponseErrorResult>;
|
|
11
|
+
error(params: IResponseErrorParams): Promise<IResponseErrorResult>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { TaskDataStatus } from "../types.js";
|
|
2
|
+
import { NotFoundError } from "@webiny/handler-graphql";
|
|
3
|
+
import { getErrorProperties } from "../utils/getErrorProperties.js";
|
|
4
|
+
import { TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
5
|
+
class DatabaseResponse {
|
|
6
|
+
constructor(response, store){
|
|
7
|
+
this.response = response;
|
|
8
|
+
this.store = store;
|
|
9
|
+
}
|
|
10
|
+
from(result) {
|
|
11
|
+
switch(result.status){
|
|
12
|
+
case TaskResultStatus.DONE:
|
|
13
|
+
return this.done(result);
|
|
14
|
+
case TaskResultStatus.CONTINUE:
|
|
15
|
+
return this.continue(result);
|
|
16
|
+
case TaskResultStatus.ERROR:
|
|
17
|
+
return this.error(result);
|
|
18
|
+
case TaskResultStatus.ABORTED:
|
|
19
|
+
return this.aborted();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
async done(params) {
|
|
23
|
+
const { output, ...rest } = params;
|
|
24
|
+
let message = params.message;
|
|
25
|
+
try {
|
|
26
|
+
await this.store.updateTask({
|
|
27
|
+
taskStatus: TaskDataStatus.SUCCESS,
|
|
28
|
+
finishedOn: new Date().toISOString(),
|
|
29
|
+
output
|
|
30
|
+
});
|
|
31
|
+
await this.store.addInfoLog({
|
|
32
|
+
message: message || "Task done."
|
|
33
|
+
});
|
|
34
|
+
await this.store.save();
|
|
35
|
+
} catch (ex) {
|
|
36
|
+
message = `Task done, but failed to update task log. (${ex.message || "unknown"})`;
|
|
37
|
+
}
|
|
38
|
+
return this.response.done({
|
|
39
|
+
...rest,
|
|
40
|
+
message,
|
|
41
|
+
output
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
async aborted() {
|
|
45
|
+
return this.response.aborted();
|
|
46
|
+
}
|
|
47
|
+
async continue(params) {
|
|
48
|
+
try {
|
|
49
|
+
const task = this.store.getTask();
|
|
50
|
+
await this.store.updateTask({
|
|
51
|
+
input: {
|
|
52
|
+
...task.input,
|
|
53
|
+
...params.input
|
|
54
|
+
},
|
|
55
|
+
taskStatus: TaskDataStatus.RUNNING
|
|
56
|
+
});
|
|
57
|
+
await this.store.addInfoLog({
|
|
58
|
+
message: "Task continuing.",
|
|
59
|
+
data: params.input
|
|
60
|
+
});
|
|
61
|
+
await this.store.save();
|
|
62
|
+
} catch (ex) {
|
|
63
|
+
if (ex instanceof NotFoundError) return this.response.error({
|
|
64
|
+
error: {
|
|
65
|
+
message: ex.message || "Task not found.",
|
|
66
|
+
code: ex.code || "TASK_NOT_FOUND",
|
|
67
|
+
data: {
|
|
68
|
+
...ex.data,
|
|
69
|
+
input: this.store.getInput()
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
return this.error({
|
|
74
|
+
error: {
|
|
75
|
+
message: `Failed to update task input: ${ex.message || "unknown error"}`,
|
|
76
|
+
code: ex.code || "TASK_UPDATE_ERROR"
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
return this.response.continue(params);
|
|
81
|
+
}
|
|
82
|
+
async error(params) {
|
|
83
|
+
const error = params.error instanceof Error ? getErrorProperties(params.error) : params.error;
|
|
84
|
+
try {
|
|
85
|
+
await this.store.updateTask({
|
|
86
|
+
taskStatus: TaskDataStatus.FAILED,
|
|
87
|
+
finishedOn: new Date().toISOString(),
|
|
88
|
+
output: {
|
|
89
|
+
error
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
await this.store.addErrorLog({
|
|
93
|
+
message: params.error.message,
|
|
94
|
+
data: this.store.getInput(),
|
|
95
|
+
error
|
|
96
|
+
});
|
|
97
|
+
await this.store.save();
|
|
98
|
+
} catch (ex) {
|
|
99
|
+
return this.response.error({
|
|
100
|
+
...params,
|
|
101
|
+
error: {
|
|
102
|
+
...error,
|
|
103
|
+
message: ex.message || error.message,
|
|
104
|
+
code: ex.code || error.code,
|
|
105
|
+
data: {
|
|
106
|
+
...error.data,
|
|
107
|
+
...ex.data,
|
|
108
|
+
input: this.store.getInput()
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
return this.response.error({
|
|
114
|
+
...params,
|
|
115
|
+
error: {
|
|
116
|
+
...params.error,
|
|
117
|
+
data: {
|
|
118
|
+
...error.data,
|
|
119
|
+
input: this.store.getInput()
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
export { DatabaseResponse };
|
|
126
|
+
|
|
127
|
+
//# sourceMappingURL=DatabaseResponse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/response/DatabaseResponse.js","sources":["../../../src/api/response/DatabaseResponse.ts"],"sourcesContent":["import { TaskDataStatus } from \"~/api/types.js\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport type {\n IResponse,\n IResponseAsync,\n IResponseContinueParams,\n IResponseContinueResult,\n IResponseDoneParams,\n IResponseDoneResult,\n IResponseErrorParams,\n IResponseErrorResult,\n IResponseResult\n} from \"./abstractions/index.js\";\nimport type { ITaskManagerStorePrivate } from \"~/api/runner/abstractions/index.js\";\nimport { getErrorProperties } from \"~/api/utils/getErrorProperties.js\";\nimport { TaskResultStatus } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport class DatabaseResponse implements IResponseAsync {\n public readonly response: IResponse;\n\n private readonly store: ITaskManagerStorePrivate;\n\n public constructor(response: IResponse, store: ITaskManagerStorePrivate) {\n this.response = response;\n this.store = store;\n }\n\n public from(result: IResponseResult): Promise<IResponseResult> {\n switch (result.status) {\n case TaskResultStatus.DONE:\n return this.done(result);\n case TaskResultStatus.CONTINUE:\n return this.continue(result);\n case TaskResultStatus.ERROR:\n return this.error(result);\n case TaskResultStatus.ABORTED:\n return this.aborted();\n }\n }\n\n public async done(params: IResponseDoneParams): Promise<IResponseDoneResult> {\n const { output, ...rest } = params;\n let message = params.message;\n try {\n await this.store.updateTask({\n taskStatus: TaskDataStatus.SUCCESS,\n finishedOn: new Date().toISOString(),\n output\n });\n await this.store.addInfoLog({\n message: message || \"Task done.\"\n });\n await this.store.save();\n } catch (ex) {\n message = `Task done, but failed to update task log. (${ex.message || \"unknown\"})`;\n }\n /**\n * Default behavior is to return the done response.\n */\n return this.response.done({\n ...rest,\n message,\n output\n });\n }\n\n public async aborted() {\n return this.response.aborted();\n }\n\n public async continue(\n params: IResponseContinueParams\n ): Promise<IResponseContinueResult | IResponseErrorResult> {\n try {\n const task = this.store.getTask();\n await this.store.updateTask({\n input: {\n ...task.input,\n ...params.input\n },\n taskStatus: TaskDataStatus.RUNNING\n });\n await this.store.addInfoLog({\n message: \"Task continuing.\",\n data: params.input\n });\n await this.store.save();\n } catch (ex) {\n /**\n * If task was not found, we just return the error.\n */\n if (ex instanceof NotFoundError) {\n return this.response.error({\n error: {\n message: ex.message || `Task not found.`,\n code: ex.code || \"TASK_NOT_FOUND\",\n data: {\n ...ex.data,\n input: this.store.getInput()\n }\n }\n });\n }\n /**\n * Otherwise, we store the error and return it...\n */\n return this.error({\n error: {\n message: `Failed to update task input: ${ex.message || \"unknown error\"}`,\n code: ex.code || \"TASK_UPDATE_ERROR\"\n }\n });\n }\n /**\n * Default behavior is to return the continue response.\n */\n return this.response.continue(params);\n }\n\n public async error(params: IResponseErrorParams): Promise<IResponseErrorResult> {\n const error =\n params.error instanceof Error ? getErrorProperties(params.error) : params.error;\n try {\n await this.store.updateTask({\n taskStatus: TaskDataStatus.FAILED,\n finishedOn: new Date().toISOString(),\n output: {\n error\n }\n });\n await this.store.addErrorLog({\n message: params.error.message,\n data: this.store.getInput(),\n error\n });\n await this.store.save();\n } catch (ex) {\n return this.response.error({\n ...params,\n error: {\n ...error,\n message: ex.message || error.message,\n code: ex.code || error.code,\n data: {\n ...error.data,\n ...ex.data,\n input: this.store.getInput()\n }\n }\n });\n }\n /**\n * Default behavior is to return the error response.\n */\n return this.response.error({\n ...params,\n error: {\n ...params.error,\n data: {\n ...error.data,\n input: this.store.getInput()\n }\n }\n });\n }\n}\n"],"names":["DatabaseResponse","response","store","result","TaskResultStatus","params","output","rest","message","TaskDataStatus","Date","ex","task","NotFoundError","error","Error","getErrorProperties"],"mappings":";;;;AAiBO,MAAMA;IAKT,YAAmBC,QAAmB,EAAEC,KAA+B,CAAE;QACrE,IAAI,CAAC,QAAQ,GAAGD;QAChB,IAAI,CAAC,KAAK,GAAGC;IACjB;IAEO,KAAKC,MAAuB,EAA4B;QAC3D,OAAQA,OAAO,MAAM;YACjB,KAAKC,iBAAiB,IAAI;gBACtB,OAAO,IAAI,CAAC,IAAI,CAACD;YACrB,KAAKC,iBAAiB,QAAQ;gBAC1B,OAAO,IAAI,CAAC,QAAQ,CAACD;YACzB,KAAKC,iBAAiB,KAAK;gBACvB,OAAO,IAAI,CAAC,KAAK,CAACD;YACtB,KAAKC,iBAAiB,OAAO;gBACzB,OAAO,IAAI,CAAC,OAAO;QAC3B;IACJ;IAEA,MAAa,KAAKC,MAA2B,EAAgC;QACzE,MAAM,EAAEC,MAAM,EAAE,GAAGC,MAAM,GAAGF;QAC5B,IAAIG,UAAUH,OAAO,OAAO;QAC5B,IAAI;YACA,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;gBACxB,YAAYI,eAAe,OAAO;gBAClC,YAAY,IAAIC,OAAO,WAAW;gBAClCJ;YACJ;YACA,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;gBACxB,SAASE,WAAW;YACxB;YACA,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI;QACzB,EAAE,OAAOG,IAAI;YACTH,UAAU,CAAC,2CAA2C,EAAEG,GAAG,OAAO,IAAI,UAAU,CAAC,CAAC;QACtF;QAIA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACtB,GAAGJ,IAAI;YACPC;YACAF;QACJ;IACJ;IAEA,MAAa,UAAU;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO;IAChC;IAEA,MAAa,SACTD,MAA+B,EACwB;QACvD,IAAI;YACA,MAAMO,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO;YAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;gBACxB,OAAO;oBACH,GAAGA,KAAK,KAAK;oBACb,GAAGP,OAAO,KAAK;gBACnB;gBACA,YAAYI,eAAe,OAAO;YACtC;YACA,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;gBACxB,SAAS;gBACT,MAAMJ,OAAO,KAAK;YACtB;YACA,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI;QACzB,EAAE,OAAOM,IAAI;YAIT,IAAIA,cAAcE,eACd,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACvB,OAAO;oBACH,SAASF,GAAG,OAAO,IAAI;oBACvB,MAAMA,GAAG,IAAI,IAAI;oBACjB,MAAM;wBACF,GAAGA,GAAG,IAAI;wBACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ;oBAC9B;gBACJ;YACJ;YAKJ,OAAO,IAAI,CAAC,KAAK,CAAC;gBACd,OAAO;oBACH,SAAS,CAAC,6BAA6B,EAAEA,GAAG,OAAO,IAAI,iBAAiB;oBACxE,MAAMA,GAAG,IAAI,IAAI;gBACrB;YACJ;QACJ;QAIA,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAACN;IAClC;IAEA,MAAa,MAAMA,MAA4B,EAAiC;QAC5E,MAAMS,QACFT,OAAO,KAAK,YAAYU,QAAQC,mBAAmBX,OAAO,KAAK,IAAIA,OAAO,KAAK;QACnF,IAAI;YACA,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;gBACxB,YAAYI,eAAe,MAAM;gBACjC,YAAY,IAAIC,OAAO,WAAW;gBAClC,QAAQ;oBACJI;gBACJ;YACJ;YACA,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;gBACzB,SAAST,OAAO,KAAK,CAAC,OAAO;gBAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ;gBACzBS;YACJ;YACA,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI;QACzB,EAAE,OAAOH,IAAI;YACT,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACvB,GAAGN,MAAM;gBACT,OAAO;oBACH,GAAGS,KAAK;oBACR,SAASH,GAAG,OAAO,IAAIG,MAAM,OAAO;oBACpC,MAAMH,GAAG,IAAI,IAAIG,MAAM,IAAI;oBAC3B,MAAM;wBACF,GAAGA,MAAM,IAAI;wBACb,GAAGH,GAAG,IAAI;wBACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ;oBAC9B;gBACJ;YACJ;QACJ;QAIA,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YACvB,GAAGN,MAAM;YACT,OAAO;gBACH,GAAGA,OAAO,KAAK;gBACf,MAAM;oBACF,GAAGS,MAAM,IAAI;oBACb,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ;gBAC9B;YACJ;QACJ;IACJ;AACJ"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ITaskEvent } from "../../api/handler/types.js";
|
|
2
|
+
import type { IResponse, IResponseAbortedResult, IResponseContinueParams, IResponseContinueResult, IResponseDoneParams, IResponseDoneResult, IResponseErrorParams, IResponseErrorResult, IResponseFromParams, IResponseResult } from "./abstractions/index.js";
|
|
3
|
+
import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
4
|
+
export declare class Response implements IResponse {
|
|
5
|
+
private _event;
|
|
6
|
+
get event(): ITaskEvent;
|
|
7
|
+
constructor(event: ITaskEvent);
|
|
8
|
+
setEvent(event: ITaskEvent): void;
|
|
9
|
+
from(params: IResponseFromParams): IResponseResult;
|
|
10
|
+
continue(params: IResponseContinueParams): IResponseContinueResult;
|
|
11
|
+
done<O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput>(params?: IResponseDoneParams<O>): IResponseDoneResult<O>;
|
|
12
|
+
aborted(): IResponseAbortedResult;
|
|
13
|
+
error(params: IResponseErrorParams): IResponseErrorResult;
|
|
14
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import object_sizeof from "object-sizeof";
|
|
2
|
+
import { ResponseContinueResult } from "./ResponseContinueResult.js";
|
|
3
|
+
import { ResponseDoneResult } from "./ResponseDoneResult.js";
|
|
4
|
+
import { ResponseErrorResult } from "./ResponseErrorResult.js";
|
|
5
|
+
import { ResponseAbortedResult } from "./ResponseAbortedResult.js";
|
|
6
|
+
import { getErrorProperties } from "../utils/getErrorProperties.js";
|
|
7
|
+
import { TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
8
|
+
const MAX_SIZE_BYTES = 237568;
|
|
9
|
+
const createMaxSizeOutput = ({ size })=>({
|
|
10
|
+
message: "Output size exceeds the maximum allowed size.",
|
|
11
|
+
size,
|
|
12
|
+
max: MAX_SIZE_BYTES
|
|
13
|
+
});
|
|
14
|
+
const getOutput = (output)=>{
|
|
15
|
+
if (!output || 0 === Object.keys(output).length) return;
|
|
16
|
+
let size = object_sizeof(output);
|
|
17
|
+
if (size > MAX_SIZE_BYTES) {
|
|
18
|
+
if (output.stack) {
|
|
19
|
+
delete output.stack;
|
|
20
|
+
size = object_sizeof(output);
|
|
21
|
+
if (size <= MAX_SIZE_BYTES) return output;
|
|
22
|
+
}
|
|
23
|
+
if (output.error?.stack) {
|
|
24
|
+
delete output.error.stack;
|
|
25
|
+
size = object_sizeof(output);
|
|
26
|
+
if (size <= MAX_SIZE_BYTES) return output;
|
|
27
|
+
}
|
|
28
|
+
return createMaxSizeOutput({
|
|
29
|
+
size
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
return output;
|
|
33
|
+
};
|
|
34
|
+
class Response {
|
|
35
|
+
get event() {
|
|
36
|
+
return this._event;
|
|
37
|
+
}
|
|
38
|
+
constructor(event){
|
|
39
|
+
this._event = event;
|
|
40
|
+
}
|
|
41
|
+
setEvent(event) {
|
|
42
|
+
this._event = event;
|
|
43
|
+
}
|
|
44
|
+
from(params) {
|
|
45
|
+
switch(params.status){
|
|
46
|
+
case TaskResultStatus.DONE:
|
|
47
|
+
return this.done(params);
|
|
48
|
+
case TaskResultStatus.CONTINUE:
|
|
49
|
+
return this.continue(params);
|
|
50
|
+
case TaskResultStatus.ERROR:
|
|
51
|
+
return this.error(params);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
continue(params) {
|
|
55
|
+
return new ResponseContinueResult({
|
|
56
|
+
message: params.message,
|
|
57
|
+
input: params.input,
|
|
58
|
+
webinyTaskId: params?.webinyTaskId || this.event.webinyTaskId,
|
|
59
|
+
webinyTaskDefinitionId: this.event.webinyTaskDefinitionId,
|
|
60
|
+
tenant: params?.tenant || this.event.tenant,
|
|
61
|
+
wait: params.wait
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
done(params) {
|
|
65
|
+
return new ResponseDoneResult({
|
|
66
|
+
webinyTaskId: params?.webinyTaskId || this.event.webinyTaskId,
|
|
67
|
+
webinyTaskDefinitionId: this.event.webinyTaskDefinitionId,
|
|
68
|
+
tenant: params?.tenant || this.event.tenant,
|
|
69
|
+
message: params?.message,
|
|
70
|
+
output: getOutput(params?.output)
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
aborted() {
|
|
74
|
+
return new ResponseAbortedResult({
|
|
75
|
+
webinyTaskId: this.event.webinyTaskId,
|
|
76
|
+
webinyTaskDefinitionId: this.event.webinyTaskDefinitionId,
|
|
77
|
+
tenant: this.event.tenant
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
error(params) {
|
|
81
|
+
return new ResponseErrorResult({
|
|
82
|
+
webinyTaskId: params.webinyTaskId || this.event.webinyTaskId,
|
|
83
|
+
webinyTaskDefinitionId: this.event.webinyTaskDefinitionId,
|
|
84
|
+
tenant: params.tenant || this.event.tenant,
|
|
85
|
+
error: params.error instanceof Error ? getErrorProperties(params.error) : params.error
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
export { Response };
|
|
90
|
+
|
|
91
|
+
//# sourceMappingURL=Response.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/response/Response.js","sources":["../../../src/api/response/Response.ts"],"sourcesContent":["import sizeOfObject from \"object-sizeof\";\n\nimport type { ITaskEvent } from \"~/api/handler/types.js\";\nimport type {\n IResponse,\n IResponseAbortedResult,\n IResponseContinueParams,\n IResponseContinueResult,\n IResponseDoneParams,\n IResponseDoneResult,\n IResponseErrorParams,\n IResponseErrorResult,\n IResponseFromParams,\n IResponseResult\n} from \"./abstractions/index.js\";\nimport { ResponseContinueResult } from \"~/api/response/ResponseContinueResult.js\";\nimport { ResponseDoneResult } from \"~/api/response/ResponseDoneResult.js\";\nimport { ResponseErrorResult } from \"~/api/response/ResponseErrorResult.js\";\nimport { ResponseAbortedResult } from \"./ResponseAbortedResult.js\";\nimport { getErrorProperties } from \"~/api/utils/getErrorProperties.js\";\nimport {\n TaskDefinition,\n TaskResultStatus\n} from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\n/**\n * Step Functions has a limit of 256KB for the output size.\n * We will set the max output to be 232KB to leave some room for the rest of the data.\n */\nconst MAX_SIZE_BYTES: number = 232 * 1024;\n\ninterface ICreateMaxSizeOutputParams {\n size: number;\n}\n\nconst createMaxSizeOutput = <O extends TaskDefinition.TaskOutput>({\n size\n}: ICreateMaxSizeOutputParams): O => {\n return {\n message: `Output size exceeds the maximum allowed size.`,\n size,\n max: MAX_SIZE_BYTES\n } as unknown as O;\n};\n/**\n * Figure out the size of the output object and remove the stack trace if the size exceeds the maximum allowed size.\n * If the size is still greater than the maximum allowed size, just return the message that the output size exceeds the maximum allowed size.\n */\nconst getOutput = <O extends TaskDefinition.TaskOutput>(output?: O): O | undefined => {\n if (!output || Object.keys(output).length === 0) {\n return undefined;\n }\n let size = sizeOfObject(output);\n if (size > MAX_SIZE_BYTES) {\n if (output.stack) {\n delete output.stack;\n size = sizeOfObject(output);\n if (size <= MAX_SIZE_BYTES) {\n return output;\n }\n }\n if (output.error?.stack) {\n delete output.error.stack;\n size = sizeOfObject(output);\n if (size <= MAX_SIZE_BYTES) {\n return output;\n }\n }\n return createMaxSizeOutput<O>({ size });\n }\n return output;\n};\n\nexport class Response implements IResponse {\n private _event: ITaskEvent;\n\n public get event(): ITaskEvent {\n return this._event;\n }\n\n public constructor(event: ITaskEvent) {\n this._event = event;\n }\n\n public setEvent(event: ITaskEvent) {\n this._event = event;\n }\n\n public from(params: IResponseFromParams): IResponseResult {\n switch (params.status) {\n case TaskResultStatus.DONE:\n return this.done(params);\n case TaskResultStatus.CONTINUE:\n return this.continue(params);\n case TaskResultStatus.ERROR:\n return this.error(params);\n }\n }\n\n public continue(params: IResponseContinueParams): IResponseContinueResult {\n return new ResponseContinueResult({\n message: params.message,\n input: params.input,\n webinyTaskId: params?.webinyTaskId || this.event.webinyTaskId,\n webinyTaskDefinitionId: this.event.webinyTaskDefinitionId,\n tenant: params?.tenant || this.event.tenant,\n wait: params.wait\n });\n }\n\n public done<O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput>(\n params?: IResponseDoneParams<O>\n ): IResponseDoneResult<O> {\n return new ResponseDoneResult<O>({\n webinyTaskId: params?.webinyTaskId || this.event.webinyTaskId,\n webinyTaskDefinitionId: this.event.webinyTaskDefinitionId,\n tenant: params?.tenant || this.event.tenant,\n message: params?.message,\n output: getOutput<O>(params?.output)\n });\n }\n\n public aborted(): IResponseAbortedResult {\n return new ResponseAbortedResult({\n webinyTaskId: this.event.webinyTaskId,\n webinyTaskDefinitionId: this.event.webinyTaskDefinitionId,\n tenant: this.event.tenant\n });\n }\n\n public error(params: IResponseErrorParams): IResponseErrorResult {\n return new ResponseErrorResult({\n webinyTaskId: params.webinyTaskId || this.event.webinyTaskId,\n webinyTaskDefinitionId: this.event.webinyTaskDefinitionId,\n tenant: params.tenant || this.event.tenant,\n error: params.error instanceof Error ? getErrorProperties(params.error) : params.error\n });\n }\n}\n"],"names":["MAX_SIZE_BYTES","createMaxSizeOutput","size","getOutput","output","Object","sizeOfObject","Response","event","params","TaskResultStatus","ResponseContinueResult","ResponseDoneResult","ResponseAbortedResult","ResponseErrorResult","Error","getErrorProperties"],"mappings":";;;;;;;AA6BA,MAAMA,iBAAyB;AAM/B,MAAMC,sBAAsB,CAAsC,EAC9DC,IAAI,EACqB,GAClB;QACH,SAAS;QACTA;QACA,KAAKF;IACT;AAMJ,MAAMG,YAAY,CAAsCC;IACpD,IAAI,CAACA,UAAUC,AAA+B,MAA/BA,OAAO,IAAI,CAACD,QAAQ,MAAM,EACrC;IAEJ,IAAIF,OAAOI,cAAaF;IACxB,IAAIF,OAAOF,gBAAgB;QACvB,IAAII,OAAO,KAAK,EAAE;YACd,OAAOA,OAAO,KAAK;YACnBF,OAAOI,cAAaF;YACpB,IAAIF,QAAQF,gBACR,OAAOI;QAEf;QACA,IAAIA,OAAO,KAAK,EAAE,OAAO;YACrB,OAAOA,OAAO,KAAK,CAAC,KAAK;YACzBF,OAAOI,cAAaF;YACpB,IAAIF,QAAQF,gBACR,OAAOI;QAEf;QACA,OAAOH,oBAAuB;YAAEC;QAAK;IACzC;IACA,OAAOE;AACX;AAEO,MAAMG;IAGT,IAAW,QAAoB;QAC3B,OAAO,IAAI,CAAC,MAAM;IACtB;IAEA,YAAmBC,KAAiB,CAAE;QAClC,IAAI,CAAC,MAAM,GAAGA;IAClB;IAEO,SAASA,KAAiB,EAAE;QAC/B,IAAI,CAAC,MAAM,GAAGA;IAClB;IAEO,KAAKC,MAA2B,EAAmB;QACtD,OAAQA,OAAO,MAAM;YACjB,KAAKC,iBAAiB,IAAI;gBACtB,OAAO,IAAI,CAAC,IAAI,CAACD;YACrB,KAAKC,iBAAiB,QAAQ;gBAC1B,OAAO,IAAI,CAAC,QAAQ,CAACD;YACzB,KAAKC,iBAAiB,KAAK;gBACvB,OAAO,IAAI,CAAC,KAAK,CAACD;QAC1B;IACJ;IAEO,SAASA,MAA+B,EAA2B;QACtE,OAAO,IAAIE,uBAAuB;YAC9B,SAASF,OAAO,OAAO;YACvB,OAAOA,OAAO,KAAK;YACnB,cAAcA,QAAQ,gBAAgB,IAAI,CAAC,KAAK,CAAC,YAAY;YAC7D,wBAAwB,IAAI,CAAC,KAAK,CAAC,sBAAsB;YACzD,QAAQA,QAAQ,UAAU,IAAI,CAAC,KAAK,CAAC,MAAM;YAC3C,MAAMA,OAAO,IAAI;QACrB;IACJ;IAEO,KACHA,MAA+B,EACT;QACtB,OAAO,IAAIG,mBAAsB;YAC7B,cAAcH,QAAQ,gBAAgB,IAAI,CAAC,KAAK,CAAC,YAAY;YAC7D,wBAAwB,IAAI,CAAC,KAAK,CAAC,sBAAsB;YACzD,QAAQA,QAAQ,UAAU,IAAI,CAAC,KAAK,CAAC,MAAM;YAC3C,SAASA,QAAQ;YACjB,QAAQN,UAAaM,QAAQ;QACjC;IACJ;IAEO,UAAkC;QACrC,OAAO,IAAII,sBAAsB;YAC7B,cAAc,IAAI,CAAC,KAAK,CAAC,YAAY;YACrC,wBAAwB,IAAI,CAAC,KAAK,CAAC,sBAAsB;YACzD,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM;QAC7B;IACJ;IAEO,MAAMJ,MAA4B,EAAwB;QAC7D,OAAO,IAAIK,oBAAoB;YAC3B,cAAcL,OAAO,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY;YAC5D,wBAAwB,IAAI,CAAC,KAAK,CAAC,sBAAsB;YACzD,QAAQA,OAAO,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;YAC1C,OAAOA,OAAO,KAAK,YAAYM,QAAQC,mBAAmBP,OAAO,KAAK,IAAIA,OAAO,KAAK;QAC1F;IACJ;AACJ"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { IResponseAbortedResult } from "./abstractions/index.js";
|
|
2
|
+
import { TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
3
|
+
export declare class ResponseAbortedResult implements IResponseAbortedResult {
|
|
4
|
+
readonly webinyTaskId: string;
|
|
5
|
+
readonly webinyTaskDefinitionId: string;
|
|
6
|
+
readonly tenant: string;
|
|
7
|
+
readonly status: TaskResultStatus.ABORTED;
|
|
8
|
+
constructor(params: Omit<IResponseAbortedResult, "status">);
|
|
9
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
2
|
+
class ResponseAbortedResult {
|
|
3
|
+
constructor(params){
|
|
4
|
+
this.status = TaskResultStatus.ABORTED;
|
|
5
|
+
this.webinyTaskId = params.webinyTaskId;
|
|
6
|
+
this.webinyTaskDefinitionId = params.webinyTaskDefinitionId;
|
|
7
|
+
this.tenant = params.tenant;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export { ResponseAbortedResult };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=ResponseAbortedResult.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/response/ResponseAbortedResult.js","sources":["../../../src/api/response/ResponseAbortedResult.ts"],"sourcesContent":["import type { IResponseAbortedResult } from \"./abstractions/index.js\";\nimport { TaskResultStatus } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport class ResponseAbortedResult implements IResponseAbortedResult {\n public readonly webinyTaskId: string;\n public readonly webinyTaskDefinitionId: string;\n public readonly tenant: string;\n public readonly status: TaskResultStatus.ABORTED = TaskResultStatus.ABORTED;\n\n public constructor(params: Omit<IResponseAbortedResult, \"status\">) {\n this.webinyTaskId = params.webinyTaskId;\n this.webinyTaskDefinitionId = params.webinyTaskDefinitionId;\n this.tenant = params.tenant;\n }\n}\n"],"names":["ResponseAbortedResult","params","TaskResultStatus"],"mappings":";AAGO,MAAMA;IAMT,YAAmBC,MAA8C,CAAE;aAFnD,MAAM,GAA6BC,iBAAiB,OAAO;QAGvE,IAAI,CAAC,YAAY,GAAGD,OAAO,YAAY;QACvC,IAAI,CAAC,sBAAsB,GAAGA,OAAO,sBAAsB;QAC3D,IAAI,CAAC,MAAM,GAAGA,OAAO,MAAM;IAC/B;AACJ"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ITaskDataInput } from "../../api/types.js";
|
|
2
|
+
import type { IResponseContinueResult } from "./abstractions/index.js";
|
|
3
|
+
import { TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
4
|
+
export declare class ResponseContinueResult<T = ITaskDataInput> implements IResponseContinueResult<T> {
|
|
5
|
+
readonly message?: string | undefined;
|
|
6
|
+
readonly webinyTaskId: string;
|
|
7
|
+
readonly webinyTaskDefinitionId: string;
|
|
8
|
+
readonly tenant: string;
|
|
9
|
+
readonly status: TaskResultStatus.CONTINUE;
|
|
10
|
+
readonly input: T;
|
|
11
|
+
/**
|
|
12
|
+
* We need this to make sure that the task will not use the delay from the previous iteration.
|
|
13
|
+
*/
|
|
14
|
+
readonly delay = -1;
|
|
15
|
+
readonly wait?: number;
|
|
16
|
+
constructor(params: Omit<IResponseContinueResult<T>, "delay" | "status">);
|
|
17
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
2
|
+
class ResponseContinueResult {
|
|
3
|
+
constructor(params){
|
|
4
|
+
this.status = TaskResultStatus.CONTINUE;
|
|
5
|
+
this.delay = -1;
|
|
6
|
+
this.message = params.message;
|
|
7
|
+
this.webinyTaskId = params.webinyTaskId;
|
|
8
|
+
this.webinyTaskDefinitionId = params.webinyTaskDefinitionId;
|
|
9
|
+
this.tenant = params.tenant;
|
|
10
|
+
this.input = params.input;
|
|
11
|
+
this.wait = params.wait;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export { ResponseContinueResult };
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=ResponseContinueResult.js.map
|