@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,49 @@
1
+ import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/abstractions.js";
2
+ import { TaskController as Abstraction } from "@webiny/api-core/features/task/TaskController/abstractions.js";
3
+ import { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
4
+ import { TaskExecutionContext } from "../TaskExecutionContext/abstractions.js";
5
+ import { type ITaskTriggerParams, TaskDataStatus } from "../../../api/types.js";
6
+ import "./augmentation.js";
7
+ import { BaseError, Result } from "@webiny/feature/api/index.js";
8
+ declare class TaskControllerImpl implements Abstraction.Interface {
9
+ private taskService;
10
+ private executionContext;
11
+ constructor(taskService: TaskService.Interface, executionContext: TaskExecutionContext.Interface);
12
+ private get store();
13
+ private get runner();
14
+ private get timer();
15
+ get response(): import("~/api/types.js").ITaskResponse<import("@webiny/api-core/features/task/TaskDefinition/abstractions.js").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions.js").ITaskOutput>;
16
+ state: {
17
+ getTask: () => import("~/api/types.js").ITask<import("@webiny/api-core/features/task/TaskDefinition/abstractions.js").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions.js").ITaskOutput>;
18
+ getStatus: () => TaskDataStatus;
19
+ getInput: () => import("@webiny/api-core/features/task/TaskDefinition/abstractions.js").ITaskInput;
20
+ getOutput: () => import("@webiny/api-core/features/task/TaskDefinition/abstractions.js").ITaskOutput;
21
+ updateInput: (input: any) => Promise<void>;
22
+ updateOutput: (output: any) => Promise<void>;
23
+ };
24
+ logger: {
25
+ info: (params: {
26
+ message: string;
27
+ data?: Record<string, any>;
28
+ }) => Promise<void>;
29
+ error: (params: {
30
+ message: string;
31
+ error?: Error | any;
32
+ data?: Record<string, any>;
33
+ }) => Promise<void>;
34
+ };
35
+ task: {
36
+ trigger: <CI extends TaskDefinition.TaskInput = import("@webiny/api-core/features/task/TaskDefinition/abstractions.js").ITaskInput>(params: ITaskTriggerParams<CI>) => Promise<Result<TaskService.Task<CI>, BaseError>>;
37
+ listChildren: <CT extends TaskDefinition.TaskInput = import("@webiny/api-core/features/task/TaskDefinition/abstractions.js").ITaskInput, CO extends TaskDefinition.TaskOutput = import("@webiny/api-core/features/task/TaskDefinition/abstractions.js").ITaskOutput>(definitionId?: string) => Promise<TaskService.Task<CT, CO>[]>;
38
+ };
39
+ runtime: {
40
+ isCloseToTimeout: (seconds?: number) => boolean;
41
+ isAborted: () => boolean;
42
+ getRemainingSeconds: () => number;
43
+ getRemainingMilliseconds: () => number;
44
+ };
45
+ }
46
+ export declare const TaskController: typeof TaskControllerImpl & {
47
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/task/TaskController/abstractions.js").ITaskController<import("@webiny/api-core/features/task/TaskDefinition/abstractions.js").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions.js").ITaskOutput>>;
48
+ };
49
+ export {};
@@ -0,0 +1,71 @@
1
+ import { TaskController } from "@webiny/api-core/features/task/TaskController/abstractions.js";
2
+ import { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
3
+ import { TaskExecutionContext } from "../TaskExecutionContext/abstractions.js";
4
+ import { TaskDataStatus } from "../../types.js";
5
+ import "./augmentation.js";
6
+ class TaskControllerImpl {
7
+ constructor(taskService, executionContext){
8
+ this.taskService = taskService;
9
+ this.executionContext = executionContext;
10
+ this.state = {
11
+ getTask: ()=>this.store.getTask(),
12
+ getStatus: ()=>this.store.getStatus(),
13
+ getInput: ()=>this.store.getInput(),
14
+ getOutput: ()=>this.store.getOutput(),
15
+ updateInput: async (input)=>await this.store.updateInput(input),
16
+ updateOutput: async (output)=>await this.store.updateOutput(output)
17
+ };
18
+ this.logger = {
19
+ info: async (params)=>{
20
+ await this.store.addInfoLog(params);
21
+ },
22
+ error: async (params)=>{
23
+ const error = params.error;
24
+ const errorObj = error instanceof Error ? {
25
+ message: error.message,
26
+ stack: error.stack
27
+ } : error;
28
+ await this.store.addErrorLog({
29
+ message: params.message,
30
+ error: errorObj,
31
+ data: params.data
32
+ });
33
+ }
34
+ };
35
+ this.task = {
36
+ trigger: async (params)=>this.taskService.trigger({
37
+ ...params,
38
+ parent: this.store.getTask()
39
+ }),
40
+ listChildren: async (definitionId)=>this.store.listChildTasks(definitionId)
41
+ };
42
+ this.runtime = {
43
+ isCloseToTimeout: (seconds)=>this.runner.isCloseToTimeout(seconds),
44
+ isAborted: ()=>this.store.getStatus() === TaskDataStatus.ABORTED,
45
+ getRemainingSeconds: ()=>this.timer.getRemainingSeconds(),
46
+ getRemainingMilliseconds: ()=>this.timer.getRemainingMilliseconds()
47
+ };
48
+ }
49
+ get store() {
50
+ return this.executionContext.store;
51
+ }
52
+ get runner() {
53
+ return this.executionContext.runner;
54
+ }
55
+ get timer() {
56
+ return this.executionContext.timer;
57
+ }
58
+ get response() {
59
+ return this.executionContext.response;
60
+ }
61
+ }
62
+ const TaskController_TaskController = TaskController.createImplementation({
63
+ implementation: TaskControllerImpl,
64
+ dependencies: [
65
+ TaskService,
66
+ TaskExecutionContext
67
+ ]
68
+ });
69
+ export { TaskController_TaskController as TaskController };
70
+
71
+ //# sourceMappingURL=TaskController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/TaskController/TaskController.js","sources":["../../../../src/api/features/TaskController/TaskController.ts"],"sourcesContent":["import { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/abstractions.js\";\nimport { TaskController as Abstraction } from \"@webiny/api-core/features/task/TaskController/abstractions.js\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport { TaskExecutionContext } from \"../TaskExecutionContext/abstractions.js\";\nimport { type ITaskTriggerParams, TaskDataStatus } from \"~/api/types.js\";\nimport \"./augmentation.js\";\nimport { BaseError, Result } from \"@webiny/feature/api/index.js\";\n\nclass TaskControllerImpl implements Abstraction.Interface {\n constructor(\n private taskService: TaskService.Interface,\n private executionContext: TaskExecutionContext.Interface\n ) {}\n\n private get store() {\n return this.executionContext.store;\n }\n\n private get runner() {\n return this.executionContext.runner;\n }\n\n private get timer() {\n return this.executionContext.timer;\n }\n\n public get response() {\n return this.executionContext.response;\n }\n\n state = {\n getTask: () => this.store.getTask(),\n getStatus: () => this.store.getStatus(),\n getInput: () => this.store.getInput(),\n getOutput: () => this.store.getOutput(),\n updateInput: async (input: any) => await this.store.updateInput(input),\n updateOutput: async (output: any) => await this.store.updateOutput(output)\n };\n\n logger = {\n info: async (params: { message: string; data?: Record<string, any> }) => {\n await this.store.addInfoLog(params);\n },\n error: async (params: {\n message: string;\n error?: Error | any;\n data?: Record<string, any>;\n }) => {\n const error = params.error;\n const errorObj =\n error instanceof Error ? { message: error.message, stack: error.stack } : error;\n await this.store.addErrorLog({\n message: params.message,\n error: errorObj,\n data: params.data\n });\n }\n };\n\n task = {\n trigger: async <CI extends TaskDefinition.TaskInput = TaskDefinition.TaskInput>(\n params: ITaskTriggerParams<CI>\n ): Promise<Result<TaskService.Task<CI>, BaseError>> => {\n return this.taskService.trigger({ ...params, parent: this.store.getTask() });\n },\n listChildren: async <\n CT extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n CO extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n >(\n definitionId?: string\n ): Promise<TaskService.Task<CT, CO>[]> => {\n return this.store.listChildTasks(definitionId);\n }\n };\n\n runtime = {\n isCloseToTimeout: (seconds?: number) => this.runner.isCloseToTimeout(seconds),\n isAborted: () => this.store.getStatus() === TaskDataStatus.ABORTED,\n getRemainingSeconds: () => this.timer.getRemainingSeconds(),\n getRemainingMilliseconds: () => this.timer.getRemainingMilliseconds()\n };\n}\n\nexport const TaskController = Abstraction.createImplementation({\n implementation: TaskControllerImpl,\n dependencies: [TaskService, TaskExecutionContext]\n});\n"],"names":["TaskControllerImpl","taskService","executionContext","input","output","params","error","errorObj","Error","definitionId","seconds","TaskDataStatus","TaskController","Abstraction","TaskService","TaskExecutionContext"],"mappings":";;;;;AAQA,MAAMA;IACF,YACYC,WAAkC,EAClCC,gBAAgD,CAC1D;aAFUD,WAAW,GAAXA;aACAC,gBAAgB,GAAhBA;aAmBZ,KAAK,GAAG;YACJ,SAAS,IAAM,IAAI,CAAC,KAAK,CAAC,OAAO;YACjC,WAAW,IAAM,IAAI,CAAC,KAAK,CAAC,SAAS;YACrC,UAAU,IAAM,IAAI,CAAC,KAAK,CAAC,QAAQ;YACnC,WAAW,IAAM,IAAI,CAAC,KAAK,CAAC,SAAS;YACrC,aAAa,OAAOC,QAAe,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAACA;YAChE,cAAc,OAAOC,SAAgB,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAACA;QACvE;aAEA,MAAM,GAAG;YACL,MAAM,OAAOC;gBACT,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAACA;YAChC;YACA,OAAO,OAAOA;gBAKV,MAAMC,QAAQD,OAAO,KAAK;gBAC1B,MAAME,WACFD,iBAAiBE,QAAQ;oBAAE,SAASF,MAAM,OAAO;oBAAE,OAAOA,MAAM,KAAK;gBAAC,IAAIA;gBAC9E,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;oBACzB,SAASD,OAAO,OAAO;oBACvB,OAAOE;oBACP,MAAMF,OAAO,IAAI;gBACrB;YACJ;QACJ;aAEA,IAAI,GAAG;YACH,SAAS,OACLA,SAEO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;oBAAE,GAAGA,MAAM;oBAAE,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAG;YAE9E,cAAc,OAIVI,eAEO,IAAI,CAAC,KAAK,CAAC,cAAc,CAACA;QAEzC;aAEA,OAAO,GAAG;YACN,kBAAkB,CAACC,UAAqB,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAACA;YACrE,WAAW,IAAM,IAAI,CAAC,KAAK,CAAC,SAAS,OAAOC,eAAe,OAAO;YAClE,qBAAqB,IAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB;YACzD,0BAA0B,IAAM,IAAI,CAAC,KAAK,CAAC,wBAAwB;QACvE;IApEG;IAEH,IAAY,QAAQ;QAChB,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK;IACtC;IAEA,IAAY,SAAS;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM;IACvC;IAEA,IAAY,QAAQ;QAChB,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK;IACtC;IAEA,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ;IACzC;AAqDJ;AAEO,MAAMC,gCAAiBC,eAAAA,oBAAgC,CAAC;IAC3D,gBAAgBb;IAChB,cAAc;QAACc;QAAaC;KAAqB;AACrD"}
@@ -0,0 +1,60 @@
1
+ import type { IResponseError } from "@webiny/api-core/features/task/TaskDefinition";
2
+ import type { TaskDataStatus } from "../../../api/types.js";
3
+ import { type ITaskTriggerParams, TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
4
+ import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
5
+ import type { ITaskResponse } from "../../../api/response/abstractions/index.js";
6
+ import { Result } from "@webiny/feature/api";
7
+ import { BaseError } from "@webiny/feature/api/index.js";
8
+ /**
9
+ * Augment the TaskController interface from api-core with implementation details.
10
+ * This allows developers to import from @webiny/api-core but get the full interface.
11
+ */
12
+ declare module "@webiny/api-core/features/task/TaskController/abstractions.js" {
13
+ interface ITaskController<I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput> {
14
+ /**
15
+ * Response object
16
+ */
17
+ response: ITaskResponse<I, O>;
18
+ /**
19
+ * State management - access and update task state
20
+ */
21
+ state: {
22
+ getTask(): TaskService.Task<I, O>;
23
+ getStatus(): TaskDataStatus;
24
+ getInput(): I;
25
+ getOutput(): O | undefined;
26
+ updateInput(input: Partial<I>): Promise<void>;
27
+ updateOutput(output: Partial<O>): Promise<void>;
28
+ };
29
+ /**
30
+ * Logging - add log entries to task
31
+ */
32
+ logger: {
33
+ info(params: {
34
+ message: string;
35
+ data?: Record<string, any>;
36
+ }): Promise<void>;
37
+ error(params: {
38
+ message: string;
39
+ error?: Error | IResponseError;
40
+ data?: Record<string, any>;
41
+ }): Promise<void>;
42
+ };
43
+ /**
44
+ * Task management - trigger and query child tasks
45
+ */
46
+ task: {
47
+ trigger<CI extends TaskDefinition.TaskInput = TaskDefinition.TaskInput>(params: ITaskTriggerParams<CI>): Promise<Result<TaskService.Task<CI>, BaseError>>;
48
+ listChildren<CT extends TaskDefinition.TaskInput = I, CO extends TaskDefinition.TaskOutput = O>(definitionId?: string): Promise<TaskService.Task<CT, CO>[]>;
49
+ };
50
+ /**
51
+ * Runtime checks
52
+ */
53
+ runtime: {
54
+ isCloseToTimeout(seconds?: number): boolean;
55
+ isAborted(): boolean;
56
+ getRemainingSeconds(): number;
57
+ getRemainingMilliseconds(): number;
58
+ };
59
+ }
60
+ }
File without changes
@@ -0,0 +1,2 @@
1
+ import "./augmentation.js";
2
+ export { TaskController } from "./TaskController.js";
@@ -0,0 +1,2 @@
1
+ import "./augmentation.js";
2
+ export { TaskController } from "./TaskController.js";
@@ -0,0 +1,24 @@
1
+ import { TaskExecutionContext as Abstraction } from "./abstractions.js";
2
+ import type { ITaskManagerStore } from "../../../api/runner/abstractions/TaskManagerStore.js";
3
+ import type { ITaskRunner } from "../../../api/runner/abstractions/TaskRunner.js";
4
+ import type { ITimer } from "@webiny/handler-aws";
5
+ import type { ITaskResponse } from "../../../api/response/abstractions/index.js";
6
+ declare class TaskExecutionContextImpl implements Abstraction.Interface {
7
+ private _store?;
8
+ private _runner?;
9
+ private _timer?;
10
+ private _response?;
11
+ get store(): ITaskManagerStore;
12
+ get runner(): ITaskRunner;
13
+ get timer(): ITimer;
14
+ get response(): ITaskResponse;
15
+ setStore(store: ITaskManagerStore): void;
16
+ setRunner(runner: ITaskRunner): void;
17
+ setTimer(timer: ITimer): void;
18
+ setResponse(response: ITaskResponse): void;
19
+ clear(): void;
20
+ }
21
+ export declare const TaskExecutionContext: typeof TaskExecutionContextImpl & {
22
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ITaskExecutionContext>;
23
+ };
24
+ export {};
@@ -0,0 +1,43 @@
1
+ import { TaskExecutionContext } from "./abstractions.js";
2
+ class TaskExecutionContextImpl {
3
+ get store() {
4
+ if (!this._store) throw new Error("TaskExecutionContext: store not set. Task execution not started.");
5
+ return this._store;
6
+ }
7
+ get runner() {
8
+ if (!this._runner) throw new Error("TaskExecutionContext: runner not set. Task execution not started.");
9
+ return this._runner;
10
+ }
11
+ get timer() {
12
+ if (!this._timer) throw new Error("TaskExecutionContext: timer not set. Task execution not started.");
13
+ return this._timer;
14
+ }
15
+ get response() {
16
+ if (!this._response) throw new Error("TaskExecutionContext: response not set. Task execution not started.");
17
+ return this._response;
18
+ }
19
+ setStore(store) {
20
+ this._store = store;
21
+ }
22
+ setRunner(runner) {
23
+ this._runner = runner;
24
+ }
25
+ setTimer(timer) {
26
+ this._timer = timer;
27
+ }
28
+ setResponse(response) {
29
+ this._response = response;
30
+ }
31
+ clear() {
32
+ this._store = void 0;
33
+ this._runner = void 0;
34
+ this._timer = void 0;
35
+ }
36
+ }
37
+ const TaskExecutionContext_TaskExecutionContext = TaskExecutionContext.createImplementation({
38
+ implementation: TaskExecutionContextImpl,
39
+ dependencies: []
40
+ });
41
+ export { TaskExecutionContext_TaskExecutionContext as TaskExecutionContext };
42
+
43
+ //# sourceMappingURL=TaskExecutionContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/TaskExecutionContext/TaskExecutionContext.js","sources":["../../../../src/api/features/TaskExecutionContext/TaskExecutionContext.ts"],"sourcesContent":["import { TaskExecutionContext as Abstraction } from \"./abstractions.js\";\nimport type { ITaskManagerStore } from \"~/api/runner/abstractions/TaskManagerStore.js\";\nimport type { ITaskRunner } from \"~/api/runner/abstractions/TaskRunner.js\";\nimport type { ITimer } from \"@webiny/handler-aws\";\nimport type { ITaskResponse } from \"~/api/response/abstractions/index.js\";\n\nclass TaskExecutionContextImpl implements Abstraction.Interface {\n private _store?: ITaskManagerStore;\n private _runner?: ITaskRunner;\n private _timer?: ITimer;\n private _response?: ITaskResponse;\n\n get store(): ITaskManagerStore {\n if (!this._store) {\n throw new Error(\"TaskExecutionContext: store not set. Task execution not started.\");\n }\n return this._store;\n }\n\n get runner(): ITaskRunner {\n if (!this._runner) {\n throw new Error(\"TaskExecutionContext: runner not set. Task execution not started.\");\n }\n return this._runner;\n }\n\n get timer(): ITimer {\n if (!this._timer) {\n throw new Error(\"TaskExecutionContext: timer not set. Task execution not started.\");\n }\n return this._timer;\n }\n\n get response(): ITaskResponse {\n if (!this._response) {\n throw new Error(\"TaskExecutionContext: response not set. Task execution not started.\");\n }\n return this._response;\n }\n\n setStore(store: ITaskManagerStore): void {\n this._store = store;\n }\n\n setRunner(runner: ITaskRunner): void {\n this._runner = runner;\n }\n\n setTimer(timer: ITimer): void {\n this._timer = timer;\n }\n\n setResponse(response: ITaskResponse): void {\n this._response = response;\n }\n\n clear(): void {\n this._store = undefined;\n this._runner = undefined;\n this._timer = undefined;\n }\n}\n\nexport const TaskExecutionContext = Abstraction.createImplementation({\n implementation: TaskExecutionContextImpl,\n dependencies: []\n});\n"],"names":["TaskExecutionContextImpl","Error","store","runner","timer","response","undefined","TaskExecutionContext","Abstraction"],"mappings":";AAMA,MAAMA;IAMF,IAAI,QAA2B;QAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,EACZ,MAAM,IAAIC,MAAM;QAEpB,OAAO,IAAI,CAAC,MAAM;IACtB;IAEA,IAAI,SAAsB;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO,EACb,MAAM,IAAIA,MAAM;QAEpB,OAAO,IAAI,CAAC,OAAO;IACvB;IAEA,IAAI,QAAgB;QAChB,IAAI,CAAC,IAAI,CAAC,MAAM,EACZ,MAAM,IAAIA,MAAM;QAEpB,OAAO,IAAI,CAAC,MAAM;IACtB;IAEA,IAAI,WAA0B;QAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,EACf,MAAM,IAAIA,MAAM;QAEpB,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,SAASC,KAAwB,EAAQ;QACrC,IAAI,CAAC,MAAM,GAAGA;IAClB;IAEA,UAAUC,MAAmB,EAAQ;QACjC,IAAI,CAAC,OAAO,GAAGA;IACnB;IAEA,SAASC,KAAa,EAAQ;QAC1B,IAAI,CAAC,MAAM,GAAGA;IAClB;IAEA,YAAYC,QAAuB,EAAQ;QACvC,IAAI,CAAC,SAAS,GAAGA;IACrB;IAEA,QAAc;QACV,IAAI,CAAC,MAAM,GAAGC;QACd,IAAI,CAAC,OAAO,GAAGA;QACf,IAAI,CAAC,MAAM,GAAGA;IAClB;AACJ;AAEO,MAAMC,4CAAuBC,qBAAAA,oBAAgC,CAAC;IACjE,gBAAgBR;IAChB,cAAc,EAAE;AACpB"}
@@ -0,0 +1,26 @@
1
+ import type { ITimer } from "@webiny/handler-aws";
2
+ import type { ITaskManagerStore } from "../../../api/runner/abstractions/TaskManagerStore.js";
3
+ import type { ITaskRunner } from "../../../api/runner/abstractions/TaskRunner.js";
4
+ import type { ITaskResponse } from "../../../api/response/abstractions/index.js";
5
+ /**
6
+ * TaskExecutionContext holds runtime state for the currently executing task.
7
+ * Properties are set by TaskRunner before task execution.
8
+ *
9
+ * This is registered as a singleton in the DI container with empty values,
10
+ * then populated at runtime by TaskControl before executing each task.
11
+ */
12
+ export interface ITaskExecutionContext {
13
+ readonly store: ITaskManagerStore;
14
+ readonly runner: ITaskRunner;
15
+ readonly timer: ITimer;
16
+ readonly response: ITaskResponse;
17
+ setStore(store: ITaskManagerStore): void;
18
+ setRunner(runner: ITaskRunner): void;
19
+ setTimer(timer: ITimer): void;
20
+ setResponse(response: ITaskResponse): void;
21
+ clear(): void;
22
+ }
23
+ export declare const TaskExecutionContext: import("@webiny/di").Abstraction<ITaskExecutionContext>;
24
+ export declare namespace TaskExecutionContext {
25
+ type Interface = ITaskExecutionContext;
26
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const TaskExecutionContext = createAbstraction("TaskExecutionContext");
3
+ export { TaskExecutionContext };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/TaskExecutionContext/abstractions.js","sources":["../../../../src/api/features/TaskExecutionContext/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { ITimer } from \"@webiny/handler-aws\";\nimport type { ITaskManagerStore } from \"~/api/runner/abstractions/TaskManagerStore.js\";\nimport type { ITaskRunner } from \"~/api/runner/abstractions/TaskRunner.js\";\nimport type { ITaskResponse } from \"~/api/response/abstractions/index.js\";\n\n/**\n * TaskExecutionContext holds runtime state for the currently executing task.\n * Properties are set by TaskRunner before task execution.\n *\n * This is registered as a singleton in the DI container with empty values,\n * then populated at runtime by TaskControl before executing each task.\n */\nexport interface ITaskExecutionContext {\n // Getters - may throw if not set\n readonly store: ITaskManagerStore;\n readonly runner: ITaskRunner;\n readonly timer: ITimer;\n readonly response: ITaskResponse;\n\n // Setters - called by TaskControl\n setStore(store: ITaskManagerStore): void;\n setRunner(runner: ITaskRunner): void;\n setTimer(timer: ITimer): void;\n setResponse(response: ITaskResponse): void;\n\n // Clear after execution\n clear(): void;\n}\n\nexport const TaskExecutionContext =\n createAbstraction<ITaskExecutionContext>(\"TaskExecutionContext\");\n\nexport namespace TaskExecutionContext {\n export type Interface = ITaskExecutionContext;\n}\n"],"names":["TaskExecutionContext","createAbstraction"],"mappings":";AA8BO,MAAMA,uBACTC,kBAAyC"}
@@ -0,0 +1,4 @@
1
+ export declare const TaskExecutionContextFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,11 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { TaskExecutionContext } from "./TaskExecutionContext.js";
3
+ const TaskExecutionContextFeature = createFeature({
4
+ name: "TaskExecutionContext",
5
+ register (container) {
6
+ container.register(TaskExecutionContext).inSingletonScope();
7
+ }
8
+ });
9
+ export { TaskExecutionContextFeature };
10
+
11
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/TaskExecutionContext/feature.js","sources":["../../../../src/api/features/TaskExecutionContext/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { TaskExecutionContext } from \"./TaskExecutionContext.js\";\n\nexport const TaskExecutionContextFeature = createFeature({\n name: \"TaskExecutionContext\",\n register(container) {\n container.register(TaskExecutionContext).inSingletonScope();\n }\n});\n"],"names":["TaskExecutionContextFeature","createFeature","container","TaskExecutionContext"],"mappings":";;AAGO,MAAMA,8BAA8BC,cAAc;IACrD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,sBAAsB,gBAAgB;IAC7D;AACJ"}
@@ -0,0 +1 @@
1
+ export * from "./abstractions.js";
@@ -0,0 +1 @@
1
+ export * from "./abstractions.js";
@@ -0,0 +1,10 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { TriggerTaskUseCase as UseCaseAbstraction } from "./abstractions.js";
3
+ import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
4
+ import { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
5
+ import type { Context } from "../../../api/types.js";
6
+ export declare class TriggerTaskUseCaseImpl implements UseCaseAbstraction.Interface {
7
+ private context;
8
+ constructor(context: Context);
9
+ execute<I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskService.GenericOutput = TaskService.GenericOutput>(params: UseCaseAbstraction.Params<I>): Promise<Result<TaskService.Task<I, O>, UseCaseAbstraction.Error>>;
10
+ }
@@ -0,0 +1,12 @@
1
+ class TriggerTaskUseCaseImpl {
2
+ constructor(context){
3
+ this.context = context;
4
+ }
5
+ async execute(params) {
6
+ const result = await this.context.tasks.trigger(params);
7
+ return result;
8
+ }
9
+ }
10
+ export { TriggerTaskUseCaseImpl };
11
+
12
+ //# sourceMappingURL=TriggerTaskUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/TriggerTask/TriggerTaskUseCase.js","sources":["../../../../src/api/features/TriggerTask/TriggerTaskUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { TriggerTaskUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport type { Context } from \"~/api/types.js\";\n\nexport class TriggerTaskUseCaseImpl implements UseCaseAbstraction.Interface {\n public constructor(private context: Context) {}\n\n public async execute<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n params: UseCaseAbstraction.Params<I>\n ): Promise<Result<TaskService.Task<I, O>, UseCaseAbstraction.Error>> {\n const result = await this.context.tasks.trigger<I, O>(params);\n\n return result as unknown as Promise<\n Result<TaskService.Task<I, O>, UseCaseAbstraction.Error>\n >;\n }\n}\n"],"names":["TriggerTaskUseCaseImpl","context","params","result"],"mappings":"AAMO,MAAMA;IACT,YAA2BC,OAAgB,CAAE;aAAlBA,OAAO,GAAPA;IAAmB;IAE9C,MAAa,QAITC,MAAoC,EAC6B;QACjE,MAAMC,SAAS,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAOD;QAEtD,OAAOC;IAGX;AACJ"}
@@ -0,0 +1,28 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
3
+ import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
4
+ import { TaskDefinitionNotFoundError, TaskNotFoundError, TaskServiceInfoError } from "../../../api/domain/errors.js";
5
+ export interface ITriggerTaskUseCase {
6
+ execute<I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskService.GenericOutput = TaskService.GenericOutput>(params: TriggerTaskParams<I>): Promise<Result<TaskService.Task<I, O>, UseCaseError>>;
7
+ }
8
+ export interface TriggerTaskParams<I = TaskDefinition.TaskInput> {
9
+ definition: string;
10
+ input?: I;
11
+ name?: string;
12
+ parent?: Pick<TaskService.Task, "id">;
13
+ delay?: number;
14
+ }
15
+ export interface ITriggerTaskUseCaseErrors {
16
+ definitionNotFound: TaskDefinitionNotFoundError;
17
+ taskNotFound: TaskNotFoundError;
18
+ serviceError: TaskServiceInfoError;
19
+ }
20
+ type UseCaseError = ITriggerTaskUseCaseErrors[keyof ITriggerTaskUseCaseErrors];
21
+ export declare const TriggerTaskUseCase: import("@webiny/di").Abstraction<ITriggerTaskUseCase>;
22
+ export declare namespace TriggerTaskUseCase {
23
+ type Interface = ITriggerTaskUseCase;
24
+ type Params<I = TaskDefinition.TaskInput> = TriggerTaskParams<I>;
25
+ type Error = UseCaseError;
26
+ type Return<I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskService.GenericOutput = TaskService.GenericOutput> = Promise<Result<TaskService.Task<I, O>, UseCaseError>>;
27
+ }
28
+ export {};
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const TriggerTaskUseCase = createAbstraction("Tasks/TriggerTaskUseCase");
3
+ export { TriggerTaskUseCase };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/TriggerTask/abstractions.js","sources":["../../../../src/api/features/TriggerTask/abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport {\n TaskDefinitionNotFoundError,\n TaskNotFoundError,\n TaskServiceInfoError\n} from \"~/api/domain/errors.js\";\n\nexport interface ITriggerTaskUseCase {\n execute<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n params: TriggerTaskParams<I>\n ): Promise<Result<TaskService.Task<I, O>, UseCaseError>>;\n}\n\nexport interface TriggerTaskParams<I = TaskDefinition.TaskInput> {\n definition: string;\n input?: I;\n name?: string;\n parent?: Pick<TaskService.Task, \"id\">;\n delay?: number;\n}\n\nexport interface ITriggerTaskUseCaseErrors {\n definitionNotFound: TaskDefinitionNotFoundError;\n taskNotFound: TaskNotFoundError;\n serviceError: TaskServiceInfoError;\n}\n\ntype UseCaseError = ITriggerTaskUseCaseErrors[keyof ITriggerTaskUseCaseErrors];\n\nexport const TriggerTaskUseCase = createAbstraction<ITriggerTaskUseCase>(\n \"Tasks/TriggerTaskUseCase\"\n);\n\nexport namespace TriggerTaskUseCase {\n export type Interface = ITriggerTaskUseCase;\n export type Params<I = TaskDefinition.TaskInput> = TriggerTaskParams<I>;\n\n export type Error = UseCaseError;\n export type Return<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n > = Promise<Result<TaskService.Task<I, O>, UseCaseError>>;\n}\n"],"names":["TriggerTaskUseCase","createAbstraction"],"mappings":";AAkCO,MAAMA,qBAAqBC,kBAC9B"}
@@ -0,0 +1,5 @@
1
+ import type { Context } from "../../../api/types.js";
2
+ export declare const TriggerTaskFeature: {
3
+ name: string;
4
+ register(container: import("@webiny/di").Container, context: Context): void;
5
+ };
@@ -0,0 +1,12 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { TriggerTaskUseCase } from "./abstractions.js";
3
+ import { TriggerTaskUseCaseImpl } from "./TriggerTaskUseCase.js";
4
+ const TriggerTaskFeature = createFeature({
5
+ name: "TriggerTask",
6
+ register (container, context) {
7
+ container.registerInstance(TriggerTaskUseCase, new TriggerTaskUseCaseImpl(context));
8
+ }
9
+ });
10
+ export { TriggerTaskFeature };
11
+
12
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/TriggerTask/feature.js","sources":["../../../../src/api/features/TriggerTask/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { TriggerTaskUseCase } from \"./abstractions.js\";\nimport { TriggerTaskUseCaseImpl } from \"~/api/features/TriggerTask/TriggerTaskUseCase.js\";\nimport type { Context } from \"~/api/types.js\";\n\nexport const TriggerTaskFeature = createFeature<Context>({\n name: \"TriggerTask\",\n register(container, context) {\n container.registerInstance(TriggerTaskUseCase, new TriggerTaskUseCaseImpl(context!));\n }\n});\n"],"names":["TriggerTaskFeature","createFeature","container","context","TriggerTaskUseCase","TriggerTaskUseCaseImpl"],"mappings":";;;AAKO,MAAMA,qBAAqBC,cAAuB;IACrD,MAAM;IACN,UAASC,SAAS,EAAEC,OAAO;QACvBD,UAAU,gBAAgB,CAACE,oBAAoB,IAAIC,uBAAuBF;IAC9E;AACJ"}
@@ -0,0 +1,2 @@
1
+ export { TriggerTaskUseCase } from "./abstractions.js";
2
+ export { TriggerTaskFeature } from "./feature.js";
@@ -0,0 +1,2 @@
1
+ export { TriggerTaskUseCase } from "./abstractions.js";
2
+ export { TriggerTaskFeature } from "./feature.js";
@@ -0,0 +1,23 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { GetModelRepository } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
3
+ import { GetLatestRevisionByEntryIdRepository } from "@webiny/api-headless-cms/features/contentEntry/GetLatestRevisionByEntryId/index.js";
4
+ import { UpdateEntryRepository } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js";
5
+ import { UpdateEntryDataFactory } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
6
+ import { BuildParams } from "@webiny/api-core/features/buildParams/index.js";
7
+ import { GetBackgroundTaskSettingsRepository } from "../../../api/features/GetBackgroundTaskSettings/abstractions.js";
8
+ import { UpdateBackgroundTaskSettingsRepository as RepositoryAbstraction, type IUpdateBackgroundTaskSettingsInput } from "./abstractions.js";
9
+ import type { IBackgroundTaskSettings } from "../../../api/domain/BackgroundTaskSettings.js";
10
+ declare class UpdateBackgroundTaskSettingsRepositoryImpl implements RepositoryAbstraction.Interface {
11
+ private readonly getModelRepository;
12
+ private readonly getSettingsRepository;
13
+ private readonly getLatestRevisionRepository;
14
+ private readonly updateEntryRepository;
15
+ private readonly updateEntryDataFactory;
16
+ private readonly defaultRetentionDays;
17
+ constructor(getModelRepository: GetModelRepository.Interface, getSettingsRepository: GetBackgroundTaskSettingsRepository.Interface, getLatestRevisionRepository: GetLatestRevisionByEntryIdRepository.Interface, updateEntryRepository: UpdateEntryRepository.Interface, updateEntryDataFactory: UpdateEntryDataFactory.Interface, buildParams: BuildParams.Interface);
18
+ execute(input: IUpdateBackgroundTaskSettingsInput): Promise<Result<IBackgroundTaskSettings, RepositoryAbstraction.Error>>;
19
+ }
20
+ export declare const UpdateBackgroundTaskSettingsRepository: typeof UpdateBackgroundTaskSettingsRepositoryImpl & {
21
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IUpdateBackgroundTaskSettingsRepository>;
22
+ };
23
+ export {};
@@ -0,0 +1,64 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { createCacheKey } from "@webiny/utils";
3
+ import { GetModelRepository } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
4
+ import { GetLatestRevisionByEntryIdRepository } from "@webiny/api-headless-cms/features/contentEntry/GetLatestRevisionByEntryId/index.js";
5
+ import { UpdateEntryRepository } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js";
6
+ import { UpdateEntryDataFactory } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
7
+ import { BuildParams } from "@webiny/api-core/features/buildParams/index.js";
8
+ import { GetBackgroundTaskSettingsRepository } from "../GetBackgroundTaskSettings/abstractions.js";
9
+ import { UpdateBackgroundTaskSettingsRepository } from "./abstractions.js";
10
+ import { BackgroundTaskModelNotFoundError, BackgroundTaskPersistenceError } from "../../domain/errors.js";
11
+ import { BACKGROUND_TASK_DEFAULT_RETENTION_DAYS, BACKGROUND_TASK_SETTINGS_MODEL_ID } from "../../domain/constants.js";
12
+ class UpdateBackgroundTaskSettingsRepositoryImpl {
13
+ constructor(getModelRepository, getSettingsRepository, getLatestRevisionRepository, updateEntryRepository, updateEntryDataFactory, buildParams){
14
+ this.getModelRepository = getModelRepository;
15
+ this.getSettingsRepository = getSettingsRepository;
16
+ this.getLatestRevisionRepository = getLatestRevisionRepository;
17
+ this.updateEntryRepository = updateEntryRepository;
18
+ this.updateEntryDataFactory = updateEntryDataFactory;
19
+ this.defaultRetentionDays = buildParams.get("BackgroundTasks.RetentionDays") ?? BACKGROUND_TASK_DEFAULT_RETENTION_DAYS;
20
+ }
21
+ async execute(input) {
22
+ try {
23
+ const getResult = await this.getSettingsRepository.execute();
24
+ if (getResult.isFail()) return getResult;
25
+ const modelResult = await this.getModelRepository.execute(BACKGROUND_TASK_SETTINGS_MODEL_ID);
26
+ if (modelResult.isFail()) return Result.fail(new BackgroundTaskModelNotFoundError(BACKGROUND_TASK_SETTINGS_MODEL_ID));
27
+ const model = modelResult.value;
28
+ const singletonId = createCacheKey(model.modelId);
29
+ const entryId = `${singletonId}#0001`;
30
+ const entryResult = await this.getLatestRevisionRepository.execute(model, {
31
+ id: entryId
32
+ });
33
+ if (entryResult.isFail()) return Result.fail(BackgroundTaskPersistenceError.from(entryResult.error));
34
+ const storedValue = input.retentionDays === this.defaultRetentionDays ? null : input.retentionDays;
35
+ const { entry } = await this.updateEntryDataFactory.create(model, {
36
+ values: {
37
+ retentionDays: storedValue
38
+ }
39
+ }, entryResult.value);
40
+ const updateResult = await this.updateEntryRepository.execute(model, entry);
41
+ if (updateResult.isFail()) return Result.fail(BackgroundTaskPersistenceError.from(updateResult.error));
42
+ const settings = {
43
+ retentionDays: entry.values.retentionDays ?? this.defaultRetentionDays
44
+ };
45
+ return Result.ok(settings);
46
+ } catch (error) {
47
+ return Result.fail(BackgroundTaskPersistenceError.from(error));
48
+ }
49
+ }
50
+ }
51
+ const UpdateBackgroundTaskSettingsRepository_UpdateBackgroundTaskSettingsRepository = UpdateBackgroundTaskSettingsRepository.createImplementation({
52
+ implementation: UpdateBackgroundTaskSettingsRepositoryImpl,
53
+ dependencies: [
54
+ GetModelRepository,
55
+ GetBackgroundTaskSettingsRepository,
56
+ GetLatestRevisionByEntryIdRepository,
57
+ UpdateEntryRepository,
58
+ UpdateEntryDataFactory,
59
+ BuildParams
60
+ ]
61
+ });
62
+ export { UpdateBackgroundTaskSettingsRepository_UpdateBackgroundTaskSettingsRepository as UpdateBackgroundTaskSettingsRepository };
63
+
64
+ //# sourceMappingURL=UpdateBackgroundTaskSettingsRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.js","sources":["../../../../src/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createCacheKey } from \"@webiny/utils\";\nimport { GetModelRepository } from \"@webiny/api-headless-cms/features/contentModel/GetModel/index.js\";\nimport { GetLatestRevisionByEntryIdRepository } from \"@webiny/api-headless-cms/features/contentEntry/GetLatestRevisionByEntryId/index.js\";\nimport { UpdateEntryRepository } from \"@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js\";\nimport { UpdateEntryDataFactory } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\nimport { BuildParams } from \"@webiny/api-core/features/buildParams/index.js\";\nimport { GetBackgroundTaskSettingsRepository } from \"~/api/features/GetBackgroundTaskSettings/abstractions.js\";\nimport {\n UpdateBackgroundTaskSettingsRepository as RepositoryAbstraction,\n type IUpdateBackgroundTaskSettingsInput\n} from \"./abstractions.js\";\nimport {\n BackgroundTaskModelNotFoundError,\n BackgroundTaskPersistenceError\n} from \"~/api/domain/errors.js\";\nimport {\n BACKGROUND_TASK_SETTINGS_MODEL_ID,\n BACKGROUND_TASK_DEFAULT_RETENTION_DAYS\n} from \"~/api/domain/constants.js\";\nimport type { IBackgroundTaskSettings } from \"~/api/domain/BackgroundTaskSettings.js\";\n\ninterface BackgroundTaskSettingsValues {\n retentionDays?: number | null;\n}\n\nclass UpdateBackgroundTaskSettingsRepositoryImpl implements RepositoryAbstraction.Interface {\n private readonly defaultRetentionDays: number;\n\n constructor(\n private readonly getModelRepository: GetModelRepository.Interface,\n private readonly getSettingsRepository: GetBackgroundTaskSettingsRepository.Interface,\n private readonly getLatestRevisionRepository: GetLatestRevisionByEntryIdRepository.Interface,\n private readonly updateEntryRepository: UpdateEntryRepository.Interface,\n private readonly updateEntryDataFactory: UpdateEntryDataFactory.Interface,\n buildParams: BuildParams.Interface\n ) {\n this.defaultRetentionDays =\n buildParams.get<number>(\"BackgroundTasks.RetentionDays\") ??\n BACKGROUND_TASK_DEFAULT_RETENTION_DAYS;\n }\n\n async execute(\n input: IUpdateBackgroundTaskSettingsInput\n ): Promise<Result<IBackgroundTaskSettings, RepositoryAbstraction.Error>> {\n try {\n /* Ensure the singleton entry exists (creates if missing). */\n const getResult = await this.getSettingsRepository.execute();\n if (getResult.isFail()) {\n return getResult;\n }\n\n const modelResult = await this.getModelRepository.execute(\n BACKGROUND_TASK_SETTINGS_MODEL_ID\n );\n if (modelResult.isFail()) {\n return Result.fail(\n new BackgroundTaskModelNotFoundError(BACKGROUND_TASK_SETTINGS_MODEL_ID)\n );\n }\n\n const model = modelResult.value;\n const singletonId = createCacheKey(model.modelId);\n const entryId = `${singletonId}#0001`;\n\n const entryResult =\n await this.getLatestRevisionRepository.execute<BackgroundTaskSettingsValues>(\n model,\n { id: entryId }\n );\n\n if (entryResult.isFail()) {\n return Result.fail(BackgroundTaskPersistenceError.from(entryResult.error));\n }\n\n /* Store null when the value matches the default so the default stays in control. */\n const storedValue =\n input.retentionDays === this.defaultRetentionDays ? null : input.retentionDays;\n\n const { entry } =\n await this.updateEntryDataFactory.create<BackgroundTaskSettingsValues>(\n model,\n {\n values: {\n retentionDays: storedValue\n }\n },\n entryResult.value\n );\n\n const updateResult = await this.updateEntryRepository.execute(model, entry);\n if (updateResult.isFail()) {\n return Result.fail(BackgroundTaskPersistenceError.from(updateResult.error));\n }\n\n const settings: IBackgroundTaskSettings = {\n retentionDays: entry.values.retentionDays ?? this.defaultRetentionDays\n };\n\n return Result.ok(settings);\n } catch (error) {\n return Result.fail(BackgroundTaskPersistenceError.from(error));\n }\n }\n}\n\nexport const UpdateBackgroundTaskSettingsRepository = RepositoryAbstraction.createImplementation({\n implementation: UpdateBackgroundTaskSettingsRepositoryImpl,\n dependencies: [\n GetModelRepository,\n GetBackgroundTaskSettingsRepository,\n GetLatestRevisionByEntryIdRepository,\n UpdateEntryRepository,\n UpdateEntryDataFactory,\n BuildParams\n ]\n});\n"],"names":["UpdateBackgroundTaskSettingsRepositoryImpl","getModelRepository","getSettingsRepository","getLatestRevisionRepository","updateEntryRepository","updateEntryDataFactory","buildParams","BACKGROUND_TASK_DEFAULT_RETENTION_DAYS","input","getResult","modelResult","BACKGROUND_TASK_SETTINGS_MODEL_ID","Result","BackgroundTaskModelNotFoundError","model","singletonId","createCacheKey","entryId","entryResult","BackgroundTaskPersistenceError","storedValue","entry","updateResult","settings","error","UpdateBackgroundTaskSettingsRepository","RepositoryAbstraction","GetModelRepository","GetBackgroundTaskSettingsRepository","GetLatestRevisionByEntryIdRepository","UpdateEntryRepository","UpdateEntryDataFactory","BuildParams"],"mappings":";;;;;;;;;;;AA0BA,MAAMA;IAGF,YACqBC,kBAAgD,EAChDC,qBAAoE,EACpEC,2BAA2E,EAC3EC,qBAAsD,EACtDC,sBAAwD,EACzEC,WAAkC,CACpC;aANmBL,kBAAkB,GAAlBA;aACAC,qBAAqB,GAArBA;aACAC,2BAA2B,GAA3BA;aACAC,qBAAqB,GAArBA;aACAC,sBAAsB,GAAtBA;QAGjB,IAAI,CAAC,oBAAoB,GACrBC,YAAY,GAAG,CAAS,oCACxBC;IACR;IAEA,MAAM,QACFC,KAAyC,EAC4B;QACrE,IAAI;YAEA,MAAMC,YAAY,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO;YAC1D,IAAIA,UAAU,MAAM,IAChB,OAAOA;YAGX,MAAMC,cAAc,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CACrDC;YAEJ,IAAID,YAAY,MAAM,IAClB,OAAOE,OAAO,IAAI,CACd,IAAIC,iCAAiCF;YAI7C,MAAMG,QAAQJ,YAAY,KAAK;YAC/B,MAAMK,cAAcC,eAAeF,MAAM,OAAO;YAChD,MAAMG,UAAU,GAAGF,YAAY,KAAK,CAAC;YAErC,MAAMG,cACF,MAAM,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAC1CJ,OACA;gBAAE,IAAIG;YAAQ;YAGtB,IAAIC,YAAY,MAAM,IAClB,OAAON,OAAO,IAAI,CAACO,+BAA+B,IAAI,CAACD,YAAY,KAAK;YAI5E,MAAME,cACFZ,MAAM,aAAa,KAAK,IAAI,CAAC,oBAAoB,GAAG,OAAOA,MAAM,aAAa;YAElF,MAAM,EAAEa,KAAK,EAAE,GACX,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CACpCP,OACA;gBACI,QAAQ;oBACJ,eAAeM;gBACnB;YACJ,GACAF,YAAY,KAAK;YAGzB,MAAMI,eAAe,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAACR,OAAOO;YACrE,IAAIC,aAAa,MAAM,IACnB,OAAOV,OAAO,IAAI,CAACO,+BAA+B,IAAI,CAACG,aAAa,KAAK;YAG7E,MAAMC,WAAoC;gBACtC,eAAeF,MAAM,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,oBAAoB;YAC1E;YAEA,OAAOT,OAAO,EAAE,CAACW;QACrB,EAAE,OAAOC,OAAO;YACZ,OAAOZ,OAAO,IAAI,CAACO,+BAA+B,IAAI,CAACK;QAC3D;IACJ;AACJ;AAEO,MAAMC,gFAAyCC,uCAAAA,oBAA0C,CAAC;IAC7F,gBAAgB1B;IAChB,cAAc;QACV2B;QACAC;QACAC;QACAC;QACAC;QACAC;KACH;AACL"}
@@ -0,0 +1,14 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { UpdateBackgroundTaskSettingsRepository, UpdateBackgroundTaskSettingsUseCase as UseCaseAbstraction } from "./abstractions.js";
3
+ import type { IBackgroundTaskSettings } from "../../../api/domain/BackgroundTaskSettings.js";
4
+ import { BackgroundTaskPermissions } from "../../../api/features/BackgroundTaskPermissions/abstractions.js";
5
+ declare class UpdateBackgroundTaskSettingsUseCaseImpl implements UseCaseAbstraction.Interface {
6
+ private readonly permissions;
7
+ private readonly repository;
8
+ constructor(permissions: BackgroundTaskPermissions.Interface, repository: UpdateBackgroundTaskSettingsRepository.Interface);
9
+ execute(input: UseCaseAbstraction.Input): Promise<Result<IBackgroundTaskSettings, UseCaseAbstraction.Error>>;
10
+ }
11
+ export declare const UpdateBackgroundTaskSettingsUseCase: typeof UpdateBackgroundTaskSettingsUseCaseImpl & {
12
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IUpdateBackgroundTaskSettingsUseCase>;
13
+ };
14
+ export {};
@@ -0,0 +1,27 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { UpdateBackgroundTaskSettingsRepository, UpdateBackgroundTaskSettingsUseCase } from "./abstractions.js";
3
+ import { UpdateBackgroundTaskSettingsInputSchema } from "./schema.js";
4
+ import { BackgroundTaskNotAuthorizedError, BackgroundTaskValidationError } from "../../domain/errors.js";
5
+ import { BackgroundTaskPermissions } from "../BackgroundTaskPermissions/abstractions.js";
6
+ class UpdateBackgroundTaskSettingsUseCaseImpl {
7
+ constructor(permissions, repository){
8
+ this.permissions = permissions;
9
+ this.repository = repository;
10
+ }
11
+ async execute(input) {
12
+ if (!await this.permissions.canEdit("task")) return Result.fail(new BackgroundTaskNotAuthorizedError());
13
+ const parsed = UpdateBackgroundTaskSettingsInputSchema.safeParse(input);
14
+ if (!parsed.success) return Result.fail(new BackgroundTaskValidationError(parsed.error));
15
+ return this.repository.execute(parsed.data);
16
+ }
17
+ }
18
+ const UpdateBackgroundTaskSettingsUseCase_UpdateBackgroundTaskSettingsUseCase = UpdateBackgroundTaskSettingsUseCase.createImplementation({
19
+ implementation: UpdateBackgroundTaskSettingsUseCaseImpl,
20
+ dependencies: [
21
+ BackgroundTaskPermissions,
22
+ UpdateBackgroundTaskSettingsRepository
23
+ ]
24
+ });
25
+ export { UpdateBackgroundTaskSettingsUseCase_UpdateBackgroundTaskSettingsUseCase as UpdateBackgroundTaskSettingsUseCase };
26
+
27
+ //# sourceMappingURL=UpdateBackgroundTaskSettingsUseCase.js.map