@webiny/background-tasks 0.0.0-unstable.7be00a75a9 → 0.0.0-unstable.a4f3e4ea8b

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 (389) 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/TaskDetail/components/TaskDetailDrawer.js +6 -0
  53. package/admin/presentation/TaskDetail/components/TaskDetailDrawer.js.map +1 -1
  54. package/admin/presentation/TaskExecutions/TaskExecutionsPresenter.d.ts +2 -0
  55. package/admin/presentation/TaskExecutions/TaskExecutionsPresenter.js +3 -1
  56. package/admin/presentation/TaskExecutions/TaskExecutionsPresenter.js.map +1 -1
  57. package/admin/presentation/TaskExecutions/components/TaskDefinitionsButton.d.ts +2 -0
  58. package/admin/presentation/TaskExecutions/components/TaskDefinitionsButton.js +16 -0
  59. package/admin/presentation/TaskExecutions/components/TaskDefinitionsButton.js.map +1 -0
  60. package/admin/presentation/TaskExecutions/components/TaskExecutionsView.js +78 -40
  61. package/admin/presentation/TaskExecutions/components/TaskExecutionsView.js.map +1 -1
  62. package/admin/routes.d.ts +1 -0
  63. package/admin/routes.js +4 -0
  64. package/admin/routes.js.map +1 -1
  65. package/admin/shared/types.d.ts +3 -0
  66. package/api/context.d.ts +2 -0
  67. package/api/context.js +66 -0
  68. package/api/context.js.map +1 -0
  69. package/api/crud/TaskLogPrivateModel.d.ts +9 -0
  70. package/api/crud/TaskLogPrivateModel.js +40 -0
  71. package/api/crud/TaskLogPrivateModel.js.map +1 -0
  72. package/api/crud/TaskPrivateModel.d.ts +9 -0
  73. package/api/crud/TaskPrivateModel.js +55 -0
  74. package/api/crud/TaskPrivateModel.js.map +1 -0
  75. package/api/crud/cleanupTaskSubtree.d.ts +8 -0
  76. package/api/crud/cleanupTaskSubtree.js +62 -0
  77. package/api/crud/cleanupTaskSubtree.js.map +1 -0
  78. package/api/crud/crud.tasks.d.ts +2 -0
  79. package/api/crud/crud.tasks.js +318 -0
  80. package/api/crud/crud.tasks.js.map +1 -0
  81. package/api/crud/definition.tasks.d.ts +2 -0
  82. package/api/crud/definition.tasks.js +17 -0
  83. package/api/crud/definition.tasks.js.map +1 -0
  84. package/api/crud/service.tasks.d.ts +2 -0
  85. package/api/crud/service.tasks.js +130 -0
  86. package/api/crud/service.tasks.js.map +1 -0
  87. package/api/decorators/RunnableTaskDecorator.d.ts +32 -0
  88. package/api/decorators/RunnableTaskDecorator.js +69 -0
  89. package/api/decorators/RunnableTaskDecorator.js.map +1 -0
  90. package/api/decorators/SelfCleaningTaskDecorator.d.ts +30 -0
  91. package/api/decorators/SelfCleaningTaskDecorator.js +84 -0
  92. package/api/decorators/SelfCleaningTaskDecorator.js.map +1 -0
  93. package/api/domain/BackgroundTaskSettings.d.ts +3 -0
  94. package/api/domain/BackgroundTaskSettings.js +0 -0
  95. package/api/domain/constants.d.ts +3 -0
  96. package/api/domain/constants.js +6 -0
  97. package/api/domain/constants.js.map +1 -0
  98. package/api/domain/errors.d.ts +57 -0
  99. package/api/domain/errors.js +101 -0
  100. package/api/domain/errors.js.map +1 -0
  101. package/api/events/TaskAfterCreateEvent.d.ts +6 -0
  102. package/api/events/TaskAfterCreateEvent.js +13 -0
  103. package/api/events/TaskAfterCreateEvent.js.map +1 -0
  104. package/api/events/TaskAfterDeleteEvent.d.ts +6 -0
  105. package/api/events/TaskAfterDeleteEvent.js +13 -0
  106. package/api/events/TaskAfterDeleteEvent.js.map +1 -0
  107. package/api/events/TaskAfterUpdateEvent.d.ts +6 -0
  108. package/api/events/TaskAfterUpdateEvent.js +13 -0
  109. package/api/events/TaskAfterUpdateEvent.js.map +1 -0
  110. package/api/events/TaskBeforeCreateEvent.d.ts +6 -0
  111. package/api/events/TaskBeforeCreateEvent.js +13 -0
  112. package/api/events/TaskBeforeCreateEvent.js.map +1 -0
  113. package/api/events/TaskBeforeDeleteEvent.d.ts +6 -0
  114. package/api/events/TaskBeforeDeleteEvent.js +13 -0
  115. package/api/events/TaskBeforeDeleteEvent.js.map +1 -0
  116. package/api/events/TaskBeforeUpdateEvent.d.ts +6 -0
  117. package/api/events/TaskBeforeUpdateEvent.js +13 -0
  118. package/api/events/TaskBeforeUpdateEvent.js.map +1 -0
  119. package/api/events/abstractions.d.ts +53 -0
  120. package/api/events/abstractions.js +10 -0
  121. package/api/events/abstractions.js.map +1 -0
  122. package/api/events/index.d.ts +7 -0
  123. package/api/events/index.js +7 -0
  124. package/api/features/AbortTask/AbortTaskUseCase.d.ts +10 -0
  125. package/api/features/AbortTask/AbortTaskUseCase.js +12 -0
  126. package/api/features/AbortTask/AbortTaskUseCase.js.map +1 -0
  127. package/api/features/AbortTask/abstractions.d.ts +25 -0
  128. package/api/features/AbortTask/abstractions.js +5 -0
  129. package/api/features/AbortTask/abstractions.js.map +1 -0
  130. package/api/features/AbortTask/feature.d.ts +5 -0
  131. package/api/features/AbortTask/feature.js +12 -0
  132. package/api/features/AbortTask/feature.js.map +1 -0
  133. package/api/features/AbortTask/index.d.ts +2 -0
  134. package/api/features/AbortTask/index.js +2 -0
  135. package/api/features/BackgroundTaskPermissions/abstractions.d.ts +17 -0
  136. package/api/features/BackgroundTaskPermissions/abstractions.js +6 -0
  137. package/api/features/BackgroundTaskPermissions/abstractions.js.map +1 -0
  138. package/api/features/BackgroundTaskPermissions/feature.d.ts +4 -0
  139. package/api/features/BackgroundTaskPermissions/feature.js +7 -0
  140. package/api/features/BackgroundTaskPermissions/feature.js.map +1 -0
  141. package/api/features/BackgroundTaskPermissions/index.d.ts +2 -0
  142. package/api/features/BackgroundTaskPermissions/index.js +2 -0
  143. package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.d.ts +7 -0
  144. package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js +11 -0
  145. package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js.map +1 -0
  146. package/api/features/CleanupTaskSubtree/abstractions.d.ts +7 -0
  147. package/api/features/CleanupTaskSubtree/abstractions.js +5 -0
  148. package/api/features/CleanupTaskSubtree/abstractions.js.map +1 -0
  149. package/api/features/CleanupTaskSubtree/index.d.ts +2 -0
  150. package/api/features/CleanupTaskSubtree/index.js +2 -0
  151. package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.d.ts +21 -0
  152. package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.js +60 -0
  153. package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.js.map +1 -0
  154. package/api/features/GetBackgroundTaskSettings/abstractions.d.ts +13 -0
  155. package/api/features/GetBackgroundTaskSettings/abstractions.js +5 -0
  156. package/api/features/GetBackgroundTaskSettings/abstractions.js.map +1 -0
  157. package/api/features/GetBackgroundTaskSettings/feature.d.ts +4 -0
  158. package/api/features/GetBackgroundTaskSettings/feature.js +11 -0
  159. package/api/features/GetBackgroundTaskSettings/feature.js.map +1 -0
  160. package/api/features/GetBackgroundTaskSettings/index.d.ts +2 -0
  161. package/api/features/GetBackgroundTaskSettings/index.js +2 -0
  162. package/api/features/GetTask/GetTaskUseCase.d.ts +9 -0
  163. package/api/features/GetTask/GetTaskUseCase.js +11 -0
  164. package/api/features/GetTask/GetTaskUseCase.js.map +1 -0
  165. package/api/features/GetTask/abstractions.d.ts +10 -0
  166. package/api/features/GetTask/abstractions.js +5 -0
  167. package/api/features/GetTask/abstractions.js.map +1 -0
  168. package/api/features/GetTask/feature.d.ts +5 -0
  169. package/api/features/GetTask/feature.js +12 -0
  170. package/api/features/GetTask/feature.js.map +1 -0
  171. package/api/features/GetTask/index.d.ts +2 -0
  172. package/api/features/GetTask/index.js +2 -0
  173. package/api/features/GetTaskDefinition/GetTaskDefinitionUseCase.d.ts +12 -0
  174. package/api/features/GetTaskDefinition/GetTaskDefinitionUseCase.js +27 -0
  175. package/api/features/GetTaskDefinition/GetTaskDefinitionUseCase.js.map +1 -0
  176. package/api/features/GetTaskDefinition/abstractions.d.ts +17 -0
  177. package/api/features/GetTaskDefinition/abstractions.js +5 -0
  178. package/api/features/GetTaskDefinition/abstractions.js.map +1 -0
  179. package/api/features/GetTaskDefinition/feature.d.ts +4 -0
  180. package/api/features/GetTaskDefinition/feature.js +11 -0
  181. package/api/features/GetTaskDefinition/feature.js.map +1 -0
  182. package/api/features/GetTaskDefinition/index.d.ts +2 -0
  183. package/api/features/GetTaskDefinition/index.js +2 -0
  184. package/api/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.d.ts +11 -0
  185. package/api/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js +24 -0
  186. package/api/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js.map +1 -0
  187. package/api/features/ListTaskDefinitions/abstractions.d.ts +9 -0
  188. package/api/features/ListTaskDefinitions/abstractions.js +5 -0
  189. package/api/features/ListTaskDefinitions/abstractions.js.map +1 -0
  190. package/api/features/ListTaskDefinitions/feature.d.ts +4 -0
  191. package/api/features/ListTaskDefinitions/feature.js +11 -0
  192. package/api/features/ListTaskDefinitions/feature.js.map +1 -0
  193. package/api/features/ListTaskDefinitions/index.d.ts +2 -0
  194. package/api/features/ListTaskDefinitions/index.js +2 -0
  195. package/api/features/ListTasks/ListTasksUseCase.d.ts +9 -0
  196. package/api/features/ListTasks/ListTasksUseCase.js +11 -0
  197. package/api/features/ListTasks/ListTasksUseCase.js.map +1 -0
  198. package/api/features/ListTasks/abstractions.d.ts +13 -0
  199. package/api/features/ListTasks/abstractions.js +5 -0
  200. package/api/features/ListTasks/abstractions.js.map +1 -0
  201. package/api/features/ListTasks/feature.d.ts +5 -0
  202. package/api/features/ListTasks/feature.js +12 -0
  203. package/api/features/ListTasks/feature.js.map +1 -0
  204. package/api/features/ListTasks/index.d.ts +2 -0
  205. package/api/features/ListTasks/index.js +2 -0
  206. package/api/features/TaskController/TaskController.d.ts +49 -0
  207. package/api/features/TaskController/TaskController.js +71 -0
  208. package/api/features/TaskController/TaskController.js.map +1 -0
  209. package/api/features/TaskController/augmentation.d.ts +60 -0
  210. package/api/features/TaskController/augmentation.js +0 -0
  211. package/api/features/TaskController/index.d.ts +2 -0
  212. package/api/features/TaskController/index.js +2 -0
  213. package/api/features/TaskExecutionContext/TaskExecutionContext.d.ts +24 -0
  214. package/api/features/TaskExecutionContext/TaskExecutionContext.js +43 -0
  215. package/api/features/TaskExecutionContext/TaskExecutionContext.js.map +1 -0
  216. package/api/features/TaskExecutionContext/abstractions.d.ts +26 -0
  217. package/api/features/TaskExecutionContext/abstractions.js +5 -0
  218. package/api/features/TaskExecutionContext/abstractions.js.map +1 -0
  219. package/api/features/TaskExecutionContext/feature.d.ts +4 -0
  220. package/api/features/TaskExecutionContext/feature.js +11 -0
  221. package/api/features/TaskExecutionContext/feature.js.map +1 -0
  222. package/api/features/TaskExecutionContext/index.d.ts +1 -0
  223. package/api/features/TaskExecutionContext/index.js +1 -0
  224. package/api/features/TriggerTask/TriggerTaskUseCase.d.ts +10 -0
  225. package/api/features/TriggerTask/TriggerTaskUseCase.js +12 -0
  226. package/api/features/TriggerTask/TriggerTaskUseCase.js.map +1 -0
  227. package/api/features/TriggerTask/abstractions.d.ts +28 -0
  228. package/api/features/TriggerTask/abstractions.js +5 -0
  229. package/api/features/TriggerTask/abstractions.js.map +1 -0
  230. package/api/features/TriggerTask/feature.d.ts +5 -0
  231. package/api/features/TriggerTask/feature.js +12 -0
  232. package/api/features/TriggerTask/feature.js.map +1 -0
  233. package/api/features/TriggerTask/index.d.ts +2 -0
  234. package/api/features/TriggerTask/index.js +2 -0
  235. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.d.ts +23 -0
  236. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.js +64 -0
  237. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.js.map +1 -0
  238. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.d.ts +14 -0
  239. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js +27 -0
  240. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js.map +1 -0
  241. package/api/features/UpdateBackgroundTaskSettings/abstractions.d.ts +26 -0
  242. package/api/features/UpdateBackgroundTaskSettings/abstractions.js +6 -0
  243. package/api/features/UpdateBackgroundTaskSettings/abstractions.js.map +1 -0
  244. package/api/features/UpdateBackgroundTaskSettings/feature.d.ts +4 -0
  245. package/api/features/UpdateBackgroundTaskSettings/feature.js +13 -0
  246. package/api/features/UpdateBackgroundTaskSettings/feature.js.map +1 -0
  247. package/api/features/UpdateBackgroundTaskSettings/index.d.ts +2 -0
  248. package/api/features/UpdateBackgroundTaskSettings/index.js +2 -0
  249. package/api/features/UpdateBackgroundTaskSettings/schema.d.ts +4 -0
  250. package/api/features/UpdateBackgroundTaskSettings/schema.js +8 -0
  251. package/api/features/UpdateBackgroundTaskSettings/schema.js.map +1 -0
  252. package/api/global.d.ts +1 -0
  253. package/api/global.js +1 -0
  254. package/api/graphql/BackgroundTaskSettingsSchema.d.ts +2 -0
  255. package/api/graphql/BackgroundTaskSettingsSchema.js +84 -0
  256. package/api/graphql/BackgroundTaskSettingsSchema.js.map +1 -0
  257. package/api/graphql/checkPermissions.d.ts +7 -0
  258. package/api/graphql/checkPermissions.js +21 -0
  259. package/api/graphql/checkPermissions.js.map +1 -0
  260. package/api/graphql/index.d.ts +2 -0
  261. package/api/graphql/index.js +301 -0
  262. package/api/graphql/index.js.map +1 -0
  263. package/api/graphql/utils.d.ts +9 -0
  264. package/api/graphql/utils.js +20 -0
  265. package/api/graphql/utils.js.map +1 -0
  266. package/api/handler/index.d.ts +6 -0
  267. package/api/handler/index.js +55 -0
  268. package/api/handler/index.js.map +1 -0
  269. package/api/handler/register.d.ts +1 -0
  270. package/api/handler/register.js +15 -0
  271. package/api/handler/register.js.map +1 -0
  272. package/api/handler/types.d.ts +23 -0
  273. package/api/handler/types.js +0 -0
  274. package/api/index.d.ts +5 -0
  275. package/api/index.js +5 -0
  276. package/api/models/BackgroundTaskSettingsModel.d.ts +8 -0
  277. package/api/models/BackgroundTaskSettingsModel.js +27 -0
  278. package/api/models/BackgroundTaskSettingsModel.js.map +1 -0
  279. package/api/permissions.d.ts +12 -0
  280. package/api/permissions.js +22 -0
  281. package/api/permissions.js.map +1 -0
  282. package/api/plugins/TaskServicePlugin.d.ts +19 -0
  283. package/api/plugins/TaskServicePlugin.js +13 -0
  284. package/api/plugins/TaskServicePlugin.js.map +1 -0
  285. package/api/plugins/index.d.ts +1 -0
  286. package/api/plugins/index.js +1 -0
  287. package/api/response/DatabaseResponse.d.ts +12 -0
  288. package/api/response/DatabaseResponse.js +127 -0
  289. package/api/response/DatabaseResponse.js.map +1 -0
  290. package/api/response/Response.d.ts +14 -0
  291. package/api/response/Response.js +91 -0
  292. package/api/response/Response.js.map +1 -0
  293. package/api/response/ResponseAbortedResult.d.ts +9 -0
  294. package/api/response/ResponseAbortedResult.js +12 -0
  295. package/api/response/ResponseAbortedResult.js.map +1 -0
  296. package/api/response/ResponseContinueResult.d.ts +17 -0
  297. package/api/response/ResponseContinueResult.js +16 -0
  298. package/api/response/ResponseContinueResult.js.map +1 -0
  299. package/api/response/ResponseDoneResult.d.ts +11 -0
  300. package/api/response/ResponseDoneResult.js +14 -0
  301. package/api/response/ResponseDoneResult.js.map +1 -0
  302. package/api/response/ResponseErrorResult.d.ts +10 -0
  303. package/api/response/ResponseErrorResult.js +13 -0
  304. package/api/response/ResponseErrorResult.js.map +1 -0
  305. package/api/response/TaskResponse.d.ts +12 -0
  306. package/api/response/TaskResponse.js +53 -0
  307. package/api/response/TaskResponse.js.map +1 -0
  308. package/api/response/abstractions/Response.d.ts +25 -0
  309. package/api/response/abstractions/Response.js +0 -0
  310. package/api/response/abstractions/ResponseAbortedResult.d.ts +5 -0
  311. package/api/response/abstractions/ResponseAbortedResult.js +0 -0
  312. package/api/response/abstractions/ResponseBaseResult.d.ts +7 -0
  313. package/api/response/abstractions/ResponseBaseResult.js +0 -0
  314. package/api/response/abstractions/ResponseContinueResult.d.ts +21 -0
  315. package/api/response/abstractions/ResponseContinueResult.js +0 -0
  316. package/api/response/abstractions/ResponseDoneResult.d.ts +13 -0
  317. package/api/response/abstractions/ResponseDoneResult.js +0 -0
  318. package/api/response/abstractions/ResponseErrorResult.d.ts +18 -0
  319. package/api/response/abstractions/ResponseErrorResult.js +0 -0
  320. package/api/response/abstractions/TaskResponse.d.ts +16 -0
  321. package/api/response/abstractions/TaskResponse.js +0 -0
  322. package/api/response/abstractions/index.d.ts +7 -0
  323. package/api/response/abstractions/index.js +7 -0
  324. package/api/response/index.d.ts +7 -0
  325. package/api/response/index.js +7 -0
  326. package/api/runner/TaskControl.d.ts +14 -0
  327. package/api/runner/TaskControl.js +173 -0
  328. package/api/runner/TaskControl.js.map +1 -0
  329. package/api/runner/TaskEventValidation.d.ts +5 -0
  330. package/api/runner/TaskEventValidation.js +20 -0
  331. package/api/runner/TaskEventValidation.js.map +1 -0
  332. package/api/runner/TaskManager.d.ts +11 -0
  333. package/api/runner/TaskManager.js +81 -0
  334. package/api/runner/TaskManager.js.map +1 -0
  335. package/api/runner/TaskManagerStore.d.ts +40 -0
  336. package/api/runner/TaskManagerStore.js +109 -0
  337. package/api/runner/TaskManagerStore.js.map +1 -0
  338. package/api/runner/TaskRunner.d.ts +25 -0
  339. package/api/runner/TaskRunner.js +55 -0
  340. package/api/runner/TaskRunner.js.map +1 -0
  341. package/api/runner/abstractions/TaskControl.d.ts +10 -0
  342. package/api/runner/abstractions/TaskControl.js +0 -0
  343. package/api/runner/abstractions/TaskEventValidation.d.ts +5 -0
  344. package/api/runner/abstractions/TaskEventValidation.js +0 -0
  345. package/api/runner/abstractions/TaskManager.d.ts +5 -0
  346. package/api/runner/abstractions/TaskManager.js +0 -0
  347. package/api/runner/abstractions/TaskManagerStore.d.ts +92 -0
  348. package/api/runner/abstractions/TaskManagerStore.js +0 -0
  349. package/api/runner/abstractions/TaskRunner.d.ts +13 -0
  350. package/api/runner/abstractions/TaskRunner.js +0 -0
  351. package/api/runner/abstractions/index.d.ts +5 -0
  352. package/api/runner/abstractions/index.js +5 -0
  353. package/api/runner/index.d.ts +1 -0
  354. package/api/runner/index.js +1 -0
  355. package/api/service/EventBridgeEventTransportPlugin.d.ts +16 -0
  356. package/api/service/EventBridgeEventTransportPlugin.js +52 -0
  357. package/api/service/EventBridgeEventTransportPlugin.js.map +1 -0
  358. package/api/service/StepFunctionServicePlugin.d.ts +25 -0
  359. package/api/service/StepFunctionServicePlugin.js +77 -0
  360. package/api/service/StepFunctionServicePlugin.js.map +1 -0
  361. package/api/service/createService.d.ts +6 -0
  362. package/api/service/createService.js +16 -0
  363. package/api/service/createService.js.map +1 -0
  364. package/api/service/index.d.ts +4 -0
  365. package/api/service/index.js +12 -0
  366. package/api/service/index.js.map +1 -0
  367. package/api/tasks/testingRunTask.d.ts +11 -0
  368. package/api/tasks/testingRunTask.js +18 -0
  369. package/api/tasks/testingRunTask.js.map +1 -0
  370. package/api/types.d.ts +167 -0
  371. package/api/types.js +20 -0
  372. package/api/types.js.map +1 -0
  373. package/api/utils/ObjectUpdater.d.ts +8 -0
  374. package/api/utils/ObjectUpdater.js +33 -0
  375. package/api/utils/ObjectUpdater.js.map +1 -0
  376. package/api/utils/getErrorProperties.d.ts +2 -0
  377. package/api/utils/getErrorProperties.js +9 -0
  378. package/api/utils/getErrorProperties.js.map +1 -0
  379. package/api/utils/getObjectProperties.d.ts +8 -0
  380. package/api/utils/getObjectProperties.js +11 -0
  381. package/api/utils/getObjectProperties.js.map +1 -0
  382. package/api/utils/index.d.ts +3 -0
  383. package/api/utils/index.js +3 -0
  384. package/api/utils/normalizeSelfCleanup.d.ts +2 -0
  385. package/api/utils/normalizeSelfCleanup.js +16 -0
  386. package/api/utils/normalizeSelfCleanup.js.map +1 -0
  387. package/index.d.ts +1 -0
  388. package/index.js +1 -0
  389. package/package.json +29 -12
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/plugins/TaskServicePlugin.js","sources":["../../../src/api/plugins/TaskServicePlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport type { ITask } from \"~/api/types.js\";\n\nexport interface ITaskServiceCreatePluginParams {\n getTenant(): string;\n}\n\nexport type ITaskServiceTask = Pick<ITask, \"id\" | \"definitionId\">;\n\nexport interface ITaskService {\n send(task: ITaskServiceTask, delay: number): Promise<unknown | null>;\n fetch(task: ITask): Promise<unknown | null>;\n}\n\nexport interface ITaskServicePluginParams {\n default?: boolean;\n}\n\nexport abstract class TaskServicePlugin extends Plugin {\n public static override readonly type: string = \"tasks.taskService\";\n public readonly default: boolean;\n\n public constructor(params?: ITaskServicePluginParams) {\n super();\n this.default = !!params?.default;\n }\n\n public abstract createService(params: ITaskServiceCreatePluginParams): ITaskService;\n}\n"],"names":["TaskServicePlugin","Plugin","params"],"mappings":";AAkBO,MAAeA,0BAA0BC;;aACZ,IAAI,GAAW;;IAG/C,YAAmBC,MAAiC,CAAE;QAClD,KAAK;QACL,IAAI,CAAC,OAAO,GAAG,CAAC,CAACA,QAAQ;IAC7B;AAGJ"}
@@ -0,0 +1 @@
1
+ export * from "./TaskServicePlugin.js";
@@ -0,0 +1 @@
1
+ export * from "./TaskServicePlugin.js";
@@ -0,0 +1,12 @@
1
+ import type { IResponse, IResponseAsync, IResponseContinueParams, IResponseContinueResult, IResponseDoneParams, IResponseDoneResult, IResponseErrorParams, IResponseErrorResult, IResponseResult } from "./abstractions/index.js";
2
+ import type { ITaskManagerStorePrivate } from "../../api/runner/abstractions/index.js";
3
+ export declare class DatabaseResponse implements IResponseAsync {
4
+ readonly response: IResponse;
5
+ private readonly store;
6
+ constructor(response: IResponse, store: ITaskManagerStorePrivate);
7
+ from(result: IResponseResult): Promise<IResponseResult>;
8
+ done(params: IResponseDoneParams): Promise<IResponseDoneResult>;
9
+ aborted(): Promise<import("~/api/types.js").IResponseAbortedResult>;
10
+ continue(params: IResponseContinueParams): Promise<IResponseContinueResult | IResponseErrorResult>;
11
+ error(params: IResponseErrorParams): Promise<IResponseErrorResult>;
12
+ }
@@ -0,0 +1,127 @@
1
+ import { TaskDataStatus } from "../types.js";
2
+ import { NotFoundError } from "@webiny/handler-graphql";
3
+ import { getErrorProperties } from "../utils/getErrorProperties.js";
4
+ import { TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
5
+ class DatabaseResponse {
6
+ constructor(response, store){
7
+ this.response = response;
8
+ this.store = store;
9
+ }
10
+ from(result) {
11
+ switch(result.status){
12
+ case TaskResultStatus.DONE:
13
+ return this.done(result);
14
+ case TaskResultStatus.CONTINUE:
15
+ return this.continue(result);
16
+ case TaskResultStatus.ERROR:
17
+ return this.error(result);
18
+ case TaskResultStatus.ABORTED:
19
+ return this.aborted();
20
+ }
21
+ }
22
+ async done(params) {
23
+ const { output, ...rest } = params;
24
+ let message = params.message;
25
+ try {
26
+ await this.store.updateTask({
27
+ taskStatus: TaskDataStatus.SUCCESS,
28
+ finishedOn: new Date().toISOString(),
29
+ output
30
+ });
31
+ await this.store.addInfoLog({
32
+ message: message || "Task done."
33
+ });
34
+ await this.store.save();
35
+ } catch (ex) {
36
+ message = `Task done, but failed to update task log. (${ex.message || "unknown"})`;
37
+ }
38
+ return this.response.done({
39
+ ...rest,
40
+ message,
41
+ output
42
+ });
43
+ }
44
+ async aborted() {
45
+ return this.response.aborted();
46
+ }
47
+ async continue(params) {
48
+ try {
49
+ const task = this.store.getTask();
50
+ await this.store.updateTask({
51
+ input: {
52
+ ...task.input,
53
+ ...params.input
54
+ },
55
+ taskStatus: TaskDataStatus.RUNNING
56
+ });
57
+ await this.store.addInfoLog({
58
+ message: "Task continuing.",
59
+ data: params.input
60
+ });
61
+ await this.store.save();
62
+ } catch (ex) {
63
+ if (ex instanceof NotFoundError) return this.response.error({
64
+ error: {
65
+ message: ex.message || "Task not found.",
66
+ code: ex.code || "TASK_NOT_FOUND",
67
+ data: {
68
+ ...ex.data,
69
+ input: this.store.getInput()
70
+ }
71
+ }
72
+ });
73
+ return this.error({
74
+ error: {
75
+ message: `Failed to update task input: ${ex.message || "unknown error"}`,
76
+ code: ex.code || "TASK_UPDATE_ERROR"
77
+ }
78
+ });
79
+ }
80
+ return this.response.continue(params);
81
+ }
82
+ async error(params) {
83
+ const error = params.error instanceof Error ? getErrorProperties(params.error) : params.error;
84
+ try {
85
+ await this.store.updateTask({
86
+ taskStatus: TaskDataStatus.FAILED,
87
+ finishedOn: new Date().toISOString(),
88
+ output: {
89
+ error
90
+ }
91
+ });
92
+ await this.store.addErrorLog({
93
+ message: params.error.message,
94
+ data: this.store.getInput(),
95
+ error
96
+ });
97
+ await this.store.save();
98
+ } catch (ex) {
99
+ return this.response.error({
100
+ ...params,
101
+ error: {
102
+ ...error,
103
+ message: ex.message || error.message,
104
+ code: ex.code || error.code,
105
+ data: {
106
+ ...error.data,
107
+ ...ex.data,
108
+ input: this.store.getInput()
109
+ }
110
+ }
111
+ });
112
+ }
113
+ return this.response.error({
114
+ ...params,
115
+ error: {
116
+ ...params.error,
117
+ data: {
118
+ ...error.data,
119
+ input: this.store.getInput()
120
+ }
121
+ }
122
+ });
123
+ }
124
+ }
125
+ export { DatabaseResponse };
126
+
127
+ //# sourceMappingURL=DatabaseResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/response/DatabaseResponse.js","sources":["../../../src/api/response/DatabaseResponse.ts"],"sourcesContent":["import { TaskDataStatus } from \"~/api/types.js\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport type {\n IResponse,\n IResponseAsync,\n IResponseContinueParams,\n IResponseContinueResult,\n IResponseDoneParams,\n IResponseDoneResult,\n IResponseErrorParams,\n IResponseErrorResult,\n IResponseResult\n} from \"./abstractions/index.js\";\nimport type { ITaskManagerStorePrivate } from \"~/api/runner/abstractions/index.js\";\nimport { getErrorProperties } from \"~/api/utils/getErrorProperties.js\";\nimport { TaskResultStatus } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport class DatabaseResponse implements IResponseAsync {\n public readonly response: IResponse;\n\n private readonly store: ITaskManagerStorePrivate;\n\n public constructor(response: IResponse, store: ITaskManagerStorePrivate) {\n this.response = response;\n this.store = store;\n }\n\n public from(result: IResponseResult): Promise<IResponseResult> {\n switch (result.status) {\n case TaskResultStatus.DONE:\n return this.done(result);\n case TaskResultStatus.CONTINUE:\n return this.continue(result);\n case TaskResultStatus.ERROR:\n return this.error(result);\n case TaskResultStatus.ABORTED:\n return this.aborted();\n }\n }\n\n public async done(params: IResponseDoneParams): Promise<IResponseDoneResult> {\n const { output, ...rest } = params;\n let message = params.message;\n try {\n await this.store.updateTask({\n taskStatus: TaskDataStatus.SUCCESS,\n finishedOn: new Date().toISOString(),\n output\n });\n await this.store.addInfoLog({\n message: message || \"Task done.\"\n });\n await this.store.save();\n } catch (ex) {\n message = `Task done, but failed to update task log. (${ex.message || \"unknown\"})`;\n }\n /**\n * Default behavior is to return the done response.\n */\n return this.response.done({\n ...rest,\n message,\n output\n });\n }\n\n public async aborted() {\n return this.response.aborted();\n }\n\n public async continue(\n params: IResponseContinueParams\n ): Promise<IResponseContinueResult | IResponseErrorResult> {\n try {\n const task = this.store.getTask();\n await this.store.updateTask({\n input: {\n ...task.input,\n ...params.input\n },\n taskStatus: TaskDataStatus.RUNNING\n });\n await this.store.addInfoLog({\n message: \"Task continuing.\",\n data: params.input\n });\n await this.store.save();\n } catch (ex) {\n /**\n * If task was not found, we just return the error.\n */\n if (ex instanceof NotFoundError) {\n return this.response.error({\n error: {\n message: ex.message || `Task not found.`,\n code: ex.code || \"TASK_NOT_FOUND\",\n data: {\n ...ex.data,\n input: this.store.getInput()\n }\n }\n });\n }\n /**\n * Otherwise, we store the error and return it...\n */\n return this.error({\n error: {\n message: `Failed to update task input: ${ex.message || \"unknown error\"}`,\n code: ex.code || \"TASK_UPDATE_ERROR\"\n }\n });\n }\n /**\n * Default behavior is to return the continue response.\n */\n return this.response.continue(params);\n }\n\n public async error(params: IResponseErrorParams): Promise<IResponseErrorResult> {\n const error =\n params.error instanceof Error ? getErrorProperties(params.error) : params.error;\n try {\n await this.store.updateTask({\n taskStatus: TaskDataStatus.FAILED,\n finishedOn: new Date().toISOString(),\n output: {\n error\n }\n });\n await this.store.addErrorLog({\n message: params.error.message,\n data: this.store.getInput(),\n error\n });\n await this.store.save();\n } catch (ex) {\n return this.response.error({\n ...params,\n error: {\n ...error,\n message: ex.message || error.message,\n code: ex.code || error.code,\n data: {\n ...error.data,\n ...ex.data,\n input: this.store.getInput()\n }\n }\n });\n }\n /**\n * Default behavior is to return the error response.\n */\n return this.response.error({\n ...params,\n error: {\n ...params.error,\n data: {\n ...error.data,\n input: this.store.getInput()\n }\n }\n });\n }\n}\n"],"names":["DatabaseResponse","response","store","result","TaskResultStatus","params","output","rest","message","TaskDataStatus","Date","ex","task","NotFoundError","error","Error","getErrorProperties"],"mappings":";;;;AAiBO,MAAMA;IAKT,YAAmBC,QAAmB,EAAEC,KAA+B,CAAE;QACrE,IAAI,CAAC,QAAQ,GAAGD;QAChB,IAAI,CAAC,KAAK,GAAGC;IACjB;IAEO,KAAKC,MAAuB,EAA4B;QAC3D,OAAQA,OAAO,MAAM;YACjB,KAAKC,iBAAiB,IAAI;gBACtB,OAAO,IAAI,CAAC,IAAI,CAACD;YACrB,KAAKC,iBAAiB,QAAQ;gBAC1B,OAAO,IAAI,CAAC,QAAQ,CAACD;YACzB,KAAKC,iBAAiB,KAAK;gBACvB,OAAO,IAAI,CAAC,KAAK,CAACD;YACtB,KAAKC,iBAAiB,OAAO;gBACzB,OAAO,IAAI,CAAC,OAAO;QAC3B;IACJ;IAEA,MAAa,KAAKC,MAA2B,EAAgC;QACzE,MAAM,EAAEC,MAAM,EAAE,GAAGC,MAAM,GAAGF;QAC5B,IAAIG,UAAUH,OAAO,OAAO;QAC5B,IAAI;YACA,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;gBACxB,YAAYI,eAAe,OAAO;gBAClC,YAAY,IAAIC,OAAO,WAAW;gBAClCJ;YACJ;YACA,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;gBACxB,SAASE,WAAW;YACxB;YACA,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI;QACzB,EAAE,OAAOG,IAAI;YACTH,UAAU,CAAC,2CAA2C,EAAEG,GAAG,OAAO,IAAI,UAAU,CAAC,CAAC;QACtF;QAIA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACtB,GAAGJ,IAAI;YACPC;YACAF;QACJ;IACJ;IAEA,MAAa,UAAU;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO;IAChC;IAEA,MAAa,SACTD,MAA+B,EACwB;QACvD,IAAI;YACA,MAAMO,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO;YAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;gBACxB,OAAO;oBACH,GAAGA,KAAK,KAAK;oBACb,GAAGP,OAAO,KAAK;gBACnB;gBACA,YAAYI,eAAe,OAAO;YACtC;YACA,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;gBACxB,SAAS;gBACT,MAAMJ,OAAO,KAAK;YACtB;YACA,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI;QACzB,EAAE,OAAOM,IAAI;YAIT,IAAIA,cAAcE,eACd,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACvB,OAAO;oBACH,SAASF,GAAG,OAAO,IAAI;oBACvB,MAAMA,GAAG,IAAI,IAAI;oBACjB,MAAM;wBACF,GAAGA,GAAG,IAAI;wBACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ;oBAC9B;gBACJ;YACJ;YAKJ,OAAO,IAAI,CAAC,KAAK,CAAC;gBACd,OAAO;oBACH,SAAS,CAAC,6BAA6B,EAAEA,GAAG,OAAO,IAAI,iBAAiB;oBACxE,MAAMA,GAAG,IAAI,IAAI;gBACrB;YACJ;QACJ;QAIA,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAACN;IAClC;IAEA,MAAa,MAAMA,MAA4B,EAAiC;QAC5E,MAAMS,QACFT,OAAO,KAAK,YAAYU,QAAQC,mBAAmBX,OAAO,KAAK,IAAIA,OAAO,KAAK;QACnF,IAAI;YACA,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;gBACxB,YAAYI,eAAe,MAAM;gBACjC,YAAY,IAAIC,OAAO,WAAW;gBAClC,QAAQ;oBACJI;gBACJ;YACJ;YACA,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;gBACzB,SAAST,OAAO,KAAK,CAAC,OAAO;gBAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ;gBACzBS;YACJ;YACA,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI;QACzB,EAAE,OAAOH,IAAI;YACT,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACvB,GAAGN,MAAM;gBACT,OAAO;oBACH,GAAGS,KAAK;oBACR,SAASH,GAAG,OAAO,IAAIG,MAAM,OAAO;oBACpC,MAAMH,GAAG,IAAI,IAAIG,MAAM,IAAI;oBAC3B,MAAM;wBACF,GAAGA,MAAM,IAAI;wBACb,GAAGH,GAAG,IAAI;wBACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ;oBAC9B;gBACJ;YACJ;QACJ;QAIA,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YACvB,GAAGN,MAAM;YACT,OAAO;gBACH,GAAGA,OAAO,KAAK;gBACf,MAAM;oBACF,GAAGS,MAAM,IAAI;oBACb,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ;gBAC9B;YACJ;QACJ;IACJ;AACJ"}
@@ -0,0 +1,14 @@
1
+ import type { ITaskEvent } from "../../api/handler/types.js";
2
+ import type { IResponse, IResponseAbortedResult, IResponseContinueParams, IResponseContinueResult, IResponseDoneParams, IResponseDoneResult, IResponseErrorParams, IResponseErrorResult, IResponseFromParams, IResponseResult } from "./abstractions/index.js";
3
+ import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
4
+ export declare class Response implements IResponse {
5
+ private _event;
6
+ get event(): ITaskEvent;
7
+ constructor(event: ITaskEvent);
8
+ setEvent(event: ITaskEvent): void;
9
+ from(params: IResponseFromParams): IResponseResult;
10
+ continue(params: IResponseContinueParams): IResponseContinueResult;
11
+ done<O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput>(params?: IResponseDoneParams<O>): IResponseDoneResult<O>;
12
+ aborted(): IResponseAbortedResult;
13
+ error(params: IResponseErrorParams): IResponseErrorResult;
14
+ }
@@ -0,0 +1,91 @@
1
+ import object_sizeof from "object-sizeof";
2
+ import { ResponseContinueResult } from "./ResponseContinueResult.js";
3
+ import { ResponseDoneResult } from "./ResponseDoneResult.js";
4
+ import { ResponseErrorResult } from "./ResponseErrorResult.js";
5
+ import { ResponseAbortedResult } from "./ResponseAbortedResult.js";
6
+ import { getErrorProperties } from "../utils/getErrorProperties.js";
7
+ import { TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
8
+ const MAX_SIZE_BYTES = 237568;
9
+ const createMaxSizeOutput = ({ size })=>({
10
+ message: "Output size exceeds the maximum allowed size.",
11
+ size,
12
+ max: MAX_SIZE_BYTES
13
+ });
14
+ const getOutput = (output)=>{
15
+ if (!output || 0 === Object.keys(output).length) return;
16
+ let size = object_sizeof(output);
17
+ if (size > MAX_SIZE_BYTES) {
18
+ if (output.stack) {
19
+ delete output.stack;
20
+ size = object_sizeof(output);
21
+ if (size <= MAX_SIZE_BYTES) return output;
22
+ }
23
+ if (output.error?.stack) {
24
+ delete output.error.stack;
25
+ size = object_sizeof(output);
26
+ if (size <= MAX_SIZE_BYTES) return output;
27
+ }
28
+ return createMaxSizeOutput({
29
+ size
30
+ });
31
+ }
32
+ return output;
33
+ };
34
+ class Response {
35
+ get event() {
36
+ return this._event;
37
+ }
38
+ constructor(event){
39
+ this._event = event;
40
+ }
41
+ setEvent(event) {
42
+ this._event = event;
43
+ }
44
+ from(params) {
45
+ switch(params.status){
46
+ case TaskResultStatus.DONE:
47
+ return this.done(params);
48
+ case TaskResultStatus.CONTINUE:
49
+ return this.continue(params);
50
+ case TaskResultStatus.ERROR:
51
+ return this.error(params);
52
+ }
53
+ }
54
+ continue(params) {
55
+ return new ResponseContinueResult({
56
+ message: params.message,
57
+ input: params.input,
58
+ webinyTaskId: params?.webinyTaskId || this.event.webinyTaskId,
59
+ webinyTaskDefinitionId: this.event.webinyTaskDefinitionId,
60
+ tenant: params?.tenant || this.event.tenant,
61
+ wait: params.wait
62
+ });
63
+ }
64
+ done(params) {
65
+ return new ResponseDoneResult({
66
+ webinyTaskId: params?.webinyTaskId || this.event.webinyTaskId,
67
+ webinyTaskDefinitionId: this.event.webinyTaskDefinitionId,
68
+ tenant: params?.tenant || this.event.tenant,
69
+ message: params?.message,
70
+ output: getOutput(params?.output)
71
+ });
72
+ }
73
+ aborted() {
74
+ return new ResponseAbortedResult({
75
+ webinyTaskId: this.event.webinyTaskId,
76
+ webinyTaskDefinitionId: this.event.webinyTaskDefinitionId,
77
+ tenant: this.event.tenant
78
+ });
79
+ }
80
+ error(params) {
81
+ return new ResponseErrorResult({
82
+ webinyTaskId: params.webinyTaskId || this.event.webinyTaskId,
83
+ webinyTaskDefinitionId: this.event.webinyTaskDefinitionId,
84
+ tenant: params.tenant || this.event.tenant,
85
+ error: params.error instanceof Error ? getErrorProperties(params.error) : params.error
86
+ });
87
+ }
88
+ }
89
+ export { Response };
90
+
91
+ //# sourceMappingURL=Response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/response/Response.js","sources":["../../../src/api/response/Response.ts"],"sourcesContent":["import sizeOfObject from \"object-sizeof\";\n\nimport type { ITaskEvent } from \"~/api/handler/types.js\";\nimport type {\n IResponse,\n IResponseAbortedResult,\n IResponseContinueParams,\n IResponseContinueResult,\n IResponseDoneParams,\n IResponseDoneResult,\n IResponseErrorParams,\n IResponseErrorResult,\n IResponseFromParams,\n IResponseResult\n} from \"./abstractions/index.js\";\nimport { ResponseContinueResult } from \"~/api/response/ResponseContinueResult.js\";\nimport { ResponseDoneResult } from \"~/api/response/ResponseDoneResult.js\";\nimport { ResponseErrorResult } from \"~/api/response/ResponseErrorResult.js\";\nimport { ResponseAbortedResult } from \"./ResponseAbortedResult.js\";\nimport { getErrorProperties } from \"~/api/utils/getErrorProperties.js\";\nimport {\n TaskDefinition,\n TaskResultStatus\n} from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\n/**\n * Step Functions has a limit of 256KB for the output size.\n * We will set the max output to be 232KB to leave some room for the rest of the data.\n */\nconst MAX_SIZE_BYTES: number = 232 * 1024;\n\ninterface ICreateMaxSizeOutputParams {\n size: number;\n}\n\nconst createMaxSizeOutput = <O extends TaskDefinition.TaskOutput>({\n size\n}: ICreateMaxSizeOutputParams): O => {\n return {\n message: `Output size exceeds the maximum allowed size.`,\n size,\n max: MAX_SIZE_BYTES\n } as unknown as O;\n};\n/**\n * Figure out the size of the output object and remove the stack trace if the size exceeds the maximum allowed size.\n * If the size is still greater than the maximum allowed size, just return the message that the output size exceeds the maximum allowed size.\n */\nconst getOutput = <O extends TaskDefinition.TaskOutput>(output?: O): O | undefined => {\n if (!output || Object.keys(output).length === 0) {\n return undefined;\n }\n let size = sizeOfObject(output);\n if (size > MAX_SIZE_BYTES) {\n if (output.stack) {\n delete output.stack;\n size = sizeOfObject(output);\n if (size <= MAX_SIZE_BYTES) {\n return output;\n }\n }\n if (output.error?.stack) {\n delete output.error.stack;\n size = sizeOfObject(output);\n if (size <= MAX_SIZE_BYTES) {\n return output;\n }\n }\n return createMaxSizeOutput<O>({ size });\n }\n return output;\n};\n\nexport class Response implements IResponse {\n private _event: ITaskEvent;\n\n public get event(): ITaskEvent {\n return this._event;\n }\n\n public constructor(event: ITaskEvent) {\n this._event = event;\n }\n\n public setEvent(event: ITaskEvent) {\n this._event = event;\n }\n\n public from(params: IResponseFromParams): IResponseResult {\n switch (params.status) {\n case TaskResultStatus.DONE:\n return this.done(params);\n case TaskResultStatus.CONTINUE:\n return this.continue(params);\n case TaskResultStatus.ERROR:\n return this.error(params);\n }\n }\n\n public continue(params: IResponseContinueParams): IResponseContinueResult {\n return new ResponseContinueResult({\n message: params.message,\n input: params.input,\n webinyTaskId: params?.webinyTaskId || this.event.webinyTaskId,\n webinyTaskDefinitionId: this.event.webinyTaskDefinitionId,\n tenant: params?.tenant || this.event.tenant,\n wait: params.wait\n });\n }\n\n public done<O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput>(\n params?: IResponseDoneParams<O>\n ): IResponseDoneResult<O> {\n return new ResponseDoneResult<O>({\n webinyTaskId: params?.webinyTaskId || this.event.webinyTaskId,\n webinyTaskDefinitionId: this.event.webinyTaskDefinitionId,\n tenant: params?.tenant || this.event.tenant,\n message: params?.message,\n output: getOutput<O>(params?.output)\n });\n }\n\n public aborted(): IResponseAbortedResult {\n return new ResponseAbortedResult({\n webinyTaskId: this.event.webinyTaskId,\n webinyTaskDefinitionId: this.event.webinyTaskDefinitionId,\n tenant: this.event.tenant\n });\n }\n\n public error(params: IResponseErrorParams): IResponseErrorResult {\n return new ResponseErrorResult({\n webinyTaskId: params.webinyTaskId || this.event.webinyTaskId,\n webinyTaskDefinitionId: this.event.webinyTaskDefinitionId,\n tenant: params.tenant || this.event.tenant,\n error: params.error instanceof Error ? getErrorProperties(params.error) : params.error\n });\n }\n}\n"],"names":["MAX_SIZE_BYTES","createMaxSizeOutput","size","getOutput","output","Object","sizeOfObject","Response","event","params","TaskResultStatus","ResponseContinueResult","ResponseDoneResult","ResponseAbortedResult","ResponseErrorResult","Error","getErrorProperties"],"mappings":";;;;;;;AA6BA,MAAMA,iBAAyB;AAM/B,MAAMC,sBAAsB,CAAsC,EAC9DC,IAAI,EACqB,GAClB;QACH,SAAS;QACTA;QACA,KAAKF;IACT;AAMJ,MAAMG,YAAY,CAAsCC;IACpD,IAAI,CAACA,UAAUC,AAA+B,MAA/BA,OAAO,IAAI,CAACD,QAAQ,MAAM,EACrC;IAEJ,IAAIF,OAAOI,cAAaF;IACxB,IAAIF,OAAOF,gBAAgB;QACvB,IAAII,OAAO,KAAK,EAAE;YACd,OAAOA,OAAO,KAAK;YACnBF,OAAOI,cAAaF;YACpB,IAAIF,QAAQF,gBACR,OAAOI;QAEf;QACA,IAAIA,OAAO,KAAK,EAAE,OAAO;YACrB,OAAOA,OAAO,KAAK,CAAC,KAAK;YACzBF,OAAOI,cAAaF;YACpB,IAAIF,QAAQF,gBACR,OAAOI;QAEf;QACA,OAAOH,oBAAuB;YAAEC;QAAK;IACzC;IACA,OAAOE;AACX;AAEO,MAAMG;IAGT,IAAW,QAAoB;QAC3B,OAAO,IAAI,CAAC,MAAM;IACtB;IAEA,YAAmBC,KAAiB,CAAE;QAClC,IAAI,CAAC,MAAM,GAAGA;IAClB;IAEO,SAASA,KAAiB,EAAE;QAC/B,IAAI,CAAC,MAAM,GAAGA;IAClB;IAEO,KAAKC,MAA2B,EAAmB;QACtD,OAAQA,OAAO,MAAM;YACjB,KAAKC,iBAAiB,IAAI;gBACtB,OAAO,IAAI,CAAC,IAAI,CAACD;YACrB,KAAKC,iBAAiB,QAAQ;gBAC1B,OAAO,IAAI,CAAC,QAAQ,CAACD;YACzB,KAAKC,iBAAiB,KAAK;gBACvB,OAAO,IAAI,CAAC,KAAK,CAACD;QAC1B;IACJ;IAEO,SAASA,MAA+B,EAA2B;QACtE,OAAO,IAAIE,uBAAuB;YAC9B,SAASF,OAAO,OAAO;YACvB,OAAOA,OAAO,KAAK;YACnB,cAAcA,QAAQ,gBAAgB,IAAI,CAAC,KAAK,CAAC,YAAY;YAC7D,wBAAwB,IAAI,CAAC,KAAK,CAAC,sBAAsB;YACzD,QAAQA,QAAQ,UAAU,IAAI,CAAC,KAAK,CAAC,MAAM;YAC3C,MAAMA,OAAO,IAAI;QACrB;IACJ;IAEO,KACHA,MAA+B,EACT;QACtB,OAAO,IAAIG,mBAAsB;YAC7B,cAAcH,QAAQ,gBAAgB,IAAI,CAAC,KAAK,CAAC,YAAY;YAC7D,wBAAwB,IAAI,CAAC,KAAK,CAAC,sBAAsB;YACzD,QAAQA,QAAQ,UAAU,IAAI,CAAC,KAAK,CAAC,MAAM;YAC3C,SAASA,QAAQ;YACjB,QAAQN,UAAaM,QAAQ;QACjC;IACJ;IAEO,UAAkC;QACrC,OAAO,IAAII,sBAAsB;YAC7B,cAAc,IAAI,CAAC,KAAK,CAAC,YAAY;YACrC,wBAAwB,IAAI,CAAC,KAAK,CAAC,sBAAsB;YACzD,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM;QAC7B;IACJ;IAEO,MAAMJ,MAA4B,EAAwB;QAC7D,OAAO,IAAIK,oBAAoB;YAC3B,cAAcL,OAAO,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY;YAC5D,wBAAwB,IAAI,CAAC,KAAK,CAAC,sBAAsB;YACzD,QAAQA,OAAO,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;YAC1C,OAAOA,OAAO,KAAK,YAAYM,QAAQC,mBAAmBP,OAAO,KAAK,IAAIA,OAAO,KAAK;QAC1F;IACJ;AACJ"}
@@ -0,0 +1,9 @@
1
+ import type { IResponseAbortedResult } from "./abstractions/index.js";
2
+ import { TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
3
+ export declare class ResponseAbortedResult implements IResponseAbortedResult {
4
+ readonly webinyTaskId: string;
5
+ readonly webinyTaskDefinitionId: string;
6
+ readonly tenant: string;
7
+ readonly status: TaskResultStatus.ABORTED;
8
+ constructor(params: Omit<IResponseAbortedResult, "status">);
9
+ }
@@ -0,0 +1,12 @@
1
+ import { TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
2
+ class ResponseAbortedResult {
3
+ constructor(params){
4
+ this.status = TaskResultStatus.ABORTED;
5
+ this.webinyTaskId = params.webinyTaskId;
6
+ this.webinyTaskDefinitionId = params.webinyTaskDefinitionId;
7
+ this.tenant = params.tenant;
8
+ }
9
+ }
10
+ export { ResponseAbortedResult };
11
+
12
+ //# sourceMappingURL=ResponseAbortedResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/response/ResponseAbortedResult.js","sources":["../../../src/api/response/ResponseAbortedResult.ts"],"sourcesContent":["import type { IResponseAbortedResult } from \"./abstractions/index.js\";\nimport { TaskResultStatus } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport class ResponseAbortedResult implements IResponseAbortedResult {\n public readonly webinyTaskId: string;\n public readonly webinyTaskDefinitionId: string;\n public readonly tenant: string;\n public readonly status: TaskResultStatus.ABORTED = TaskResultStatus.ABORTED;\n\n public constructor(params: Omit<IResponseAbortedResult, \"status\">) {\n this.webinyTaskId = params.webinyTaskId;\n this.webinyTaskDefinitionId = params.webinyTaskDefinitionId;\n this.tenant = params.tenant;\n }\n}\n"],"names":["ResponseAbortedResult","params","TaskResultStatus"],"mappings":";AAGO,MAAMA;IAMT,YAAmBC,MAA8C,CAAE;aAFnD,MAAM,GAA6BC,iBAAiB,OAAO;QAGvE,IAAI,CAAC,YAAY,GAAGD,OAAO,YAAY;QACvC,IAAI,CAAC,sBAAsB,GAAGA,OAAO,sBAAsB;QAC3D,IAAI,CAAC,MAAM,GAAGA,OAAO,MAAM;IAC/B;AACJ"}
@@ -0,0 +1,17 @@
1
+ import type { ITaskDataInput } from "../../api/types.js";
2
+ import type { IResponseContinueResult } from "./abstractions/index.js";
3
+ import { TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
4
+ export declare class ResponseContinueResult<T = ITaskDataInput> implements IResponseContinueResult<T> {
5
+ readonly message?: string | undefined;
6
+ readonly webinyTaskId: string;
7
+ readonly webinyTaskDefinitionId: string;
8
+ readonly tenant: string;
9
+ readonly status: TaskResultStatus.CONTINUE;
10
+ readonly input: T;
11
+ /**
12
+ * We need this to make sure that the task will not use the delay from the previous iteration.
13
+ */
14
+ readonly delay = -1;
15
+ readonly wait?: number;
16
+ constructor(params: Omit<IResponseContinueResult<T>, "delay" | "status">);
17
+ }
@@ -0,0 +1,16 @@
1
+ import { TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
2
+ class ResponseContinueResult {
3
+ constructor(params){
4
+ this.status = TaskResultStatus.CONTINUE;
5
+ this.delay = -1;
6
+ this.message = params.message;
7
+ this.webinyTaskId = params.webinyTaskId;
8
+ this.webinyTaskDefinitionId = params.webinyTaskDefinitionId;
9
+ this.tenant = params.tenant;
10
+ this.input = params.input;
11
+ this.wait = params.wait;
12
+ }
13
+ }
14
+ export { ResponseContinueResult };
15
+
16
+ //# sourceMappingURL=ResponseContinueResult.js.map
@@ -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
+ }