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

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 (507) hide show
  1. package/admin/BackgroundTaskRoutes.js +35 -15
  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/listLogs/ListLogsGateway.js +1 -1
  20. package/admin/features/listLogs/ListLogsGateway.js.map +1 -1
  21. package/admin/features/permissions/feature.d.ts +1 -1
  22. package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsGateway.d.ts +12 -0
  23. package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsGateway.js +43 -0
  24. package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsGateway.js.map +1 -0
  25. package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.d.ts +11 -0
  26. package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js +18 -0
  27. package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js.map +1 -0
  28. package/admin/features/updateBackgroundTaskSettings/abstractions.d.ts +18 -0
  29. package/admin/features/updateBackgroundTaskSettings/abstractions.js +6 -0
  30. package/admin/features/updateBackgroundTaskSettings/abstractions.js.map +1 -0
  31. package/admin/features/updateBackgroundTaskSettings/feature.d.ts +3 -0
  32. package/admin/features/updateBackgroundTaskSettings/feature.js +19 -0
  33. package/admin/features/updateBackgroundTaskSettings/feature.js.map +1 -0
  34. package/admin/features/updateBackgroundTaskSettings/index.d.ts +3 -0
  35. package/admin/features/updateBackgroundTaskSettings/index.js +2 -0
  36. package/admin/presentation/BackgroundTaskSettings/BackgroundTaskSettingsPresenter.d.ts +21 -0
  37. package/admin/presentation/BackgroundTaskSettings/BackgroundTaskSettingsPresenter.js +86 -0
  38. package/admin/presentation/BackgroundTaskSettings/BackgroundTaskSettingsPresenter.js.map +1 -0
  39. package/admin/presentation/BackgroundTaskSettings/abstractions.d.ts +16 -0
  40. package/admin/presentation/BackgroundTaskSettings/abstractions.js +5 -0
  41. package/admin/presentation/BackgroundTaskSettings/abstractions.js.map +1 -0
  42. package/admin/presentation/BackgroundTaskSettings/components/BackgroundTaskSettingsView.d.ts +2 -0
  43. package/admin/presentation/BackgroundTaskSettings/components/BackgroundTaskSettingsView.js +56 -0
  44. package/admin/presentation/BackgroundTaskSettings/components/BackgroundTaskSettingsView.js.map +1 -0
  45. package/admin/presentation/BackgroundTaskSettings/feature.d.ts +3 -0
  46. package/admin/presentation/BackgroundTaskSettings/feature.js +17 -0
  47. package/admin/presentation/BackgroundTaskSettings/feature.js.map +1 -0
  48. package/admin/presentation/BackgroundTaskSettings/index.d.ts +2 -0
  49. package/admin/presentation/BackgroundTaskSettings/index.js +2 -0
  50. package/admin/presentation/TaskDefinitions/components/TaskDefinitionsView.js +2 -1
  51. package/admin/presentation/TaskDefinitions/components/TaskDefinitionsView.js.map +1 -1
  52. package/admin/presentation/TaskDefinitions/components/TaskExecutionsButton.d.ts +2 -0
  53. package/admin/presentation/TaskDefinitions/components/TaskExecutionsButton.js +16 -0
  54. package/admin/presentation/TaskDefinitions/components/TaskExecutionsButton.js.map +1 -0
  55. package/admin/presentation/TaskDetail/TaskDetailPresenter.js +1 -1
  56. package/admin/presentation/TaskDetail/TaskDetailPresenter.js.map +1 -1
  57. package/admin/presentation/TaskDetail/components/TaskDetailDrawer.js +6 -0
  58. package/admin/presentation/TaskDetail/components/TaskDetailDrawer.js.map +1 -1
  59. package/admin/presentation/TaskExecutions/TaskExecutionsDataSource.js +1 -1
  60. package/admin/presentation/TaskExecutions/TaskExecutionsDataSource.js.map +1 -1
  61. package/admin/presentation/TaskExecutions/TaskExecutionsPresenter.d.ts +2 -0
  62. package/admin/presentation/TaskExecutions/TaskExecutionsPresenter.js +3 -1
  63. package/admin/presentation/TaskExecutions/TaskExecutionsPresenter.js.map +1 -1
  64. package/admin/presentation/TaskExecutions/components/TaskDefinitionsButton.d.ts +2 -0
  65. package/admin/presentation/TaskExecutions/components/TaskDefinitionsButton.js +16 -0
  66. package/admin/presentation/TaskExecutions/components/TaskDefinitionsButton.js.map +1 -0
  67. package/admin/presentation/TaskExecutions/components/TaskExecutionsView.js +78 -40
  68. package/admin/presentation/TaskExecutions/components/TaskExecutionsView.js.map +1 -1
  69. package/admin/routes.d.ts +1 -0
  70. package/admin/routes.js +4 -0
  71. package/admin/routes.js.map +1 -1
  72. package/admin/shared/types.d.ts +3 -0
  73. package/api/BackgroundTasksFeature.d.ts +4 -0
  74. package/api/BackgroundTasksFeature.js +75 -0
  75. package/api/BackgroundTasksFeature.js.map +1 -0
  76. package/api/abstractions/Timer.d.ts +1 -0
  77. package/api/abstractions/Timer.js +0 -0
  78. package/api/abstractions/index.d.ts +1 -0
  79. package/api/abstractions/index.js +1 -0
  80. package/api/crud/TaskLogPrivateModel.d.ts +9 -0
  81. package/api/crud/TaskLogPrivateModel.js +41 -0
  82. package/api/crud/TaskLogPrivateModel.js.map +1 -0
  83. package/api/crud/TaskPrivateModel.d.ts +9 -0
  84. package/api/crud/TaskPrivateModel.js +56 -0
  85. package/api/crud/TaskPrivateModel.js.map +1 -0
  86. package/api/decorators/SelfCleaningTaskHandlerDecorator.d.ts +33 -0
  87. package/api/decorators/SelfCleaningTaskHandlerDecorator.js +69 -0
  88. package/api/decorators/SelfCleaningTaskHandlerDecorator.js.map +1 -0
  89. package/api/decorators/TaskDefinitionDefaultsDecorator.d.ts +27 -0
  90. package/api/decorators/TaskDefinitionDefaultsDecorator.js +47 -0
  91. package/api/decorators/TaskDefinitionDefaultsDecorator.js.map +1 -0
  92. package/api/domain/BackgroundTaskSettings.d.ts +3 -0
  93. package/api/domain/BackgroundTaskSettings.js +0 -0
  94. package/api/domain/TaskService.d.ts +12 -0
  95. package/api/domain/TaskService.js +5 -0
  96. package/api/domain/TaskService.js.map +1 -0
  97. package/api/domain/constants.d.ts +3 -0
  98. package/api/domain/constants.js +6 -0
  99. package/api/domain/constants.js.map +1 -0
  100. package/api/domain/errors.d.ts +61 -0
  101. package/api/domain/errors.js +109 -0
  102. package/api/domain/errors.js.map +1 -0
  103. package/api/domain/task/TaskLogModelProvider.d.ts +12 -0
  104. package/api/domain/task/TaskLogModelProvider.js +23 -0
  105. package/api/domain/task/TaskLogModelProvider.js.map +1 -0
  106. package/api/domain/task/TaskLogsRepository.d.ts +34 -0
  107. package/api/domain/task/TaskLogsRepository.js +146 -0
  108. package/api/domain/task/TaskLogsRepository.js.map +1 -0
  109. package/api/domain/task/TaskModelProvider.d.ts +12 -0
  110. package/api/domain/task/TaskModelProvider.js +23 -0
  111. package/api/domain/task/TaskModelProvider.js.map +1 -0
  112. package/api/domain/task/TasksRepository.d.ts +37 -0
  113. package/api/domain/task/TasksRepository.js +126 -0
  114. package/api/domain/task/TasksRepository.js.map +1 -0
  115. package/api/domain/task/abstractions.d.ts +50 -0
  116. package/api/domain/task/abstractions.js +8 -0
  117. package/api/domain/task/abstractions.js.map +1 -0
  118. package/api/domain/task/createRevisionId.d.ts +1 -0
  119. package/api/domain/task/createRevisionId.js +8 -0
  120. package/api/domain/task/createRevisionId.js.map +1 -0
  121. package/api/domain/task/entryToTask.d.ts +3 -0
  122. package/api/domain/task/entryToTask.js +20 -0
  123. package/api/domain/task/entryToTask.js.map +1 -0
  124. package/api/domain/task/entryToTaskLog.d.ts +3 -0
  125. package/api/domain/task/entryToTaskLog.js +12 -0
  126. package/api/domain/task/entryToTaskLog.js.map +1 -0
  127. package/api/events/TaskAfterCreateEvent.d.ts +6 -0
  128. package/api/events/TaskAfterCreateEvent.js +13 -0
  129. package/api/events/TaskAfterCreateEvent.js.map +1 -0
  130. package/api/events/TaskAfterDeleteEvent.d.ts +6 -0
  131. package/api/events/TaskAfterDeleteEvent.js +13 -0
  132. package/api/events/TaskAfterDeleteEvent.js.map +1 -0
  133. package/api/events/TaskAfterUpdateEvent.d.ts +6 -0
  134. package/api/events/TaskAfterUpdateEvent.js +13 -0
  135. package/api/events/TaskAfterUpdateEvent.js.map +1 -0
  136. package/api/events/TaskBeforeCreateEvent.d.ts +6 -0
  137. package/api/events/TaskBeforeCreateEvent.js +13 -0
  138. package/api/events/TaskBeforeCreateEvent.js.map +1 -0
  139. package/api/events/TaskBeforeDeleteEvent.d.ts +6 -0
  140. package/api/events/TaskBeforeDeleteEvent.js +13 -0
  141. package/api/events/TaskBeforeDeleteEvent.js.map +1 -0
  142. package/api/events/TaskBeforeUpdateEvent.d.ts +6 -0
  143. package/api/events/TaskBeforeUpdateEvent.js +13 -0
  144. package/api/events/TaskBeforeUpdateEvent.js.map +1 -0
  145. package/api/events/abstractions.d.ts +53 -0
  146. package/api/events/abstractions.js +10 -0
  147. package/api/events/abstractions.js.map +1 -0
  148. package/api/events/index.d.ts +7 -0
  149. package/api/events/index.js +7 -0
  150. package/api/features/AbortTask/AbortTaskUseCase.d.ts +9 -0
  151. package/api/features/AbortTask/AbortTaskUseCase.js +12 -0
  152. package/api/features/AbortTask/AbortTaskUseCase.js.map +1 -0
  153. package/api/features/AbortTask/abstractions.d.ts +25 -0
  154. package/api/features/AbortTask/abstractions.js +5 -0
  155. package/api/features/AbortTask/abstractions.js.map +1 -0
  156. package/api/features/AbortTask/feature.d.ts +4 -0
  157. package/api/features/AbortTask/feature.js +13 -0
  158. package/api/features/AbortTask/feature.js.map +1 -0
  159. package/api/features/AbortTask/index.d.ts +2 -0
  160. package/api/features/AbortTask/index.js +2 -0
  161. package/api/features/BackgroundTaskPermissions/abstractions.d.ts +17 -0
  162. package/api/features/BackgroundTaskPermissions/abstractions.js +6 -0
  163. package/api/features/BackgroundTaskPermissions/abstractions.js.map +1 -0
  164. package/api/features/BackgroundTaskPermissions/feature.d.ts +4 -0
  165. package/api/features/BackgroundTaskPermissions/feature.js +7 -0
  166. package/api/features/BackgroundTaskPermissions/feature.js.map +1 -0
  167. package/api/features/BackgroundTaskPermissions/index.d.ts +2 -0
  168. package/api/features/BackgroundTaskPermissions/index.js +2 -0
  169. package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.d.ts +27 -0
  170. package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js +122 -0
  171. package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js.map +1 -0
  172. package/api/features/CleanupTaskSubtree/abstractions.d.ts +7 -0
  173. package/api/features/CleanupTaskSubtree/abstractions.js +5 -0
  174. package/api/features/CleanupTaskSubtree/abstractions.js.map +1 -0
  175. package/api/features/CleanupTaskSubtree/feature.d.ts +4 -0
  176. package/api/features/CleanupTaskSubtree/feature.js +11 -0
  177. package/api/features/CleanupTaskSubtree/feature.js.map +1 -0
  178. package/api/features/CleanupTaskSubtree/index.d.ts +2 -0
  179. package/api/features/CleanupTaskSubtree/index.js +2 -0
  180. package/api/features/CreateTask/CreateTaskUseCase.d.ts +17 -0
  181. package/api/features/CreateTask/CreateTaskUseCase.js +56 -0
  182. package/api/features/CreateTask/CreateTaskUseCase.js.map +1 -0
  183. package/api/features/CreateTask/abstractions.d.ts +21 -0
  184. package/api/features/CreateTask/abstractions.js +5 -0
  185. package/api/features/CreateTask/abstractions.js.map +1 -0
  186. package/api/features/CreateTask/feature.d.ts +4 -0
  187. package/api/features/CreateTask/feature.js +11 -0
  188. package/api/features/CreateTask/feature.js.map +1 -0
  189. package/api/features/CreateTask/index.d.ts +2 -0
  190. package/api/features/CreateTask/index.js +2 -0
  191. package/api/features/CreateTaskLog/CreateTaskLogUseCase.d.ts +13 -0
  192. package/api/features/CreateTaskLog/CreateTaskLogUseCase.js +19 -0
  193. package/api/features/CreateTaskLog/CreateTaskLogUseCase.js.map +1 -0
  194. package/api/features/CreateTaskLog/abstractions.d.ts +16 -0
  195. package/api/features/CreateTaskLog/abstractions.js +5 -0
  196. package/api/features/CreateTaskLog/abstractions.js.map +1 -0
  197. package/api/features/CreateTaskLog/feature.d.ts +4 -0
  198. package/api/features/CreateTaskLog/feature.js +11 -0
  199. package/api/features/CreateTaskLog/feature.js.map +1 -0
  200. package/api/features/CreateTaskLog/index.d.ts +2 -0
  201. package/api/features/CreateTaskLog/index.js +2 -0
  202. package/api/features/DeleteTask/DeleteTaskUseCase.d.ts +14 -0
  203. package/api/features/DeleteTask/DeleteTaskUseCase.js +34 -0
  204. package/api/features/DeleteTask/DeleteTaskUseCase.js.map +1 -0
  205. package/api/features/DeleteTask/abstractions.d.ts +17 -0
  206. package/api/features/DeleteTask/abstractions.js +5 -0
  207. package/api/features/DeleteTask/abstractions.js.map +1 -0
  208. package/api/features/DeleteTask/feature.d.ts +4 -0
  209. package/api/features/DeleteTask/feature.js +11 -0
  210. package/api/features/DeleteTask/feature.js.map +1 -0
  211. package/api/features/DeleteTask/index.d.ts +2 -0
  212. package/api/features/DeleteTask/index.js +2 -0
  213. package/api/features/DeleteTaskLog/DeleteTaskLogUseCase.d.ts +11 -0
  214. package/api/features/DeleteTaskLog/DeleteTaskLogUseCase.js +19 -0
  215. package/api/features/DeleteTaskLog/DeleteTaskLogUseCase.js.map +1 -0
  216. package/api/features/DeleteTaskLog/abstractions.d.ts +14 -0
  217. package/api/features/DeleteTaskLog/abstractions.js +5 -0
  218. package/api/features/DeleteTaskLog/abstractions.js.map +1 -0
  219. package/api/features/DeleteTaskLog/feature.d.ts +4 -0
  220. package/api/features/DeleteTaskLog/feature.js +11 -0
  221. package/api/features/DeleteTaskLog/feature.js.map +1 -0
  222. package/api/features/DeleteTaskLog/index.d.ts +2 -0
  223. package/api/features/DeleteTaskLog/index.js +2 -0
  224. package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.d.ts +21 -0
  225. package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.js +63 -0
  226. package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.js.map +1 -0
  227. package/api/features/GetBackgroundTaskSettings/abstractions.d.ts +13 -0
  228. package/api/features/GetBackgroundTaskSettings/abstractions.js +5 -0
  229. package/api/features/GetBackgroundTaskSettings/abstractions.js.map +1 -0
  230. package/api/features/GetBackgroundTaskSettings/feature.d.ts +4 -0
  231. package/api/features/GetBackgroundTaskSettings/feature.js +11 -0
  232. package/api/features/GetBackgroundTaskSettings/feature.js.map +1 -0
  233. package/api/features/GetBackgroundTaskSettings/index.d.ts +2 -0
  234. package/api/features/GetBackgroundTaskSettings/index.js +2 -0
  235. package/api/features/GetLatestTaskLog/GetLatestTaskLogUseCase.d.ts +11 -0
  236. package/api/features/GetLatestTaskLog/GetLatestTaskLogUseCase.js +19 -0
  237. package/api/features/GetLatestTaskLog/GetLatestTaskLogUseCase.js.map +1 -0
  238. package/api/features/GetLatestTaskLog/abstractions.d.ts +15 -0
  239. package/api/features/GetLatestTaskLog/abstractions.js +5 -0
  240. package/api/features/GetLatestTaskLog/abstractions.js.map +1 -0
  241. package/api/features/GetLatestTaskLog/feature.d.ts +4 -0
  242. package/api/features/GetLatestTaskLog/feature.js +11 -0
  243. package/api/features/GetLatestTaskLog/feature.js.map +1 -0
  244. package/api/features/GetLatestTaskLog/index.d.ts +2 -0
  245. package/api/features/GetLatestTaskLog/index.js +2 -0
  246. package/api/features/GetRunnableTaskDefinition/GetRunnableTaskDefinitionUseCase.d.ts +13 -0
  247. package/api/features/GetRunnableTaskDefinition/GetRunnableTaskDefinitionUseCase.js +51 -0
  248. package/api/features/GetRunnableTaskDefinition/GetRunnableTaskDefinitionUseCase.js.map +1 -0
  249. package/api/features/GetRunnableTaskDefinition/abstractions.d.ts +17 -0
  250. package/api/features/GetRunnableTaskDefinition/abstractions.js +5 -0
  251. package/api/features/GetRunnableTaskDefinition/abstractions.js.map +1 -0
  252. package/api/features/GetRunnableTaskDefinition/feature.d.ts +4 -0
  253. package/api/features/GetRunnableTaskDefinition/feature.js +11 -0
  254. package/api/features/GetRunnableTaskDefinition/feature.js.map +1 -0
  255. package/api/features/GetRunnableTaskDefinition/index.d.ts +2 -0
  256. package/api/features/GetRunnableTaskDefinition/index.js +2 -0
  257. package/api/features/GetTask/GetTaskUseCase.d.ts +13 -0
  258. package/api/features/GetTask/GetTaskUseCase.js +19 -0
  259. package/api/features/GetTask/GetTaskUseCase.js.map +1 -0
  260. package/api/features/GetTask/abstractions.d.ts +17 -0
  261. package/api/features/GetTask/abstractions.js +5 -0
  262. package/api/features/GetTask/abstractions.js.map +1 -0
  263. package/api/features/GetTask/feature.d.ts +4 -0
  264. package/api/features/GetTask/feature.js +11 -0
  265. package/api/features/GetTask/feature.js.map +1 -0
  266. package/api/features/GetTask/index.d.ts +2 -0
  267. package/api/features/GetTask/index.js +2 -0
  268. package/api/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.d.ts +11 -0
  269. package/api/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js +24 -0
  270. package/api/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js.map +1 -0
  271. package/api/features/ListTaskDefinitions/abstractions.d.ts +9 -0
  272. package/api/features/ListTaskDefinitions/abstractions.js +5 -0
  273. package/api/features/ListTaskDefinitions/abstractions.js.map +1 -0
  274. package/api/features/ListTaskDefinitions/feature.d.ts +4 -0
  275. package/api/features/ListTaskDefinitions/feature.js +11 -0
  276. package/api/features/ListTaskDefinitions/feature.js.map +1 -0
  277. package/api/features/ListTaskDefinitions/index.d.ts +2 -0
  278. package/api/features/ListTaskDefinitions/index.js +2 -0
  279. package/api/features/ListTaskLogs/ListTaskLogsUseCase.d.ts +12 -0
  280. package/api/features/ListTaskLogs/ListTaskLogsUseCase.js +19 -0
  281. package/api/features/ListTaskLogs/ListTaskLogsUseCase.js.map +1 -0
  282. package/api/features/ListTaskLogs/abstractions.d.ts +15 -0
  283. package/api/features/ListTaskLogs/abstractions.js +5 -0
  284. package/api/features/ListTaskLogs/abstractions.js.map +1 -0
  285. package/api/features/ListTaskLogs/feature.d.ts +4 -0
  286. package/api/features/ListTaskLogs/feature.js +11 -0
  287. package/api/features/ListTaskLogs/feature.js.map +1 -0
  288. package/api/features/ListTaskLogs/index.d.ts +2 -0
  289. package/api/features/ListTaskLogs/index.js +2 -0
  290. package/api/features/ListTasks/ListTasksUseCase.d.ts +13 -0
  291. package/api/features/ListTasks/ListTasksUseCase.js +19 -0
  292. package/api/features/ListTasks/ListTasksUseCase.js.map +1 -0
  293. package/api/features/ListTasks/abstractions.d.ts +19 -0
  294. package/api/features/ListTasks/abstractions.js +5 -0
  295. package/api/features/ListTasks/abstractions.js.map +1 -0
  296. package/api/features/ListTasks/feature.d.ts +4 -0
  297. package/api/features/ListTasks/feature.js +11 -0
  298. package/api/features/ListTasks/feature.js.map +1 -0
  299. package/api/features/ListTasks/index.d.ts +2 -0
  300. package/api/features/ListTasks/index.js +2 -0
  301. package/api/features/TaskController/TaskController.d.ts +49 -0
  302. package/api/features/TaskController/TaskController.js +71 -0
  303. package/api/features/TaskController/TaskController.js.map +1 -0
  304. package/api/features/TaskController/augmentation.d.ts +60 -0
  305. package/api/features/TaskController/augmentation.js +0 -0
  306. package/api/features/TaskController/index.d.ts +2 -0
  307. package/api/features/TaskController/index.js +2 -0
  308. package/api/features/TaskExecutionContext/TaskExecutionContext.d.ts +24 -0
  309. package/api/features/TaskExecutionContext/TaskExecutionContext.js +43 -0
  310. package/api/features/TaskExecutionContext/TaskExecutionContext.js.map +1 -0
  311. package/api/features/TaskExecutionContext/abstractions.d.ts +26 -0
  312. package/api/features/TaskExecutionContext/abstractions.js +5 -0
  313. package/api/features/TaskExecutionContext/abstractions.js.map +1 -0
  314. package/api/features/TaskExecutionContext/feature.d.ts +4 -0
  315. package/api/features/TaskExecutionContext/feature.js +11 -0
  316. package/api/features/TaskExecutionContext/feature.js.map +1 -0
  317. package/api/features/TaskExecutionContext/index.d.ts +1 -0
  318. package/api/features/TaskExecutionContext/index.js +1 -0
  319. package/api/features/TaskHandlerResolver/TaskHandlerResolver.d.ts +12 -0
  320. package/api/features/TaskHandlerResolver/TaskHandlerResolver.js +19 -0
  321. package/api/features/TaskHandlerResolver/TaskHandlerResolver.js.map +1 -0
  322. package/api/features/TaskHandlerResolver/abstractions.d.ts +17 -0
  323. package/api/features/TaskHandlerResolver/abstractions.js +5 -0
  324. package/api/features/TaskHandlerResolver/abstractions.js.map +1 -0
  325. package/api/features/TaskHandlerResolver/feature.d.ts +9 -0
  326. package/api/features/TaskHandlerResolver/feature.js +11 -0
  327. package/api/features/TaskHandlerResolver/feature.js.map +1 -0
  328. package/api/features/TaskHandlerResolver/index.d.ts +2 -0
  329. package/api/features/TaskHandlerResolver/index.js +2 -0
  330. package/api/features/TaskService/BackgroundTaskService.d.ts +42 -0
  331. package/api/features/TaskService/BackgroundTaskService.js +191 -0
  332. package/api/features/TaskService/BackgroundTaskService.js.map +1 -0
  333. package/api/features/TaskService/feature.d.ts +4 -0
  334. package/api/features/TaskService/feature.js +11 -0
  335. package/api/features/TaskService/feature.js.map +1 -0
  336. package/api/features/TaskService/index.d.ts +1 -0
  337. package/api/features/TaskService/index.js +1 -0
  338. package/api/features/TriggerTask/TriggerTaskUseCase.d.ts +9 -0
  339. package/api/features/TriggerTask/TriggerTaskUseCase.js +12 -0
  340. package/api/features/TriggerTask/TriggerTaskUseCase.js.map +1 -0
  341. package/api/features/TriggerTask/abstractions.d.ts +28 -0
  342. package/api/features/TriggerTask/abstractions.js +5 -0
  343. package/api/features/TriggerTask/abstractions.js.map +1 -0
  344. package/api/features/TriggerTask/feature.d.ts +4 -0
  345. package/api/features/TriggerTask/feature.js +13 -0
  346. package/api/features/TriggerTask/feature.js.map +1 -0
  347. package/api/features/TriggerTask/index.d.ts +2 -0
  348. package/api/features/TriggerTask/index.js +2 -0
  349. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.d.ts +23 -0
  350. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.js +67 -0
  351. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.js.map +1 -0
  352. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.d.ts +14 -0
  353. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js +27 -0
  354. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js.map +1 -0
  355. package/api/features/UpdateBackgroundTaskSettings/abstractions.d.ts +26 -0
  356. package/api/features/UpdateBackgroundTaskSettings/abstractions.js +6 -0
  357. package/api/features/UpdateBackgroundTaskSettings/abstractions.js.map +1 -0
  358. package/api/features/UpdateBackgroundTaskSettings/feature.d.ts +4 -0
  359. package/api/features/UpdateBackgroundTaskSettings/feature.js +13 -0
  360. package/api/features/UpdateBackgroundTaskSettings/feature.js.map +1 -0
  361. package/api/features/UpdateBackgroundTaskSettings/index.d.ts +2 -0
  362. package/api/features/UpdateBackgroundTaskSettings/index.js +2 -0
  363. package/api/features/UpdateBackgroundTaskSettings/schema.d.ts +4 -0
  364. package/api/features/UpdateBackgroundTaskSettings/schema.js +8 -0
  365. package/api/features/UpdateBackgroundTaskSettings/schema.js.map +1 -0
  366. package/api/features/UpdateTask/UpdateTaskUseCase.d.ts +17 -0
  367. package/api/features/UpdateTask/UpdateTaskUseCase.js +36 -0
  368. package/api/features/UpdateTask/UpdateTaskUseCase.js.map +1 -0
  369. package/api/features/UpdateTask/abstractions.d.ts +22 -0
  370. package/api/features/UpdateTask/abstractions.js +5 -0
  371. package/api/features/UpdateTask/abstractions.js.map +1 -0
  372. package/api/features/UpdateTask/feature.d.ts +4 -0
  373. package/api/features/UpdateTask/feature.js +11 -0
  374. package/api/features/UpdateTask/feature.js.map +1 -0
  375. package/api/features/UpdateTask/index.d.ts +2 -0
  376. package/api/features/UpdateTask/index.js +2 -0
  377. package/api/features/UpdateTaskLog/UpdateTaskLogUseCase.d.ts +12 -0
  378. package/api/features/UpdateTaskLog/UpdateTaskLogUseCase.js +19 -0
  379. package/api/features/UpdateTaskLog/UpdateTaskLogUseCase.js.map +1 -0
  380. package/api/features/UpdateTaskLog/abstractions.d.ts +16 -0
  381. package/api/features/UpdateTaskLog/abstractions.js +5 -0
  382. package/api/features/UpdateTaskLog/abstractions.js.map +1 -0
  383. package/api/features/UpdateTaskLog/feature.d.ts +4 -0
  384. package/api/features/UpdateTaskLog/feature.js +11 -0
  385. package/api/features/UpdateTaskLog/feature.js.map +1 -0
  386. package/api/features/UpdateTaskLog/index.d.ts +2 -0
  387. package/api/features/UpdateTaskLog/index.js +2 -0
  388. package/api/global.d.ts +1 -0
  389. package/api/global.js +1 -0
  390. package/api/graphql/BackgroundTasksGraphQLSchema.d.ts +29 -0
  391. package/api/graphql/BackgroundTasksGraphQLSchema.js +462 -0
  392. package/api/graphql/BackgroundTasksGraphQLSchema.js.map +1 -0
  393. package/api/graphql/checkPermissions.d.ts +7 -0
  394. package/api/graphql/checkPermissions.js +22 -0
  395. package/api/graphql/checkPermissions.js.map +1 -0
  396. package/api/graphql/utils.d.ts +9 -0
  397. package/api/graphql/utils.js +20 -0
  398. package/api/graphql/utils.js.map +1 -0
  399. package/api/handler/types.d.ts +21 -0
  400. package/api/handler/types.js +0 -0
  401. package/api/index.d.ts +21 -0
  402. package/api/index.js +20 -0
  403. package/api/models/BackgroundTaskSettingsModel.d.ts +8 -0
  404. package/api/models/BackgroundTaskSettingsModel.js +27 -0
  405. package/api/models/BackgroundTaskSettingsModel.js.map +1 -0
  406. package/api/permissions.d.ts +12 -0
  407. package/api/permissions.js +22 -0
  408. package/api/permissions.js.map +1 -0
  409. package/api/response/DatabaseResponse.d.ts +12 -0
  410. package/api/response/DatabaseResponse.js +127 -0
  411. package/api/response/DatabaseResponse.js.map +1 -0
  412. package/api/response/Response.d.ts +14 -0
  413. package/api/response/Response.js +91 -0
  414. package/api/response/Response.js.map +1 -0
  415. package/api/response/ResponseAbortedResult.d.ts +9 -0
  416. package/api/response/ResponseAbortedResult.js +12 -0
  417. package/api/response/ResponseAbortedResult.js.map +1 -0
  418. package/api/response/ResponseContinueResult.d.ts +17 -0
  419. package/api/response/ResponseContinueResult.js +16 -0
  420. package/api/response/ResponseContinueResult.js.map +1 -0
  421. package/api/response/ResponseDoneResult.d.ts +11 -0
  422. package/api/response/ResponseDoneResult.js +14 -0
  423. package/api/response/ResponseDoneResult.js.map +1 -0
  424. package/api/response/ResponseErrorResult.d.ts +10 -0
  425. package/api/response/ResponseErrorResult.js +13 -0
  426. package/api/response/ResponseErrorResult.js.map +1 -0
  427. package/api/response/TaskResponse.d.ts +12 -0
  428. package/api/response/TaskResponse.js +53 -0
  429. package/api/response/TaskResponse.js.map +1 -0
  430. package/api/response/abstractions/Response.d.ts +25 -0
  431. package/api/response/abstractions/Response.js +0 -0
  432. package/api/response/abstractions/ResponseAbortedResult.d.ts +5 -0
  433. package/api/response/abstractions/ResponseAbortedResult.js +0 -0
  434. package/api/response/abstractions/ResponseBaseResult.d.ts +7 -0
  435. package/api/response/abstractions/ResponseBaseResult.js +0 -0
  436. package/api/response/abstractions/ResponseContinueResult.d.ts +21 -0
  437. package/api/response/abstractions/ResponseContinueResult.js +0 -0
  438. package/api/response/abstractions/ResponseDoneResult.d.ts +13 -0
  439. package/api/response/abstractions/ResponseDoneResult.js +0 -0
  440. package/api/response/abstractions/ResponseErrorResult.d.ts +18 -0
  441. package/api/response/abstractions/ResponseErrorResult.js +0 -0
  442. package/api/response/abstractions/TaskResponse.d.ts +16 -0
  443. package/api/response/abstractions/TaskResponse.js +0 -0
  444. package/api/response/abstractions/index.d.ts +7 -0
  445. package/api/response/abstractions/index.js +7 -0
  446. package/api/response/index.d.ts +7 -0
  447. package/api/response/index.js +7 -0
  448. package/api/runner/TaskControl.d.ts +48 -0
  449. package/api/runner/TaskControl.js +186 -0
  450. package/api/runner/TaskControl.js.map +1 -0
  451. package/api/runner/TaskEventValidation.d.ts +5 -0
  452. package/api/runner/TaskEventValidation.js +20 -0
  453. package/api/runner/TaskEventValidation.js.map +1 -0
  454. package/api/runner/TaskManager.d.ts +22 -0
  455. package/api/runner/TaskManager.js +83 -0
  456. package/api/runner/TaskManager.js.map +1 -0
  457. package/api/runner/TaskManagerStore.d.ts +57 -0
  458. package/api/runner/TaskManagerStore.js +127 -0
  459. package/api/runner/TaskManagerStore.js.map +1 -0
  460. package/api/runner/TaskRunner.d.ts +25 -0
  461. package/api/runner/TaskRunner.js +86 -0
  462. package/api/runner/TaskRunner.js.map +1 -0
  463. package/api/runner/abstractions/TaskControl.d.ts +10 -0
  464. package/api/runner/abstractions/TaskControl.js +0 -0
  465. package/api/runner/abstractions/TaskEventValidation.d.ts +5 -0
  466. package/api/runner/abstractions/TaskEventValidation.js +0 -0
  467. package/api/runner/abstractions/TaskManager.d.ts +5 -0
  468. package/api/runner/abstractions/TaskManager.js +0 -0
  469. package/api/runner/abstractions/TaskManagerStore.d.ts +92 -0
  470. package/api/runner/abstractions/TaskManagerStore.js +0 -0
  471. package/api/runner/abstractions/TaskRunner.d.ts +13 -0
  472. package/api/runner/abstractions/TaskRunner.js +0 -0
  473. package/api/runner/abstractions/index.d.ts +5 -0
  474. package/api/runner/abstractions/index.js +5 -0
  475. package/api/runner/index.d.ts +1 -0
  476. package/api/runner/index.js +1 -0
  477. package/api/tasks/testingRunTask.d.ts +19 -0
  478. package/api/tasks/testingRunTask.js +25 -0
  479. package/api/tasks/testingRunTask.js.map +1 -0
  480. package/api/types.d.ts +120 -0
  481. package/api/types.js +20 -0
  482. package/api/types.js.map +1 -0
  483. package/api/utils/ObjectUpdater.d.ts +8 -0
  484. package/api/utils/ObjectUpdater.js +33 -0
  485. package/api/utils/ObjectUpdater.js.map +1 -0
  486. package/api/utils/getErrorProperties.d.ts +2 -0
  487. package/api/utils/getErrorProperties.js +9 -0
  488. package/api/utils/getErrorProperties.js.map +1 -0
  489. package/api/utils/getObjectProperties.d.ts +8 -0
  490. package/api/utils/getObjectProperties.js +11 -0
  491. package/api/utils/getObjectProperties.js.map +1 -0
  492. package/api/utils/index.d.ts +3 -0
  493. package/api/utils/index.js +3 -0
  494. package/api/utils/normalizeSelfCleanup.d.ts +2 -0
  495. package/api/utils/normalizeSelfCleanup.js +16 -0
  496. package/api/utils/normalizeSelfCleanup.js.map +1 -0
  497. package/index.d.ts +1 -0
  498. package/index.js +1 -0
  499. package/package.json +32 -13
  500. package/testing/index.d.ts +3 -0
  501. package/testing/index.js +2 -0
  502. package/testing/mockTaskTriggerTransportPlugin.d.ts +2 -0
  503. package/testing/mockTaskTriggerTransportPlugin.js +18 -0
  504. package/testing/mockTaskTriggerTransportPlugin.js.map +1 -0
  505. package/testing/runner.d.ts +19 -0
  506. package/testing/runner.js +44 -0
  507. package/testing/runner.js.map +1 -0
