@webiny/background-tasks 0.0.0-unstable.7be00a75a9 → 6.4.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. package/admin/BackgroundTaskRoutes.js +20 -13
  2. package/admin/BackgroundTaskRoutes.js.map +1 -1
  3. package/admin/BackgroundTasks.js +9 -0
  4. package/admin/BackgroundTasks.js.map +1 -1
  5. package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsGateway.d.ts +12 -0
  6. package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsGateway.js +40 -0
  7. package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsGateway.js.map +1 -0
  8. package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsUseCase.d.ts +11 -0
  9. package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsUseCase.js +18 -0
  10. package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsUseCase.js.map +1 -0
  11. package/admin/features/getBackgroundTaskSettings/abstractions.d.ts +15 -0
  12. package/admin/features/getBackgroundTaskSettings/abstractions.js +6 -0
  13. package/admin/features/getBackgroundTaskSettings/abstractions.js.map +1 -0
  14. package/admin/features/getBackgroundTaskSettings/feature.d.ts +3 -0
  15. package/admin/features/getBackgroundTaskSettings/feature.js +19 -0
  16. package/admin/features/getBackgroundTaskSettings/feature.js.map +1 -0
  17. package/admin/features/getBackgroundTaskSettings/index.d.ts +3 -0
  18. package/admin/features/getBackgroundTaskSettings/index.js +2 -0
  19. package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsGateway.d.ts +12 -0
  20. package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsGateway.js +43 -0
  21. package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsGateway.js.map +1 -0
  22. package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.d.ts +11 -0
  23. package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js +18 -0
  24. package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js.map +1 -0
  25. package/admin/features/updateBackgroundTaskSettings/abstractions.d.ts +18 -0
  26. package/admin/features/updateBackgroundTaskSettings/abstractions.js +6 -0
  27. package/admin/features/updateBackgroundTaskSettings/abstractions.js.map +1 -0
  28. package/admin/features/updateBackgroundTaskSettings/feature.d.ts +3 -0
  29. package/admin/features/updateBackgroundTaskSettings/feature.js +19 -0
  30. package/admin/features/updateBackgroundTaskSettings/feature.js.map +1 -0
  31. package/admin/features/updateBackgroundTaskSettings/index.d.ts +3 -0
  32. package/admin/features/updateBackgroundTaskSettings/index.js +2 -0
  33. package/admin/presentation/BackgroundTaskSettings/BackgroundTaskSettingsPresenter.d.ts +21 -0
  34. package/admin/presentation/BackgroundTaskSettings/BackgroundTaskSettingsPresenter.js +86 -0
  35. package/admin/presentation/BackgroundTaskSettings/BackgroundTaskSettingsPresenter.js.map +1 -0
  36. package/admin/presentation/BackgroundTaskSettings/abstractions.d.ts +16 -0
  37. package/admin/presentation/BackgroundTaskSettings/abstractions.js +5 -0
  38. package/admin/presentation/BackgroundTaskSettings/abstractions.js.map +1 -0
  39. package/admin/presentation/BackgroundTaskSettings/components/BackgroundTaskSettingsView.d.ts +2 -0
  40. package/admin/presentation/BackgroundTaskSettings/components/BackgroundTaskSettingsView.js +56 -0
  41. package/admin/presentation/BackgroundTaskSettings/components/BackgroundTaskSettingsView.js.map +1 -0
  42. package/admin/presentation/BackgroundTaskSettings/feature.d.ts +3 -0
  43. package/admin/presentation/BackgroundTaskSettings/feature.js +17 -0
  44. package/admin/presentation/BackgroundTaskSettings/feature.js.map +1 -0
  45. package/admin/presentation/BackgroundTaskSettings/index.d.ts +2 -0
  46. package/admin/presentation/BackgroundTaskSettings/index.js +2 -0
  47. package/admin/presentation/TaskDefinitions/components/TaskDefinitionsView.js +2 -1
  48. package/admin/presentation/TaskDefinitions/components/TaskDefinitionsView.js.map +1 -1
  49. package/admin/presentation/TaskDefinitions/components/TaskExecutionsButton.d.ts +2 -0
  50. package/admin/presentation/TaskDefinitions/components/TaskExecutionsButton.js +16 -0
  51. package/admin/presentation/TaskDefinitions/components/TaskExecutionsButton.js.map +1 -0
  52. package/admin/presentation/TaskExecutions/components/TaskDefinitionsButton.d.ts +2 -0
  53. package/admin/presentation/TaskExecutions/components/TaskDefinitionsButton.js +16 -0
  54. package/admin/presentation/TaskExecutions/components/TaskDefinitionsButton.js.map +1 -0
  55. package/admin/presentation/TaskExecutions/components/TaskExecutionsView.js +53 -35
  56. package/admin/presentation/TaskExecutions/components/TaskExecutionsView.js.map +1 -1
  57. package/admin/routes.d.ts +1 -0
  58. package/admin/routes.js +4 -0
  59. package/admin/routes.js.map +1 -1
  60. package/admin/shared/types.d.ts +3 -0
  61. package/api/context.d.ts +2 -0
  62. package/api/context.js +66 -0
  63. package/api/context.js.map +1 -0
  64. package/api/crud/TaskLogPrivateModel.d.ts +9 -0
  65. package/api/crud/TaskLogPrivateModel.js +40 -0
  66. package/api/crud/TaskLogPrivateModel.js.map +1 -0
  67. package/api/crud/TaskPrivateModel.d.ts +9 -0
  68. package/api/crud/TaskPrivateModel.js +55 -0
  69. package/api/crud/TaskPrivateModel.js.map +1 -0
  70. package/api/crud/cleanupTaskSubtree.d.ts +8 -0
  71. package/api/crud/cleanupTaskSubtree.js +62 -0
  72. package/api/crud/cleanupTaskSubtree.js.map +1 -0
  73. package/api/crud/crud.tasks.d.ts +2 -0
  74. package/api/crud/crud.tasks.js +318 -0
  75. package/api/crud/crud.tasks.js.map +1 -0
  76. package/api/crud/definition.tasks.d.ts +2 -0
  77. package/api/crud/definition.tasks.js +17 -0
  78. package/api/crud/definition.tasks.js.map +1 -0
  79. package/api/crud/service.tasks.d.ts +2 -0
  80. package/api/crud/service.tasks.js +130 -0
  81. package/api/crud/service.tasks.js.map +1 -0
  82. package/api/decorators/RunnableTaskDecorator.d.ts +32 -0
  83. package/api/decorators/RunnableTaskDecorator.js +69 -0
  84. package/api/decorators/RunnableTaskDecorator.js.map +1 -0
  85. package/api/decorators/SelfCleaningTaskDecorator.d.ts +30 -0
  86. package/api/decorators/SelfCleaningTaskDecorator.js +84 -0
  87. package/api/decorators/SelfCleaningTaskDecorator.js.map +1 -0
  88. package/api/domain/BackgroundTaskSettings.d.ts +3 -0
  89. package/api/domain/BackgroundTaskSettings.js +0 -0
  90. package/api/domain/constants.d.ts +3 -0
  91. package/api/domain/constants.js +6 -0
  92. package/api/domain/constants.js.map +1 -0
  93. package/api/domain/errors.d.ts +57 -0
  94. package/api/domain/errors.js +101 -0
  95. package/api/domain/errors.js.map +1 -0
  96. package/api/events/TaskAfterCreateEvent.d.ts +6 -0
  97. package/api/events/TaskAfterCreateEvent.js +13 -0
  98. package/api/events/TaskAfterCreateEvent.js.map +1 -0
  99. package/api/events/TaskAfterDeleteEvent.d.ts +6 -0
  100. package/api/events/TaskAfterDeleteEvent.js +13 -0
  101. package/api/events/TaskAfterDeleteEvent.js.map +1 -0
  102. package/api/events/TaskAfterUpdateEvent.d.ts +6 -0
  103. package/api/events/TaskAfterUpdateEvent.js +13 -0
  104. package/api/events/TaskAfterUpdateEvent.js.map +1 -0
  105. package/api/events/TaskBeforeCreateEvent.d.ts +6 -0
  106. package/api/events/TaskBeforeCreateEvent.js +13 -0
  107. package/api/events/TaskBeforeCreateEvent.js.map +1 -0
  108. package/api/events/TaskBeforeDeleteEvent.d.ts +6 -0
  109. package/api/events/TaskBeforeDeleteEvent.js +13 -0
  110. package/api/events/TaskBeforeDeleteEvent.js.map +1 -0
  111. package/api/events/TaskBeforeUpdateEvent.d.ts +6 -0
  112. package/api/events/TaskBeforeUpdateEvent.js +13 -0
  113. package/api/events/TaskBeforeUpdateEvent.js.map +1 -0
  114. package/api/events/abstractions.d.ts +53 -0
  115. package/api/events/abstractions.js +10 -0
  116. package/api/events/abstractions.js.map +1 -0
  117. package/api/events/index.d.ts +7 -0
  118. package/api/events/index.js +7 -0
  119. package/api/features/AbortTask/AbortTaskUseCase.d.ts +10 -0
  120. package/api/features/AbortTask/AbortTaskUseCase.js +12 -0
  121. package/api/features/AbortTask/AbortTaskUseCase.js.map +1 -0
  122. package/api/features/AbortTask/abstractions.d.ts +25 -0
  123. package/api/features/AbortTask/abstractions.js +5 -0
  124. package/api/features/AbortTask/abstractions.js.map +1 -0
  125. package/api/features/AbortTask/feature.d.ts +5 -0
  126. package/api/features/AbortTask/feature.js +12 -0
  127. package/api/features/AbortTask/feature.js.map +1 -0
  128. package/api/features/AbortTask/index.d.ts +2 -0
  129. package/api/features/AbortTask/index.js +2 -0
  130. package/api/features/BackgroundTaskPermissions/abstractions.d.ts +17 -0
  131. package/api/features/BackgroundTaskPermissions/abstractions.js +6 -0
  132. package/api/features/BackgroundTaskPermissions/abstractions.js.map +1 -0
  133. package/api/features/BackgroundTaskPermissions/feature.d.ts +4 -0
  134. package/api/features/BackgroundTaskPermissions/feature.js +7 -0
  135. package/api/features/BackgroundTaskPermissions/feature.js.map +1 -0
  136. package/api/features/BackgroundTaskPermissions/index.d.ts +2 -0
  137. package/api/features/BackgroundTaskPermissions/index.js +2 -0
  138. package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.d.ts +7 -0
  139. package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js +11 -0
  140. package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js.map +1 -0
  141. package/api/features/CleanupTaskSubtree/abstractions.d.ts +7 -0
  142. package/api/features/CleanupTaskSubtree/abstractions.js +5 -0
  143. package/api/features/CleanupTaskSubtree/abstractions.js.map +1 -0
  144. package/api/features/CleanupTaskSubtree/index.d.ts +2 -0
  145. package/api/features/CleanupTaskSubtree/index.js +2 -0
  146. package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.d.ts +21 -0
  147. package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.js +60 -0
  148. package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.js.map +1 -0
  149. package/api/features/GetBackgroundTaskSettings/abstractions.d.ts +13 -0
  150. package/api/features/GetBackgroundTaskSettings/abstractions.js +5 -0
  151. package/api/features/GetBackgroundTaskSettings/abstractions.js.map +1 -0
  152. package/api/features/GetBackgroundTaskSettings/feature.d.ts +4 -0
  153. package/api/features/GetBackgroundTaskSettings/feature.js +11 -0
  154. package/api/features/GetBackgroundTaskSettings/feature.js.map +1 -0
  155. package/api/features/GetBackgroundTaskSettings/index.d.ts +2 -0
  156. package/api/features/GetBackgroundTaskSettings/index.js +2 -0
  157. package/api/features/GetTask/GetTaskUseCase.d.ts +9 -0
  158. package/api/features/GetTask/GetTaskUseCase.js +11 -0
  159. package/api/features/GetTask/GetTaskUseCase.js.map +1 -0
  160. package/api/features/GetTask/abstractions.d.ts +10 -0
  161. package/api/features/GetTask/abstractions.js +5 -0
  162. package/api/features/GetTask/abstractions.js.map +1 -0
  163. package/api/features/GetTask/feature.d.ts +5 -0
  164. package/api/features/GetTask/feature.js +12 -0
  165. package/api/features/GetTask/feature.js.map +1 -0
  166. package/api/features/GetTask/index.d.ts +2 -0
  167. package/api/features/GetTask/index.js +2 -0
  168. package/api/features/GetTaskDefinition/GetTaskDefinitionUseCase.d.ts +12 -0
  169. package/api/features/GetTaskDefinition/GetTaskDefinitionUseCase.js +27 -0
  170. package/api/features/GetTaskDefinition/GetTaskDefinitionUseCase.js.map +1 -0
  171. package/api/features/GetTaskDefinition/abstractions.d.ts +17 -0
  172. package/api/features/GetTaskDefinition/abstractions.js +5 -0
  173. package/api/features/GetTaskDefinition/abstractions.js.map +1 -0
  174. package/api/features/GetTaskDefinition/feature.d.ts +4 -0
  175. package/api/features/GetTaskDefinition/feature.js +11 -0
  176. package/api/features/GetTaskDefinition/feature.js.map +1 -0
  177. package/api/features/GetTaskDefinition/index.d.ts +2 -0
  178. package/api/features/GetTaskDefinition/index.js +2 -0
  179. package/api/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.d.ts +11 -0
  180. package/api/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js +24 -0
  181. package/api/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js.map +1 -0
  182. package/api/features/ListTaskDefinitions/abstractions.d.ts +9 -0
  183. package/api/features/ListTaskDefinitions/abstractions.js +5 -0
  184. package/api/features/ListTaskDefinitions/abstractions.js.map +1 -0
  185. package/api/features/ListTaskDefinitions/feature.d.ts +4 -0
  186. package/api/features/ListTaskDefinitions/feature.js +11 -0
  187. package/api/features/ListTaskDefinitions/feature.js.map +1 -0
  188. package/api/features/ListTaskDefinitions/index.d.ts +2 -0
  189. package/api/features/ListTaskDefinitions/index.js +2 -0
  190. package/api/features/ListTasks/ListTasksUseCase.d.ts +9 -0
  191. package/api/features/ListTasks/ListTasksUseCase.js +11 -0
  192. package/api/features/ListTasks/ListTasksUseCase.js.map +1 -0
  193. package/api/features/ListTasks/abstractions.d.ts +13 -0
  194. package/api/features/ListTasks/abstractions.js +5 -0
  195. package/api/features/ListTasks/abstractions.js.map +1 -0
  196. package/api/features/ListTasks/feature.d.ts +5 -0
  197. package/api/features/ListTasks/feature.js +12 -0
  198. package/api/features/ListTasks/feature.js.map +1 -0
  199. package/api/features/ListTasks/index.d.ts +2 -0
  200. package/api/features/ListTasks/index.js +2 -0
  201. package/api/features/TaskController/TaskController.d.ts +49 -0
  202. package/api/features/TaskController/TaskController.js +71 -0
  203. package/api/features/TaskController/TaskController.js.map +1 -0
  204. package/api/features/TaskController/augmentation.d.ts +60 -0
  205. package/api/features/TaskController/augmentation.js +0 -0
  206. package/api/features/TaskController/index.d.ts +2 -0
  207. package/api/features/TaskController/index.js +2 -0
  208. package/api/features/TaskExecutionContext/TaskExecutionContext.d.ts +24 -0
  209. package/api/features/TaskExecutionContext/TaskExecutionContext.js +43 -0
  210. package/api/features/TaskExecutionContext/TaskExecutionContext.js.map +1 -0
  211. package/api/features/TaskExecutionContext/abstractions.d.ts +26 -0
  212. package/api/features/TaskExecutionContext/abstractions.js +5 -0
  213. package/api/features/TaskExecutionContext/abstractions.js.map +1 -0
  214. package/api/features/TaskExecutionContext/feature.d.ts +4 -0
  215. package/api/features/TaskExecutionContext/feature.js +11 -0
  216. package/api/features/TaskExecutionContext/feature.js.map +1 -0
  217. package/api/features/TaskExecutionContext/index.d.ts +1 -0
  218. package/api/features/TaskExecutionContext/index.js +1 -0
  219. package/api/features/TriggerTask/TriggerTaskUseCase.d.ts +10 -0
  220. package/api/features/TriggerTask/TriggerTaskUseCase.js +12 -0
  221. package/api/features/TriggerTask/TriggerTaskUseCase.js.map +1 -0
  222. package/api/features/TriggerTask/abstractions.d.ts +28 -0
  223. package/api/features/TriggerTask/abstractions.js +5 -0
  224. package/api/features/TriggerTask/abstractions.js.map +1 -0
  225. package/api/features/TriggerTask/feature.d.ts +5 -0
  226. package/api/features/TriggerTask/feature.js +12 -0
  227. package/api/features/TriggerTask/feature.js.map +1 -0
  228. package/api/features/TriggerTask/index.d.ts +2 -0
  229. package/api/features/TriggerTask/index.js +2 -0
  230. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.d.ts +23 -0
  231. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.js +64 -0
  232. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.js.map +1 -0
  233. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.d.ts +14 -0
  234. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js +27 -0
  235. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js.map +1 -0
  236. package/api/features/UpdateBackgroundTaskSettings/abstractions.d.ts +26 -0
  237. package/api/features/UpdateBackgroundTaskSettings/abstractions.js +6 -0
  238. package/api/features/UpdateBackgroundTaskSettings/abstractions.js.map +1 -0
  239. package/api/features/UpdateBackgroundTaskSettings/feature.d.ts +4 -0
  240. package/api/features/UpdateBackgroundTaskSettings/feature.js +13 -0
  241. package/api/features/UpdateBackgroundTaskSettings/feature.js.map +1 -0
  242. package/api/features/UpdateBackgroundTaskSettings/index.d.ts +2 -0
  243. package/api/features/UpdateBackgroundTaskSettings/index.js +2 -0
  244. package/api/features/UpdateBackgroundTaskSettings/schema.d.ts +4 -0
  245. package/api/features/UpdateBackgroundTaskSettings/schema.js +8 -0
  246. package/api/features/UpdateBackgroundTaskSettings/schema.js.map +1 -0
  247. package/api/global.d.ts +1 -0
  248. package/api/global.js +1 -0
  249. package/api/graphql/BackgroundTaskSettingsSchema.d.ts +2 -0
  250. package/api/graphql/BackgroundTaskSettingsSchema.js +84 -0
  251. package/api/graphql/BackgroundTaskSettingsSchema.js.map +1 -0
  252. package/api/graphql/checkPermissions.d.ts +7 -0
  253. package/api/graphql/checkPermissions.js +21 -0
  254. package/api/graphql/checkPermissions.js.map +1 -0
  255. package/api/graphql/index.d.ts +2 -0
  256. package/api/graphql/index.js +302 -0
  257. package/api/graphql/index.js.map +1 -0
  258. package/api/graphql/utils.d.ts +9 -0
  259. package/api/graphql/utils.js +20 -0
  260. package/api/graphql/utils.js.map +1 -0
  261. package/api/handler/index.d.ts +6 -0
  262. package/api/handler/index.js +55 -0
  263. package/api/handler/index.js.map +1 -0
  264. package/api/handler/register.d.ts +1 -0
  265. package/api/handler/register.js +15 -0
  266. package/api/handler/register.js.map +1 -0
  267. package/api/handler/types.d.ts +23 -0
  268. package/api/handler/types.js +0 -0
  269. package/api/index.d.ts +5 -0
  270. package/api/index.js +5 -0
  271. package/api/models/BackgroundTaskSettingsModel.d.ts +8 -0
  272. package/api/models/BackgroundTaskSettingsModel.js +27 -0
  273. package/api/models/BackgroundTaskSettingsModel.js.map +1 -0
  274. package/api/permissions.d.ts +12 -0
  275. package/api/permissions.js +22 -0
  276. package/api/permissions.js.map +1 -0
  277. package/api/plugins/TaskServicePlugin.d.ts +19 -0
  278. package/api/plugins/TaskServicePlugin.js +13 -0
  279. package/api/plugins/TaskServicePlugin.js.map +1 -0
  280. package/api/plugins/index.d.ts +1 -0
  281. package/api/plugins/index.js +1 -0
  282. package/api/response/DatabaseResponse.d.ts +12 -0
  283. package/api/response/DatabaseResponse.js +127 -0
  284. package/api/response/DatabaseResponse.js.map +1 -0
  285. package/api/response/Response.d.ts +14 -0
  286. package/api/response/Response.js +91 -0
  287. package/api/response/Response.js.map +1 -0
  288. package/api/response/ResponseAbortedResult.d.ts +9 -0
  289. package/api/response/ResponseAbortedResult.js +12 -0
  290. package/api/response/ResponseAbortedResult.js.map +1 -0
  291. package/api/response/ResponseContinueResult.d.ts +17 -0
  292. package/api/response/ResponseContinueResult.js +16 -0
  293. package/api/response/ResponseContinueResult.js.map +1 -0
  294. package/api/response/ResponseDoneResult.d.ts +11 -0
  295. package/api/response/ResponseDoneResult.js +14 -0
  296. package/api/response/ResponseDoneResult.js.map +1 -0
  297. package/api/response/ResponseErrorResult.d.ts +10 -0
  298. package/api/response/ResponseErrorResult.js +13 -0
  299. package/api/response/ResponseErrorResult.js.map +1 -0
  300. package/api/response/TaskResponse.d.ts +12 -0
  301. package/api/response/TaskResponse.js +53 -0
  302. package/api/response/TaskResponse.js.map +1 -0
  303. package/api/response/abstractions/Response.d.ts +25 -0
  304. package/api/response/abstractions/Response.js +0 -0
  305. package/api/response/abstractions/ResponseAbortedResult.d.ts +5 -0
  306. package/api/response/abstractions/ResponseAbortedResult.js +0 -0
  307. package/api/response/abstractions/ResponseBaseResult.d.ts +7 -0
  308. package/api/response/abstractions/ResponseBaseResult.js +0 -0
  309. package/api/response/abstractions/ResponseContinueResult.d.ts +21 -0
  310. package/api/response/abstractions/ResponseContinueResult.js +0 -0
  311. package/api/response/abstractions/ResponseDoneResult.d.ts +13 -0
  312. package/api/response/abstractions/ResponseDoneResult.js +0 -0
  313. package/api/response/abstractions/ResponseErrorResult.d.ts +18 -0
  314. package/api/response/abstractions/ResponseErrorResult.js +0 -0
  315. package/api/response/abstractions/TaskResponse.d.ts +16 -0
  316. package/api/response/abstractions/TaskResponse.js +0 -0
  317. package/api/response/abstractions/index.d.ts +7 -0
  318. package/api/response/abstractions/index.js +7 -0
  319. package/api/response/index.d.ts +7 -0
  320. package/api/response/index.js +7 -0
  321. package/api/runner/TaskControl.d.ts +14 -0
  322. package/api/runner/TaskControl.js +173 -0
  323. package/api/runner/TaskControl.js.map +1 -0
  324. package/api/runner/TaskEventValidation.d.ts +5 -0
  325. package/api/runner/TaskEventValidation.js +20 -0
  326. package/api/runner/TaskEventValidation.js.map +1 -0
  327. package/api/runner/TaskManager.d.ts +11 -0
  328. package/api/runner/TaskManager.js +81 -0
  329. package/api/runner/TaskManager.js.map +1 -0
  330. package/api/runner/TaskManagerStore.d.ts +40 -0
  331. package/api/runner/TaskManagerStore.js +109 -0
  332. package/api/runner/TaskManagerStore.js.map +1 -0
  333. package/api/runner/TaskRunner.d.ts +25 -0
  334. package/api/runner/TaskRunner.js +55 -0
  335. package/api/runner/TaskRunner.js.map +1 -0
  336. package/api/runner/abstractions/TaskControl.d.ts +10 -0
  337. package/api/runner/abstractions/TaskControl.js +0 -0
  338. package/api/runner/abstractions/TaskEventValidation.d.ts +5 -0
  339. package/api/runner/abstractions/TaskEventValidation.js +0 -0
  340. package/api/runner/abstractions/TaskManager.d.ts +5 -0
  341. package/api/runner/abstractions/TaskManager.js +0 -0
  342. package/api/runner/abstractions/TaskManagerStore.d.ts +92 -0
  343. package/api/runner/abstractions/TaskManagerStore.js +0 -0
  344. package/api/runner/abstractions/TaskRunner.d.ts +13 -0
  345. package/api/runner/abstractions/TaskRunner.js +0 -0
  346. package/api/runner/abstractions/index.d.ts +5 -0
  347. package/api/runner/abstractions/index.js +5 -0
  348. package/api/runner/index.d.ts +1 -0
  349. package/api/runner/index.js +1 -0
  350. package/api/service/EventBridgeEventTransportPlugin.d.ts +16 -0
  351. package/api/service/EventBridgeEventTransportPlugin.js +52 -0
  352. package/api/service/EventBridgeEventTransportPlugin.js.map +1 -0
  353. package/api/service/StepFunctionServicePlugin.d.ts +25 -0
  354. package/api/service/StepFunctionServicePlugin.js +77 -0
  355. package/api/service/StepFunctionServicePlugin.js.map +1 -0
  356. package/api/service/createService.d.ts +6 -0
  357. package/api/service/createService.js +16 -0
  358. package/api/service/createService.js.map +1 -0
  359. package/api/service/index.d.ts +4 -0
  360. package/api/service/index.js +12 -0
  361. package/api/service/index.js.map +1 -0
  362. package/api/tasks/testingRunTask.d.ts +11 -0
  363. package/api/tasks/testingRunTask.js +18 -0
  364. package/api/tasks/testingRunTask.js.map +1 -0
  365. package/api/types.d.ts +167 -0
  366. package/api/types.js +20 -0
  367. package/api/types.js.map +1 -0
  368. package/api/utils/ObjectUpdater.d.ts +8 -0
  369. package/api/utils/ObjectUpdater.js +33 -0
  370. package/api/utils/ObjectUpdater.js.map +1 -0
  371. package/api/utils/getErrorProperties.d.ts +2 -0
  372. package/api/utils/getErrorProperties.js +9 -0
  373. package/api/utils/getErrorProperties.js.map +1 -0
  374. package/api/utils/getObjectProperties.d.ts +8 -0
  375. package/api/utils/getObjectProperties.js +11 -0
  376. package/api/utils/getObjectProperties.js.map +1 -0
  377. package/api/utils/index.d.ts +3 -0
  378. package/api/utils/index.js +3 -0
  379. package/api/utils/normalizeSelfCleanup.d.ts +2 -0
  380. package/api/utils/normalizeSelfCleanup.js +16 -0
  381. package/api/utils/normalizeSelfCleanup.js.map +1 -0
  382. package/index.d.ts +1 -0
  383. package/index.js +1 -0
  384. package/package.json +28 -11
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/response/ResponseContinueResult.js","sources":["../../../src/api/response/ResponseContinueResult.ts"],"sourcesContent":["import type { ITaskDataInput } from \"~/api/types.js\";\nimport type { IResponseContinueResult } from \"./abstractions/index.js\";\nimport { TaskResultStatus } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport class ResponseContinueResult<T = ITaskDataInput> implements IResponseContinueResult<T> {\n public readonly message?: string | undefined;\n public readonly webinyTaskId: string;\n public readonly webinyTaskDefinitionId: string;\n public readonly tenant: string;\n public readonly status: TaskResultStatus.CONTINUE = TaskResultStatus.CONTINUE;\n public readonly input: T;\n /**\n * We need this to make sure that the task will not use the delay from the previous iteration.\n */\n public readonly delay = -1;\n public readonly wait?: number;\n\n public constructor(params: Omit<IResponseContinueResult<T>, \"delay\" | \"status\">) {\n this.message = params.message;\n this.webinyTaskId = params.webinyTaskId;\n this.webinyTaskDefinitionId = params.webinyTaskDefinitionId;\n this.tenant = params.tenant;\n this.input = params.input;\n this.wait = params.wait;\n }\n}\n"],"names":["ResponseContinueResult","params","TaskResultStatus"],"mappings":";AAIO,MAAMA;IAaT,YAAmBC,MAA4D,CAAE;aARjE,MAAM,GAA8BC,iBAAiB,QAAQ;QAI5E,KACe,KAAK,GAAG;QAIpB,IAAI,CAAC,OAAO,GAAGD,OAAO,OAAO;QAC7B,IAAI,CAAC,YAAY,GAAGA,OAAO,YAAY;QACvC,IAAI,CAAC,sBAAsB,GAAGA,OAAO,sBAAsB;QAC3D,IAAI,CAAC,MAAM,GAAGA,OAAO,MAAM;QAC3B,IAAI,CAAC,KAAK,GAAGA,OAAO,KAAK;QACzB,IAAI,CAAC,IAAI,GAAGA,OAAO,IAAI;IAC3B;AACJ"}
@@ -0,0 +1,11 @@
1
+ import type { IResponseDoneResult } from "./abstractions/index.js";
2
+ import { TaskDefinition, TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
3
+ export declare class ResponseDoneResult<O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput> implements IResponseDoneResult<O> {
4
+ readonly message?: string | undefined;
5
+ readonly webinyTaskId: string;
6
+ readonly webinyTaskDefinitionId: string;
7
+ readonly tenant: string;
8
+ readonly output?: O;
9
+ readonly status: TaskResultStatus.DONE;
10
+ constructor(params: Omit<IResponseDoneResult<O>, "status">);
11
+ }
@@ -0,0 +1,14 @@
1
+ import { TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
2
+ class ResponseDoneResult {
3
+ constructor(params){
4
+ this.status = TaskResultStatus.DONE;
5
+ this.message = params.message;
6
+ this.webinyTaskId = params.webinyTaskId;
7
+ this.webinyTaskDefinitionId = params.webinyTaskDefinitionId;
8
+ this.tenant = params.tenant;
9
+ this.output = Object.keys(params.output || {}).length > 0 ? params.output : void 0;
10
+ }
11
+ }
12
+ export { ResponseDoneResult };
13
+
14
+ //# sourceMappingURL=ResponseDoneResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/response/ResponseDoneResult.js","sources":["../../../src/api/response/ResponseDoneResult.ts"],"sourcesContent":["import type { IResponseDoneResult } from \"./abstractions/index.js\";\nimport {\n TaskDefinition,\n TaskResultStatus\n} from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport class ResponseDoneResult<\n O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n> implements IResponseDoneResult<O> {\n public readonly message?: string | undefined;\n public readonly webinyTaskId: string;\n public readonly webinyTaskDefinitionId: string;\n public readonly tenant: string;\n public readonly output?: O;\n public readonly status: TaskResultStatus.DONE = TaskResultStatus.DONE;\n\n public constructor(params: Omit<IResponseDoneResult<O>, \"status\">) {\n this.message = params.message;\n this.webinyTaskId = params.webinyTaskId;\n this.webinyTaskDefinitionId = params.webinyTaskDefinitionId;\n this.tenant = params.tenant;\n this.output = Object.keys(params.output || {}).length > 0 ? params.output : undefined;\n }\n}\n"],"names":["ResponseDoneResult","params","TaskResultStatus","Object","undefined"],"mappings":";AAMO,MAAMA;IAUT,YAAmBC,MAA8C,CAAE;aAFnD,MAAM,GAA0BC,iBAAiB,IAAI;QAGjE,IAAI,CAAC,OAAO,GAAGD,OAAO,OAAO;QAC7B,IAAI,CAAC,YAAY,GAAGA,OAAO,YAAY;QACvC,IAAI,CAAC,sBAAsB,GAAGA,OAAO,sBAAsB;QAC3D,IAAI,CAAC,MAAM,GAAGA,OAAO,MAAM;QAC3B,IAAI,CAAC,MAAM,GAAGE,OAAO,IAAI,CAACF,OAAO,MAAM,IAAI,CAAC,GAAG,MAAM,GAAG,IAAIA,OAAO,MAAM,GAAGG;IAChF;AACJ"}
@@ -0,0 +1,10 @@
1
+ import type { IResponseError, IResponseErrorResult } from "./abstractions/index.js";
2
+ import { TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
3
+ export declare class ResponseErrorResult implements IResponseErrorResult {
4
+ readonly webinyTaskId: string;
5
+ readonly webinyTaskDefinitionId: string;
6
+ readonly tenant: string;
7
+ readonly error: IResponseError;
8
+ readonly status: TaskResultStatus.ERROR;
9
+ constructor(params: Omit<IResponseErrorResult, "status">);
10
+ }
@@ -0,0 +1,13 @@
1
+ import { TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
2
+ class ResponseErrorResult {
3
+ constructor(params){
4
+ this.status = TaskResultStatus.ERROR;
5
+ this.webinyTaskId = params.webinyTaskId;
6
+ this.webinyTaskDefinitionId = params.webinyTaskDefinitionId;
7
+ this.tenant = params.tenant;
8
+ this.error = params.error;
9
+ }
10
+ }
11
+ export { ResponseErrorResult };
12
+
13
+ //# sourceMappingURL=ResponseErrorResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/response/ResponseErrorResult.js","sources":["../../../src/api/response/ResponseErrorResult.ts"],"sourcesContent":["import type { IResponseError, IResponseErrorResult } from \"./abstractions/index.js\";\nimport { TaskResultStatus } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport class ResponseErrorResult implements IResponseErrorResult {\n public readonly webinyTaskId: string;\n public readonly webinyTaskDefinitionId: string;\n public readonly tenant: string;\n public readonly error: IResponseError;\n public readonly status: TaskResultStatus.ERROR = TaskResultStatus.ERROR;\n\n public constructor(params: Omit<IResponseErrorResult, \"status\">) {\n this.webinyTaskId = params.webinyTaskId;\n this.webinyTaskDefinitionId = params.webinyTaskDefinitionId;\n this.tenant = params.tenant;\n this.error = params.error;\n }\n}\n"],"names":["ResponseErrorResult","params","TaskResultStatus"],"mappings":";AAGO,MAAMA;IAOT,YAAmBC,MAA4C,CAAE;aAFjD,MAAM,GAA2BC,iBAAiB,KAAK;QAGnE,IAAI,CAAC,YAAY,GAAGD,OAAO,YAAY;QACvC,IAAI,CAAC,sBAAsB,GAAGA,OAAO,sBAAsB;QAC3D,IAAI,CAAC,MAAM,GAAGA,OAAO,MAAM;QAC3B,IAAI,CAAC,KAAK,GAAGA,OAAO,KAAK;IAC7B;AACJ"}
@@ -0,0 +1,12 @@
1
+ import type { IResponse, IResponseError, ITaskResponse, ITaskResponseContinueOptions } from "./abstractions/index.js";
2
+ import type { ITaskDataInput } from "../../api/types.js";
3
+ import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
4
+ export declare class TaskResponse implements ITaskResponse {
5
+ private readonly response;
6
+ constructor(response: IResponse);
7
+ done<O extends TaskDefinition.ResultDone = TaskDefinition.ResultDone>(message?: string | O, output?: O): TaskDefinition.ResultDone<O>;
8
+ continue<T = ITaskDataInput>(input: T, options?: ITaskResponseContinueOptions): TaskDefinition.ResultContinue;
9
+ error(error: IResponseError | Error | string): TaskDefinition.ResultError;
10
+ aborted(): TaskDefinition.ResultAborted;
11
+ private getError;
12
+ }
@@ -0,0 +1,53 @@
1
+ import { getErrorProperties } from "../utils/getErrorProperties.js";
2
+ const MAX_WAITING_TIME = 30672000;
3
+ const getWaitingTime = (options)=>{
4
+ let waitingTime;
5
+ if (!options) return;
6
+ if ("seconds" in options) waitingTime = options.seconds;
7
+ else if ("date" in options) {
8
+ const now = new Date();
9
+ waitingTime = (options.date.getTime() - now.getTime()) / 1000;
10
+ }
11
+ if (!waitingTime || waitingTime < 0) return;
12
+ return waitingTime > MAX_WAITING_TIME ? MAX_WAITING_TIME : waitingTime;
13
+ };
14
+ class TaskResponse {
15
+ constructor(response){
16
+ this.response = response;
17
+ }
18
+ done(message, output) {
19
+ if ("object" == typeof message && !output) return this.response.done({
20
+ output: message
21
+ });
22
+ return this.response.done({
23
+ message: message,
24
+ output
25
+ });
26
+ }
27
+ continue(input, options) {
28
+ const wait = getWaitingTime(options);
29
+ if (!wait || wait < 1) return this.response.continue({
30
+ input: input
31
+ });
32
+ return this.response.continue({
33
+ input: input,
34
+ wait
35
+ });
36
+ }
37
+ error(error) {
38
+ return this.response.error({
39
+ error: this.getError(error)
40
+ });
41
+ }
42
+ aborted() {
43
+ return this.response.aborted();
44
+ }
45
+ getError(error) {
46
+ if (error instanceof Error) ;
47
+ else if ("string" == typeof error) return getErrorProperties(new Error(error));
48
+ return getErrorProperties(error);
49
+ }
50
+ }
51
+ export { TaskResponse };
52
+
53
+ //# sourceMappingURL=TaskResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/response/TaskResponse.js","sources":["../../../src/api/response/TaskResponse.ts"],"sourcesContent":["import type {\n IResponse,\n IResponseError,\n ITaskResponse,\n ITaskResponseContinueOptions\n} from \"./abstractions/index.js\";\nimport type { ITaskDataInput } from \"~/api/types.js\";\nimport { getErrorProperties } from \"~/api/utils/getErrorProperties.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\n/**\n * 355 days transformed into seconds.\n */\nconst MAX_WAITING_TIME = 30672000;\n\n/**\n * There are options to send:\n * * seconds - number of seconds to wait\n * * date - date until which to wait\n */\nconst getWaitingTime = (options?: ITaskResponseContinueOptions): number | undefined => {\n let waitingTime: number | undefined;\n if (!options) {\n return undefined;\n }\n if (\"seconds\" in options) {\n waitingTime = options.seconds;\n } else if (\"date\" in options) {\n const now = new Date();\n waitingTime = (options.date.getTime() - now.getTime()) / 1000;\n }\n if (!waitingTime || waitingTime < 0) {\n return undefined;\n }\n return waitingTime > MAX_WAITING_TIME ? MAX_WAITING_TIME : waitingTime;\n};\n\nexport class TaskResponse implements ITaskResponse {\n private readonly response: IResponse;\n\n public constructor(response: IResponse) {\n this.response = response;\n }\n\n public done<O extends TaskDefinition.ResultDone = TaskDefinition.ResultDone>(\n message?: string | O,\n output?: O\n ): TaskDefinition.ResultDone<O> {\n if (typeof message === \"object\" && !output) {\n return this.response.done({\n output: message\n });\n }\n return this.response.done<O>({\n message: message as string,\n output\n });\n }\n\n public continue<T = ITaskDataInput>(\n input: T,\n options?: ITaskResponseContinueOptions\n ): TaskDefinition.ResultContinue {\n const wait = getWaitingTime(options);\n if (!wait || wait < 1) {\n return this.response.continue({\n input: input as ITaskDataInput\n });\n }\n return this.response.continue({\n input: input as ITaskDataInput,\n wait\n });\n }\n\n public error(error: IResponseError | Error | string): TaskDefinition.ResultError {\n return this.response.error({\n error: this.getError(error)\n });\n }\n\n public aborted(): TaskDefinition.ResultAborted {\n return this.response.aborted();\n }\n\n private getError(error: IResponseError | Error | string): IResponseError | Error {\n if (error instanceof Error) {\n return getErrorProperties(error);\n } else if (typeof error === \"string\") {\n return getErrorProperties(new Error(error));\n }\n return getErrorProperties(error);\n }\n}\n"],"names":["MAX_WAITING_TIME","getWaitingTime","options","waitingTime","now","Date","TaskResponse","response","message","output","input","wait","error","Error","getErrorProperties"],"mappings":";AAaA,MAAMA,mBAAmB;AAOzB,MAAMC,iBAAiB,CAACC;IACpB,IAAIC;IACJ,IAAI,CAACD,SACD;IAEJ,IAAI,aAAaA,SACbC,cAAcD,QAAQ,OAAO;SAC1B,IAAI,UAAUA,SAAS;QAC1B,MAAME,MAAM,IAAIC;QAChBF,cAAeD,AAAAA,CAAAA,QAAQ,IAAI,CAAC,OAAO,KAAKE,IAAI,OAAO,EAAC,IAAK;IAC7D;IACA,IAAI,CAACD,eAAeA,cAAc,GAC9B;IAEJ,OAAOA,cAAcH,mBAAmBA,mBAAmBG;AAC/D;AAEO,MAAMG;IAGT,YAAmBC,QAAmB,CAAE;QACpC,IAAI,CAAC,QAAQ,GAAGA;IACpB;IAEO,KACHC,OAAoB,EACpBC,MAAU,EACkB;QAC5B,IAAI,AAAmB,YAAnB,OAAOD,WAAwB,CAACC,QAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACtB,QAAQD;QACZ;QAEJ,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAI;YACzB,SAASA;YACTC;QACJ;IACJ;IAEO,SACHC,KAAQ,EACRR,OAAsC,EACT;QAC7B,MAAMS,OAAOV,eAAeC;QAC5B,IAAI,CAACS,QAAQA,OAAO,GAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC1B,OAAOD;QACX;QAEJ,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC1B,OAAOA;YACPC;QACJ;IACJ;IAEO,MAAMC,KAAsC,EAA8B;QAC7E,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YACvB,OAAO,IAAI,CAAC,QAAQ,CAACA;QACzB;IACJ;IAEO,UAAwC;QAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO;IAChC;IAEQ,SAASA,KAAsC,EAA0B;QAC7E,IAAIA,iBAAiBC;aAEd,IAAI,AAAiB,YAAjB,OAAOD,OACd,OAAOE,mBAAmB,IAAID,MAAMD;QAExC,OAAOE,mBAAmBF;IAC9B;AACJ"}
@@ -0,0 +1,25 @@
1
+ import type { ITaskEvent } from "../../../api/handler/types.js";
2
+ import type { IResponseContinueParams, IResponseContinueResult } from "./ResponseContinueResult.js";
3
+ import type { IResponseDoneParams, IResponseDoneResult } from "./ResponseDoneResult.js";
4
+ import type { IResponseErrorParams, IResponseErrorResult } from "./ResponseErrorResult.js";
5
+ import type { IResponseAbortedResult } from "./ResponseAbortedResult.js";
6
+ import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
7
+ export type IResponseFromParams = IResponseDoneResult | IResponseContinueResult | IResponseErrorResult;
8
+ export type IResponseResult = IResponseDoneResult | IResponseContinueResult | IResponseErrorResult | IResponseAbortedResult;
9
+ export interface IResponse {
10
+ readonly event: ITaskEvent;
11
+ setEvent: (event: ITaskEvent) => void;
12
+ from: (params: IResponseFromParams) => IResponseResult;
13
+ done: <O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput>(params?: IResponseDoneParams<O>) => IResponseDoneResult<O>;
14
+ aborted: () => IResponseAbortedResult;
15
+ continue: (params: IResponseContinueParams) => IResponseContinueResult;
16
+ error: (params: IResponseErrorParams) => IResponseErrorResult;
17
+ }
18
+ export interface IResponseAsync {
19
+ readonly response: IResponse;
20
+ from: (result: IResponseResult) => Promise<IResponseResult>;
21
+ done: (params: IResponseDoneParams) => Promise<IResponseDoneResult>;
22
+ continue: (params: IResponseContinueParams) => Promise<IResponseContinueResult | IResponseErrorResult>;
23
+ aborted: () => Promise<IResponseAbortedResult>;
24
+ error: (params: IResponseErrorParams) => Promise<IResponseErrorResult>;
25
+ }
File without changes
@@ -0,0 +1,5 @@
1
+ import type { IResponseBaseResult } from "../../../api/response/abstractions/ResponseBaseResult.js";
2
+ import { TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
3
+ export interface IResponseAbortedResult extends IResponseBaseResult {
4
+ status: TaskResultStatus.ABORTED;
5
+ }
@@ -0,0 +1,7 @@
1
+ import { TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
2
+ export interface IResponseBaseResult {
3
+ status: TaskResultStatus;
4
+ webinyTaskId: string;
5
+ webinyTaskDefinitionId: string;
6
+ tenant: string;
7
+ }
@@ -0,0 +1,21 @@
1
+ import type { ITaskDataInput } from "../../../api/types.js";
2
+ import type { IResponseBaseResult } from "./ResponseBaseResult.js";
3
+ import { TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
4
+ /**
5
+ * Wait can be used to pause next iteration of the Lambda execution.
6
+ * For example, if the task is hammering the Elasticsearch cluster too much, you can use this to pause the execution for some time.
7
+ */
8
+ export interface IResponseContinueParams<T = ITaskDataInput> {
9
+ message?: string;
10
+ tenant?: string;
11
+ webinyTaskId?: string;
12
+ input: T;
13
+ wait?: number;
14
+ }
15
+ export interface IResponseContinueResult<T = ITaskDataInput> extends IResponseBaseResult {
16
+ message?: string;
17
+ input: T;
18
+ wait?: number;
19
+ delay: -1;
20
+ status: TaskResultStatus.CONTINUE;
21
+ }
@@ -0,0 +1,13 @@
1
+ import type { IResponseBaseResult } from "./ResponseBaseResult.js";
2
+ import { TaskDefinition, TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
3
+ export interface IResponseDoneParams<O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput> {
4
+ tenant?: string;
5
+ webinyTaskId?: string;
6
+ message?: string;
7
+ output?: O;
8
+ }
9
+ export interface IResponseDoneResult<O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput> extends IResponseBaseResult {
10
+ message?: string;
11
+ output?: O;
12
+ status: TaskResultStatus.DONE;
13
+ }
@@ -0,0 +1,18 @@
1
+ import type { IResponseBaseResult } from "./ResponseBaseResult.js";
2
+ import type { GenericRecord } from "@webiny/api/types.js";
3
+ import { TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
4
+ export interface IResponseError {
5
+ message: string;
6
+ code?: string | null;
7
+ data?: GenericRecord | null;
8
+ stack?: string;
9
+ }
10
+ export interface IResponseErrorParams {
11
+ error: IResponseError | Error;
12
+ tenant?: string;
13
+ webinyTaskId?: string;
14
+ }
15
+ export interface IResponseErrorResult extends IResponseBaseResult {
16
+ error: IResponseError;
17
+ status: TaskResultStatus.ERROR;
18
+ }
@@ -0,0 +1,16 @@
1
+ import type { IResponseError } from "./ResponseErrorResult.js";
2
+ import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
3
+ export interface ITaskResponseContinueOptionsUntil {
4
+ date: Date;
5
+ }
6
+ export interface ITaskResponseContinueOptionsSeconds {
7
+ seconds: number;
8
+ }
9
+ export type ITaskResponseContinueOptions = ITaskResponseContinueOptionsUntil | ITaskResponseContinueOptionsSeconds;
10
+ export interface ITaskResponse<I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput> {
11
+ done(output?: O): TaskDefinition.ResultDone<O>;
12
+ done(message?: string, output?: O): TaskDefinition.ResultDone<O>;
13
+ continue(data: I, options?: ITaskResponseContinueOptions): TaskDefinition.ResultContinue<I>;
14
+ error(error: IResponseError | Error | string): TaskDefinition.ResultError;
15
+ aborted(): TaskDefinition.ResultAborted;
16
+ }
File without changes
@@ -0,0 +1,7 @@
1
+ export * from "./Response.js";
2
+ export * from "./ResponseContinueResult.js";
3
+ export * from "./ResponseDoneResult.js";
4
+ export * from "./ResponseErrorResult.js";
5
+ export * from "./ResponseAbortedResult.js";
6
+ export * from "./ResponseBaseResult.js";
7
+ export * from "./TaskResponse.js";
@@ -0,0 +1,7 @@
1
+ export * from "./Response.js";
2
+ export * from "./ResponseContinueResult.js";
3
+ export * from "./ResponseDoneResult.js";
4
+ export * from "./ResponseErrorResult.js";
5
+ export * from "./ResponseAbortedResult.js";
6
+ export * from "./ResponseBaseResult.js";
7
+ export * from "./TaskResponse.js";
@@ -0,0 +1,7 @@
1
+ export * from "./DatabaseResponse.js";
2
+ export * from "./Response.js";
3
+ export * from "./ResponseContinueResult.js";
4
+ export * from "./ResponseDoneResult.js";
5
+ export * from "./ResponseAbortedResult.js";
6
+ export * from "./ResponseErrorResult.js";
7
+ export * from "./TaskResponse.js";
@@ -0,0 +1,7 @@
1
+ export * from "./DatabaseResponse.js";
2
+ export * from "./Response.js";
3
+ export * from "./ResponseContinueResult.js";
4
+ export * from "./ResponseDoneResult.js";
5
+ export * from "./ResponseAbortedResult.js";
6
+ export * from "./ResponseErrorResult.js";
7
+ export * from "./TaskResponse.js";
@@ -0,0 +1,14 @@
1
+ import type { ITaskEvent } from "../../api/handler/types.js";
2
+ import type { Context } from "../../api/types.js";
3
+ import type { ITaskControl, ITaskRunner } from "./abstractions/index.js";
4
+ import type { IResponse, IResponseResult } from "../../api/response/abstractions/index.js";
5
+ export declare class TaskControl implements ITaskControl {
6
+ readonly runner: ITaskRunner;
7
+ readonly response: IResponse;
8
+ readonly context: Context;
9
+ constructor(runner: ITaskRunner, response: IResponse, context: Context);
10
+ run(event: Pick<ITaskEvent, "webinyTaskId">): Promise<IResponseResult>;
11
+ private runEvents;
12
+ private getTask;
13
+ private getTaskLog;
14
+ }
@@ -0,0 +1,173 @@
1
+ import { TaskDataStatus } from "../types.js";
2
+ import { TaskManager } from "./TaskManager.js";
3
+ import { DatabaseResponse, TaskResponse } from "../response/index.js";
4
+ import { TaskManagerStore } from "./TaskManagerStore.js";
5
+ import { getErrorProperties } from "../utils/getErrorProperties.js";
6
+ import { AuthenticatedIdentity } from "@webiny/api-core/features/security/IdentityContext/index.js";
7
+ import { TaskExecutionContext } from "../features/TaskExecutionContext/index.js";
8
+ import { TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
9
+ class TaskControl {
10
+ constructor(runner, response, context){
11
+ this.runner = runner;
12
+ this.context = context;
13
+ this.response = response;
14
+ }
15
+ async run(event) {
16
+ const taskId = event.webinyTaskId;
17
+ let task;
18
+ try {
19
+ task = await this.getTask(taskId);
20
+ this.context.security.setIdentity(new AuthenticatedIdentity({
21
+ id: task.createdBy.id,
22
+ type: task.createdBy.type,
23
+ displayName: task.createdBy.displayName ?? "",
24
+ context: {
25
+ canAccessTenant: true
26
+ }
27
+ }));
28
+ } catch (error) {
29
+ return this.response.error({
30
+ ...getErrorProperties(error)
31
+ });
32
+ }
33
+ const definition = this.context.tasks.getDefinition(task.definitionId);
34
+ if (!definition) return this.response.error({
35
+ error: {
36
+ message: `Task "${task.id}" cannot be executed because there is no "${task.definitionId}" definition plugin.`,
37
+ code: "TASK_DEFINITION_ERROR",
38
+ data: {
39
+ definitionId: task.definitionId
40
+ }
41
+ }
42
+ });
43
+ const databaseLogs = true === definition.databaseLogs;
44
+ let taskLog;
45
+ try {
46
+ taskLog = await this.getTaskLog({
47
+ task,
48
+ databaseLogs
49
+ });
50
+ } catch (error) {
51
+ return this.response.error({
52
+ error
53
+ });
54
+ }
55
+ if (task.taskStatus === TaskDataStatus.ABORTED) return this.response.aborted();
56
+ if (task.taskStatus === TaskDataStatus.SUCCESS) return this.response.error({
57
+ error: {
58
+ message: "Task is already done, cannot run it again."
59
+ }
60
+ });
61
+ if (task.taskStatus === TaskDataStatus.FAILED) return this.response.error({
62
+ error: {
63
+ message: "Task has failed, cannot run it again."
64
+ }
65
+ });
66
+ const store = new TaskManagerStore({
67
+ context: this.context,
68
+ task,
69
+ log: taskLog,
70
+ databaseLogs
71
+ });
72
+ const executionContext = this.context.container.resolve(TaskExecutionContext);
73
+ executionContext.setStore(store);
74
+ executionContext.setRunner(this.runner);
75
+ executionContext.setTimer(this.runner.timer);
76
+ executionContext.setResponse(new TaskResponse(this.response));
77
+ const manager = new TaskManager(this.context, this.response, store);
78
+ const databaseResponse = new DatabaseResponse(this.response, store);
79
+ try {
80
+ const result = await manager.run(definition);
81
+ const responseResult = await databaseResponse.from(result);
82
+ await this.runEvents(result, definition, store.getTask());
83
+ return responseResult;
84
+ } catch (ex) {
85
+ return await databaseResponse.from(this.response.error({
86
+ error: {
87
+ message: ex.message,
88
+ code: ex.code || "TASK_ERROR",
89
+ stack: ex.stack,
90
+ data: {
91
+ ...ex.data,
92
+ input: task.input
93
+ }
94
+ }
95
+ }));
96
+ } finally{
97
+ executionContext.clear();
98
+ }
99
+ }
100
+ async runEvents(result, definition, task) {
101
+ if (result.status === TaskResultStatus.ERROR && definition.onError) try {
102
+ await definition.onError({
103
+ task
104
+ });
105
+ } catch (ex) {
106
+ console.error(`Error executing onError hook for task "${task.id}".`);
107
+ console.log(getErrorProperties(ex));
108
+ }
109
+ else if (result.status === TaskResultStatus.DONE && definition.onDone) try {
110
+ await definition.onDone({
111
+ task
112
+ });
113
+ } catch (ex) {
114
+ console.error(`Error executing onDone hook for task "${task.id}".`);
115
+ console.log(getErrorProperties(ex));
116
+ }
117
+ }
118
+ async getTask(id) {
119
+ try {
120
+ const task = await this.runner.context.tasks.getTask(id);
121
+ if (task) return task;
122
+ } catch (ex) {
123
+ throw this.response.error({
124
+ error: {
125
+ message: ex.message,
126
+ code: ex.code || "TASK_ERROR",
127
+ stack: ex.stack,
128
+ data: ex.data
129
+ }
130
+ });
131
+ }
132
+ throw this.response.error({
133
+ error: {
134
+ message: `Task "${id}" cannot be executed because it does not exist.`,
135
+ code: "TASK_NOT_FOUND"
136
+ }
137
+ });
138
+ }
139
+ async getTaskLog(params) {
140
+ const { task, databaseLogs } = params;
141
+ if (!databaseLogs) return {
142
+ id: `${task.id}-log`,
143
+ createdOn: task.createdOn,
144
+ createdBy: task.createdBy,
145
+ executionName: task.executionName,
146
+ task: task.id,
147
+ iteration: task.iterations,
148
+ items: []
149
+ };
150
+ let taskLog = null;
151
+ try {
152
+ taskLog = await this.context.tasks.getLatestLog(task.id);
153
+ } catch (error) {
154
+ if ("NOT_FOUND" !== error.code) throw this.response.error({
155
+ error
156
+ });
157
+ }
158
+ const currentIteration = taskLog?.iteration || 0;
159
+ try {
160
+ return await this.context.tasks.createLog(task, {
161
+ executionName: this.response.event.executionName,
162
+ iteration: currentIteration + 1
163
+ });
164
+ } catch (error) {
165
+ throw this.response.error({
166
+ error
167
+ });
168
+ }
169
+ }
170
+ }
171
+ export { TaskControl };
172
+
173
+ //# sourceMappingURL=TaskControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/runner/TaskControl.js","sources":["../../../src/api/runner/TaskControl.ts"],"sourcesContent":["import type { ITaskEvent } from \"~/api/handler/types.js\";\nimport type { Context, ITask, ITaskDataInput, ITaskLog } from \"~/api/types.js\";\nimport { TaskDataStatus } from \"~/api/types.js\";\nimport type { ITaskControl, ITaskRunner } from \"./abstractions/index.js\";\nimport { TaskManager } from \"./TaskManager.js\";\nimport type { IResponse, IResponseResult } from \"~/api/response/abstractions/index.js\";\nimport { DatabaseResponse, TaskResponse } from \"~/api/response/index.js\";\nimport { TaskManagerStore } from \"./TaskManagerStore.js\";\nimport { getErrorProperties } from \"~/api/utils/getErrorProperties.js\";\nimport { AuthenticatedIdentity } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { TaskExecutionContext } from \"~/api/features/TaskExecutionContext/index.js\";\nimport {\n TaskDefinition,\n TaskResultStatus\n} from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\ninterface IGetTaskLogParams {\n task: ITask;\n databaseLogs: boolean;\n}\n\nexport class TaskControl implements ITaskControl {\n public readonly runner: ITaskRunner;\n public readonly response: IResponse;\n public readonly context: Context;\n\n public constructor(runner: ITaskRunner, response: IResponse, context: Context) {\n this.runner = runner;\n this.context = context;\n this.response = response;\n }\n\n public async run(event: Pick<ITaskEvent, \"webinyTaskId\">): Promise<IResponseResult> {\n const taskId = event.webinyTaskId;\n /**\n * This is the initial getTask idea.\n * We will need to take care of child tasks:\n * * child tasks can be in multiple levels (child task creates a child task, etc...).\n * * child tasks could be executed in parallel.\n */\n let task: ITask<ITaskDataInput>;\n try {\n task = await this.getTask(taskId);\n this.context.security.setIdentity(\n new AuthenticatedIdentity({\n id: task.createdBy.id,\n type: task.createdBy.type,\n displayName: task.createdBy.displayName ?? \"\",\n context: {\n canAccessTenant: true\n }\n })\n );\n } catch (error) {\n /**\n * TODO Refactor error handling.\n */\n // @ts-expect-error\n return this.response.error({\n ...getErrorProperties(error)\n });\n }\n /**\n * Let's get the task definition.\n */\n const definition = this.context.tasks.getDefinition(task.definitionId);\n if (!definition) {\n return this.response.error({\n error: {\n message: `Task \"${task.id}\" cannot be executed because there is no \"${task.definitionId}\" definition plugin.`,\n code: \"TASK_DEFINITION_ERROR\",\n data: {\n definitionId: task.definitionId\n }\n }\n });\n }\n /**\n * Only enable logs if definition explicitly allows them.\n */\n const databaseLogs = definition.databaseLogs === true;\n\n /**\n * As this as a run of the task, we need to create a new log entry.\n */\n let taskLog: ITaskLog;\n try {\n taskLog = await this.getTaskLog({\n task,\n databaseLogs\n });\n } catch (error) {\n return this.response.error({\n error\n });\n }\n /**\n * Make sure that task does not run if it is aborted.\n * This will effectively end the Step Function execution with a \"success\" status.\n */\n if (task.taskStatus === TaskDataStatus.ABORTED) {\n return this.response.aborted();\n }\n /**\n * Do not run if already a success (done).\n */\n //\n else if (task.taskStatus === TaskDataStatus.SUCCESS) {\n return this.response.error({\n error: {\n message: \"Task is already done, cannot run it again.\"\n }\n });\n }\n /**\n * Do not run if already failed.\n */\n //\n else if (task.taskStatus === TaskDataStatus.FAILED) {\n return this.response.error({\n error: {\n message: \"Task has failed, cannot run it again.\"\n }\n });\n }\n\n const store = new TaskManagerStore({\n context: this.context,\n task,\n log: taskLog,\n databaseLogs\n });\n\n // Populate TaskExecutionContext BEFORE executing task\n const executionContext = this.context.container.resolve(TaskExecutionContext);\n executionContext.setStore(store);\n executionContext.setRunner(this.runner);\n executionContext.setTimer(this.runner.timer);\n executionContext.setResponse(new TaskResponse(this.response));\n\n const manager = new TaskManager(this.context, this.response, store);\n\n const databaseResponse = new DatabaseResponse(this.response, store);\n\n try {\n const result = await manager.run(definition);\n\n const responseResult = await databaseResponse.from(result);\n\n // Get the updated task from store (no database read needed - store maintains local cache)\n await this.runEvents(result, definition, store.getTask());\n\n return responseResult;\n } catch (ex) {\n /**\n * We always want to store the error in the task log.\n */\n return await databaseResponse.from(\n this.response.error({\n error: {\n message: ex.message,\n code: ex.code || \"TASK_ERROR\",\n stack: ex.stack,\n data: {\n ...ex.data,\n input: task.input\n }\n }\n })\n );\n } finally {\n // Clear execution context after task completes\n executionContext.clear();\n }\n }\n\n private async runEvents(\n result: IResponseResult,\n definition: TaskDefinition.Runnable,\n task: ITask\n ): Promise<void> {\n if (result.status === TaskResultStatus.ERROR && definition.onError) {\n try {\n await definition.onError({ task });\n } catch (ex) {\n console.error(`Error executing onError hook for task \"${task.id}\".`);\n console.log(getErrorProperties(ex));\n }\n } else if (result.status === TaskResultStatus.DONE && definition.onDone) {\n try {\n await definition.onDone({ task });\n } catch (ex) {\n console.error(`Error executing onDone hook for task \"${task.id}\".`);\n console.log(getErrorProperties(ex));\n }\n }\n }\n\n private async getTask<T extends TaskDefinition.TaskInput>(id: string): Promise<ITask<T>> {\n try {\n const task = await this.runner.context.tasks.getTask<T>(id);\n if (task) {\n return task;\n }\n } catch (ex) {\n throw this.response.error({\n error: {\n message: ex.message,\n code: ex.code || \"TASK_ERROR\",\n stack: ex.stack,\n data: ex.data\n }\n });\n }\n throw this.response.error({\n error: {\n message: `Task \"${id}\" cannot be executed because it does not exist.`,\n code: \"TASK_NOT_FOUND\"\n }\n });\n }\n\n private async getTaskLog(params: IGetTaskLogParams): Promise<ITaskLog> {\n const { task, databaseLogs } = params;\n /**\n * If logs are disabled, let's return a mocked one.\n */\n if (!databaseLogs) {\n return {\n id: `${task.id}-log`,\n createdOn: task.createdOn,\n createdBy: task.createdBy,\n executionName: task.executionName,\n task: task.id,\n iteration: task.iterations,\n items: []\n };\n }\n let taskLog: ITaskLog | null = null;\n /**\n * First we are trying to get existing latest log.\n */\n try {\n taskLog = await this.context.tasks.getLatestLog(task.id);\n } catch (error) {\n /**\n * If error is not the NotFoundError, we need to throw it.\n */\n if (error.code !== \"NOT_FOUND\") {\n throw this.response.error({\n error\n });\n }\n /**\n * Otherwise just continue and create a new log.\n */\n }\n\n const currentIteration = taskLog?.iteration || 0;\n\n try {\n return await this.context.tasks.createLog(task, {\n executionName: this.response.event.executionName,\n iteration: currentIteration + 1\n });\n } catch (error) {\n throw this.response.error({\n error\n });\n }\n }\n}\n"],"names":["TaskControl","runner","response","context","event","taskId","task","AuthenticatedIdentity","error","getErrorProperties","definition","databaseLogs","taskLog","TaskDataStatus","store","TaskManagerStore","executionContext","TaskExecutionContext","TaskResponse","manager","TaskManager","databaseResponse","DatabaseResponse","result","responseResult","ex","TaskResultStatus","console","id","params","currentIteration"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { ITaskEventValidation, ITaskEventValidationResult } from "./abstractions/index.js";
2
+ import type { ITaskEvent } from "../../api/handler/types.js";
3
+ export declare class TaskEventValidation implements ITaskEventValidation {
4
+ validate(event: Partial<ITaskEvent>): ITaskEventValidationResult;
5
+ }
@@ -0,0 +1,20 @@
1
+ import zod from "zod";
2
+ import { createZodError } from "@webiny/utils";
3
+ const validation = zod.object({
4
+ webinyTaskId: zod.string(),
5
+ webinyTaskDefinitionId: zod.string(),
6
+ endpoint: zod.string(),
7
+ tenant: zod.string(),
8
+ executionName: zod.string(),
9
+ stateMachineId: zod.string()
10
+ }).required();
11
+ class TaskEventValidation {
12
+ validate(event) {
13
+ const result = validation.safeParse(event);
14
+ if (result.success) return result.data;
15
+ throw createZodError(result.error);
16
+ }
17
+ }
18
+ export { TaskEventValidation };
19
+
20
+ //# sourceMappingURL=TaskEventValidation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/runner/TaskEventValidation.js","sources":["../../../src/api/runner/TaskEventValidation.ts"],"sourcesContent":["import zod from \"zod\";\nimport { createZodError } from \"@webiny/utils\";\nimport type { ITaskEventValidation, ITaskEventValidationResult } from \"./abstractions/index.js\";\nimport type { ITaskEvent } from \"~/api/handler/types.js\";\n\nconst validation = zod\n .object({\n webinyTaskId: zod.string(),\n webinyTaskDefinitionId: zod.string(),\n endpoint: zod.string(),\n tenant: zod.string(),\n executionName: zod.string(),\n stateMachineId: zod.string()\n })\n .required();\n\nexport class TaskEventValidation implements ITaskEventValidation {\n public validate(event: Partial<ITaskEvent>): ITaskEventValidationResult {\n const result = validation.safeParse(event);\n if (result.success) {\n return result.data;\n }\n throw createZodError(result.error);\n }\n}\n"],"names":["validation","zod","TaskEventValidation","event","result","createZodError"],"mappings":";;AAKA,MAAMA,aAAaC,IAAAA,MACR,CAAC;IACJ,cAAcA,IAAI,MAAM;IACxB,wBAAwBA,IAAI,MAAM;IAClC,UAAUA,IAAI,MAAM;IACpB,QAAQA,IAAI,MAAM;IAClB,eAAeA,IAAI,MAAM;IACzB,gBAAgBA,IAAI,MAAM;AAC9B,GACC,QAAQ;AAEN,MAAMC;IACF,SAASC,KAA0B,EAA8B;QACpE,MAAMC,SAASJ,WAAW,SAAS,CAACG;QACpC,IAAIC,OAAO,OAAO,EACd,OAAOA,OAAO,IAAI;QAEtB,MAAMC,eAAeD,OAAO,KAAK;IACrC;AACJ"}
@@ -0,0 +1,11 @@
1
+ import type { ITaskManager, ITaskManagerStorePrivate } from "./abstractions/index.js";
2
+ import type { Context } from "../../api/types.js";
3
+ import type { IResponse, IResponseResult } from "../../api/response/abstractions/index.js";
4
+ import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
5
+ export declare class TaskManager implements ITaskManager {
6
+ private readonly context;
7
+ private readonly response;
8
+ private readonly store;
9
+ constructor(context: Context, response: IResponse, store: ITaskManagerStorePrivate);
10
+ run(definition: TaskDefinition.Runnable): Promise<IResponseResult>;
11
+ }