@webiny/background-tasks 0.0.0-unstable.0d717d18dd
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/LICENSE +21 -0
- package/README.md +11 -0
- package/admin/BackgroundTaskRoutes.d.ts +2 -0
- package/admin/BackgroundTaskRoutes.js +70 -0
- package/admin/BackgroundTaskRoutes.js.map +1 -0
- package/admin/BackgroundTasks.d.ts +2 -0
- package/admin/BackgroundTasks.js +55 -0
- package/admin/BackgroundTasks.js.map +1 -0
- package/admin/features/abortTask/AbortTaskGateway.d.ts +12 -0
- package/admin/features/abortTask/AbortTaskGateway.js +62 -0
- package/admin/features/abortTask/AbortTaskGateway.js.map +1 -0
- package/admin/features/abortTask/AbortTaskUseCase.d.ts +11 -0
- package/admin/features/abortTask/AbortTaskUseCase.js +18 -0
- package/admin/features/abortTask/AbortTaskUseCase.js.map +1 -0
- package/admin/features/abortTask/abstractions.d.ts +19 -0
- package/admin/features/abortTask/abstractions.js +6 -0
- package/admin/features/abortTask/abstractions.js.map +1 -0
- package/admin/features/abortTask/feature.d.ts +3 -0
- package/admin/features/abortTask/feature.js +19 -0
- package/admin/features/abortTask/feature.js.map +1 -0
- package/admin/features/abortTask/index.d.ts +2 -0
- package/admin/features/abortTask/index.js +2 -0
- package/admin/features/deleteTask/DeleteTaskGateway.d.ts +11 -0
- package/admin/features/deleteTask/DeleteTaskGateway.js +41 -0
- package/admin/features/deleteTask/DeleteTaskGateway.js.map +1 -0
- package/admin/features/deleteTask/DeleteTaskUseCase.d.ts +10 -0
- package/admin/features/deleteTask/DeleteTaskUseCase.js +18 -0
- package/admin/features/deleteTask/DeleteTaskUseCase.js.map +1 -0
- package/admin/features/deleteTask/abstractions.d.ts +14 -0
- package/admin/features/deleteTask/abstractions.js +6 -0
- package/admin/features/deleteTask/abstractions.js.map +1 -0
- package/admin/features/deleteTask/feature.d.ts +3 -0
- package/admin/features/deleteTask/feature.js +19 -0
- package/admin/features/deleteTask/feature.js.map +1 -0
- package/admin/features/deleteTask/index.d.ts +2 -0
- package/admin/features/deleteTask/index.js +2 -0
- 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/getTask/GetTaskGateway.d.ts +12 -0
- package/admin/features/getTask/GetTaskGateway.js +61 -0
- package/admin/features/getTask/GetTaskGateway.js.map +1 -0
- package/admin/features/getTask/GetTaskUseCase.d.ts +11 -0
- package/admin/features/getTask/GetTaskUseCase.js +18 -0
- package/admin/features/getTask/GetTaskUseCase.js.map +1 -0
- package/admin/features/getTask/abstractions.d.ts +15 -0
- package/admin/features/getTask/abstractions.js +6 -0
- package/admin/features/getTask/abstractions.js.map +1 -0
- package/admin/features/getTask/feature.d.ts +3 -0
- package/admin/features/getTask/feature.js +19 -0
- package/admin/features/getTask/feature.js.map +1 -0
- package/admin/features/getTask/index.d.ts +2 -0
- package/admin/features/getTask/index.js +2 -0
- package/admin/features/listDefinitions/ListDefinitionsGateway.d.ts +12 -0
- package/admin/features/listDefinitions/ListDefinitionsGateway.js +42 -0
- package/admin/features/listDefinitions/ListDefinitionsGateway.js.map +1 -0
- package/admin/features/listDefinitions/ListDefinitionsUseCase.d.ts +11 -0
- package/admin/features/listDefinitions/ListDefinitionsUseCase.js +18 -0
- package/admin/features/listDefinitions/ListDefinitionsUseCase.js.map +1 -0
- package/admin/features/listDefinitions/abstractions.d.ts +15 -0
- package/admin/features/listDefinitions/abstractions.js +6 -0
- package/admin/features/listDefinitions/abstractions.js.map +1 -0
- package/admin/features/listDefinitions/feature.d.ts +3 -0
- package/admin/features/listDefinitions/feature.js +19 -0
- package/admin/features/listDefinitions/feature.js.map +1 -0
- package/admin/features/listDefinitions/index.d.ts +2 -0
- package/admin/features/listDefinitions/index.js +2 -0
- package/admin/features/listLogs/ListLogsGateway.d.ts +11 -0
- package/admin/features/listLogs/ListLogsGateway.js +73 -0
- package/admin/features/listLogs/ListLogsGateway.js.map +1 -0
- package/admin/features/listLogs/ListLogsUseCase.d.ts +10 -0
- package/admin/features/listLogs/ListLogsUseCase.js +18 -0
- package/admin/features/listLogs/ListLogsUseCase.js.map +1 -0
- package/admin/features/listLogs/abstractions.d.ts +30 -0
- package/admin/features/listLogs/abstractions.js +6 -0
- package/admin/features/listLogs/abstractions.js.map +1 -0
- package/admin/features/listLogs/feature.d.ts +3 -0
- package/admin/features/listLogs/feature.js +19 -0
- package/admin/features/listLogs/feature.js.map +1 -0
- package/admin/features/listLogs/index.d.ts +2 -0
- package/admin/features/listLogs/index.js +2 -0
- package/admin/features/listTasks/ListTasksGateway.d.ts +11 -0
- package/admin/features/listTasks/ListTasksGateway.js +79 -0
- package/admin/features/listTasks/ListTasksGateway.js.map +1 -0
- package/admin/features/listTasks/ListTasksUseCase.d.ts +10 -0
- package/admin/features/listTasks/ListTasksUseCase.js +18 -0
- package/admin/features/listTasks/ListTasksUseCase.js.map +1 -0
- package/admin/features/listTasks/abstractions.d.ts +31 -0
- package/admin/features/listTasks/abstractions.js +6 -0
- package/admin/features/listTasks/abstractions.js.map +1 -0
- package/admin/features/listTasks/feature.d.ts +3 -0
- package/admin/features/listTasks/feature.js +19 -0
- package/admin/features/listTasks/feature.js.map +1 -0
- package/admin/features/listTasks/index.d.ts +2 -0
- package/admin/features/listTasks/index.js +2 -0
- package/admin/features/permissions/abstractions.d.ts +17 -0
- package/admin/features/permissions/abstractions.js +6 -0
- package/admin/features/permissions/abstractions.js.map +1 -0
- package/admin/features/permissions/feature.d.ts +14 -0
- package/admin/features/permissions/feature.js +7 -0
- package/admin/features/permissions/feature.js.map +1 -0
- package/admin/features/permissions/index.d.ts +2 -0
- package/admin/features/permissions/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/index.d.ts +2 -0
- package/admin/index.js +2 -0
- package/admin/permissions.d.ts +12 -0
- package/admin/permissions.js +22 -0
- package/admin/permissions.js.map +1 -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/TaskDefinitionsPresenter.d.ts +14 -0
- package/admin/presentation/TaskDefinitions/TaskDefinitionsPresenter.js +41 -0
- package/admin/presentation/TaskDefinitions/TaskDefinitionsPresenter.js.map +1 -0
- package/admin/presentation/TaskDefinitions/abstractions.d.ts +14 -0
- package/admin/presentation/TaskDefinitions/abstractions.js +5 -0
- package/admin/presentation/TaskDefinitions/abstractions.js.map +1 -0
- package/admin/presentation/TaskDefinitions/components/TaskDefinitionsView.d.ts +2 -0
- package/admin/presentation/TaskDefinitions/components/TaskDefinitionsView.js +76 -0
- package/admin/presentation/TaskDefinitions/components/TaskDefinitionsView.js.map +1 -0
- 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/TaskDefinitions/feature.d.ts +3 -0
- package/admin/presentation/TaskDefinitions/feature.js +17 -0
- package/admin/presentation/TaskDefinitions/feature.js.map +1 -0
- package/admin/presentation/TaskDefinitions/index.d.ts +2 -0
- package/admin/presentation/TaskDefinitions/index.js +2 -0
- package/admin/presentation/TaskDetail/TaskDetailPresenter.d.ts +24 -0
- package/admin/presentation/TaskDetail/TaskDetailPresenter.js +87 -0
- package/admin/presentation/TaskDetail/TaskDetailPresenter.js.map +1 -0
- package/admin/presentation/TaskDetail/abstractions.d.ts +24 -0
- package/admin/presentation/TaskDetail/abstractions.js +5 -0
- package/admin/presentation/TaskDetail/abstractions.js.map +1 -0
- package/admin/presentation/TaskDetail/components/TaskDetailDrawer.d.ts +11 -0
- package/admin/presentation/TaskDetail/components/TaskDetailDrawer.js +270 -0
- package/admin/presentation/TaskDetail/components/TaskDetailDrawer.js.map +1 -0
- package/admin/presentation/TaskDetail/feature.d.ts +3 -0
- package/admin/presentation/TaskDetail/feature.js +17 -0
- package/admin/presentation/TaskDetail/feature.js.map +1 -0
- package/admin/presentation/TaskDetail/index.d.ts +2 -0
- package/admin/presentation/TaskDetail/index.js +2 -0
- package/admin/presentation/TaskExecutions/TaskExecutionsDataSource.d.ts +15 -0
- package/admin/presentation/TaskExecutions/TaskExecutionsDataSource.js +91 -0
- package/admin/presentation/TaskExecutions/TaskExecutionsDataSource.js.map +1 -0
- package/admin/presentation/TaskExecutions/TaskExecutionsPresenter.d.ts +54 -0
- package/admin/presentation/TaskExecutions/TaskExecutionsPresenter.js +109 -0
- package/admin/presentation/TaskExecutions/TaskExecutionsPresenter.js.map +1 -0
- package/admin/presentation/TaskExecutions/abstractions.d.ts +28 -0
- package/admin/presentation/TaskExecutions/abstractions.js +5 -0
- package/admin/presentation/TaskExecutions/abstractions.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.d.ts +2 -0
- package/admin/presentation/TaskExecutions/components/TaskExecutionsView.js +341 -0
- package/admin/presentation/TaskExecutions/components/TaskExecutionsView.js.map +1 -0
- package/admin/presentation/TaskExecutions/feature.d.ts +3 -0
- package/admin/presentation/TaskExecutions/feature.js +17 -0
- package/admin/presentation/TaskExecutions/feature.js.map +1 -0
- package/admin/presentation/TaskExecutions/index.d.ts +2 -0
- package/admin/presentation/TaskExecutions/index.js +2 -0
- package/admin/presentation/security/HasPermission.d.ts +12 -0
- package/admin/presentation/security/HasPermission.js +6 -0
- package/admin/presentation/security/HasPermission.js.map +1 -0
- package/admin/presentation/security/usePermissions.d.ts +12 -0
- package/admin/presentation/security/usePermissions.js +6 -0
- package/admin/presentation/security/usePermissions.js.map +1 -0
- package/admin/routes.d.ts +6 -0
- package/admin/routes.js +18 -0
- package/admin/routes.js.map +1 -0
- package/admin/shared/types.d.ts +18 -0
- package/admin/shared/types.js +0 -0
- package/api/BackgroundTasksFeature.d.ts +4 -0
- package/api/BackgroundTasksFeature.js +59 -0
- package/api/BackgroundTasksFeature.js.map +1 -0
- package/api/TasksCrud.d.ts +10 -0
- package/api/TasksCrud.js +5 -0
- package/api/TasksCrud.js.map +1 -0
- package/api/abstractions/Timer.d.ts +1 -0
- package/api/abstractions/Timer.js +0 -0
- package/api/abstractions/index.d.ts +1 -0
- package/api/abstractions/index.js +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 +63 -0
- package/api/crud/cleanupTaskSubtree.js.map +1 -0
- package/api/crud/crud.tasks.d.ts +3 -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 +3 -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 +3 -0
- package/api/crud/service.tasks.js +132 -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/TaskService.d.ts +12 -0
- package/api/domain/TaskService.js +5 -0
- package/api/domain/TaskService.js.map +1 -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 +9 -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 +4 -0
- package/api/features/AbortTask/feature.js +13 -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 +63 -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 +4 -0
- package/api/features/GetTask/feature.js +13 -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 +10 -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 +4 -0
- package/api/features/ListTasks/feature.js +13 -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 +9 -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 +4 -0
- package/api/features/TriggerTask/feature.js +13 -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 +65 -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/BackgroundTasksContextualSchema.d.ts +21 -0
- package/api/graphql/BackgroundTasksContextualSchema.js +369 -0
- package/api/graphql/BackgroundTasksContextualSchema.js.map +1 -0
- package/api/graphql/checkPermissions.d.ts +7 -0
- package/api/graphql/checkPermissions.js +22 -0
- package/api/graphql/checkPermissions.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/types.d.ts +21 -0
- package/api/handler/types.js +0 -0
- package/api/index.d.ts +12 -0
- package/api/index.js +11 -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/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 +176 -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 +82 -0
- package/api/runner/TaskManager.js.map +1 -0
- package/api/runner/TaskManagerStore.d.ts +41 -0
- package/api/runner/TaskManagerStore.js +111 -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/createService.d.ts +6 -0
- package/api/service/createService.js +11 -0
- package/api/service/createService.js.map +1 -0
- package/api/service/index.d.ts +1 -0
- package/api/service/index.js +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 +2 -0
- package/index.js +2 -0
- package/package.json +68 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Response, ResponseErrorResult } from "../response/index.js";
|
|
2
|
+
import { TaskControl } from "./TaskControl.js";
|
|
3
|
+
import { getErrorProperties } from "../utils/getErrorProperties.js";
|
|
4
|
+
const transformMinutesIntoMilliseconds = (minutes)=>60000 * minutes;
|
|
5
|
+
const DEFAULT_TASKS_TIMEOUT_CLOSE_MINUTES = 3;
|
|
6
|
+
class TaskRunner {
|
|
7
|
+
constructor(context, timer, validation){
|
|
8
|
+
this.context = context;
|
|
9
|
+
this.timer = timer;
|
|
10
|
+
this.validation = validation;
|
|
11
|
+
}
|
|
12
|
+
isCloseToTimeout(seconds) {
|
|
13
|
+
const milliseconds = seconds ? 1000 * seconds : this.getIsCloseToTimeoutMilliseconds();
|
|
14
|
+
return this.timer.getRemainingMilliseconds() < milliseconds;
|
|
15
|
+
}
|
|
16
|
+
async run(rawEvent) {
|
|
17
|
+
const response = new Response({
|
|
18
|
+
...rawEvent
|
|
19
|
+
});
|
|
20
|
+
let event;
|
|
21
|
+
try {
|
|
22
|
+
event = this.validation.validate(rawEvent);
|
|
23
|
+
} catch (ex) {
|
|
24
|
+
return response.error({
|
|
25
|
+
error: getErrorProperties(ex)
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
response.setEvent(event);
|
|
29
|
+
if (rawEvent.delay && rawEvent.delay > 0) return response.continue({
|
|
30
|
+
input: {},
|
|
31
|
+
wait: rawEvent.delay
|
|
32
|
+
});
|
|
33
|
+
const control = new TaskControl(this, response, this.context);
|
|
34
|
+
try {
|
|
35
|
+
const result = await control.run(event);
|
|
36
|
+
if (result instanceof ResponseErrorResult === false) return result;
|
|
37
|
+
console.error(result);
|
|
38
|
+
return result;
|
|
39
|
+
} catch (ex) {
|
|
40
|
+
console.error(`Failed to execute task "${event.webinyTaskId}".`);
|
|
41
|
+
console.error(ex);
|
|
42
|
+
return response.error({
|
|
43
|
+
error: getErrorProperties(ex)
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
getIsCloseToTimeoutMilliseconds() {
|
|
48
|
+
const value = parseInt(process.env["WEBINY_TASKS_TIMEOUT_CLOSE_MINUTES"] || "");
|
|
49
|
+
const result = value > 0 ? value : DEFAULT_TASKS_TIMEOUT_CLOSE_MINUTES;
|
|
50
|
+
return transformMinutesIntoMilliseconds(result);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
export { TaskRunner };
|
|
54
|
+
|
|
55
|
+
//# sourceMappingURL=TaskRunner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/runner/TaskRunner.js","sources":["../../../src/api/runner/TaskRunner.ts"],"sourcesContent":["import type { ITaskEvent, ITaskRawEvent } from \"~/api/handler/types.js\";\nimport type { ITaskEventValidation, ITaskRunner } from \"./abstractions/index.js\";\nimport type { Context } from \"~/api/types.js\";\nimport { Response, ResponseErrorResult } from \"~/api/response/index.js\";\nimport { TaskControl } from \"./TaskControl.js\";\nimport type { IResponseResult } from \"~/api/response/abstractions/index.js\";\nimport { getErrorProperties } from \"~/api/utils/getErrorProperties.js\";\nimport type { Timer } from \"~/api/abstractions/Timer.js\";\n\nconst transformMinutesIntoMilliseconds = (minutes: number) => {\n return minutes * 60000;\n};\n\nconst DEFAULT_TASKS_TIMEOUT_CLOSE_MINUTES = 3;\n\nexport class TaskRunner<C extends Context = Context> implements ITaskRunner<C> {\n /**\n * When DI is introduced, these will get injected.\n *\n * container.bind<Request>(\"Request\").toConstantValue(request);\n * @inject(\"Request\") public readonly request: Request;\n *\n * Follow the same example for the rest of the properties.\n */\n public readonly context: C;\n public readonly timer: Timer.Interface;\n private readonly validation: ITaskEventValidation;\n\n /**\n * We take all required variables separately because they will get injected via DI - so less refactoring is required in the future.\n */\n public constructor(context: C, timer: Timer.Interface, validation: ITaskEventValidation) {\n this.context = context;\n this.timer = timer;\n this.validation = validation;\n }\n\n public isCloseToTimeout(seconds?: number) {\n const milliseconds = seconds ? seconds * 1000 : this.getIsCloseToTimeoutMilliseconds();\n return this.timer.getRemainingMilliseconds() < milliseconds;\n }\n\n public async run(rawEvent: ITaskRawEvent): Promise<IResponseResult> {\n const response = new Response({\n ...rawEvent\n });\n\n let event: ITaskEvent;\n try {\n event = this.validation.validate(rawEvent);\n } catch (ex) {\n return response.error({\n error: getErrorProperties(ex)\n });\n }\n response.setEvent(event);\n /**\n * If we received a delay when initiating the task, we need to send the continue response immediately.\n */\n if (rawEvent.delay && rawEvent.delay > 0) {\n return response.continue({\n input: {},\n wait: rawEvent.delay\n });\n }\n\n const control = new TaskControl(this, response, this.context);\n\n try {\n const result = await control.run(event);\n if (result instanceof ResponseErrorResult === false) {\n return result;\n }\n console.error(result);\n return result;\n } catch (ex) {\n console.error(`Failed to execute task \"${event.webinyTaskId}\".`);\n console.error(ex);\n return response.error({\n error: getErrorProperties(ex)\n });\n }\n }\n\n private getIsCloseToTimeoutMilliseconds() {\n const value = parseInt(process.env[\"WEBINY_TASKS_TIMEOUT_CLOSE_MINUTES\"] || \"\");\n const result = value > 0 ? value : DEFAULT_TASKS_TIMEOUT_CLOSE_MINUTES;\n return transformMinutesIntoMilliseconds(result);\n }\n}\n"],"names":["transformMinutesIntoMilliseconds","minutes","DEFAULT_TASKS_TIMEOUT_CLOSE_MINUTES","TaskRunner","context","timer","validation","seconds","milliseconds","rawEvent","response","Response","event","ex","getErrorProperties","control","TaskControl","result","ResponseErrorResult","console","value","parseInt","process"],"mappings":";;;AASA,MAAMA,mCAAmC,CAACC,UAC/BA,AAAU,QAAVA;AAGX,MAAMC,sCAAsC;AAErC,MAAMC;IAgBT,YAAmBC,OAAU,EAAEC,KAAsB,EAAEC,UAAgC,CAAE;QACrF,IAAI,CAAC,OAAO,GAAGF;QACf,IAAI,CAAC,KAAK,GAAGC;QACb,IAAI,CAAC,UAAU,GAAGC;IACtB;IAEO,iBAAiBC,OAAgB,EAAE;QACtC,MAAMC,eAAeD,UAAUA,AAAU,OAAVA,UAAiB,IAAI,CAAC,+BAA+B;QACpF,OAAO,IAAI,CAAC,KAAK,CAAC,wBAAwB,KAAKC;IACnD;IAEA,MAAa,IAAIC,QAAuB,EAA4B;QAChE,MAAMC,WAAW,IAAIC,SAAS;YAC1B,GAAGF,QAAQ;QACf;QAEA,IAAIG;QACJ,IAAI;YACAA,QAAQ,IAAI,CAAC,UAAU,CAAC,QAAQ,CAACH;QACrC,EAAE,OAAOI,IAAI;YACT,OAAOH,SAAS,KAAK,CAAC;gBAClB,OAAOI,mBAAmBD;YAC9B;QACJ;QACAH,SAAS,QAAQ,CAACE;QAIlB,IAAIH,SAAS,KAAK,IAAIA,SAAS,KAAK,GAAG,GACnC,OAAOC,SAAS,QAAQ,CAAC;YACrB,OAAO,CAAC;YACR,MAAMD,SAAS,KAAK;QACxB;QAGJ,MAAMM,UAAU,IAAIC,YAAY,IAAI,EAAEN,UAAU,IAAI,CAAC,OAAO;QAE5D,IAAI;YACA,MAAMO,SAAS,MAAMF,QAAQ,GAAG,CAACH;YACjC,IAAIK,kBAAkBC,wBAAwB,OAC1C,OAAOD;YAEXE,QAAQ,KAAK,CAACF;YACd,OAAOA;QACX,EAAE,OAAOJ,IAAI;YACTM,QAAQ,KAAK,CAAC,CAAC,wBAAwB,EAAEP,MAAM,YAAY,CAAC,EAAE,CAAC;YAC/DO,QAAQ,KAAK,CAACN;YACd,OAAOH,SAAS,KAAK,CAAC;gBAClB,OAAOI,mBAAmBD;YAC9B;QACJ;IACJ;IAEQ,kCAAkC;QACtC,MAAMO,QAAQC,SAASC,QAAQ,GAAG,CAAC,qCAAqC,IAAI;QAC5E,MAAML,SAASG,QAAQ,IAAIA,QAAQlB;QACnC,OAAOF,iCAAiCiB;IAC5C;AACJ"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ITaskRunner } from "../../../api/runner/abstractions/index.js";
|
|
2
|
+
import type { IResponse, IResponseResult } from "../../../api/response/abstractions/index.js";
|
|
3
|
+
import type { Context } from "../../../api/types.js";
|
|
4
|
+
import type { ITaskEvent } from "../../../api/handler/types.js";
|
|
5
|
+
export interface ITaskControl {
|
|
6
|
+
runner: ITaskRunner;
|
|
7
|
+
response: IResponse;
|
|
8
|
+
context: Context;
|
|
9
|
+
run(event: ITaskEvent): Promise<IResponseResult>;
|
|
10
|
+
}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { IResponseResult } from "../../../api/response/abstractions/index.js";
|
|
2
|
+
import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
3
|
+
export interface ITaskManager {
|
|
4
|
+
run: (definition: TaskDefinition.Runnable) => Promise<IResponseResult>;
|
|
5
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { IResponseError, ITask, ITaskLogItemData, ITaskUpdateData, TaskDataStatus } from "../../../api/types.js";
|
|
2
|
+
import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
3
|
+
export type ITaskManagerStoreUpdateTaskValues<T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput> = T;
|
|
4
|
+
export interface ITaskManagerStoreUpdateTaskValuesCb<T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput> {
|
|
5
|
+
(input: T): T;
|
|
6
|
+
}
|
|
7
|
+
export interface ITaskManagerStoreUpdateTaskInputOptions {
|
|
8
|
+
save: boolean;
|
|
9
|
+
}
|
|
10
|
+
export type ITaskManagerStoreUpdateTaskInputParam<T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput> = ITaskManagerStoreUpdateTaskValuesCb<T> | Partial<ITaskManagerStoreUpdateTaskValues<T>>;
|
|
11
|
+
export interface ITaskManagerStoreUpdateTaskParamCb<T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput> {
|
|
12
|
+
(task: ITask<T, O>): ITaskUpdateData<T, O>;
|
|
13
|
+
}
|
|
14
|
+
export type ITaskManagerStoreUpdateTask<T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput> = ITaskUpdateData<T, O>;
|
|
15
|
+
export type ITaskManagerStoreUpdateTaskParams<T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput> = ITaskManagerStoreUpdateTaskParamCb<T, O> | Partial<ITaskManagerStoreUpdateTask<T, O>>;
|
|
16
|
+
export interface ITaskManagerStoreInfoLog {
|
|
17
|
+
message: string;
|
|
18
|
+
data?: ITaskLogItemData;
|
|
19
|
+
}
|
|
20
|
+
export interface ITaskManagerStoreErrorLog {
|
|
21
|
+
message: string;
|
|
22
|
+
data?: ITaskLogItemData;
|
|
23
|
+
error: IResponseError | Error;
|
|
24
|
+
}
|
|
25
|
+
export interface ITaskManagerStoreSetOutputOptions {
|
|
26
|
+
/**
|
|
27
|
+
* Default is true.
|
|
28
|
+
*/
|
|
29
|
+
save?: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface ITaskManagerStoreUpdateTaskOptions {
|
|
32
|
+
/**
|
|
33
|
+
* Default is true.
|
|
34
|
+
*/
|
|
35
|
+
save?: boolean;
|
|
36
|
+
}
|
|
37
|
+
export interface ITaskManagerStoreAddLogOptions {
|
|
38
|
+
/**
|
|
39
|
+
* Default is true.
|
|
40
|
+
*/
|
|
41
|
+
save?: boolean;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Interface should not be used outside the @webiny/background-tasks package.
|
|
45
|
+
*/
|
|
46
|
+
export interface ITaskManagerStorePrivate<T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput> {
|
|
47
|
+
getTask: () => ITask<T, O>;
|
|
48
|
+
getStatus: () => TaskDataStatus;
|
|
49
|
+
/**
|
|
50
|
+
* @throws {Error} If task not found or something goes wrong during the database update.
|
|
51
|
+
*/
|
|
52
|
+
updateTask(params: ITaskManagerStoreUpdateTaskParams<T, O>, options?: ITaskManagerStoreUpdateTaskOptions): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* List all child tasks of the current task.
|
|
55
|
+
* If definitionId is provided, filter by that parameter.
|
|
56
|
+
*/
|
|
57
|
+
listChildTasks<T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput>(definitionId?: string): Promise<ITask<T, O>[]>;
|
|
58
|
+
/**
|
|
59
|
+
* Update the task input, which are used to store custom user data.
|
|
60
|
+
* You can send partial input, and it will be merged with the existing input.
|
|
61
|
+
*
|
|
62
|
+
* @throws {Error} If task not found or something goes wrong during the database update.
|
|
63
|
+
*/
|
|
64
|
+
updateInput: (params: ITaskManagerStoreUpdateTaskInputParam<T>, options?: ITaskManagerStoreUpdateTaskInputOptions) => Promise<void>;
|
|
65
|
+
getInput: () => T;
|
|
66
|
+
/**
|
|
67
|
+
* Update the task output, which are used to store the output data.
|
|
68
|
+
* You can send partial output, and it will be merged with the existing output.
|
|
69
|
+
*
|
|
70
|
+
* Second parameter is optional options, and it contains a possibility not to store the task immediately.
|
|
71
|
+
*
|
|
72
|
+
* @throws {Error} If task not found or something goes wrong during the database update.
|
|
73
|
+
*/
|
|
74
|
+
updateOutput: (values: Partial<O>, options?: ITaskManagerStoreSetOutputOptions) => Promise<void>;
|
|
75
|
+
getOutput: () => O;
|
|
76
|
+
/**
|
|
77
|
+
* @throws {Error} If task not found or something goes wrong during the database update.
|
|
78
|
+
*/
|
|
79
|
+
addInfoLog: (log: ITaskManagerStoreInfoLog) => Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* @throws {Error} If task not found or something goes wrong during the database update.
|
|
82
|
+
*
|
|
83
|
+
*
|
|
84
|
+
*/
|
|
85
|
+
addErrorLog: (log: ITaskManagerStoreErrorLog) => Promise<void>;
|
|
86
|
+
/**
|
|
87
|
+
* Should store the task and logs into the database, if any.
|
|
88
|
+
* If nothing to update, it should skip calling the internal store methods.
|
|
89
|
+
*/
|
|
90
|
+
save(): Promise<void>;
|
|
91
|
+
}
|
|
92
|
+
export type ITaskManagerStore<T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput> = Omit<ITaskManagerStorePrivate<T, O>, "save">;
|
|
File without changes
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Context } from "../../../api/types.js";
|
|
2
|
+
import type { ITaskEvent } from "../../../api/handler/types.js";
|
|
3
|
+
import type { IResponseResult } from "../../../api/response/abstractions/index.js";
|
|
4
|
+
import type { Timer } from "../../../api/abstractions/Timer.js";
|
|
5
|
+
export interface IIsCloseToTimeoutCallable {
|
|
6
|
+
(seconds?: number): boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface ITaskRunner<C extends Context = Context> {
|
|
9
|
+
context: C;
|
|
10
|
+
isCloseToTimeout: IIsCloseToTimeoutCallable;
|
|
11
|
+
timer: Timer.Interface;
|
|
12
|
+
run(event: ITaskEvent): Promise<IResponseResult>;
|
|
13
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./TaskRunner.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./TaskRunner.js";
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Context } from "../../api/types.js";
|
|
2
|
+
import { TaskService } from "../../api/domain/TaskService.js";
|
|
3
|
+
export interface ICreateTransport {
|
|
4
|
+
container: Context["container"];
|
|
5
|
+
}
|
|
6
|
+
export declare const createService: (params: ICreateTransport) => TaskService.Interface;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { WebinyError } from "@webiny/error";
|
|
2
|
+
import { TaskService } from "../domain/TaskService.js";
|
|
3
|
+
const createService = (params)=>{
|
|
4
|
+
const { container } = params;
|
|
5
|
+
const service = container.resolveAll(TaskService);
|
|
6
|
+
if (0 === service.length) throw new WebinyError("Missing TaskService.", "TASK_SERVICE_ERROR");
|
|
7
|
+
return service[service.length - 1];
|
|
8
|
+
};
|
|
9
|
+
export { createService };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=createService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/service/createService.js","sources":["../../../src/api/service/createService.ts"],"sourcesContent":["import type { Context } from \"~/api/types.js\";\nimport { WebinyError } from \"@webiny/error\";\nimport { TaskService } from \"~/api/domain/TaskService.js\";\n\nexport interface ICreateTransport {\n container: Context[\"container\"];\n}\n\nexport const createService = (params: ICreateTransport): TaskService.Interface => {\n const { container } = params;\n const service = container.resolveAll(TaskService);\n if (service.length === 0) {\n throw new WebinyError(\"Missing TaskService.\", \"TASK_SERVICE_ERROR\");\n }\n return service[service.length - 1];\n};\n"],"names":["createService","params","container","service","TaskService","WebinyError"],"mappings":";;AAQO,MAAMA,gBAAgB,CAACC;IAC1B,MAAM,EAAEC,SAAS,EAAE,GAAGD;IACtB,MAAME,UAAUD,UAAU,UAAU,CAACE;IACrC,IAAID,AAAmB,MAAnBA,QAAQ,MAAM,EACd,MAAM,IAAIE,YAAY,wBAAwB;IAElD,OAAOF,OAAO,CAACA,QAAQ,MAAM,GAAG,EAAE;AACtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { createService } from "./createService.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { createService } from "./createService.js";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
2
|
+
declare class TestingRunTask implements TaskDefinition.Interface {
|
|
3
|
+
id: string;
|
|
4
|
+
title: string;
|
|
5
|
+
description: string;
|
|
6
|
+
run({ controller }: TaskDefinition.RunParams): Promise<TaskDefinition.ResultDone<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
|
|
7
|
+
}
|
|
8
|
+
export declare const TestingRunTaskDefinition: typeof TestingRunTask & {
|
|
9
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskDefinition<import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions").ITaskOutput>>;
|
|
10
|
+
};
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
2
|
+
class TestingRunTask {
|
|
3
|
+
async run({ controller }) {
|
|
4
|
+
return controller.response.done("Task successfully finished.");
|
|
5
|
+
}
|
|
6
|
+
constructor(){
|
|
7
|
+
this.id = "testingRun";
|
|
8
|
+
this.title = "Test Step Function Permissions";
|
|
9
|
+
this.description = "A task to test the step function permissions.";
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
const TestingRunTaskDefinition = TaskDefinition.createImplementation({
|
|
13
|
+
implementation: TestingRunTask,
|
|
14
|
+
dependencies: []
|
|
15
|
+
});
|
|
16
|
+
export { TestingRunTaskDefinition };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=testingRunTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/tasks/testingRunTask.js","sources":["../../../src/api/tasks/testingRunTask.ts"],"sourcesContent":["import { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nclass TestingRunTask implements TaskDefinition.Interface {\n id = \"testingRun\";\n title = \"Test Step Function Permissions\";\n description = \"A task to test the step function permissions.\";\n\n async run({ controller }: TaskDefinition.RunParams) {\n return controller.response.done(\"Task successfully finished.\");\n }\n}\n\nexport const TestingRunTaskDefinition = TaskDefinition.createImplementation({\n implementation: TestingRunTask,\n dependencies: []\n});\n"],"names":["TestingRunTask","controller","TestingRunTaskDefinition","TaskDefinition"],"mappings":";AAEA,MAAMA;IAKF,MAAM,IAAI,EAAEC,UAAU,EAA4B,EAAE;QAChD,OAAOA,WAAW,QAAQ,CAAC,IAAI,CAAC;IACpC;;aANA,EAAE,GAAG;aACL,KAAK,GAAG;aACR,WAAW,GAAG;;AAKlB;AAEO,MAAMC,2BAA2BC,eAAe,oBAAoB,CAAC;IACxE,gBAAgBH;IAChB,cAAc,EAAE;AACpB"}
|
package/api/types.d.ts
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import type { CmsContext as BaseContext, CmsEntryListParams, CmsEntryMeta, CmsModel } from "@webiny/api-headless-cms/types/index.js";
|
|
2
|
+
import type { IResponseError } from "../api/response/abstractions/index.js";
|
|
3
|
+
import type { GenericRecord } from "@webiny/api/types.js";
|
|
4
|
+
import type { IServiceInfo } from "@webiny/api-core/features/task/TaskService/abstractions.js";
|
|
5
|
+
import type { SecurityPermission } from "@webiny/api-core/types/security.js";
|
|
6
|
+
import type { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
7
|
+
import { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
|
|
8
|
+
import { BaseError, Result } from "@webiny/feature/api";
|
|
9
|
+
import type { IdInterfaceGenerator, NumericInterfaceGenerator } from "@webiny/api";
|
|
10
|
+
import "./features/TaskController/augmentation.js";
|
|
11
|
+
export * from "./handler/types.js";
|
|
12
|
+
export * from "./response/abstractions/index.js";
|
|
13
|
+
export * from "./runner/abstractions/index.js";
|
|
14
|
+
export type ITaskDataInput = GenericRecord;
|
|
15
|
+
export declare enum TaskLogItemType {
|
|
16
|
+
INFO = "info",
|
|
17
|
+
ERROR = "error"
|
|
18
|
+
}
|
|
19
|
+
export interface ITaskLogItemData {
|
|
20
|
+
[key: string]: any;
|
|
21
|
+
}
|
|
22
|
+
export interface ITaskLogItemBase {
|
|
23
|
+
message: string;
|
|
24
|
+
createdOn: string;
|
|
25
|
+
type: TaskLogItemType;
|
|
26
|
+
data?: ITaskLogItemData;
|
|
27
|
+
}
|
|
28
|
+
export interface ITaskLogItemInfo extends ITaskLogItemBase {
|
|
29
|
+
type: TaskLogItemType.INFO;
|
|
30
|
+
}
|
|
31
|
+
export interface ITaskLogItemError extends ITaskLogItemBase {
|
|
32
|
+
type: TaskLogItemType.ERROR;
|
|
33
|
+
error?: IResponseError;
|
|
34
|
+
}
|
|
35
|
+
export type ITaskLogItem = ITaskLogItemInfo | ITaskLogItemError;
|
|
36
|
+
export interface ITaskLog {
|
|
37
|
+
/**
|
|
38
|
+
* ID without the revision number (for example: #0001).
|
|
39
|
+
*/
|
|
40
|
+
id: string;
|
|
41
|
+
createdOn: string;
|
|
42
|
+
createdBy: ITaskIdentity;
|
|
43
|
+
executionName: string;
|
|
44
|
+
task: string;
|
|
45
|
+
iteration: number;
|
|
46
|
+
items: ITaskLogItem[];
|
|
47
|
+
}
|
|
48
|
+
export declare enum TaskDataStatus {
|
|
49
|
+
PENDING = "pending",
|
|
50
|
+
RUNNING = "running",
|
|
51
|
+
FAILED = "failed",
|
|
52
|
+
SUCCESS = "success",
|
|
53
|
+
ABORTED = "aborted"
|
|
54
|
+
}
|
|
55
|
+
export interface ITaskIdentity {
|
|
56
|
+
id: string;
|
|
57
|
+
displayName: string;
|
|
58
|
+
type: string;
|
|
59
|
+
}
|
|
60
|
+
export type IGetTaskResponse<T extends TaskService.TaskInput = TaskService.TaskInput, O extends TaskService.GenericOutput = TaskService.GenericOutput> = ITask<T, O> | null;
|
|
61
|
+
export interface IListTasksResponse<T extends TaskService.TaskInput = TaskService.TaskInput, O extends TaskService.GenericOutput = TaskService.GenericOutput> {
|
|
62
|
+
items: ITask<T, O>[];
|
|
63
|
+
meta: CmsEntryMeta;
|
|
64
|
+
}
|
|
65
|
+
export interface IListTaskLogsResponse {
|
|
66
|
+
items: ITaskLog[];
|
|
67
|
+
meta: CmsEntryMeta;
|
|
68
|
+
}
|
|
69
|
+
export type ICreateTaskResponse<T extends TaskService.TaskInput = TaskService.TaskInput, O extends TaskService.GenericOutput = TaskService.GenericOutput> = ITask<T, O>;
|
|
70
|
+
export type IUpdateTaskResponse<T extends TaskService.TaskInput = TaskService.TaskInput, O extends TaskService.GenericOutput = TaskService.GenericOutput> = ITask<T, O>;
|
|
71
|
+
export type IDeleteTaskResponse = boolean;
|
|
72
|
+
export interface IListTaskParamsWhere extends IdInterfaceGenerator<"id">, IdInterfaceGenerator<"parentId">, IdInterfaceGenerator<"definitionId">, IdInterfaceGenerator<"taskStatus"> {
|
|
73
|
+
}
|
|
74
|
+
export interface IListTaskParams extends Omit<CmsEntryListParams, "fields" | "search"> {
|
|
75
|
+
where?: IListTaskParamsWhere;
|
|
76
|
+
}
|
|
77
|
+
export interface IListTaskLogParamsWhere extends IdInterfaceGenerator<"id">, IdInterfaceGenerator<"task">, NumericInterfaceGenerator<"iteration"> {
|
|
78
|
+
}
|
|
79
|
+
export interface IListTaskLogParams extends Omit<CmsEntryListParams, "fields" | "search" | "where"> {
|
|
80
|
+
where?: IListTaskLogParamsWhere;
|
|
81
|
+
}
|
|
82
|
+
export interface ITaskCreateData<T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput> {
|
|
83
|
+
definitionId: string;
|
|
84
|
+
name: string;
|
|
85
|
+
input: T;
|
|
86
|
+
parentId?: string;
|
|
87
|
+
}
|
|
88
|
+
export interface ITaskUpdateData<I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput> {
|
|
89
|
+
name?: string;
|
|
90
|
+
input?: I;
|
|
91
|
+
output?: O;
|
|
92
|
+
taskStatus?: TaskDataStatus;
|
|
93
|
+
executionName?: string;
|
|
94
|
+
startedOn?: string;
|
|
95
|
+
finishedOn?: string;
|
|
96
|
+
eventResponse?: GenericRecord;
|
|
97
|
+
iterations?: number;
|
|
98
|
+
}
|
|
99
|
+
export interface ITaskLogCreateInput {
|
|
100
|
+
executionName: string;
|
|
101
|
+
iteration: number;
|
|
102
|
+
}
|
|
103
|
+
export interface ITaskLogUpdateInput {
|
|
104
|
+
items?: ITaskLogItem[];
|
|
105
|
+
}
|
|
106
|
+
export interface ITasksContextCrudObject {
|
|
107
|
+
/**
|
|
108
|
+
* Models
|
|
109
|
+
*/
|
|
110
|
+
getTaskModel(): Promise<CmsModel>;
|
|
111
|
+
getLogModel(): Promise<CmsModel>;
|
|
112
|
+
/**
|
|
113
|
+
* Tasks
|
|
114
|
+
*/
|
|
115
|
+
getTask<T extends TaskService.TaskInput = TaskService.TaskInput, O extends TaskService.GenericOutput = TaskService.GenericOutput>(id: string): Promise<IGetTaskResponse<T, O> | null>;
|
|
116
|
+
listTasks<T extends TaskService.TaskInput = TaskService.TaskInput, O extends TaskService.GenericOutput = TaskService.GenericOutput>(params?: IListTaskParams): Promise<IListTasksResponse<T, O>>;
|
|
117
|
+
createTask<T extends TaskService.TaskInput = TaskService.TaskInput>(task: ITaskCreateData<T>): Promise<ICreateTaskResponse<T>>;
|
|
118
|
+
updateTask<T extends TaskService.TaskInput = TaskService.TaskInput, O extends TaskService.GenericOutput = TaskService.GenericOutput>(id: string, data: Partial<ITaskUpdateData<T, O>>): Promise<IUpdateTaskResponse<T, O>>;
|
|
119
|
+
deleteTask(id: string): Promise<IDeleteTaskResponse>;
|
|
120
|
+
/**
|
|
121
|
+
* Recursively delete a task, its logs (if any were written), and its entire
|
|
122
|
+
* descendant subtree. Best-effort: per-record failures are logged and swallowed,
|
|
123
|
+
* the method never throws.
|
|
124
|
+
*/
|
|
125
|
+
cleanupTaskSubtree(id: string): Promise<void>;
|
|
126
|
+
/**
|
|
127
|
+
* Logs
|
|
128
|
+
*/
|
|
129
|
+
createLog(task: Pick<ITask, "id">, data: ITaskLogCreateInput): Promise<ITaskLog>;
|
|
130
|
+
updateLog(id: string, data: ITaskLogUpdateInput): Promise<ITaskLog>;
|
|
131
|
+
deleteLog(id: string): Promise<boolean>;
|
|
132
|
+
getLog(id: string): Promise<ITaskLog | null>;
|
|
133
|
+
getLatestLog(taskId: string): Promise<ITaskLog>;
|
|
134
|
+
listLogs(params: IListTaskLogParams): Promise<IListTaskLogsResponse>;
|
|
135
|
+
}
|
|
136
|
+
export interface ITasksContextDefinitionObject {
|
|
137
|
+
getDefinition: <I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput>(id: string) => TaskDefinition.Runnable<I, O> | null;
|
|
138
|
+
listDefinitions: () => TaskDefinition.Interface[];
|
|
139
|
+
}
|
|
140
|
+
export interface ITaskTriggerParams<I = ITaskDataInput> {
|
|
141
|
+
parent?: Pick<ITask, "id">;
|
|
142
|
+
definition: string;
|
|
143
|
+
name?: string;
|
|
144
|
+
input?: I;
|
|
145
|
+
delay?: number;
|
|
146
|
+
}
|
|
147
|
+
export interface ITaskAbortParams {
|
|
148
|
+
id: string;
|
|
149
|
+
message?: string;
|
|
150
|
+
}
|
|
151
|
+
export interface ITasksContextServiceObject {
|
|
152
|
+
trigger: <T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskService.GenericOutput = TaskService.GenericOutput>(params: ITaskTriggerParams<T>) => Promise<Result<ITask<T, O>, BaseError>>;
|
|
153
|
+
abort: <T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskService.GenericOutput = TaskService.GenericOutput>(params: ITaskAbortParams) => Promise<Result<ITask<T, O>, BaseError>>;
|
|
154
|
+
fetchServiceInfo: (input: ITask<any, any> | string) => Promise<Result<IServiceInfo, BaseError>>;
|
|
155
|
+
}
|
|
156
|
+
export interface ITasksContextObject extends ITasksContextCrudObject, ITasksContextDefinitionObject, ITasksContextServiceObject {
|
|
157
|
+
}
|
|
158
|
+
export interface Context extends BaseContext {
|
|
159
|
+
tasks: ITasksContextObject;
|
|
160
|
+
}
|
|
161
|
+
export interface TaskPermission extends SecurityPermission {
|
|
162
|
+
name: "task";
|
|
163
|
+
rwd?: string;
|
|
164
|
+
}
|
|
165
|
+
export type ITask<I extends TaskService.TaskInput = TaskService.TaskInput, O extends TaskService.GenericOutput = TaskService.GenericOutput> = TaskService.Task<I, O>;
|
|
166
|
+
export type SelfCleanup = TaskDefinition.SelfCleanup;
|
|
167
|
+
export type SelfCleanupEvent = TaskDefinition.SelfCleanupEvent;
|
package/api/types.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import "./features/TaskController/augmentation.js";
|
|
2
|
+
export * from "./handler/types.js";
|
|
3
|
+
export * from "./response/abstractions/index.js";
|
|
4
|
+
export * from "./runner/abstractions/index.js";
|
|
5
|
+
var types_TaskLogItemType = /*#__PURE__*/ function(TaskLogItemType) {
|
|
6
|
+
TaskLogItemType["INFO"] = "info";
|
|
7
|
+
TaskLogItemType["ERROR"] = "error";
|
|
8
|
+
return TaskLogItemType;
|
|
9
|
+
}({});
|
|
10
|
+
var types_TaskDataStatus = /*#__PURE__*/ function(TaskDataStatus) {
|
|
11
|
+
TaskDataStatus["PENDING"] = "pending";
|
|
12
|
+
TaskDataStatus["RUNNING"] = "running";
|
|
13
|
+
TaskDataStatus["FAILED"] = "failed";
|
|
14
|
+
TaskDataStatus["SUCCESS"] = "success";
|
|
15
|
+
TaskDataStatus["ABORTED"] = "aborted";
|
|
16
|
+
return TaskDataStatus;
|
|
17
|
+
}({});
|
|
18
|
+
export { types_TaskDataStatus as TaskDataStatus, types_TaskLogItemType as TaskLogItemType };
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=types.js.map
|
package/api/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/types.js","sources":["../../src/api/types.ts"],"sourcesContent":["import type {\n CmsContext as BaseContext,\n CmsEntryListParams,\n CmsEntryMeta,\n CmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport type { IResponseError } from \"~/api/response/abstractions/index.js\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport type { IServiceInfo } from \"@webiny/api-core/features/task/TaskService/abstractions.js\";\nimport type { SecurityPermission } from \"@webiny/api-core/types/security.js\";\nimport type { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport { BaseError, Result } from \"@webiny/feature/api\";\nimport type { IdInterfaceGenerator, NumericInterfaceGenerator } from \"@webiny/api\";\n// TODO had to import for augmentation to work, but is there a better way to do this?\nimport \"./features/TaskController/augmentation.js\";\n\nexport * from \"./handler/types.js\";\nexport * from \"./response/abstractions/index.js\";\nexport * from \"./runner/abstractions/index.js\";\n\nexport type ITaskDataInput = GenericRecord;\n\nexport enum TaskLogItemType {\n INFO = \"info\",\n ERROR = \"error\"\n}\n\nexport interface ITaskLogItemData {\n [key: string]: any;\n}\n\nexport interface ITaskLogItemBase {\n message: string;\n createdOn: string;\n type: TaskLogItemType;\n data?: ITaskLogItemData;\n}\n\nexport interface ITaskLogItemInfo extends ITaskLogItemBase {\n type: TaskLogItemType.INFO;\n}\n\nexport interface ITaskLogItemError extends ITaskLogItemBase {\n type: TaskLogItemType.ERROR;\n error?: IResponseError;\n}\n\nexport type ITaskLogItem = ITaskLogItemInfo | ITaskLogItemError;\n\nexport interface ITaskLog {\n /**\n * ID without the revision number (for example: #0001).\n */\n id: string;\n createdOn: string;\n createdBy: ITaskIdentity;\n executionName: string;\n task: string;\n iteration: number;\n items: ITaskLogItem[];\n}\n\nexport enum TaskDataStatus {\n PENDING = \"pending\",\n RUNNING = \"running\",\n FAILED = \"failed\",\n SUCCESS = \"success\",\n ABORTED = \"aborted\"\n}\n\nexport interface ITaskIdentity {\n id: string;\n displayName: string;\n type: string;\n}\n\nexport type IGetTaskResponse<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n> = ITask<T, O> | null;\n\nexport interface IListTasksResponse<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n> {\n items: ITask<T, O>[];\n meta: CmsEntryMeta;\n}\n\nexport interface IListTaskLogsResponse {\n items: ITaskLog[];\n meta: CmsEntryMeta;\n}\n\nexport type ICreateTaskResponse<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n> = ITask<T, O>;\nexport type IUpdateTaskResponse<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n> = ITask<T, O>;\nexport type IDeleteTaskResponse = boolean;\n\nexport interface IListTaskParamsWhere\n extends\n IdInterfaceGenerator<\"id\">,\n IdInterfaceGenerator<\"parentId\">,\n IdInterfaceGenerator<\"definitionId\">,\n IdInterfaceGenerator<\"taskStatus\"> {\n //\n}\n\nexport interface IListTaskParams extends Omit<CmsEntryListParams, \"fields\" | \"search\"> {\n where?: IListTaskParamsWhere;\n}\n\nexport interface IListTaskLogParamsWhere\n extends\n IdInterfaceGenerator<\"id\">,\n IdInterfaceGenerator<\"task\">,\n NumericInterfaceGenerator<\"iteration\"> {}\n\nexport interface IListTaskLogParams extends Omit<\n CmsEntryListParams,\n \"fields\" | \"search\" | \"where\"\n> {\n where?: IListTaskLogParamsWhere;\n}\n\nexport interface ITaskCreateData<T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput> {\n definitionId: string;\n name: string;\n input: T;\n parentId?: string;\n}\n\nexport interface ITaskUpdateData<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n> {\n name?: string;\n input?: I;\n output?: O;\n taskStatus?: TaskDataStatus;\n executionName?: string;\n startedOn?: string;\n finishedOn?: string;\n eventResponse?: GenericRecord;\n iterations?: number;\n}\n\nexport interface ITaskLogCreateInput {\n executionName: string;\n iteration: number;\n}\n\nexport interface ITaskLogUpdateInput {\n items?: ITaskLogItem[];\n}\n\nexport interface ITasksContextCrudObject {\n /**\n * Models\n */\n getTaskModel(): Promise<CmsModel>;\n getLogModel(): Promise<CmsModel>;\n /**\n * Tasks\n */\n getTask<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n id: string\n ): Promise<IGetTaskResponse<T, O> | null>;\n listTasks<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n params?: IListTaskParams\n ): Promise<IListTasksResponse<T, O>>;\n createTask<T extends TaskService.TaskInput = TaskService.TaskInput>(\n task: ITaskCreateData<T>\n ): Promise<ICreateTaskResponse<T>>;\n updateTask<\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n id: string,\n data: Partial<ITaskUpdateData<T, O>>\n ): Promise<IUpdateTaskResponse<T, O>>;\n deleteTask(id: string): Promise<IDeleteTaskResponse>;\n /**\n * Recursively delete a task, its logs (if any were written), and its entire\n * descendant subtree. Best-effort: per-record failures are logged and swallowed,\n * the method never throws.\n */\n cleanupTaskSubtree(id: string): Promise<void>;\n /**\n * Logs\n */\n createLog(task: Pick<ITask, \"id\">, data: ITaskLogCreateInput): Promise<ITaskLog>;\n updateLog(id: string, data: ITaskLogUpdateInput): Promise<ITaskLog>;\n deleteLog(id: string): Promise<boolean>;\n getLog(id: string): Promise<ITaskLog | null>;\n getLatestLog(taskId: string): Promise<ITaskLog>;\n listLogs(params: IListTaskLogParams): Promise<IListTaskLogsResponse>;\n}\n\nexport interface ITasksContextDefinitionObject {\n getDefinition: <\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n >(\n id: string\n ) => TaskDefinition.Runnable<I, O> | null;\n listDefinitions: () => TaskDefinition.Interface[];\n}\n\nexport interface ITaskTriggerParams<I = ITaskDataInput> {\n parent?: Pick<ITask, \"id\">;\n definition: string;\n name?: string;\n input?: I;\n delay?: number;\n}\n\nexport interface ITaskAbortParams {\n id: string;\n message?: string;\n}\n\nexport interface ITasksContextServiceObject {\n trigger: <\n T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n params: ITaskTriggerParams<T>\n ) => Promise<Result<ITask<T, O>, BaseError>>;\n abort: <\n T extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n params: ITaskAbortParams\n ) => Promise<Result<ITask<T, O>, BaseError>>;\n fetchServiceInfo: (input: ITask<any, any> | string) => Promise<Result<IServiceInfo, BaseError>>;\n}\n\nexport interface ITasksContextObject\n extends ITasksContextCrudObject, ITasksContextDefinitionObject, ITasksContextServiceObject {}\n\nexport interface Context extends BaseContext {\n tasks: ITasksContextObject;\n}\n\nexport interface TaskPermission extends SecurityPermission {\n name: \"task\";\n rwd?: string;\n}\n\nexport type ITask<\n I extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n> = TaskService.Task<I, O>;\n\nexport type SelfCleanup = TaskDefinition.SelfCleanup;\nexport type SelfCleanupEvent = TaskDefinition.SelfCleanupEvent;\n"],"names":["TaskLogItemType","TaskDataStatus"],"mappings":";;;;AAuBO,IAAKA,wBAAeA,WAAAA,GAAAA,SAAfA,eAAe;;;WAAfA;;AAwCL,IAAKC,uBAAcA,WAAAA,GAAAA,SAAdA,cAAc;;;;;;WAAdA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { mergeAdvanced } from "object-merge-advanced";
|
|
2
|
+
const mergeOptions = {
|
|
3
|
+
hardArrayConcat: true
|
|
4
|
+
};
|
|
5
|
+
class ObjectUpdater {
|
|
6
|
+
merge(target, clear = true) {
|
|
7
|
+
const item = mergeAdvanced(target, this.data, mergeOptions);
|
|
8
|
+
if (!clear) return item;
|
|
9
|
+
this.clear();
|
|
10
|
+
return item;
|
|
11
|
+
}
|
|
12
|
+
fetch(clear = true) {
|
|
13
|
+
const values = structuredClone(this.data);
|
|
14
|
+
if (!clear) return values;
|
|
15
|
+
this.clear();
|
|
16
|
+
return values;
|
|
17
|
+
}
|
|
18
|
+
update(input) {
|
|
19
|
+
this.data = mergeAdvanced(this.data, input, mergeOptions);
|
|
20
|
+
}
|
|
21
|
+
isDirty() {
|
|
22
|
+
return Object.keys(this.data).length > 0;
|
|
23
|
+
}
|
|
24
|
+
clear() {
|
|
25
|
+
this.data = {};
|
|
26
|
+
}
|
|
27
|
+
constructor(){
|
|
28
|
+
this.data = {};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export { ObjectUpdater };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=ObjectUpdater.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/utils/ObjectUpdater.js","sources":["../../../src/api/utils/ObjectUpdater.ts"],"sourcesContent":["/**\n * We need to use the object-merge-advanced library to merge array items properly.\n * With plain assign or lodash merge, we will lose array items from the source object.\n */\nimport type { defaults } from \"object-merge-advanced\";\nimport { mergeAdvanced } from \"object-merge-advanced\";\n\nconst mergeOptions: Partial<typeof defaults> = {\n hardArrayConcat: true\n};\n\nexport class ObjectUpdater<T> {\n private data: Partial<T> = {};\n\n public merge(target: T, clear = true): T {\n const item = mergeAdvanced(target, this.data, mergeOptions);\n if (!clear) {\n return item;\n }\n this.clear();\n return item;\n }\n\n public fetch(clear = true): Partial<T> {\n const values = structuredClone(this.data);\n if (!clear) {\n return values;\n }\n this.clear();\n return values;\n }\n public update(input: Partial<T>) {\n this.data = mergeAdvanced(this.data, input, mergeOptions);\n }\n\n public isDirty(): boolean {\n return Object.keys(this.data).length > 0;\n }\n\n private clear() {\n this.data = {};\n }\n}\n"],"names":["mergeOptions","ObjectUpdater","target","clear","item","mergeAdvanced","values","structuredClone","input","Object"],"mappings":";AAOA,MAAMA,eAAyC;IAC3C,iBAAiB;AACrB;AAEO,MAAMC;IAGF,MAAMC,MAAS,EAAEC,QAAQ,IAAI,EAAK;QACrC,MAAMC,OAAOC,cAAcH,QAAQ,IAAI,CAAC,IAAI,EAAEF;QAC9C,IAAI,CAACG,OACD,OAAOC;QAEX,IAAI,CAAC,KAAK;QACV,OAAOA;IACX;IAEO,MAAMD,QAAQ,IAAI,EAAc;QACnC,MAAMG,SAASC,gBAAgB,IAAI,CAAC,IAAI;QACxC,IAAI,CAACJ,OACD,OAAOG;QAEX,IAAI,CAAC,KAAK;QACV,OAAOA;IACX;IACO,OAAOE,KAAiB,EAAE;QAC7B,IAAI,CAAC,IAAI,GAAGH,cAAc,IAAI,CAAC,IAAI,EAAEG,OAAOR;IAChD;IAEO,UAAmB;QACtB,OAAOS,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG;IAC3C;IAEQ,QAAQ;QACZ,IAAI,CAAC,IAAI,GAAG,CAAC;IACjB;;aA7BQ,IAAI,GAAe,CAAC;;AA8BhC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { getObjectProperties } from "./getObjectProperties.js";
|
|
2
|
+
const getErrorProperties = (error)=>{
|
|
3
|
+
const value = getObjectProperties(error);
|
|
4
|
+
delete value.stack;
|
|
5
|
+
return value;
|
|
6
|
+
};
|
|
7
|
+
export { getErrorProperties };
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=getErrorProperties.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/utils/getErrorProperties.js","sources":["../../../src/api/utils/getErrorProperties.ts"],"sourcesContent":["import type { IResponseError } from \"~/api/response/abstractions/index.js\";\nimport { getObjectProperties } from \"~/api/utils/getObjectProperties.js\";\n\nexport const getErrorProperties = (error: Error | IResponseError): IResponseError => {\n const value = getObjectProperties<IResponseError>(error);\n\n delete value.stack;\n\n return value;\n};\n"],"names":["getErrorProperties","error","value","getObjectProperties"],"mappings":";AAGO,MAAMA,qBAAqB,CAACC;IAC/B,MAAMC,QAAQC,oBAAoCF;IAElD,OAAOC,MAAM,KAAK;IAElB,OAAOA;AACX"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const getObjectProperties = (input)=>{
|
|
2
|
+
if (!input || "object" != typeof input) return {};
|
|
3
|
+
return Object.getOwnPropertyNames(input).reduce((acc, key)=>{
|
|
4
|
+
if ("stack" === key) return acc;
|
|
5
|
+
acc[key] = input[key];
|
|
6
|
+
return acc;
|
|
7
|
+
}, {});
|
|
8
|
+
};
|
|
9
|
+
export { getObjectProperties };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=getObjectProperties.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/utils/getObjectProperties.js","sources":["../../../src/api/utils/getObjectProperties.ts"],"sourcesContent":["/**\n * Unfortunately we need some casting as we do not know which properties are available on the object.\n */\ninterface GenericRecord {\n [key: string]: any;\n}\n\nexport const getObjectProperties = <T = GenericRecord>(input: unknown): T => {\n if (!input || typeof input !== \"object\") {\n return {} as unknown as T;\n }\n return Object.getOwnPropertyNames(input).reduce<T>((acc, key) => {\n if (key === \"stack\") {\n return acc;\n }\n acc[key as keyof T] = (input as unknown as T)[key as keyof T];\n return acc;\n }, {} as T) as unknown as T;\n};\n"],"names":["getObjectProperties","input","Object","acc","key"],"mappings":"AAOO,MAAMA,sBAAsB,CAAoBC;IACnD,IAAI,CAACA,SAAS,AAAiB,YAAjB,OAAOA,OACjB,OAAO,CAAC;IAEZ,OAAOC,OAAO,mBAAmB,CAACD,OAAO,MAAM,CAAI,CAACE,KAAKC;QACrD,IAAIA,AAAQ,YAARA,KACA,OAAOD;QAEXA,GAAG,CAACC,IAAe,GAAIH,KAAsB,CAACG,IAAe;QAC7D,OAAOD;IACX,GAAG,CAAC;AACR"}
|