@@ -0,0 +1,34 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
3
+ import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById/index.js";
4
+ import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js";
5
+ import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js";
6
+ import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js";
7
+ import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry/index.js";
8
+ import { CmsWhereMapper } from "@webiny/api-headless-cms";
9
+ import { TaskLogModelProvider, TaskLogsRepository as Abstraction } from "./abstractions.js";
10
+ import { BackgroundTaskPersistenceError, TaskLogNotFoundError } from "../../../api/domain/errors.js";
11
+ declare class TaskLogsRepositoryImpl implements Abstraction.Interface {
12
+ private readonly identityContext;
13
+ private readonly modelProvider;
14
+ private readonly getEntryById;
15
+ private readonly listLatestEntries;
16
+ private readonly createEntry;
17
+ private readonly updateEntry;
18
+ private readonly deleteEntry;
19
+ private readonly whereMapper;
20
+ constructor(identityContext: IdentityContext.Interface, modelProvider: TaskLogModelProvider.Interface, getEntryById: GetEntryByIdUseCase.Interface, listLatestEntries: ListLatestEntriesUseCase.Interface, createEntry: CreateEntryUseCase.Interface, updateEntry: UpdateEntryUseCase.Interface, deleteEntry: DeleteEntryUseCase.Interface, whereMapper: CmsWhereMapper.Interface);
21
+ create(task: Parameters<Abstraction.Interface["create"]>[0], data: Parameters<Abstraction.Interface["create"]>[1]): Promise<Result<never, BackgroundTaskPersistenceError> | Result<import("../../types.js").ITaskLog, never>>;
22
+ update(id: string, data: Parameters<Abstraction.Interface["update"]>[1]): Promise<Result<never, BackgroundTaskPersistenceError | TaskLogNotFoundError> | Result<import("../../types.js").ITaskLog, never>>;
23
+ delete(id: string): Promise<Result<void, never> | Result<never, BackgroundTaskPersistenceError | TaskLogNotFoundError>>;
24
+ get(id: string): Promise<Result<never, BackgroundTaskPersistenceError | TaskLogNotFoundError> | Result<import("../../types.js").ITaskLog, never>>;
25
+ getLatest(taskId: string): Promise<Result<never, BackgroundTaskPersistenceError> | Result<never, TaskLogNotFoundError> | Result<import("../../types.js").ITaskLog, never>>;
26
+ list(params: Parameters<Abstraction.Interface["list"]>[0]): Promise<Result<never, BackgroundTaskPersistenceError> | Result<{
27
+ items: import("../../types.js").ITaskLog[];
28
+ meta: import("@webiny/api-headless-cms/types/types.js").CmsEntryMeta;
29
+ }, never>>;
30
+ }
31
+ export declare const TaskLogsRepository: typeof TaskLogsRepositoryImpl & {
32
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ITaskLogsRepository>;
33
+ };
34
+ export {};
@@ -0,0 +1,146 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
3
+ import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById/index.js";
4
+ import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js";
5
+ import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js";
6
+ import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js";
7
+ import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry/index.js";
8
+ import { CmsWhereMapper } from "@webiny/api-headless-cms";
9
+ import { TaskLogModelProvider, TaskLogsRepository } from "./abstractions.js";
10
+ import { entryToTaskLog } from "./entryToTaskLog.js";
11
+ import { createRevisionId } from "./createRevisionId.js";
12
+ import { BackgroundTaskPersistenceError, TaskLogNotFoundError } from "../errors.js";
13
+ const ENTRY_NOT_FOUND = "Cms/Entry/NotFound";
14
+ const toLogError = (error)=>{
15
+ if (error.code === ENTRY_NOT_FOUND) return new TaskLogNotFoundError();
16
+ return BackgroundTaskPersistenceError.from(error);
17
+ };
18
+ class TaskLogsRepositoryImpl {
19
+ constructor(identityContext, modelProvider, getEntryById, listLatestEntries, createEntry, updateEntry, deleteEntry, whereMapper){
20
+ this.identityContext = identityContext;
21
+ this.modelProvider = modelProvider;
22
+ this.getEntryById = getEntryById;
23
+ this.listLatestEntries = listLatestEntries;
24
+ this.createEntry = createEntry;
25
+ this.updateEntry = updateEntry;
26
+ this.deleteEntry = deleteEntry;
27
+ this.whereMapper = whereMapper;
28
+ }
29
+ async create(task, data) {
30
+ try {
31
+ const result = await this.identityContext.withoutAuthorization(async ()=>{
32
+ const model = await this.modelProvider.get();
33
+ return this.createEntry.execute(model, {
34
+ values: {
35
+ ...data,
36
+ task: task.id
37
+ }
38
+ });
39
+ });
40
+ if (result.isFail()) return Result.fail(BackgroundTaskPersistenceError.from(result.error));
41
+ return Result.ok(entryToTaskLog(result.value));
42
+ } catch (error) {
43
+ return Result.fail(BackgroundTaskPersistenceError.from(error));
44
+ }
45
+ }
46
+ async update(id, data) {
47
+ try {
48
+ const result = await this.identityContext.withoutAuthorization(async ()=>{
49
+ const model = await this.modelProvider.get();
50
+ return this.updateEntry.execute(model, createRevisionId(id), {
51
+ values: data
52
+ });
53
+ });
54
+ if (result.isFail()) return Result.fail(toLogError(result.error));
55
+ return Result.ok(entryToTaskLog(result.value));
56
+ } catch (error) {
57
+ return Result.fail(BackgroundTaskPersistenceError.from(error));
58
+ }
59
+ }
60
+ async delete(id) {
61
+ try {
62
+ const result = await this.identityContext.withoutAuthorization(async ()=>{
63
+ const model = await this.modelProvider.get();
64
+ return this.deleteEntry.execute(model, id);
65
+ });
66
+ if (result.isFail()) return Result.fail(toLogError(result.error));
67
+ return Result.ok();
68
+ } catch (error) {
69
+ return Result.fail(BackgroundTaskPersistenceError.from(error));
70
+ }
71
+ }
72
+ async get(id) {
73
+ try {
74
+ const result = await this.identityContext.withoutAuthorization(async ()=>{
75
+ const model = await this.modelProvider.get();
76
+ return this.getEntryById.execute(model, id);
77
+ });
78
+ if (result.isFail()) return Result.fail(toLogError(result.error));
79
+ return Result.ok(entryToTaskLog(result.value));
80
+ } catch (error) {
81
+ return Result.fail(BackgroundTaskPersistenceError.from(error));
82
+ }
83
+ }
84
+ async getLatest(taskId) {
85
+ try {
86
+ const result = await this.identityContext.withoutAuthorization(async ()=>{
87
+ const model = await this.modelProvider.get();
88
+ return this.listLatestEntries.execute(model, {
89
+ where: {
90
+ values: {
91
+ task: taskId
92
+ }
93
+ },
94
+ sort: [
95
+ "createdOn_DESC"
96
+ ],
97
+ limit: 1
98
+ });
99
+ });
100
+ if (result.isFail()) return Result.fail(BackgroundTaskPersistenceError.from(result.error));
101
+ const [entry] = result.value.entries;
102
+ if (!entry) return Result.fail(new TaskLogNotFoundError());
103
+ return Result.ok(entryToTaskLog(entry));
104
+ } catch (error) {
105
+ return Result.fail(BackgroundTaskPersistenceError.from(error));
106
+ }
107
+ }
108
+ async list(params) {
109
+ try {
110
+ const result = await this.identityContext.withoutAuthorization(async ()=>{
111
+ const model = await this.modelProvider.get();
112
+ return this.listLatestEntries.execute(model, {
113
+ ...params,
114
+ where: this.whereMapper.map({
115
+ input: params.where,
116
+ fields: model.fields
117
+ })
118
+ });
119
+ });
120
+ if (result.isFail()) return Result.fail(BackgroundTaskPersistenceError.from(result.error));
121
+ const { entries, meta } = result.value;
122
+ return Result.ok({
123
+ items: entries.map((entry)=>entryToTaskLog(entry)),
124
+ meta
125
+ });
126
+ } catch (error) {
127
+ return Result.fail(BackgroundTaskPersistenceError.from(error));
128
+ }
129
+ }
130
+ }
131
+ const TaskLogsRepository_TaskLogsRepository = TaskLogsRepository.createImplementation({
132
+ implementation: TaskLogsRepositoryImpl,
133
+ dependencies: [
134
+ IdentityContext,
135
+ TaskLogModelProvider,
136
+ GetEntryByIdUseCase,
137
+ ListLatestEntriesUseCase,
138
+ CreateEntryUseCase,
139
+ UpdateEntryUseCase,
140
+ DeleteEntryUseCase,
141
+ CmsWhereMapper
142
+ ]
143
+ });
144
+ export { TaskLogsRepository_TaskLogsRepository as TaskLogsRepository };
145
+
146
+ //# sourceMappingURL=TaskLogsRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/domain/task/TaskLogsRepository.js","sources":["../../../../src/api/domain/task/TaskLogsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById/index.js\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js\";\nimport { CreateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js\";\nimport { UpdateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js\";\nimport { DeleteEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/DeleteEntry/index.js\";\nimport { CmsWhereMapper } from \"@webiny/api-headless-cms\";\nimport { TaskLogModelProvider, TaskLogsRepository as Abstraction } from \"./abstractions.js\";\nimport { entryToTaskLog } from \"./entryToTaskLog.js\";\nimport { createRevisionId } from \"./createRevisionId.js\";\nimport { BackgroundTaskPersistenceError, TaskLogNotFoundError } from \"~/api/domain/errors.js\";\n\nconst ENTRY_NOT_FOUND = \"Cms/Entry/NotFound\";\n\nconst toLogError = (error: {\n code?: string;\n}): TaskLogNotFoundError | BackgroundTaskPersistenceError => {\n if (error.code === ENTRY_NOT_FOUND) {\n return new TaskLogNotFoundError();\n }\n return BackgroundTaskPersistenceError.from(error);\n};\n\n/*\n * Task logs are stored as entries of a private CMS model, and like tasks, they're read and written\n * without authorization.\n */\nclass TaskLogsRepositoryImpl implements Abstraction.Interface {\n constructor(\n private readonly identityContext: IdentityContext.Interface,\n private readonly modelProvider: TaskLogModelProvider.Interface,\n private readonly getEntryById: GetEntryByIdUseCase.Interface,\n private readonly listLatestEntries: ListLatestEntriesUseCase.Interface,\n private readonly createEntry: CreateEntryUseCase.Interface,\n private readonly updateEntry: UpdateEntryUseCase.Interface,\n private readonly deleteEntry: DeleteEntryUseCase.Interface,\n private readonly whereMapper: CmsWhereMapper.Interface\n ) {}\n\n async create(\n task: Parameters<Abstraction.Interface[\"create\"]>[0],\n data: Parameters<Abstraction.Interface[\"create\"]>[1]\n ) {\n try {\n const result = await this.identityContext.withoutAuthorization(async () => {\n const model = await this.modelProvider.get();\n return this.createEntry.execute(model, {\n values: {\n ...data,\n task: task.id\n }\n });\n });\n if (result.isFail()) {\n return Result.fail(BackgroundTaskPersistenceError.from(result.error));\n }\n return Result.ok(entryToTaskLog(result.value));\n } catch (error) {\n return Result.fail(BackgroundTaskPersistenceError.from(error));\n }\n }\n\n async update(id: string, data: Parameters<Abstraction.Interface[\"update\"]>[1]) {\n try {\n const result = await this.identityContext.withoutAuthorization(async () => {\n const model = await this.modelProvider.get();\n return this.updateEntry.execute(model, createRevisionId(id), {\n values: data\n });\n });\n if (result.isFail()) {\n return Result.fail(toLogError(result.error));\n }\n return Result.ok(entryToTaskLog(result.value));\n } catch (error) {\n return Result.fail(BackgroundTaskPersistenceError.from(error));\n }\n }\n\n async delete(id: string) {\n try {\n const result = await this.identityContext.withoutAuthorization(async () => {\n const model = await this.modelProvider.get();\n return this.deleteEntry.execute(model, id);\n });\n if (result.isFail()) {\n return Result.fail(toLogError(result.error));\n }\n return Result.ok();\n } catch (error) {\n return Result.fail(BackgroundTaskPersistenceError.from(error));\n }\n }\n\n async get(id: string) {\n try {\n const result = await this.identityContext.withoutAuthorization(async () => {\n const model = await this.modelProvider.get();\n return this.getEntryById.execute(model, id);\n });\n if (result.isFail()) {\n return Result.fail(toLogError(result.error));\n }\n return Result.ok(entryToTaskLog(result.value));\n } catch (error) {\n return Result.fail(BackgroundTaskPersistenceError.from(error));\n }\n }\n\n async getLatest(taskId: string) {\n try {\n const result = await this.identityContext.withoutAuthorization(async () => {\n const model = await this.modelProvider.get();\n return this.listLatestEntries.execute(model, {\n where: {\n values: {\n task: taskId\n }\n },\n sort: [\"createdOn_DESC\"],\n limit: 1\n });\n });\n if (result.isFail()) {\n return Result.fail(BackgroundTaskPersistenceError.from(result.error));\n }\n const [entry] = result.value.entries;\n if (!entry) {\n return Result.fail(new TaskLogNotFoundError());\n }\n return Result.ok(entryToTaskLog(entry));\n } catch (error) {\n return Result.fail(BackgroundTaskPersistenceError.from(error));\n }\n }\n\n async list(params: Parameters<Abstraction.Interface[\"list\"]>[0]) {\n try {\n const result = await this.identityContext.withoutAuthorization(async () => {\n const model = await this.modelProvider.get();\n return this.listLatestEntries.execute(model, {\n ...params,\n where: this.whereMapper.map({\n input: params.where,\n fields: model.fields\n })\n });\n });\n if (result.isFail()) {\n return Result.fail(BackgroundTaskPersistenceError.from(result.error));\n }\n const { entries, meta } = result.value;\n return Result.ok({\n items: entries.map(entry => entryToTaskLog(entry)),\n meta\n });\n } catch (error) {\n return Result.fail(BackgroundTaskPersistenceError.from(error));\n }\n }\n}\n\nexport const TaskLogsRepository = Abstraction.createImplementation({\n implementation: TaskLogsRepositoryImpl,\n dependencies: [\n IdentityContext,\n TaskLogModelProvider,\n GetEntryByIdUseCase,\n ListLatestEntriesUseCase,\n CreateEntryUseCase,\n UpdateEntryUseCase,\n DeleteEntryUseCase,\n CmsWhereMapper\n ]\n});\n"],"names":["ENTRY_NOT_FOUND","toLogError","error","TaskLogNotFoundError","BackgroundTaskPersistenceError","TaskLogsRepositoryImpl","identityContext","modelProvider","getEntryById","listLatestEntries","createEntry","updateEntry","deleteEntry","whereMapper","task","data","result","model","Result","entryToTaskLog","id","createRevisionId","taskId","entry","params","entries","meta","TaskLogsRepository","Abstraction","IdentityContext","TaskLogModelProvider","GetEntryByIdUseCase","ListLatestEntriesUseCase","CreateEntryUseCase","UpdateEntryUseCase","DeleteEntryUseCase","CmsWhereMapper"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ import { GetModelUseCase } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
3
+ import { TaskModelProvider as Abstraction } from "./abstractions.js";
4
+ declare class TaskModelProviderImpl implements Abstraction.Interface {
5
+ private readonly getModel;
6
+ constructor(getModel: GetModelUseCase.Interface);
7
+ get(): Promise<CmsModel>;
8
+ }
9
+ export declare const TaskModelProvider: typeof TaskModelProviderImpl & {
10
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ITaskModelProvider>;
11
+ };
12
+ export {};
@@ -0,0 +1,23 @@
1
+ import { GetModelUseCase } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
2
+ import { TaskModelProvider } from "./abstractions.js";
3
+ import { BackgroundTaskModelNotFoundError } from "../errors.js";
4
+ import { WEBINY_TASK_MODEL_ID } from "../../crud/TaskPrivateModel.js";
5
+ class TaskModelProviderImpl {
6
+ constructor(getModel){
7
+ this.getModel = getModel;
8
+ }
9
+ async get() {
10
+ const result = await this.getModel.execute(WEBINY_TASK_MODEL_ID);
11
+ if (result.isFail()) throw new BackgroundTaskModelNotFoundError(WEBINY_TASK_MODEL_ID);
12
+ return result.value;
13
+ }
14
+ }
15
+ const TaskModelProvider_TaskModelProvider = TaskModelProvider.createImplementation({
16
+ implementation: TaskModelProviderImpl,
17
+ dependencies: [
18
+ GetModelUseCase
19
+ ]
20
+ });
21
+ export { TaskModelProvider_TaskModelProvider as TaskModelProvider };
22
+
23
+ //# sourceMappingURL=TaskModelProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/domain/task/TaskModelProvider.js","sources":["../../../../src/api/domain/task/TaskModelProvider.ts"],"sourcesContent":["import type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport { GetModelUseCase } from \"@webiny/api-headless-cms/features/contentModel/GetModel/index.js\";\nimport { TaskModelProvider as Abstraction } from \"./abstractions.js\";\nimport { BackgroundTaskModelNotFoundError } from \"~/api/domain/errors.js\";\nimport { WEBINY_TASK_MODEL_ID } from \"~/api/crud/TaskPrivateModel.js\";\n\nclass TaskModelProviderImpl implements Abstraction.Interface {\n constructor(private readonly getModel: GetModelUseCase.Interface) {}\n\n async get(): Promise<CmsModel> {\n const result = await this.getModel.execute(WEBINY_TASK_MODEL_ID);\n if (result.isFail()) {\n throw new BackgroundTaskModelNotFoundError(WEBINY_TASK_MODEL_ID);\n }\n return result.value;\n }\n}\n\nexport const TaskModelProvider = Abstraction.createImplementation({\n implementation: TaskModelProviderImpl,\n dependencies: [GetModelUseCase]\n});\n"],"names":["TaskModelProviderImpl","getModel","result","WEBINY_TASK_MODEL_ID","BackgroundTaskModelNotFoundError","TaskModelProvider","Abstraction","GetModelUseCase"],"mappings":";;;;AAMA,MAAMA;IACF,YAA6BC,QAAmC,CAAE;aAArCA,QAAQ,GAARA;IAAsC;IAEnE,MAAM,MAAyB;QAC3B,MAAMC,SAAS,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAACC;QAC3C,IAAID,OAAO,MAAM,IACb,MAAM,IAAIE,iCAAiCD;QAE/C,OAAOD,OAAO,KAAK;IACvB;AACJ;AAEO,MAAMG,sCAAoBC,kBAAAA,oBAAgC,CAAC;IAC9D,gBAAgBN;IAChB,cAAc;QAACO;KAAgB;AACnC"}
@@ -0,0 +1,37 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
3
+ import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById/index.js";
4
+ import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js";
5
+ import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js";
6
+ import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js";
7
+ import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry/index.js";
8
+ import { CmsWhereMapper } from "@webiny/api-headless-cms";
9
+ import { TaskModelProvider, TasksRepository as Abstraction } from "./abstractions.js";
10
+ import { BackgroundTaskPersistenceError, TaskNotFoundError } from "../../../api/domain/errors.js";
11
+ import type { IListTaskParams, ITaskCreateData, ITaskUpdateData } from "../../../api/types.js";
12
+ import type { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
13
+ type TaskInput = TaskService.TaskInput;
14
+ type TaskOutput = TaskService.GenericOutput;
15
+ declare class TasksRepositoryImpl implements Abstraction.Interface {
16
+ private readonly identityContext;
17
+ private readonly modelProvider;
18
+ private readonly getEntryById;
19
+ private readonly listLatestEntries;
20
+ private readonly createEntry;
21
+ private readonly updateEntry;
22
+ private readonly deleteEntry;
23
+ private readonly whereMapper;
24
+ constructor(identityContext: IdentityContext.Interface, modelProvider: TaskModelProvider.Interface, getEntryById: GetEntryByIdUseCase.Interface, listLatestEntries: ListLatestEntriesUseCase.Interface, createEntry: CreateEntryUseCase.Interface, updateEntry: UpdateEntryUseCase.Interface, deleteEntry: DeleteEntryUseCase.Interface, whereMapper: CmsWhereMapper.Interface);
25
+ get<I extends TaskInput = TaskInput, O extends TaskOutput = TaskOutput>(id: string): Promise<Result<never, BackgroundTaskPersistenceError | TaskNotFoundError> | Result<TaskService.Task<I, O>, never>>;
26
+ list<I extends TaskInput = TaskInput, O extends TaskOutput = TaskOutput>(params?: IListTaskParams): Promise<Result<never, BackgroundTaskPersistenceError> | Result<{
27
+ items: TaskService.Task<I, O>[];
28
+ meta: import("@webiny/api-headless-cms/types/types.js").CmsEntryMeta;
29
+ }, never>>;
30
+ create<I extends TaskInput = TaskInput>(data: ITaskCreateData<I>): Promise<Result<never, BackgroundTaskPersistenceError> | Result<TaskService.Task<I, import("@webiny/api-core/features/task/TaskService/abstractions.js").IGenericOutput>, never>>;
31
+ update<I extends TaskInput = TaskInput, O extends TaskOutput = TaskOutput>(id: string, data: Partial<ITaskUpdateData<I, O>>): Promise<Result<never, BackgroundTaskPersistenceError | TaskNotFoundError> | Result<TaskService.Task<I, O>, never>>;
32
+ delete(id: string): Promise<Result<void, never> | Result<never, BackgroundTaskPersistenceError | TaskNotFoundError>>;
33
+ }
34
+ export declare const TasksRepository: typeof TasksRepositoryImpl & {
35
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ITasksRepository>;
36
+ };
37
+ export {};
@@ -0,0 +1,126 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
3
+ import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById/index.js";
4
+ import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js";
5
+ import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js";
6
+ import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js";
7
+ import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry/index.js";
8
+ import { CmsWhereMapper } from "@webiny/api-headless-cms";
9
+ import { TaskModelProvider, TasksRepository } from "./abstractions.js";
10
+ import { entryToTask } from "./entryToTask.js";
11
+ import { createRevisionId } from "./createRevisionId.js";
12
+ import { BackgroundTaskPersistenceError, TaskNotFoundError } from "../errors.js";
13
+ import { TaskDataStatus } from "../../types.js";
14
+ const ENTRY_NOT_FOUND = "Cms/Entry/NotFound";
15
+ const toTaskError = (error)=>{
16
+ if (error.code === ENTRY_NOT_FOUND) return new TaskNotFoundError();
17
+ return BackgroundTaskPersistenceError.from(error);
18
+ };
19
+ class TasksRepositoryImpl {
20
+ constructor(identityContext, modelProvider, getEntryById, listLatestEntries, createEntry, updateEntry, deleteEntry, whereMapper){
21
+ this.identityContext = identityContext;
22
+ this.modelProvider = modelProvider;
23
+ this.getEntryById = getEntryById;
24
+ this.listLatestEntries = listLatestEntries;
25
+ this.createEntry = createEntry;
26
+ this.updateEntry = updateEntry;
27
+ this.deleteEntry = deleteEntry;
28
+ this.whereMapper = whereMapper;
29
+ }
30
+ async get(id) {
31
+ try {
32
+ const result = await this.identityContext.withoutAuthorization(async ()=>{
33
+ const model = await this.modelProvider.get();
34
+ return this.getEntryById.execute(model, createRevisionId(id));
35
+ });
36
+ if (result.isFail()) return Result.fail(toTaskError(result.error));
37
+ return Result.ok(entryToTask(result.value));
38
+ } catch (error) {
39
+ return Result.fail(BackgroundTaskPersistenceError.from(error));
40
+ }
41
+ }
42
+ async list(params) {
43
+ try {
44
+ const result = await this.identityContext.withoutAuthorization(async ()=>{
45
+ const model = await this.modelProvider.get();
46
+ return this.listLatestEntries.execute(model, {
47
+ ...params,
48
+ where: this.whereMapper.map({
49
+ input: params?.where,
50
+ fields: model.fields
51
+ })
52
+ });
53
+ });
54
+ if (result.isFail()) return Result.fail(BackgroundTaskPersistenceError.from(result.error));
55
+ const { entries, meta } = result.value;
56
+ return Result.ok({
57
+ items: entries.map((entry)=>entryToTask(entry)),
58
+ meta
59
+ });
60
+ } catch (error) {
61
+ return Result.fail(BackgroundTaskPersistenceError.from(error));
62
+ }
63
+ }
64
+ async create(data) {
65
+ try {
66
+ const result = await this.identityContext.withoutAuthorization(async ()=>{
67
+ const model = await this.modelProvider.get();
68
+ return this.createEntry.execute(model, {
69
+ values: {
70
+ ...data,
71
+ iterations: 0,
72
+ taskStatus: TaskDataStatus.PENDING
73
+ }
74
+ });
75
+ });
76
+ if (result.isFail()) return Result.fail(BackgroundTaskPersistenceError.from(result.error));
77
+ return Result.ok(entryToTask(result.value));
78
+ } catch (error) {
79
+ return Result.fail(BackgroundTaskPersistenceError.from(error));
80
+ }
81
+ }
82
+ async update(id, data) {
83
+ try {
84
+ const result = await this.identityContext.withoutAuthorization(async ()=>{
85
+ const model = await this.modelProvider.get();
86
+ return this.updateEntry.execute(model, createRevisionId(id), {
87
+ values: {
88
+ ...data
89
+ }
90
+ });
91
+ });
92
+ if (result.isFail()) return Result.fail(toTaskError(result.error));
93
+ return Result.ok(entryToTask(result.value));
94
+ } catch (error) {
95
+ return Result.fail(BackgroundTaskPersistenceError.from(error));
96
+ }
97
+ }
98
+ async delete(id) {
99
+ try {
100
+ const result = await this.identityContext.withoutAuthorization(async ()=>{
101
+ const model = await this.modelProvider.get();
102
+ return this.deleteEntry.execute(model, createRevisionId(id));
103
+ });
104
+ if (result.isFail()) return Result.fail(toTaskError(result.error));
105
+ return Result.ok();
106
+ } catch (error) {
107
+ return Result.fail(BackgroundTaskPersistenceError.from(error));
108
+ }
109
+ }
110
+ }
111
+ const TasksRepository_TasksRepository = TasksRepository.createImplementation({
112
+ implementation: TasksRepositoryImpl,
113
+ dependencies: [
114
+ IdentityContext,
115
+ TaskModelProvider,
116
+ GetEntryByIdUseCase,
117
+ ListLatestEntriesUseCase,
118
+ CreateEntryUseCase,
119
+ UpdateEntryUseCase,
120
+ DeleteEntryUseCase,
121
+ CmsWhereMapper
122
+ ]
123
+ });
124
+ export { TasksRepository_TasksRepository as TasksRepository };
125
+
126
+ //# sourceMappingURL=TasksRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/domain/task/TasksRepository.js","sources":["../../../../src/api/domain/task/TasksRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById/index.js\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js\";\nimport { CreateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js\";\nimport { UpdateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js\";\nimport { DeleteEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/DeleteEntry/index.js\";\nimport { CmsWhereMapper } from \"@webiny/api-headless-cms\";\nimport { TaskModelProvider, TasksRepository as Abstraction } from \"./abstractions.js\";\nimport { entryToTask } from \"./entryToTask.js\";\nimport { createRevisionId } from \"./createRevisionId.js\";\nimport { BackgroundTaskPersistenceError, TaskNotFoundError } from \"~/api/domain/errors.js\";\nimport { TaskDataStatus } from \"~/api/types.js\";\nimport type { IListTaskParams, ITaskCreateData, ITaskUpdateData } from \"~/api/types.js\";\nimport type { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\n\ntype TaskInput = TaskService.TaskInput;\ntype TaskOutput = TaskService.GenericOutput;\n\nconst ENTRY_NOT_FOUND = \"Cms/Entry/NotFound\";\n\nconst toTaskError = (error: {\n code?: string;\n}): TaskNotFoundError | BackgroundTaskPersistenceError => {\n if (error.code === ENTRY_NOT_FOUND) {\n return new TaskNotFoundError();\n }\n return BackgroundTaskPersistenceError.from(error);\n};\n\n/*\n * Tasks are stored as entries of a private CMS model. The calls run without authorization: who may\n * see or run a task is decided by the task use cases and the GraphQL layer, not by CMS permissions.\n */\nclass TasksRepositoryImpl implements Abstraction.Interface {\n constructor(\n private readonly identityContext: IdentityContext.Interface,\n private readonly modelProvider: TaskModelProvider.Interface,\n private readonly getEntryById: GetEntryByIdUseCase.Interface,\n private readonly listLatestEntries: ListLatestEntriesUseCase.Interface,\n private readonly createEntry: CreateEntryUseCase.Interface,\n private readonly updateEntry: UpdateEntryUseCase.Interface,\n private readonly deleteEntry: DeleteEntryUseCase.Interface,\n private readonly whereMapper: CmsWhereMapper.Interface\n ) {}\n\n async get<I extends TaskInput = TaskInput, O extends TaskOutput = TaskOutput>(id: string) {\n try {\n const result = await this.identityContext.withoutAuthorization(async () => {\n const model = await this.modelProvider.get();\n return this.getEntryById.execute(model, createRevisionId(id));\n });\n if (result.isFail()) {\n return Result.fail(toTaskError(result.error));\n }\n return Result.ok(entryToTask<I, O>(result.value));\n } catch (error) {\n return Result.fail(BackgroundTaskPersistenceError.from(error));\n }\n }\n\n async list<I extends TaskInput = TaskInput, O extends TaskOutput = TaskOutput>(\n params?: IListTaskParams\n ) {\n try {\n const result = await this.identityContext.withoutAuthorization(async () => {\n const model = await this.modelProvider.get();\n return this.listLatestEntries.execute(model, {\n ...params,\n where: this.whereMapper.map({\n input: params?.where,\n fields: model.fields\n })\n });\n });\n if (result.isFail()) {\n return Result.fail(BackgroundTaskPersistenceError.from(result.error));\n }\n const { entries, meta } = result.value;\n return Result.ok({\n items: entries.map(entry => entryToTask<I, O>(entry)),\n meta\n });\n } catch (error) {\n return Result.fail(BackgroundTaskPersistenceError.from(error));\n }\n }\n\n async create<I extends TaskInput = TaskInput>(data: ITaskCreateData<I>) {\n try {\n const result = await this.identityContext.withoutAuthorization(async () => {\n const model = await this.modelProvider.get();\n return this.createEntry.execute(model, {\n values: {\n ...data,\n iterations: 0,\n taskStatus: TaskDataStatus.PENDING\n }\n });\n });\n if (result.isFail()) {\n return Result.fail(BackgroundTaskPersistenceError.from(result.error));\n }\n return Result.ok(entryToTask<I>(result.value));\n } catch (error) {\n return Result.fail(BackgroundTaskPersistenceError.from(error));\n }\n }\n\n async update<I extends TaskInput = TaskInput, O extends TaskOutput = TaskOutput>(\n id: string,\n data: Partial<ITaskUpdateData<I, O>>\n ) {\n try {\n const result = await this.identityContext.withoutAuthorization(async () => {\n const model = await this.modelProvider.get();\n return this.updateEntry.execute(model, createRevisionId(id), {\n values: { ...data }\n });\n });\n if (result.isFail()) {\n return Result.fail(toTaskError(result.error));\n }\n return Result.ok(entryToTask<I, O>(result.value));\n } catch (error) {\n return Result.fail(BackgroundTaskPersistenceError.from(error));\n }\n }\n\n async delete(id: string) {\n try {\n const result = await this.identityContext.withoutAuthorization(async () => {\n const model = await this.modelProvider.get();\n return this.deleteEntry.execute(model, createRevisionId(id));\n });\n if (result.isFail()) {\n return Result.fail(toTaskError(result.error));\n }\n return Result.ok();\n } catch (error) {\n return Result.fail(BackgroundTaskPersistenceError.from(error));\n }\n }\n}\n\nexport const TasksRepository = Abstraction.createImplementation({\n implementation: TasksRepositoryImpl,\n dependencies: [\n IdentityContext,\n TaskModelProvider,\n GetEntryByIdUseCase,\n ListLatestEntriesUseCase,\n CreateEntryUseCase,\n UpdateEntryUseCase,\n DeleteEntryUseCase,\n CmsWhereMapper\n ]\n});\n"],"names":["ENTRY_NOT_FOUND","toTaskError","error","TaskNotFoundError","BackgroundTaskPersistenceError","TasksRepositoryImpl","identityContext","modelProvider","getEntryById","listLatestEntries","createEntry","updateEntry","deleteEntry","whereMapper","id","result","model","createRevisionId","Result","entryToTask","params","entries","meta","entry","data","TaskDataStatus","TasksRepository","Abstraction","IdentityContext","TaskModelProvider","GetEntryByIdUseCase","ListLatestEntriesUseCase","CreateEntryUseCase","UpdateEntryUseCase","DeleteEntryUseCase","CmsWhereMapper"],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { type Result } from "@webiny/feature/api";
2
+ import type { CmsModel } from "@webiny/api-headless-cms/types/index.js";
3
+ import type { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
4
+ import type { IListTaskLogParams, IListTaskLogsResponse, IListTaskParams, IListTasksResponse, ITaskCreateData, ITaskLog, ITaskLogCreateInput, ITaskLogUpdateInput, ITaskUpdateData } from "../../../api/types.js";
5
+ import type { BackgroundTaskPersistenceError, TaskLogNotFoundError, TaskNotFoundError } from "../../../api/domain/errors.js";
6
+ export interface ITaskModelProvider {
7
+ get(): Promise<CmsModel>;
8
+ }
9
+ /** The private CMS model that stores background tasks. */
10
+ export declare const TaskModelProvider: import("@webiny/di").Abstraction<ITaskModelProvider>;
11
+ export declare namespace TaskModelProvider {
12
+ type Interface = ITaskModelProvider;
13
+ }
14
+ export interface ITaskLogModelProvider {
15
+ get(): Promise<CmsModel>;
16
+ }
17
+ /** The private CMS model that stores background task logs. */
18
+ export declare const TaskLogModelProvider: import("@webiny/di").Abstraction<ITaskLogModelProvider>;
19
+ export declare namespace TaskLogModelProvider {
20
+ type Interface = ITaskLogModelProvider;
21
+ }
22
+ type TaskInput = TaskService.TaskInput;
23
+ type TaskOutput = TaskService.GenericOutput;
24
+ export interface ITasksRepository {
25
+ get<I extends TaskInput = TaskInput, O extends TaskOutput = TaskOutput>(id: string): Promise<Result<TaskService.Task<I, O>, TaskNotFoundError | BackgroundTaskPersistenceError>>;
26
+ list<I extends TaskInput = TaskInput, O extends TaskOutput = TaskOutput>(params?: IListTaskParams): Promise<Result<IListTasksResponse<I, O>, BackgroundTaskPersistenceError>>;
27
+ create<I extends TaskInput = TaskInput>(data: ITaskCreateData<I>): Promise<Result<TaskService.Task<I>, BackgroundTaskPersistenceError>>;
28
+ update<I extends TaskInput = TaskInput, O extends TaskOutput = TaskOutput>(id: string, data: Partial<ITaskUpdateData<I, O>>): Promise<Result<TaskService.Task<I, O>, TaskNotFoundError | BackgroundTaskPersistenceError>>;
29
+ delete(id: string): Promise<Result<void, TaskNotFoundError | BackgroundTaskPersistenceError>>;
30
+ }
31
+ /** Reads and writes background tasks. Publishes no events; the task use cases do that. */
32
+ export declare const TasksRepository: import("@webiny/di").Abstraction<ITasksRepository>;
33
+ export declare namespace TasksRepository {
34
+ type Interface = ITasksRepository;
35
+ }
36
+ type LogError = TaskLogNotFoundError | BackgroundTaskPersistenceError;
37
+ export interface ITaskLogsRepository {
38
+ create(task: Pick<TaskService.Task, "id">, data: ITaskLogCreateInput): Promise<Result<ITaskLog, BackgroundTaskPersistenceError>>;
39
+ update(id: string, data: ITaskLogUpdateInput): Promise<Result<ITaskLog, LogError>>;
40
+ delete(id: string): Promise<Result<void, LogError>>;
41
+ get(id: string): Promise<Result<ITaskLog, LogError>>;
42
+ getLatest(taskId: string): Promise<Result<ITaskLog, LogError>>;
43
+ list(params: IListTaskLogParams): Promise<Result<IListTaskLogsResponse, BackgroundTaskPersistenceError>>;
44
+ }
45
+ /** Reads and writes the logs of background tasks. */
46
+ export declare const TaskLogsRepository: import("@webiny/di").Abstraction<ITaskLogsRepository>;
47
+ export declare namespace TaskLogsRepository {
48
+ type Interface = ITaskLogsRepository;
49
+ }
50
+ export {};
@@ -0,0 +1,8 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const TaskModelProvider = createAbstraction("Tasks/TaskModelProvider");
3
+ const TaskLogModelProvider = createAbstraction("Tasks/TaskLogModelProvider");
4
+ const TasksRepository = createAbstraction("Tasks/TasksRepository");
5
+ const TaskLogsRepository = createAbstraction("Tasks/TaskLogsRepository");
6
+ export { TaskLogModelProvider, TaskLogsRepository, TaskModelProvider, TasksRepository };
7
+
8
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/domain/task/abstractions.js","sources":["../../../../src/api/domain/task/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport type {\n IListTaskLogParams,\n IListTaskLogsResponse,\n IListTaskParams,\n IListTasksResponse,\n ITaskCreateData,\n ITaskLog,\n ITaskLogCreateInput,\n ITaskLogUpdateInput,\n ITaskUpdateData\n} from \"~/api/types.js\";\nimport type {\n BackgroundTaskPersistenceError,\n TaskLogNotFoundError,\n TaskNotFoundError\n} from \"~/api/domain/errors.js\";\n\n// ============================================================================\n// Model providers\n// ============================================================================\n\nexport interface ITaskModelProvider {\n get(): Promise<CmsModel>;\n}\n\n/** The private CMS model that stores background tasks. */\nexport const TaskModelProvider = createAbstraction<ITaskModelProvider>(\"Tasks/TaskModelProvider\");\n\nexport namespace TaskModelProvider {\n export type Interface = ITaskModelProvider;\n}\n\nexport interface ITaskLogModelProvider {\n get(): Promise<CmsModel>;\n}\n\n/** The private CMS model that stores background task logs. */\nexport const TaskLogModelProvider = createAbstraction<ITaskLogModelProvider>(\n \"Tasks/TaskLogModelProvider\"\n);\n\nexport namespace TaskLogModelProvider {\n export type Interface = ITaskLogModelProvider;\n}\n\n// ============================================================================\n// Tasks repository\n// ============================================================================\n\ntype TaskInput = TaskService.TaskInput;\ntype TaskOutput = TaskService.GenericOutput;\n\nexport interface ITasksRepository {\n get<I extends TaskInput = TaskInput, O extends TaskOutput = TaskOutput>(\n id: string\n ): Promise<Result<TaskService.Task<I, O>, TaskNotFoundError | BackgroundTaskPersistenceError>>;\n list<I extends TaskInput = TaskInput, O extends TaskOutput = TaskOutput>(\n params?: IListTaskParams\n ): Promise<Result<IListTasksResponse<I, O>, BackgroundTaskPersistenceError>>;\n create<I extends TaskInput = TaskInput>(\n data: ITaskCreateData<I>\n ): Promise<Result<TaskService.Task<I>, BackgroundTaskPersistenceError>>;\n update<I extends TaskInput = TaskInput, O extends TaskOutput = TaskOutput>(\n id: string,\n data: Partial<ITaskUpdateData<I, O>>\n ): Promise<Result<TaskService.Task<I, O>, TaskNotFoundError | BackgroundTaskPersistenceError>>;\n delete(id: string): Promise<Result<void, TaskNotFoundError | BackgroundTaskPersistenceError>>;\n}\n\n/** Reads and writes background tasks. Publishes no events; the task use cases do that. */\nexport const TasksRepository = createAbstraction<ITasksRepository>(\"Tasks/TasksRepository\");\n\nexport namespace TasksRepository {\n export type Interface = ITasksRepository;\n}\n\n// ============================================================================\n// Task logs repository\n// ============================================================================\n\ntype LogError = TaskLogNotFoundError | BackgroundTaskPersistenceError;\n\nexport interface ITaskLogsRepository {\n create(\n task: Pick<TaskService.Task, \"id\">,\n data: ITaskLogCreateInput\n ): Promise<Result<ITaskLog, BackgroundTaskPersistenceError>>;\n update(id: string, data: ITaskLogUpdateInput): Promise<Result<ITaskLog, LogError>>;\n delete(id: string): Promise<Result<void, LogError>>;\n get(id: string): Promise<Result<ITaskLog, LogError>>;\n getLatest(taskId: string): Promise<Result<ITaskLog, LogError>>;\n list(\n params: IListTaskLogParams\n ): Promise<Result<IListTaskLogsResponse, BackgroundTaskPersistenceError>>;\n}\n\n/** Reads and writes the logs of background tasks. */\nexport const TaskLogsRepository = createAbstraction<ITaskLogsRepository>(\n \"Tasks/TaskLogsRepository\"\n);\n\nexport namespace TaskLogsRepository {\n export type Interface = ITaskLogsRepository;\n}\n"],"names":["TaskModelProvider","createAbstraction","TaskLogModelProvider","TasksRepository","TaskLogsRepository"],"mappings":";AA6BO,MAAMA,oBAAoBC,kBAAsC;AAWhE,MAAMC,uBAAuBD,kBAChC;AAgCG,MAAME,kBAAkBF,kBAAoC;AA2B5D,MAAMG,qBAAqBH,kBAC9B"}
@@ -0,0 +1 @@
1
+ export declare const createRevisionId: (id: string) => string;
@@ -0,0 +1,8 @@
1
+ import { parseIdentifier } from "@webiny/utils";
2
+ const createRevisionId = (id)=>{
3
+ const { id: entryId } = parseIdentifier(id);
4
+ return `${entryId}#0001`;
5
+ };
6
+ export { createRevisionId };
7
+
8
+ //# sourceMappingURL=createRevisionId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/domain/task/createRevisionId.js","sources":["../../../../src/api/domain/task/createRevisionId.ts"],"sourcesContent":["import { parseIdentifier } from \"@webiny/utils\";\n\n// Tasks and logs are never revised, so every entry lives in its first revision.\nexport const createRevisionId = (id: string): string => {\n const { id: entryId } = parseIdentifier(id);\n return `${entryId}#0001`;\n};\n"],"names":["createRevisionId","id","entryId","parseIdentifier"],"mappings":";AAGO,MAAMA,mBAAmB,CAACC;IAC7B,MAAM,EAAE,IAAIC,OAAO,EAAE,GAAGC,gBAAgBF;IACxC,OAAO,GAAGC,QAAQ,KAAK,CAAC;AAC5B"}
@@ -0,0 +1,3 @@
1
+ import type { CmsEntry } from "@webiny/api-headless-cms/types/index.js";
2
+ import type { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
3
+ export declare const entryToTask: <I extends TaskService.TaskInput = TaskService.TaskInput, O extends TaskService.GenericOutput = TaskService.GenericOutput>(entry: CmsEntry) => TaskService.Task<I, O>;
@@ -0,0 +1,20 @@
1
+ const entryToTask = (entry)=>({
2
+ id: entry.entryId,
3
+ createdOn: entry.createdOn,
4
+ savedOn: entry.savedOn,
5
+ createdBy: entry.createdBy,
6
+ name: entry.values.name,
7
+ definitionId: entry.values.definitionId,
8
+ input: entry.values.input,
9
+ output: entry.values.output,
10
+ taskStatus: entry.values.taskStatus,
11
+ executionName: entry.values.executionName || "",
12
+ eventResponse: entry.values.eventResponse,
13
+ startedOn: entry.values.startedOn,
14
+ finishedOn: entry.values.finishedOn,
15
+ iterations: entry.values.iterations,
16
+ parentId: entry.values.parentId
17
+ });
18
+ export { entryToTask };
19
+
20
+ //# sourceMappingURL=entryToTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/domain/task/entryToTask.js","sources":["../../../../src/api/domain/task/entryToTask.ts"],"sourcesContent":["import type { CmsEntry } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\n\nexport const entryToTask = <\n I extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n>(\n entry: CmsEntry\n): TaskService.Task<I, O> => {\n return {\n id: entry.entryId,\n createdOn: entry.createdOn,\n savedOn: entry.savedOn,\n createdBy: entry.createdBy,\n name: entry.values.name,\n definitionId: entry.values.definitionId,\n input: entry.values.input,\n output: entry.values.output,\n taskStatus: entry.values.taskStatus,\n executionName: entry.values.executionName || \"\",\n eventResponse: entry.values.eventResponse,\n startedOn: entry.values.startedOn,\n finishedOn: entry.values.finishedOn,\n iterations: entry.values.iterations,\n parentId: entry.values.parentId\n };\n};\n"],"names":["entryToTask","entry"],"mappings":"AAGO,MAAMA,cAAc,CAIvBC,QAEO;QACH,IAAIA,MAAM,OAAO;QACjB,WAAWA,MAAM,SAAS;QAC1B,SAASA,MAAM,OAAO;QACtB,WAAWA,MAAM,SAAS;QAC1B,MAAMA,MAAM,MAAM,CAAC,IAAI;QACvB,cAAcA,MAAM,MAAM,CAAC,YAAY;QACvC,OAAOA,MAAM,MAAM,CAAC,KAAK;QACzB,QAAQA,MAAM,MAAM,CAAC,MAAM;QAC3B,YAAYA,MAAM,MAAM,CAAC,UAAU;QACnC,eAAeA,MAAM,MAAM,CAAC,aAAa,IAAI;QAC7C,eAAeA,MAAM,MAAM,CAAC,aAAa;QACzC,WAAWA,MAAM,MAAM,CAAC,SAAS;QACjC,YAAYA,MAAM,MAAM,CAAC,UAAU;QACnC,YAAYA,MAAM,MAAM,CAAC,UAAU;QACnC,UAAUA,MAAM,MAAM,CAAC,QAAQ;IACnC"}
@@ -0,0 +1,3 @@
1
+ import type { CmsEntry } from "@webiny/api-headless-cms/types/index.js";
2
+ import type { ITaskLog } from "../../../api/types.js";
3
+ export declare const entryToTaskLog: (entry: CmsEntry) => ITaskLog;
@@ -0,0 +1,12 @@
1
+ const entryToTaskLog = (entry)=>({
2
+ id: entry.entryId,
3
+ createdOn: entry.createdOn,
4
+ createdBy: entry.createdBy,
5
+ executionName: entry.values.executionName,
6
+ task: entry.values.task,
7
+ iteration: entry.values.iteration,
8
+ items: entry.values.items || []
9
+ });
10
+ export { entryToTaskLog };
11
+
12
+ //# sourceMappingURL=entryToTaskLog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/domain/task/entryToTaskLog.js","sources":["../../../../src/api/domain/task/entryToTaskLog.ts"],"sourcesContent":["import type { CmsEntry } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { ITaskLog } from \"~/api/types.js\";\n\nexport const entryToTaskLog = (entry: CmsEntry): ITaskLog => {\n return {\n id: entry.entryId,\n createdOn: entry.createdOn,\n createdBy: entry.createdBy,\n executionName: entry.values.executionName,\n task: entry.values.task,\n iteration: entry.values.iteration,\n items: entry.values.items || []\n };\n};\n"],"names":["entryToTaskLog","entry"],"mappings":"AAGO,MAAMA,iBAAiB,CAACC,QACpB;QACH,IAAIA,MAAM,OAAO;QACjB,WAAWA,MAAM,SAAS;QAC1B,WAAWA,MAAM,SAAS;QAC1B,eAAeA,MAAM,MAAM,CAAC,aAAa;QACzC,MAAMA,MAAM,MAAM,CAAC,IAAI;QACvB,WAAWA,MAAM,MAAM,CAAC,SAAS;QACjC,OAAOA,MAAM,MAAM,CAAC,KAAK,IAAI,EAAE;IACnC"}
@@ -0,0 +1,6 @@
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import { TaskAfterCreatePayload } from "./abstractions.js";
3
+ export declare class TaskAfterCreateEvent extends DomainEvent<TaskAfterCreatePayload> {
4
+ eventType: "task.afterCreate";
5
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<DomainEvent<TaskAfterCreatePayload>>>;
6
+ }
@@ -0,0 +1,13 @@
1
+ import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
+ import { TaskAfterCreateEventHandler } from "./abstractions.js";
3
+ class TaskAfterCreateEvent extends DomainEvent {
4
+ getHandlerAbstraction() {
5
+ return TaskAfterCreateEventHandler;
6
+ }
7
+ constructor(...args){
8
+ super(...args), this.eventType = "task.afterCreate";
9
+ }
10
+ }
11
+ export { TaskAfterCreateEvent };
12
+
13
+ //# sourceMappingURL=TaskAfterCreateEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/events/TaskAfterCreateEvent.js","sources":["../../../src/api/events/TaskAfterCreateEvent.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { TaskAfterCreateEventHandler, TaskAfterCreatePayload } from \"./abstractions.js\";\n\nexport class TaskAfterCreateEvent extends DomainEvent<TaskAfterCreatePayload> {\n eventType = \"task.afterCreate\" as const;\n\n getHandlerAbstraction() {\n return TaskAfterCreateEventHandler;\n }\n}\n"],"names":["TaskAfterCreateEvent","DomainEvent","TaskAfterCreateEventHandler"],"mappings":";;AAGO,MAAMA,6BAA6BC;IAGtC,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB"}