@webiny/background-tasks 0.0.0-unstable.0d717d18dd

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (522) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +11 -0
  3. package/admin/BackgroundTaskRoutes.d.ts +2 -0
  4. package/admin/BackgroundTaskRoutes.js +70 -0
  5. package/admin/BackgroundTaskRoutes.js.map +1 -0
  6. package/admin/BackgroundTasks.d.ts +2 -0
  7. package/admin/BackgroundTasks.js +55 -0
  8. package/admin/BackgroundTasks.js.map +1 -0
  9. package/admin/features/abortTask/AbortTaskGateway.d.ts +12 -0
  10. package/admin/features/abortTask/AbortTaskGateway.js +62 -0
  11. package/admin/features/abortTask/AbortTaskGateway.js.map +1 -0
  12. package/admin/features/abortTask/AbortTaskUseCase.d.ts +11 -0
  13. package/admin/features/abortTask/AbortTaskUseCase.js +18 -0
  14. package/admin/features/abortTask/AbortTaskUseCase.js.map +1 -0
  15. package/admin/features/abortTask/abstractions.d.ts +19 -0
  16. package/admin/features/abortTask/abstractions.js +6 -0
  17. package/admin/features/abortTask/abstractions.js.map +1 -0
  18. package/admin/features/abortTask/feature.d.ts +3 -0
  19. package/admin/features/abortTask/feature.js +19 -0
  20. package/admin/features/abortTask/feature.js.map +1 -0
  21. package/admin/features/abortTask/index.d.ts +2 -0
  22. package/admin/features/abortTask/index.js +2 -0
  23. package/admin/features/deleteTask/DeleteTaskGateway.d.ts +11 -0
  24. package/admin/features/deleteTask/DeleteTaskGateway.js +41 -0
  25. package/admin/features/deleteTask/DeleteTaskGateway.js.map +1 -0
  26. package/admin/features/deleteTask/DeleteTaskUseCase.d.ts +10 -0
  27. package/admin/features/deleteTask/DeleteTaskUseCase.js +18 -0
  28. package/admin/features/deleteTask/DeleteTaskUseCase.js.map +1 -0
  29. package/admin/features/deleteTask/abstractions.d.ts +14 -0
  30. package/admin/features/deleteTask/abstractions.js +6 -0
  31. package/admin/features/deleteTask/abstractions.js.map +1 -0
  32. package/admin/features/deleteTask/feature.d.ts +3 -0
  33. package/admin/features/deleteTask/feature.js +19 -0
  34. package/admin/features/deleteTask/feature.js.map +1 -0
  35. package/admin/features/deleteTask/index.d.ts +2 -0
  36. package/admin/features/deleteTask/index.js +2 -0
  37. package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsGateway.d.ts +12 -0
  38. package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsGateway.js +40 -0
  39. package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsGateway.js.map +1 -0
  40. package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsUseCase.d.ts +11 -0
  41. package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsUseCase.js +18 -0
  42. package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsUseCase.js.map +1 -0
  43. package/admin/features/getBackgroundTaskSettings/abstractions.d.ts +15 -0
  44. package/admin/features/getBackgroundTaskSettings/abstractions.js +6 -0
  45. package/admin/features/getBackgroundTaskSettings/abstractions.js.map +1 -0
  46. package/admin/features/getBackgroundTaskSettings/feature.d.ts +3 -0
  47. package/admin/features/getBackgroundTaskSettings/feature.js +19 -0
  48. package/admin/features/getBackgroundTaskSettings/feature.js.map +1 -0
  49. package/admin/features/getBackgroundTaskSettings/index.d.ts +3 -0
  50. package/admin/features/getBackgroundTaskSettings/index.js +2 -0
  51. package/admin/features/getTask/GetTaskGateway.d.ts +12 -0
  52. package/admin/features/getTask/GetTaskGateway.js +61 -0
  53. package/admin/features/getTask/GetTaskGateway.js.map +1 -0
  54. package/admin/features/getTask/GetTaskUseCase.d.ts +11 -0
  55. package/admin/features/getTask/GetTaskUseCase.js +18 -0
  56. package/admin/features/getTask/GetTaskUseCase.js.map +1 -0
  57. package/admin/features/getTask/abstractions.d.ts +15 -0
  58. package/admin/features/getTask/abstractions.js +6 -0
  59. package/admin/features/getTask/abstractions.js.map +1 -0
  60. package/admin/features/getTask/feature.d.ts +3 -0
  61. package/admin/features/getTask/feature.js +19 -0
  62. package/admin/features/getTask/feature.js.map +1 -0
  63. package/admin/features/getTask/index.d.ts +2 -0
  64. package/admin/features/getTask/index.js +2 -0
  65. package/admin/features/listDefinitions/ListDefinitionsGateway.d.ts +12 -0
  66. package/admin/features/listDefinitions/ListDefinitionsGateway.js +42 -0
  67. package/admin/features/listDefinitions/ListDefinitionsGateway.js.map +1 -0
  68. package/admin/features/listDefinitions/ListDefinitionsUseCase.d.ts +11 -0
  69. package/admin/features/listDefinitions/ListDefinitionsUseCase.js +18 -0
  70. package/admin/features/listDefinitions/ListDefinitionsUseCase.js.map +1 -0
  71. package/admin/features/listDefinitions/abstractions.d.ts +15 -0
  72. package/admin/features/listDefinitions/abstractions.js +6 -0
  73. package/admin/features/listDefinitions/abstractions.js.map +1 -0
  74. package/admin/features/listDefinitions/feature.d.ts +3 -0
  75. package/admin/features/listDefinitions/feature.js +19 -0
  76. package/admin/features/listDefinitions/feature.js.map +1 -0
  77. package/admin/features/listDefinitions/index.d.ts +2 -0
  78. package/admin/features/listDefinitions/index.js +2 -0
  79. package/admin/features/listLogs/ListLogsGateway.d.ts +11 -0
  80. package/admin/features/listLogs/ListLogsGateway.js +73 -0
  81. package/admin/features/listLogs/ListLogsGateway.js.map +1 -0
  82. package/admin/features/listLogs/ListLogsUseCase.d.ts +10 -0
  83. package/admin/features/listLogs/ListLogsUseCase.js +18 -0
  84. package/admin/features/listLogs/ListLogsUseCase.js.map +1 -0
  85. package/admin/features/listLogs/abstractions.d.ts +30 -0
  86. package/admin/features/listLogs/abstractions.js +6 -0
  87. package/admin/features/listLogs/abstractions.js.map +1 -0
  88. package/admin/features/listLogs/feature.d.ts +3 -0
  89. package/admin/features/listLogs/feature.js +19 -0
  90. package/admin/features/listLogs/feature.js.map +1 -0
  91. package/admin/features/listLogs/index.d.ts +2 -0
  92. package/admin/features/listLogs/index.js +2 -0
  93. package/admin/features/listTasks/ListTasksGateway.d.ts +11 -0
  94. package/admin/features/listTasks/ListTasksGateway.js +79 -0
  95. package/admin/features/listTasks/ListTasksGateway.js.map +1 -0
  96. package/admin/features/listTasks/ListTasksUseCase.d.ts +10 -0
  97. package/admin/features/listTasks/ListTasksUseCase.js +18 -0
  98. package/admin/features/listTasks/ListTasksUseCase.js.map +1 -0
  99. package/admin/features/listTasks/abstractions.d.ts +31 -0
  100. package/admin/features/listTasks/abstractions.js +6 -0
  101. package/admin/features/listTasks/abstractions.js.map +1 -0
  102. package/admin/features/listTasks/feature.d.ts +3 -0
  103. package/admin/features/listTasks/feature.js +19 -0
  104. package/admin/features/listTasks/feature.js.map +1 -0
  105. package/admin/features/listTasks/index.d.ts +2 -0
  106. package/admin/features/listTasks/index.js +2 -0
  107. package/admin/features/permissions/abstractions.d.ts +17 -0
  108. package/admin/features/permissions/abstractions.js +6 -0
  109. package/admin/features/permissions/abstractions.js.map +1 -0
  110. package/admin/features/permissions/feature.d.ts +14 -0
  111. package/admin/features/permissions/feature.js +7 -0
  112. package/admin/features/permissions/feature.js.map +1 -0
  113. package/admin/features/permissions/index.d.ts +2 -0
  114. package/admin/features/permissions/index.js +2 -0
  115. package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsGateway.d.ts +12 -0
  116. package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsGateway.js +43 -0
  117. package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsGateway.js.map +1 -0
  118. package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.d.ts +11 -0
  119. package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js +18 -0
  120. package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js.map +1 -0
  121. package/admin/features/updateBackgroundTaskSettings/abstractions.d.ts +18 -0
  122. package/admin/features/updateBackgroundTaskSettings/abstractions.js +6 -0
  123. package/admin/features/updateBackgroundTaskSettings/abstractions.js.map +1 -0
  124. package/admin/features/updateBackgroundTaskSettings/feature.d.ts +3 -0
  125. package/admin/features/updateBackgroundTaskSettings/feature.js +19 -0
  126. package/admin/features/updateBackgroundTaskSettings/feature.js.map +1 -0
  127. package/admin/features/updateBackgroundTaskSettings/index.d.ts +3 -0
  128. package/admin/features/updateBackgroundTaskSettings/index.js +2 -0
  129. package/admin/index.d.ts +2 -0
  130. package/admin/index.js +2 -0
  131. package/admin/permissions.d.ts +12 -0
  132. package/admin/permissions.js +22 -0
  133. package/admin/permissions.js.map +1 -0
  134. package/admin/presentation/BackgroundTaskSettings/BackgroundTaskSettingsPresenter.d.ts +21 -0
  135. package/admin/presentation/BackgroundTaskSettings/BackgroundTaskSettingsPresenter.js +86 -0
  136. package/admin/presentation/BackgroundTaskSettings/BackgroundTaskSettingsPresenter.js.map +1 -0
  137. package/admin/presentation/BackgroundTaskSettings/abstractions.d.ts +16 -0
  138. package/admin/presentation/BackgroundTaskSettings/abstractions.js +5 -0
  139. package/admin/presentation/BackgroundTaskSettings/abstractions.js.map +1 -0
  140. package/admin/presentation/BackgroundTaskSettings/components/BackgroundTaskSettingsView.d.ts +2 -0
  141. package/admin/presentation/BackgroundTaskSettings/components/BackgroundTaskSettingsView.js +56 -0
  142. package/admin/presentation/BackgroundTaskSettings/components/BackgroundTaskSettingsView.js.map +1 -0
  143. package/admin/presentation/BackgroundTaskSettings/feature.d.ts +3 -0
  144. package/admin/presentation/BackgroundTaskSettings/feature.js +17 -0
  145. package/admin/presentation/BackgroundTaskSettings/feature.js.map +1 -0
  146. package/admin/presentation/BackgroundTaskSettings/index.d.ts +2 -0
  147. package/admin/presentation/BackgroundTaskSettings/index.js +2 -0
  148. package/admin/presentation/TaskDefinitions/TaskDefinitionsPresenter.d.ts +14 -0
  149. package/admin/presentation/TaskDefinitions/TaskDefinitionsPresenter.js +41 -0
  150. package/admin/presentation/TaskDefinitions/TaskDefinitionsPresenter.js.map +1 -0
  151. package/admin/presentation/TaskDefinitions/abstractions.d.ts +14 -0
  152. package/admin/presentation/TaskDefinitions/abstractions.js +5 -0
  153. package/admin/presentation/TaskDefinitions/abstractions.js.map +1 -0
  154. package/admin/presentation/TaskDefinitions/components/TaskDefinitionsView.d.ts +2 -0
  155. package/admin/presentation/TaskDefinitions/components/TaskDefinitionsView.js +76 -0
  156. package/admin/presentation/TaskDefinitions/components/TaskDefinitionsView.js.map +1 -0
  157. package/admin/presentation/TaskDefinitions/components/TaskExecutionsButton.d.ts +2 -0
  158. package/admin/presentation/TaskDefinitions/components/TaskExecutionsButton.js +16 -0
  159. package/admin/presentation/TaskDefinitions/components/TaskExecutionsButton.js.map +1 -0
  160. package/admin/presentation/TaskDefinitions/feature.d.ts +3 -0
  161. package/admin/presentation/TaskDefinitions/feature.js +17 -0
  162. package/admin/presentation/TaskDefinitions/feature.js.map +1 -0
  163. package/admin/presentation/TaskDefinitions/index.d.ts +2 -0
  164. package/admin/presentation/TaskDefinitions/index.js +2 -0
  165. package/admin/presentation/TaskDetail/TaskDetailPresenter.d.ts +24 -0
  166. package/admin/presentation/TaskDetail/TaskDetailPresenter.js +87 -0
  167. package/admin/presentation/TaskDetail/TaskDetailPresenter.js.map +1 -0
  168. package/admin/presentation/TaskDetail/abstractions.d.ts +24 -0
  169. package/admin/presentation/TaskDetail/abstractions.js +5 -0
  170. package/admin/presentation/TaskDetail/abstractions.js.map +1 -0
  171. package/admin/presentation/TaskDetail/components/TaskDetailDrawer.d.ts +11 -0
  172. package/admin/presentation/TaskDetail/components/TaskDetailDrawer.js +270 -0
  173. package/admin/presentation/TaskDetail/components/TaskDetailDrawer.js.map +1 -0
  174. package/admin/presentation/TaskDetail/feature.d.ts +3 -0
  175. package/admin/presentation/TaskDetail/feature.js +17 -0
  176. package/admin/presentation/TaskDetail/feature.js.map +1 -0
  177. package/admin/presentation/TaskDetail/index.d.ts +2 -0
  178. package/admin/presentation/TaskDetail/index.js +2 -0
  179. package/admin/presentation/TaskExecutions/TaskExecutionsDataSource.d.ts +15 -0
  180. package/admin/presentation/TaskExecutions/TaskExecutionsDataSource.js +91 -0
  181. package/admin/presentation/TaskExecutions/TaskExecutionsDataSource.js.map +1 -0
  182. package/admin/presentation/TaskExecutions/TaskExecutionsPresenter.d.ts +54 -0
  183. package/admin/presentation/TaskExecutions/TaskExecutionsPresenter.js +109 -0
  184. package/admin/presentation/TaskExecutions/TaskExecutionsPresenter.js.map +1 -0
  185. package/admin/presentation/TaskExecutions/abstractions.d.ts +28 -0
  186. package/admin/presentation/TaskExecutions/abstractions.js +5 -0
  187. package/admin/presentation/TaskExecutions/abstractions.js.map +1 -0
  188. package/admin/presentation/TaskExecutions/components/TaskDefinitionsButton.d.ts +2 -0
  189. package/admin/presentation/TaskExecutions/components/TaskDefinitionsButton.js +16 -0
  190. package/admin/presentation/TaskExecutions/components/TaskDefinitionsButton.js.map +1 -0
  191. package/admin/presentation/TaskExecutions/components/TaskExecutionsView.d.ts +2 -0
  192. package/admin/presentation/TaskExecutions/components/TaskExecutionsView.js +341 -0
  193. package/admin/presentation/TaskExecutions/components/TaskExecutionsView.js.map +1 -0
  194. package/admin/presentation/TaskExecutions/feature.d.ts +3 -0
  195. package/admin/presentation/TaskExecutions/feature.js +17 -0
  196. package/admin/presentation/TaskExecutions/feature.js.map +1 -0
  197. package/admin/presentation/TaskExecutions/index.d.ts +2 -0
  198. package/admin/presentation/TaskExecutions/index.js +2 -0
  199. package/admin/presentation/security/HasPermission.d.ts +12 -0
  200. package/admin/presentation/security/HasPermission.js +6 -0
  201. package/admin/presentation/security/HasPermission.js.map +1 -0
  202. package/admin/presentation/security/usePermissions.d.ts +12 -0
  203. package/admin/presentation/security/usePermissions.js +6 -0
  204. package/admin/presentation/security/usePermissions.js.map +1 -0
  205. package/admin/routes.d.ts +6 -0
  206. package/admin/routes.js +18 -0
  207. package/admin/routes.js.map +1 -0
  208. package/admin/shared/types.d.ts +18 -0
  209. package/admin/shared/types.js +0 -0
  210. package/api/BackgroundTasksFeature.d.ts +4 -0
  211. package/api/BackgroundTasksFeature.js +59 -0
  212. package/api/BackgroundTasksFeature.js.map +1 -0
  213. package/api/TasksCrud.d.ts +10 -0
  214. package/api/TasksCrud.js +5 -0
  215. package/api/TasksCrud.js.map +1 -0
  216. package/api/abstractions/Timer.d.ts +1 -0
  217. package/api/abstractions/Timer.js +0 -0
  218. package/api/abstractions/index.d.ts +1 -0
  219. package/api/abstractions/index.js +1 -0
  220. package/api/crud/TaskLogPrivateModel.d.ts +9 -0
  221. package/api/crud/TaskLogPrivateModel.js +40 -0
  222. package/api/crud/TaskLogPrivateModel.js.map +1 -0
  223. package/api/crud/TaskPrivateModel.d.ts +9 -0
  224. package/api/crud/TaskPrivateModel.js +55 -0
  225. package/api/crud/TaskPrivateModel.js.map +1 -0
  226. package/api/crud/cleanupTaskSubtree.d.ts +8 -0
  227. package/api/crud/cleanupTaskSubtree.js +63 -0
  228. package/api/crud/cleanupTaskSubtree.js.map +1 -0
  229. package/api/crud/crud.tasks.d.ts +3 -0
  230. package/api/crud/crud.tasks.js +318 -0
  231. package/api/crud/crud.tasks.js.map +1 -0
  232. package/api/crud/definition.tasks.d.ts +3 -0
  233. package/api/crud/definition.tasks.js +17 -0
  234. package/api/crud/definition.tasks.js.map +1 -0
  235. package/api/crud/service.tasks.d.ts +3 -0
  236. package/api/crud/service.tasks.js +132 -0
  237. package/api/crud/service.tasks.js.map +1 -0
  238. package/api/decorators/RunnableTaskDecorator.d.ts +32 -0
  239. package/api/decorators/RunnableTaskDecorator.js +69 -0
  240. package/api/decorators/RunnableTaskDecorator.js.map +1 -0
  241. package/api/decorators/SelfCleaningTaskDecorator.d.ts +30 -0
  242. package/api/decorators/SelfCleaningTaskDecorator.js +84 -0
  243. package/api/decorators/SelfCleaningTaskDecorator.js.map +1 -0
  244. package/api/domain/BackgroundTaskSettings.d.ts +3 -0
  245. package/api/domain/BackgroundTaskSettings.js +0 -0
  246. package/api/domain/TaskService.d.ts +12 -0
  247. package/api/domain/TaskService.js +5 -0
  248. package/api/domain/TaskService.js.map +1 -0
  249. package/api/domain/constants.d.ts +3 -0
  250. package/api/domain/constants.js +6 -0
  251. package/api/domain/constants.js.map +1 -0
  252. package/api/domain/errors.d.ts +57 -0
  253. package/api/domain/errors.js +101 -0
  254. package/api/domain/errors.js.map +1 -0
  255. package/api/events/TaskAfterCreateEvent.d.ts +6 -0
  256. package/api/events/TaskAfterCreateEvent.js +13 -0
  257. package/api/events/TaskAfterCreateEvent.js.map +1 -0
  258. package/api/events/TaskAfterDeleteEvent.d.ts +6 -0
  259. package/api/events/TaskAfterDeleteEvent.js +13 -0
  260. package/api/events/TaskAfterDeleteEvent.js.map +1 -0
  261. package/api/events/TaskAfterUpdateEvent.d.ts +6 -0
  262. package/api/events/TaskAfterUpdateEvent.js +13 -0
  263. package/api/events/TaskAfterUpdateEvent.js.map +1 -0
  264. package/api/events/TaskBeforeCreateEvent.d.ts +6 -0
  265. package/api/events/TaskBeforeCreateEvent.js +13 -0
  266. package/api/events/TaskBeforeCreateEvent.js.map +1 -0
  267. package/api/events/TaskBeforeDeleteEvent.d.ts +6 -0
  268. package/api/events/TaskBeforeDeleteEvent.js +13 -0
  269. package/api/events/TaskBeforeDeleteEvent.js.map +1 -0
  270. package/api/events/TaskBeforeUpdateEvent.d.ts +6 -0
  271. package/api/events/TaskBeforeUpdateEvent.js +13 -0
  272. package/api/events/TaskBeforeUpdateEvent.js.map +1 -0
  273. package/api/events/abstractions.d.ts +53 -0
  274. package/api/events/abstractions.js +10 -0
  275. package/api/events/abstractions.js.map +1 -0
  276. package/api/events/index.d.ts +7 -0
  277. package/api/events/index.js +7 -0
  278. package/api/features/AbortTask/AbortTaskUseCase.d.ts +9 -0
  279. package/api/features/AbortTask/AbortTaskUseCase.js +12 -0
  280. package/api/features/AbortTask/AbortTaskUseCase.js.map +1 -0
  281. package/api/features/AbortTask/abstractions.d.ts +25 -0
  282. package/api/features/AbortTask/abstractions.js +5 -0
  283. package/api/features/AbortTask/abstractions.js.map +1 -0
  284. package/api/features/AbortTask/feature.d.ts +4 -0
  285. package/api/features/AbortTask/feature.js +13 -0
  286. package/api/features/AbortTask/feature.js.map +1 -0
  287. package/api/features/AbortTask/index.d.ts +2 -0
  288. package/api/features/AbortTask/index.js +2 -0
  289. package/api/features/BackgroundTaskPermissions/abstractions.d.ts +17 -0
  290. package/api/features/BackgroundTaskPermissions/abstractions.js +6 -0
  291. package/api/features/BackgroundTaskPermissions/abstractions.js.map +1 -0
  292. package/api/features/BackgroundTaskPermissions/feature.d.ts +4 -0
  293. package/api/features/BackgroundTaskPermissions/feature.js +7 -0
  294. package/api/features/BackgroundTaskPermissions/feature.js.map +1 -0
  295. package/api/features/BackgroundTaskPermissions/index.d.ts +2 -0
  296. package/api/features/BackgroundTaskPermissions/index.js +2 -0
  297. package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.d.ts +7 -0
  298. package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js +11 -0
  299. package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js.map +1 -0
  300. package/api/features/CleanupTaskSubtree/abstractions.d.ts +7 -0
  301. package/api/features/CleanupTaskSubtree/abstractions.js +5 -0
  302. package/api/features/CleanupTaskSubtree/abstractions.js.map +1 -0
  303. package/api/features/CleanupTaskSubtree/index.d.ts +2 -0
  304. package/api/features/CleanupTaskSubtree/index.js +2 -0
  305. package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.d.ts +21 -0
  306. package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.js +63 -0
  307. package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.js.map +1 -0
  308. package/api/features/GetBackgroundTaskSettings/abstractions.d.ts +13 -0
  309. package/api/features/GetBackgroundTaskSettings/abstractions.js +5 -0
  310. package/api/features/GetBackgroundTaskSettings/abstractions.js.map +1 -0
  311. package/api/features/GetBackgroundTaskSettings/feature.d.ts +4 -0
  312. package/api/features/GetBackgroundTaskSettings/feature.js +11 -0
  313. package/api/features/GetBackgroundTaskSettings/feature.js.map +1 -0
  314. package/api/features/GetBackgroundTaskSettings/index.d.ts +2 -0
  315. package/api/features/GetBackgroundTaskSettings/index.js +2 -0
  316. package/api/features/GetTask/GetTaskUseCase.d.ts +9 -0
  317. package/api/features/GetTask/GetTaskUseCase.js +11 -0
  318. package/api/features/GetTask/GetTaskUseCase.js.map +1 -0
  319. package/api/features/GetTask/abstractions.d.ts +10 -0
  320. package/api/features/GetTask/abstractions.js +5 -0
  321. package/api/features/GetTask/abstractions.js.map +1 -0
  322. package/api/features/GetTask/feature.d.ts +4 -0
  323. package/api/features/GetTask/feature.js +13 -0
  324. package/api/features/GetTask/feature.js.map +1 -0
  325. package/api/features/GetTask/index.d.ts +2 -0
  326. package/api/features/GetTask/index.js +2 -0
  327. package/api/features/GetTaskDefinition/GetTaskDefinitionUseCase.d.ts +12 -0
  328. package/api/features/GetTaskDefinition/GetTaskDefinitionUseCase.js +27 -0
  329. package/api/features/GetTaskDefinition/GetTaskDefinitionUseCase.js.map +1 -0
  330. package/api/features/GetTaskDefinition/abstractions.d.ts +17 -0
  331. package/api/features/GetTaskDefinition/abstractions.js +5 -0
  332. package/api/features/GetTaskDefinition/abstractions.js.map +1 -0
  333. package/api/features/GetTaskDefinition/feature.d.ts +4 -0
  334. package/api/features/GetTaskDefinition/feature.js +11 -0
  335. package/api/features/GetTaskDefinition/feature.js.map +1 -0
  336. package/api/features/GetTaskDefinition/index.d.ts +2 -0
  337. package/api/features/GetTaskDefinition/index.js +2 -0
  338. package/api/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.d.ts +11 -0
  339. package/api/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js +24 -0
  340. package/api/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js.map +1 -0
  341. package/api/features/ListTaskDefinitions/abstractions.d.ts +9 -0
  342. package/api/features/ListTaskDefinitions/abstractions.js +5 -0
  343. package/api/features/ListTaskDefinitions/abstractions.js.map +1 -0
  344. package/api/features/ListTaskDefinitions/feature.d.ts +4 -0
  345. package/api/features/ListTaskDefinitions/feature.js +11 -0
  346. package/api/features/ListTaskDefinitions/feature.js.map +1 -0
  347. package/api/features/ListTaskDefinitions/index.d.ts +2 -0
  348. package/api/features/ListTaskDefinitions/index.js +2 -0
  349. package/api/features/ListTasks/ListTasksUseCase.d.ts +10 -0
  350. package/api/features/ListTasks/ListTasksUseCase.js +11 -0
  351. package/api/features/ListTasks/ListTasksUseCase.js.map +1 -0
  352. package/api/features/ListTasks/abstractions.d.ts +13 -0
  353. package/api/features/ListTasks/abstractions.js +5 -0
  354. package/api/features/ListTasks/abstractions.js.map +1 -0
  355. package/api/features/ListTasks/feature.d.ts +4 -0
  356. package/api/features/ListTasks/feature.js +13 -0
  357. package/api/features/ListTasks/feature.js.map +1 -0
  358. package/api/features/ListTasks/index.d.ts +2 -0
  359. package/api/features/ListTasks/index.js +2 -0
  360. package/api/features/TaskController/TaskController.d.ts +49 -0
  361. package/api/features/TaskController/TaskController.js +71 -0
  362. package/api/features/TaskController/TaskController.js.map +1 -0
  363. package/api/features/TaskController/augmentation.d.ts +60 -0
  364. package/api/features/TaskController/augmentation.js +0 -0
  365. package/api/features/TaskController/index.d.ts +2 -0
  366. package/api/features/TaskController/index.js +2 -0
  367. package/api/features/TaskExecutionContext/TaskExecutionContext.d.ts +24 -0
  368. package/api/features/TaskExecutionContext/TaskExecutionContext.js +43 -0
  369. package/api/features/TaskExecutionContext/TaskExecutionContext.js.map +1 -0
  370. package/api/features/TaskExecutionContext/abstractions.d.ts +26 -0
  371. package/api/features/TaskExecutionContext/abstractions.js +5 -0
  372. package/api/features/TaskExecutionContext/abstractions.js.map +1 -0
  373. package/api/features/TaskExecutionContext/feature.d.ts +4 -0
  374. package/api/features/TaskExecutionContext/feature.js +11 -0
  375. package/api/features/TaskExecutionContext/feature.js.map +1 -0
  376. package/api/features/TaskExecutionContext/index.d.ts +1 -0
  377. package/api/features/TaskExecutionContext/index.js +1 -0
  378. package/api/features/TriggerTask/TriggerTaskUseCase.d.ts +9 -0
  379. package/api/features/TriggerTask/TriggerTaskUseCase.js +12 -0
  380. package/api/features/TriggerTask/TriggerTaskUseCase.js.map +1 -0
  381. package/api/features/TriggerTask/abstractions.d.ts +28 -0
  382. package/api/features/TriggerTask/abstractions.js +5 -0
  383. package/api/features/TriggerTask/abstractions.js.map +1 -0
  384. package/api/features/TriggerTask/feature.d.ts +4 -0
  385. package/api/features/TriggerTask/feature.js +13 -0
  386. package/api/features/TriggerTask/feature.js.map +1 -0
  387. package/api/features/TriggerTask/index.d.ts +2 -0
  388. package/api/features/TriggerTask/index.js +2 -0
  389. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.d.ts +23 -0
  390. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.js +65 -0
  391. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.js.map +1 -0
  392. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.d.ts +14 -0
  393. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js +27 -0
  394. package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js.map +1 -0
  395. package/api/features/UpdateBackgroundTaskSettings/abstractions.d.ts +26 -0
  396. package/api/features/UpdateBackgroundTaskSettings/abstractions.js +6 -0
  397. package/api/features/UpdateBackgroundTaskSettings/abstractions.js.map +1 -0
  398. package/api/features/UpdateBackgroundTaskSettings/feature.d.ts +4 -0
  399. package/api/features/UpdateBackgroundTaskSettings/feature.js +13 -0
  400. package/api/features/UpdateBackgroundTaskSettings/feature.js.map +1 -0
  401. package/api/features/UpdateBackgroundTaskSettings/index.d.ts +2 -0
  402. package/api/features/UpdateBackgroundTaskSettings/index.js +2 -0
  403. package/api/features/UpdateBackgroundTaskSettings/schema.d.ts +4 -0
  404. package/api/features/UpdateBackgroundTaskSettings/schema.js +8 -0
  405. package/api/features/UpdateBackgroundTaskSettings/schema.js.map +1 -0
  406. package/api/global.d.ts +1 -0
  407. package/api/global.js +1 -0
  408. package/api/graphql/BackgroundTasksContextualSchema.d.ts +21 -0
  409. package/api/graphql/BackgroundTasksContextualSchema.js +369 -0
  410. package/api/graphql/BackgroundTasksContextualSchema.js.map +1 -0
  411. package/api/graphql/checkPermissions.d.ts +7 -0
  412. package/api/graphql/checkPermissions.js +22 -0
  413. package/api/graphql/checkPermissions.js.map +1 -0
  414. package/api/graphql/utils.d.ts +9 -0
  415. package/api/graphql/utils.js +20 -0
  416. package/api/graphql/utils.js.map +1 -0
  417. package/api/handler/types.d.ts +21 -0
  418. package/api/handler/types.js +0 -0
  419. package/api/index.d.ts +12 -0
  420. package/api/index.js +11 -0
  421. package/api/models/BackgroundTaskSettingsModel.d.ts +8 -0
  422. package/api/models/BackgroundTaskSettingsModel.js +27 -0
  423. package/api/models/BackgroundTaskSettingsModel.js.map +1 -0
  424. package/api/permissions.d.ts +12 -0
  425. package/api/permissions.js +22 -0
  426. package/api/permissions.js.map +1 -0
  427. package/api/response/DatabaseResponse.d.ts +12 -0
  428. package/api/response/DatabaseResponse.js +127 -0
  429. package/api/response/DatabaseResponse.js.map +1 -0
  430. package/api/response/Response.d.ts +14 -0
  431. package/api/response/Response.js +91 -0
  432. package/api/response/Response.js.map +1 -0
  433. package/api/response/ResponseAbortedResult.d.ts +9 -0
  434. package/api/response/ResponseAbortedResult.js +12 -0
  435. package/api/response/ResponseAbortedResult.js.map +1 -0
  436. package/api/response/ResponseContinueResult.d.ts +17 -0
  437. package/api/response/ResponseContinueResult.js +16 -0
  438. package/api/response/ResponseContinueResult.js.map +1 -0
  439. package/api/response/ResponseDoneResult.d.ts +11 -0
  440. package/api/response/ResponseDoneResult.js +14 -0
  441. package/api/response/ResponseDoneResult.js.map +1 -0
  442. package/api/response/ResponseErrorResult.d.ts +10 -0
  443. package/api/response/ResponseErrorResult.js +13 -0
  444. package/api/response/ResponseErrorResult.js.map +1 -0
  445. package/api/response/TaskResponse.d.ts +12 -0
  446. package/api/response/TaskResponse.js +53 -0
  447. package/api/response/TaskResponse.js.map +1 -0
  448. package/api/response/abstractions/Response.d.ts +25 -0
  449. package/api/response/abstractions/Response.js +0 -0
  450. package/api/response/abstractions/ResponseAbortedResult.d.ts +5 -0
  451. package/api/response/abstractions/ResponseAbortedResult.js +0 -0
  452. package/api/response/abstractions/ResponseBaseResult.d.ts +7 -0
  453. package/api/response/abstractions/ResponseBaseResult.js +0 -0
  454. package/api/response/abstractions/ResponseContinueResult.d.ts +21 -0
  455. package/api/response/abstractions/ResponseContinueResult.js +0 -0
  456. package/api/response/abstractions/ResponseDoneResult.d.ts +13 -0
  457. package/api/response/abstractions/ResponseDoneResult.js +0 -0
  458. package/api/response/abstractions/ResponseErrorResult.d.ts +18 -0
  459. package/api/response/abstractions/ResponseErrorResult.js +0 -0
  460. package/api/response/abstractions/TaskResponse.d.ts +16 -0
  461. package/api/response/abstractions/TaskResponse.js +0 -0
  462. package/api/response/abstractions/index.d.ts +7 -0
  463. package/api/response/abstractions/index.js +7 -0
  464. package/api/response/index.d.ts +7 -0
  465. package/api/response/index.js +7 -0
  466. package/api/runner/TaskControl.d.ts +14 -0
  467. package/api/runner/TaskControl.js +176 -0
  468. package/api/runner/TaskControl.js.map +1 -0
  469. package/api/runner/TaskEventValidation.d.ts +5 -0
  470. package/api/runner/TaskEventValidation.js +20 -0
  471. package/api/runner/TaskEventValidation.js.map +1 -0
  472. package/api/runner/TaskManager.d.ts +11 -0
  473. package/api/runner/TaskManager.js +82 -0
  474. package/api/runner/TaskManager.js.map +1 -0
  475. package/api/runner/TaskManagerStore.d.ts +41 -0
  476. package/api/runner/TaskManagerStore.js +111 -0
  477. package/api/runner/TaskManagerStore.js.map +1 -0
  478. package/api/runner/TaskRunner.d.ts +25 -0
  479. package/api/runner/TaskRunner.js +55 -0
  480. package/api/runner/TaskRunner.js.map +1 -0
  481. package/api/runner/abstractions/TaskControl.d.ts +10 -0
  482. package/api/runner/abstractions/TaskControl.js +0 -0
  483. package/api/runner/abstractions/TaskEventValidation.d.ts +5 -0
  484. package/api/runner/abstractions/TaskEventValidation.js +0 -0
  485. package/api/runner/abstractions/TaskManager.d.ts +5 -0
  486. package/api/runner/abstractions/TaskManager.js +0 -0
  487. package/api/runner/abstractions/TaskManagerStore.d.ts +92 -0
  488. package/api/runner/abstractions/TaskManagerStore.js +0 -0
  489. package/api/runner/abstractions/TaskRunner.d.ts +13 -0
  490. package/api/runner/abstractions/TaskRunner.js +0 -0
  491. package/api/runner/abstractions/index.d.ts +5 -0
  492. package/api/runner/abstractions/index.js +5 -0
  493. package/api/runner/index.d.ts +1 -0
  494. package/api/runner/index.js +1 -0
  495. package/api/service/createService.d.ts +6 -0
  496. package/api/service/createService.js +11 -0
  497. package/api/service/createService.js.map +1 -0
  498. package/api/service/index.d.ts +1 -0
  499. package/api/service/index.js +1 -0
  500. package/api/tasks/testingRunTask.d.ts +11 -0
  501. package/api/tasks/testingRunTask.js +18 -0
  502. package/api/tasks/testingRunTask.js.map +1 -0
  503. package/api/types.d.ts +167 -0
  504. package/api/types.js +20 -0
  505. package/api/types.js.map +1 -0
  506. package/api/utils/ObjectUpdater.d.ts +8 -0
  507. package/api/utils/ObjectUpdater.js +33 -0
  508. package/api/utils/ObjectUpdater.js.map +1 -0
  509. package/api/utils/getErrorProperties.d.ts +2 -0
  510. package/api/utils/getErrorProperties.js +9 -0
  511. package/api/utils/getErrorProperties.js.map +1 -0
  512. package/api/utils/getObjectProperties.d.ts +8 -0
  513. package/api/utils/getObjectProperties.js +11 -0
  514. package/api/utils/getObjectProperties.js.map +1 -0
  515. package/api/utils/index.d.ts +3 -0
  516. package/api/utils/index.js +3 -0
  517. package/api/utils/normalizeSelfCleanup.d.ts +2 -0
  518. package/api/utils/normalizeSelfCleanup.js +16 -0
  519. package/api/utils/normalizeSelfCleanup.js.map +1 -0
  520. package/index.d.ts +2 -0
  521. package/index.js +2 -0
  522. package/package.json +68 -0
@@ -0,0 +1,369 @@
1
+ import { makeExecutableSchema } from "@graphql-tools/schema";
2
+ import { mergeResolvers } from "@graphql-tools/merge";
3
+ import { GraphQLContextualSchema } from "@webiny/api-graphql";
4
+ import { renderSortEnum } from "@webiny/api-headless-cms/utils/renderSortEnum.js";
5
+ import { renderListFilterFields } from "@webiny/api-headless-cms/utils/renderListFilterFields.js";
6
+ import { renderFields } from "@webiny/api-headless-cms/utils/renderFields.js";
7
+ import { createBaseContentSchema } from "@webiny/api-headless-cms/graphql/schema/baseContentSchema.js";
8
+ import { TenantContext } from "@webiny/api-core/features/tenancy/TenantContext/abstractions.js";
9
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/abstractions.js";
10
+ import { ListModelsUseCase } from "@webiny/api-headless-cms/features/contentModel/ListModels/index.js";
11
+ import { CmsModelFieldToGraphQLRegistry } from "@webiny/api-headless-cms/exports/api/cms/graphql.js";
12
+ import { TasksCrud } from "../TasksCrud.js";
13
+ import { ListTaskDefinitionsUseCase } from "../features/ListTaskDefinitions/abstractions.js";
14
+ import { TriggerTaskUseCase } from "../features/TriggerTask/abstractions.js";
15
+ import { AbortTaskUseCase } from "../features/AbortTask/abstractions.js";
16
+ import { GetBackgroundTaskSettingsRepository } from "../features/GetBackgroundTaskSettings/abstractions.js";
17
+ import { UpdateBackgroundTaskSettingsUseCase } from "../features/UpdateBackgroundTaskSettings/abstractions.js";
18
+ import { emptyResolver, resolve, resolveList } from "./utils.js";
19
+ import { checkPermissions } from "./checkPermissions.js";
20
+ class BackgroundTasksContextualSchemaImpl {
21
+ constructor(tenantCtx, identityCtx){
22
+ this.tenantCtx = tenantCtx;
23
+ this.identityCtx = identityCtx;
24
+ }
25
+ async build(ctx) {
26
+ if (!this.tenantCtx.getTenant()) return makeExecutableSchema({
27
+ typeDefs: "type Query\ntype Mutation",
28
+ assumeValidSDL: true
29
+ });
30
+ const container = ctx.container;
31
+ const tasksCrud = container.resolve(TasksCrud);
32
+ const taskModel = await tasksCrud.getTaskModel();
33
+ const logModel = await tasksCrud.getLogModel();
34
+ const listModels = container.resolve(ListModelsUseCase);
35
+ const fieldRegistry = container.resolve(CmsModelFieldToGraphQLRegistry);
36
+ const models = await this.identityCtx.withoutAuthorization(async ()=>{
37
+ const modelsResult = await listModels.execute({
38
+ includePrivate: false
39
+ });
40
+ return modelsResult.value.filter((model)=>model.fields.length > 0);
41
+ });
42
+ const taskFields = renderFields({
43
+ models,
44
+ model: taskModel,
45
+ fields: taskModel.fields,
46
+ type: "manage",
47
+ fieldRegistry
48
+ });
49
+ const logFields = renderFields({
50
+ models,
51
+ model: logModel,
52
+ fields: logModel.fields.filter((field)=>"task" !== field.fieldId),
53
+ type: "manage",
54
+ fieldRegistry
55
+ });
56
+ const listTasksFilterFieldsRender = renderListFilterFields({
57
+ model: taskModel,
58
+ fields: taskModel.fields,
59
+ type: "manage",
60
+ fieldRegistry,
61
+ excludeFields: [
62
+ "entryId"
63
+ ]
64
+ });
65
+ const listLogsFilterFieldsRender = renderListFilterFields({
66
+ model: logModel,
67
+ fields: logModel.fields,
68
+ type: "manage",
69
+ fieldRegistry,
70
+ excludeFields: [
71
+ "entryId"
72
+ ]
73
+ });
74
+ const sortTasksEnumRender = renderSortEnum({
75
+ model: taskModel,
76
+ fields: taskModel.fields,
77
+ fieldRegistry,
78
+ sorters: []
79
+ });
80
+ const sortLogsEnumRender = renderSortEnum({
81
+ model: logModel,
82
+ fields: logModel.fields,
83
+ fieldRegistry,
84
+ sorters: []
85
+ });
86
+ const typeDefs = `
87
+ type WebinyBackgroundTaskError {
88
+ message: String
89
+ code: String
90
+ data: JSON
91
+ stack: String
92
+ }
93
+
94
+ ${taskFields.map((f)=>f.typeDefs).join("\n")}
95
+ ${logFields.map((f)=>f.typeDefs).join("\n")}
96
+
97
+ type WebinyBackgroundTask {
98
+ id: String!
99
+ createdOn: DateTime!
100
+ savedOn: DateTime
101
+ createdBy: WebinyBackgroundTaskIdentity!
102
+ logs(
103
+ where: WebinyBackgroundTaskLogListWhereInput
104
+ limit: Number
105
+ sort: [WebinyBackgroundTaskLogListSorter!]
106
+ ): [WebinyBackgroundTaskLog!]!
107
+ ${taskFields.map((f)=>f.fields).join("\n")}
108
+ }
109
+
110
+ type WebinyBackgroundTaskResponse {
111
+ data: WebinyBackgroundTask
112
+ error: WebinyBackgroundTaskError
113
+ }
114
+
115
+ type WebinyBackgroundTaskMeta {
116
+ cursor: String
117
+ hasMoreItems: Boolean!
118
+ totalCount: Int!
119
+ }
120
+
121
+ type WebinyBackgroundTaskListResponse {
122
+ data: [WebinyBackgroundTask!]
123
+ meta: WebinyBackgroundTaskMeta
124
+ error: WebinyBackgroundTaskError
125
+ }
126
+
127
+ type WebinyBackgroundTaskLog {
128
+ id: String!
129
+ createdOn: DateTime!
130
+ createdBy: WebinyBackgroundTaskIdentity!
131
+ task: WebinyBackgroundTask!
132
+ ${logFields.map((f)=>f.fields).join("\n")}
133
+ }
134
+
135
+ type WebinyBackgroundTaskLogListResponse {
136
+ data: [WebinyBackgroundTaskLog!]
137
+ meta: WebinyBackgroundTaskMeta
138
+ error: WebinyBackgroundTaskError
139
+ }
140
+
141
+ type WebinyBackgroundTaskDefinition {
142
+ id: String!
143
+ title: String!
144
+ description: String
145
+ }
146
+
147
+ type WebinyBackgroundTaskListDefinitionsResponse {
148
+ data: [WebinyBackgroundTaskDefinition!]
149
+ error: WebinyBackgroundTaskError
150
+ }
151
+
152
+ type WebinyBackgroundTaskIdentity {
153
+ id: String!
154
+ displayName: String!
155
+ type: String
156
+ }
157
+
158
+ type WebinyBackgroundTaskTriggerResponse {
159
+ data: WebinyBackgroundTask
160
+ error: WebinyBackgroundTaskError
161
+ }
162
+
163
+ type WebinyBackgroundTaskDeleteResponse {
164
+ data: Boolean
165
+ error: WebinyBackgroundTaskError
166
+ }
167
+
168
+ input WebinyBackgroundTaskListWhereInput {
169
+ ${listTasksFilterFieldsRender.allFiltersAsString() || "_empty: String"}
170
+ }
171
+
172
+ input WebinyBackgroundTaskLogListWhereInput {
173
+ ${listLogsFilterFieldsRender.allFiltersAsString() || "_empty: String"}
174
+ }
175
+
176
+ enum WebinyBackgroundTaskListSorter {
177
+ ${sortTasksEnumRender}
178
+ }
179
+
180
+ enum WebinyBackgroundTaskLogListSorter {
181
+ ${sortLogsEnumRender}
182
+ }
183
+
184
+ type WebinyBackgroundTaskQuery {
185
+ _empty: String
186
+ }
187
+
188
+ type WebinyBackgroundTaskMutation {
189
+ _empty: String
190
+ }
191
+
192
+ extend type Query {
193
+ backgroundTasks: WebinyBackgroundTaskQuery
194
+ }
195
+
196
+ extend type Mutation {
197
+ backgroundTasks: WebinyBackgroundTaskMutation
198
+ }
199
+
200
+ extend type WebinyBackgroundTaskQuery {
201
+ getTask(id: ID!): WebinyBackgroundTaskResponse!
202
+ listTasks(
203
+ where: WebinyBackgroundTaskListWhereInput
204
+ sort: [WebinyBackgroundTaskListSorter!]
205
+ limit: Int
206
+ after: String
207
+ search: String
208
+ ): WebinyBackgroundTaskListResponse!
209
+ listDefinitions: WebinyBackgroundTaskListDefinitionsResponse!
210
+
211
+ listLogs(
212
+ where: WebinyBackgroundTaskLogListWhereInput
213
+ sort: [WebinyBackgroundTaskLogListSorter!]
214
+ limit: Int
215
+ after: String
216
+ search: String
217
+ ): WebinyBackgroundTaskLogListResponse!
218
+ }
219
+
220
+ extend type WebinyBackgroundTaskMutation {
221
+ triggerTask(definition: String!, input: JSON, name: String, delay: Number): WebinyBackgroundTaskTriggerResponse!
222
+ abortTask(id: ID!, message: String): WebinyBackgroundTaskResponse!
223
+ deleteTask(id: ID!): WebinyBackgroundTaskDeleteResponse!
224
+ }
225
+
226
+ type WebinyBackgroundTaskSettings {
227
+ retentionDays: Int
228
+ }
229
+
230
+ type WebinyBackgroundTaskSettingsResponse {
231
+ data: WebinyBackgroundTaskSettings
232
+ error: WebinyBackgroundTaskError
233
+ }
234
+
235
+ input UpdateBackgroundTaskSettingsInput {
236
+ retentionDays: Int
237
+ }
238
+
239
+ extend type WebinyBackgroundTaskQuery {
240
+ getSettings: WebinyBackgroundTaskSettingsResponse
241
+ }
242
+
243
+ extend type WebinyBackgroundTaskMutation {
244
+ updateSettings(
245
+ input: UpdateBackgroundTaskSettingsInput!
246
+ ): WebinyBackgroundTaskSettingsResponse
247
+ }
248
+ `;
249
+ const resolvers = {
250
+ Query: {
251
+ backgroundTasks: emptyResolver
252
+ },
253
+ Mutation: {
254
+ backgroundTasks: emptyResolver
255
+ },
256
+ WebinyBackgroundTaskQuery: {
257
+ getTask: async (_, args, context)=>resolve(async ()=>{
258
+ await checkPermissions(context, {
259
+ rwd: "r"
260
+ });
261
+ return await context.container.resolve(TasksCrud).getTask(args.id);
262
+ }),
263
+ listTasks: async (_, args, context)=>resolveList(async ()=>{
264
+ await checkPermissions(context, {
265
+ rwd: "r"
266
+ });
267
+ return await context.container.resolve(TasksCrud).listTasks(args);
268
+ }),
269
+ listDefinitions: async (_, __, context)=>resolve(async ()=>{
270
+ await checkPermissions(context, {
271
+ rwd: "r"
272
+ });
273
+ const result = context.container.resolve(ListTaskDefinitionsUseCase).execute();
274
+ return result.filter((item)=>!item.isPrivate);
275
+ }),
276
+ listLogs: async (_, args, context)=>resolveList(async ()=>{
277
+ await checkPermissions(context, {
278
+ rwd: "r"
279
+ });
280
+ return await context.container.resolve(TasksCrud).listLogs(args);
281
+ }),
282
+ getSettings: async (_, __, context)=>resolve(async ()=>{
283
+ await checkPermissions(context, {
284
+ rwd: "r"
285
+ });
286
+ const repository = context.container.resolve(GetBackgroundTaskSettingsRepository);
287
+ const result = await repository.execute();
288
+ if (result.isFail()) throw result.error;
289
+ return result.value;
290
+ })
291
+ },
292
+ WebinyBackgroundTaskMutation: {
293
+ abortTask: async (_, args, context)=>{
294
+ await checkPermissions(context, {
295
+ rwd: "w"
296
+ });
297
+ return resolve(async ()=>{
298
+ const result = await context.container.resolve(AbortTaskUseCase).execute(args);
299
+ if (result.isOk()) return result.value;
300
+ throw result.error;
301
+ });
302
+ },
303
+ triggerTask: async (_, args, context)=>{
304
+ await checkPermissions(context, {
305
+ rwd: "w"
306
+ });
307
+ return resolve(async ()=>{
308
+ const result = await context.container.resolve(TriggerTaskUseCase).execute(args);
309
+ if (result.isOk()) return result.value;
310
+ throw result.error;
311
+ });
312
+ },
313
+ deleteTask: async (_, args, context)=>{
314
+ await checkPermissions(context, {
315
+ rwd: "d"
316
+ });
317
+ return resolve(async ()=>await context.container.resolve(TasksCrud).deleteTask(args.id));
318
+ },
319
+ updateSettings: async (_, args, context)=>resolve(async ()=>{
320
+ const useCase = context.container.resolve(UpdateBackgroundTaskSettingsUseCase);
321
+ const result = await useCase.execute(args.input);
322
+ if (result.isFail()) throw result.error;
323
+ return result.value;
324
+ })
325
+ },
326
+ WebinyBackgroundTask: {
327
+ logs: async (parent, args, context)=>{
328
+ const { items } = await context.container.resolve(TasksCrud).listLogs({
329
+ sort: [
330
+ "createdBy_ASC"
331
+ ],
332
+ limit: 10000,
333
+ ...args,
334
+ where: {
335
+ ...args?.where,
336
+ task: parent.id
337
+ }
338
+ });
339
+ return items;
340
+ }
341
+ },
342
+ WebinyBackgroundTaskLog: {
343
+ task: async (parent, _, context)=>await context.container.resolve(TasksCrud).getTask(parent.task)
344
+ }
345
+ };
346
+ const baseContent = createBaseContentSchema();
347
+ return makeExecutableSchema({
348
+ typeDefs: [
349
+ baseContent.schema.typeDefs,
350
+ typeDefs
351
+ ],
352
+ resolvers: mergeResolvers([
353
+ baseContent.schema.resolvers,
354
+ resolvers
355
+ ]),
356
+ inheritResolversFromInterfaces: true
357
+ });
358
+ }
359
+ }
360
+ const BackgroundTasksContextualSchema = GraphQLContextualSchema.createImplementation({
361
+ implementation: BackgroundTasksContextualSchemaImpl,
362
+ dependencies: [
363
+ TenantContext,
364
+ IdentityContext
365
+ ]
366
+ });
367
+ export { BackgroundTasksContextualSchema };
368
+
369
+ //# sourceMappingURL=BackgroundTasksContextualSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/graphql/BackgroundTasksContextualSchema.js","sources":["../../../src/api/graphql/BackgroundTasksContextualSchema.ts"],"sourcesContent":["import type { Container } from \"@webiny/di\";\nimport type { GraphQLSchema } from \"graphql\";\nimport { makeExecutableSchema } from \"@graphql-tools/schema\";\nimport { mergeResolvers } from \"@graphql-tools/merge\";\nimport { GraphQLContextualSchema } from \"@webiny/api-graphql\";\nimport type { IGraphQLContextualSchema } from \"@webiny/api-graphql\";\nimport { renderSortEnum } from \"@webiny/api-headless-cms/utils/renderSortEnum.js\";\nimport { renderListFilterFields } from \"@webiny/api-headless-cms/utils/renderListFilterFields.js\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields.js\";\nimport { createBaseContentSchema } from \"@webiny/api-headless-cms/graphql/schema/baseContentSchema.js\";\nimport { TenantContext } from \"@webiny/api-core/features/tenancy/TenantContext/abstractions.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/abstractions.js\";\nimport { ListModelsUseCase } from \"@webiny/api-headless-cms/features/contentModel/ListModels/index.js\";\nimport { CmsModelFieldToGraphQLRegistry } from \"@webiny/api-headless-cms/exports/api/cms/graphql.js\";\nimport type { Context, IListTaskLogParams, IListTaskParams, ITask, ITaskLog } from \"~/api/types.js\";\nimport { TasksCrud } from \"~/api/TasksCrud.js\";\nimport { ListTaskDefinitionsUseCase } from \"~/api/features/ListTaskDefinitions/abstractions.js\";\nimport { TriggerTaskUseCase } from \"~/api/features/TriggerTask/abstractions.js\";\nimport { AbortTaskUseCase } from \"~/api/features/AbortTask/abstractions.js\";\nimport { GetBackgroundTaskSettingsRepository } from \"~/api/features/GetBackgroundTaskSettings/abstractions.js\";\nimport { UpdateBackgroundTaskSettingsUseCase } from \"~/api/features/UpdateBackgroundTaskSettings/abstractions.js\";\nimport type { IUpdateBackgroundTaskSettingsInput } from \"~/api/features/UpdateBackgroundTaskSettings/abstractions.js\";\nimport { emptyResolver, resolve, resolveList } from \"./utils.js\";\nimport { checkPermissions } from \"./checkPermissions.js\";\n\ninterface IGetTaskQueryParams {\n id: string;\n}\n\ninterface IAbortTaskMutationParams {\n id: string;\n message?: string;\n}\n\ninterface ITriggerTaskMutationParams {\n name?: string;\n definition: string;\n input?: Record<string, any>;\n delay?: number;\n}\n\ninterface IDeleteTaskMutationParams {\n id: string;\n}\n\ninterface IUpdateSettingsArgs {\n input: IUpdateBackgroundTaskSettingsInput;\n}\n\n/**\n * Builds the background-tasks GraphQL schema after context enhancement — the schema shape depends on\n * the per-tenant CMS task/log content models, so it can only be rendered at request time (once the\n * tenant is known and the CMS facade is resolvable). Replaces the legacy `createBackgroundTaskGraphQL`\n * + `createBackgroundTaskSettingsGraphQL` ContextPlugins; the settings schema is merged in here\n * because it extends the task schema's `WebinyBackgroundTaskQuery`/`Mutation` types.\n */\nclass BackgroundTasksContextualSchemaImpl implements IGraphQLContextualSchema {\n constructor(\n private tenantCtx: TenantContext.Interface,\n private identityCtx: IdentityContext.Interface\n ) {}\n\n async build(ctx: Record<string, any>): Promise<GraphQLSchema> {\n if (!this.tenantCtx.getTenant()) {\n return makeExecutableSchema({\n typeDefs: \"type Query\\ntype Mutation\",\n assumeValidSDL: true\n });\n }\n\n const container = ctx.container as Container;\n\n const tasksCrud = container.resolve(TasksCrud);\n const taskModel = await tasksCrud.getTaskModel();\n const logModel = await tasksCrud.getLogModel();\n\n // Resolve the CMS use-cases lazily here (at build/request time) rather than as constructor\n // dependencies — they depend on registrations the CMS initializer only makes during its own\n // build(), so eager injection would fail when the engine constructs all contextual schemas.\n const listModels = container.resolve(ListModelsUseCase);\n const fieldRegistry = container.resolve(CmsModelFieldToGraphQLRegistry);\n\n const models = await this.identityCtx.withoutAuthorization(async () => {\n const modelsResult = await listModels.execute({ includePrivate: false });\n return modelsResult.value.filter(model => model.fields.length > 0);\n });\n\n const taskFields = renderFields({\n models,\n model: taskModel,\n fields: taskModel.fields,\n type: \"manage\",\n fieldRegistry\n });\n\n const logFields = renderFields({\n models,\n model: logModel,\n fields: logModel.fields.filter(field => field.fieldId !== \"task\"),\n type: \"manage\",\n fieldRegistry\n });\n\n const listTasksFilterFieldsRender = renderListFilterFields({\n model: taskModel,\n fields: taskModel.fields,\n type: \"manage\",\n fieldRegistry,\n excludeFields: [\"entryId\"]\n });\n\n const listLogsFilterFieldsRender = renderListFilterFields({\n model: logModel,\n fields: logModel.fields,\n type: \"manage\",\n fieldRegistry,\n excludeFields: [\"entryId\"]\n });\n\n const sortTasksEnumRender = renderSortEnum({\n model: taskModel,\n fields: taskModel.fields,\n fieldRegistry,\n sorters: []\n });\n\n const sortLogsEnumRender = renderSortEnum({\n model: logModel,\n fields: logModel.fields,\n fieldRegistry,\n sorters: []\n });\n\n const typeDefs = /* GraphQL */ `\n type WebinyBackgroundTaskError {\n message: String\n code: String\n data: JSON\n stack: String\n }\n\n ${taskFields.map(f => f.typeDefs).join(\"\\n\")}\n ${logFields.map(f => f.typeDefs).join(\"\\n\")}\n\n type WebinyBackgroundTask {\n id: String!\n createdOn: DateTime!\n savedOn: DateTime\n createdBy: WebinyBackgroundTaskIdentity!\n logs(\n where: WebinyBackgroundTaskLogListWhereInput\n limit: Number\n sort: [WebinyBackgroundTaskLogListSorter!]\n ): [WebinyBackgroundTaskLog!]!\n ${taskFields.map(f => f.fields).join(\"\\n\")}\n }\n\n type WebinyBackgroundTaskResponse {\n data: WebinyBackgroundTask\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskMeta {\n cursor: String\n hasMoreItems: Boolean!\n totalCount: Int!\n }\n\n type WebinyBackgroundTaskListResponse {\n data: [WebinyBackgroundTask!]\n meta: WebinyBackgroundTaskMeta\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskLog {\n id: String!\n createdOn: DateTime!\n createdBy: WebinyBackgroundTaskIdentity!\n task: WebinyBackgroundTask!\n ${logFields.map(f => f.fields).join(\"\\n\")}\n }\n\n type WebinyBackgroundTaskLogListResponse {\n data: [WebinyBackgroundTaskLog!]\n meta: WebinyBackgroundTaskMeta\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskDefinition {\n id: String!\n title: String!\n description: String\n }\n\n type WebinyBackgroundTaskListDefinitionsResponse {\n data: [WebinyBackgroundTaskDefinition!]\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskIdentity {\n id: String!\n displayName: String!\n type: String\n }\n\n type WebinyBackgroundTaskTriggerResponse {\n data: WebinyBackgroundTask\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskDeleteResponse {\n data: Boolean\n error: WebinyBackgroundTaskError\n }\n\n input WebinyBackgroundTaskListWhereInput {\n ${listTasksFilterFieldsRender.allFiltersAsString() || \"_empty: String\"}\n }\n\n input WebinyBackgroundTaskLogListWhereInput {\n ${listLogsFilterFieldsRender.allFiltersAsString() || \"_empty: String\"}\n }\n\n enum WebinyBackgroundTaskListSorter {\n ${sortTasksEnumRender}\n }\n\n enum WebinyBackgroundTaskLogListSorter {\n ${sortLogsEnumRender}\n }\n\n type WebinyBackgroundTaskQuery {\n _empty: String\n }\n\n type WebinyBackgroundTaskMutation {\n _empty: String\n }\n\n extend type Query {\n backgroundTasks: WebinyBackgroundTaskQuery\n }\n\n extend type Mutation {\n backgroundTasks: WebinyBackgroundTaskMutation\n }\n\n extend type WebinyBackgroundTaskQuery {\n getTask(id: ID!): WebinyBackgroundTaskResponse!\n listTasks(\n where: WebinyBackgroundTaskListWhereInput\n sort: [WebinyBackgroundTaskListSorter!]\n limit: Int\n after: String\n search: String\n ): WebinyBackgroundTaskListResponse!\n listDefinitions: WebinyBackgroundTaskListDefinitionsResponse!\n\n listLogs(\n where: WebinyBackgroundTaskLogListWhereInput\n sort: [WebinyBackgroundTaskLogListSorter!]\n limit: Int\n after: String\n search: String\n ): WebinyBackgroundTaskLogListResponse!\n }\n\n extend type WebinyBackgroundTaskMutation {\n triggerTask(definition: String!, input: JSON, name: String, delay: Number): WebinyBackgroundTaskTriggerResponse!\n abortTask(id: ID!, message: String): WebinyBackgroundTaskResponse!\n deleteTask(id: ID!): WebinyBackgroundTaskDeleteResponse!\n }\n\n type WebinyBackgroundTaskSettings {\n retentionDays: Int\n }\n\n type WebinyBackgroundTaskSettingsResponse {\n data: WebinyBackgroundTaskSettings\n error: WebinyBackgroundTaskError\n }\n\n input UpdateBackgroundTaskSettingsInput {\n retentionDays: Int\n }\n\n extend type WebinyBackgroundTaskQuery {\n getSettings: WebinyBackgroundTaskSettingsResponse\n }\n\n extend type WebinyBackgroundTaskMutation {\n updateSettings(\n input: UpdateBackgroundTaskSettingsInput!\n ): WebinyBackgroundTaskSettingsResponse\n }\n `;\n\n const resolvers = {\n Query: {\n backgroundTasks: emptyResolver\n },\n Mutation: {\n backgroundTasks: emptyResolver\n },\n WebinyBackgroundTaskQuery: {\n getTask: async (_: unknown, args: IGetTaskQueryParams, context: Context) => {\n return resolve(async () => {\n await checkPermissions(context, { rwd: \"r\" });\n return await context.container.resolve(TasksCrud).getTask(args.id);\n });\n },\n listTasks: async (_: unknown, args: IListTaskParams, context: Context) => {\n return resolveList(async () => {\n await checkPermissions(context, { rwd: \"r\" });\n return await context.container.resolve(TasksCrud).listTasks(args);\n });\n },\n listDefinitions: async (_: unknown, __: unknown, context: Context) => {\n return resolve(async () => {\n await checkPermissions(context, { rwd: \"r\" });\n const result = context.container\n .resolve(ListTaskDefinitionsUseCase)\n .execute();\n /**\n * Do not output private tasks.\n */\n return result.filter(item => {\n return !item.isPrivate;\n });\n });\n },\n listLogs: async (_: unknown, args: IListTaskLogParams, context: Context) => {\n return resolveList(async () => {\n await checkPermissions(context, { rwd: \"r\" });\n return await context.container.resolve(TasksCrud).listLogs(args);\n });\n },\n getSettings: async (_: unknown, __: unknown, context: Context) => {\n return resolve(async () => {\n await checkPermissions(context, { rwd: \"r\" });\n const repository = context.container.resolve(\n GetBackgroundTaskSettingsRepository\n );\n const result = await repository.execute();\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n });\n }\n },\n WebinyBackgroundTaskMutation: {\n abortTask: async (_: unknown, args: IAbortTaskMutationParams, context: Context) => {\n await checkPermissions(context, { rwd: \"w\" });\n return resolve<ITask>(async () => {\n const result = await context.container\n .resolve(AbortTaskUseCase)\n .execute(args);\n if (result.isOk()) {\n return result.value;\n }\n\n throw result.error;\n });\n },\n triggerTask: async (\n _: unknown,\n args: ITriggerTaskMutationParams,\n context: Context\n ) => {\n await checkPermissions(context, { rwd: \"w\" });\n return resolve<ITask>(async () => {\n const result = await context.container\n .resolve(TriggerTaskUseCase)\n .execute(args);\n if (result.isOk()) {\n return result.value;\n }\n\n throw result.error;\n });\n },\n deleteTask: async (\n _: unknown,\n args: IDeleteTaskMutationParams,\n context: Context\n ) => {\n await checkPermissions(context, { rwd: \"d\" });\n return resolve(async () => {\n return await context.container.resolve(TasksCrud).deleteTask(args.id);\n });\n },\n updateSettings: async (_: unknown, args: IUpdateSettingsArgs, context: Context) => {\n return resolve(async () => {\n const useCase = context.container.resolve(\n UpdateBackgroundTaskSettingsUseCase\n );\n const result = await useCase.execute(args.input);\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n });\n }\n },\n /**\n * Custom resolvers for fields\n */\n WebinyBackgroundTask: {\n logs: async (parent: ITask, args: IListTaskLogParams, context: Context) => {\n const { items } = await context.container.resolve(TasksCrud).listLogs({\n sort: [\"createdBy_ASC\"],\n limit: 10000,\n ...args,\n where: {\n ...args?.where,\n task: parent.id\n }\n });\n return items;\n }\n },\n WebinyBackgroundTaskLog: {\n task: async (parent: ITaskLog, _: unknown, context: Context) => {\n return await context.container.resolve(TasksCrud).getTask(parent.task);\n }\n }\n };\n\n // The generated task/log model schema references CMS base scalars (DateTime, JSON, Number,\n // ...). Include createBaseContentSchema() — which declares those scalars, their resolvers, and\n // the base Query/Mutation types — so this standalone schema is self-contained and valid before\n // the engine merges it with the composed static schema.\n const baseContent = createBaseContentSchema();\n\n return makeExecutableSchema({\n typeDefs: [baseContent.schema.typeDefs as string, typeDefs],\n resolvers: mergeResolvers([baseContent.schema.resolvers as any, resolvers as any]),\n inheritResolversFromInterfaces: true\n });\n }\n}\n\nexport const BackgroundTasksContextualSchema = GraphQLContextualSchema.createImplementation({\n implementation: BackgroundTasksContextualSchemaImpl,\n dependencies: [TenantContext, IdentityContext]\n});\n"],"names":["BackgroundTasksContextualSchemaImpl","tenantCtx","identityCtx","ctx","makeExecutableSchema","container","tasksCrud","TasksCrud","taskModel","logModel","listModels","ListModelsUseCase","fieldRegistry","CmsModelFieldToGraphQLRegistry","models","modelsResult","model","taskFields","renderFields","logFields","field","listTasksFilterFieldsRender","renderListFilterFields","listLogsFilterFieldsRender","sortTasksEnumRender","renderSortEnum","sortLogsEnumRender","typeDefs","f","resolvers","emptyResolver","_","args","context","resolve","checkPermissions","resolveList","__","result","ListTaskDefinitionsUseCase","item","repository","GetBackgroundTaskSettingsRepository","AbortTaskUseCase","TriggerTaskUseCase","useCase","UpdateBackgroundTaskSettingsUseCase","parent","items","baseContent","createBaseContentSchema","mergeResolvers","BackgroundTasksContextualSchema","GraphQLContextualSchema","TenantContext","IdentityContext"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Context } from "../../api/types.js";
2
+ /**
3
+ * @throws
4
+ */
5
+ export declare const checkPermissions: (context: Context, check?: {
6
+ rwd?: string;
7
+ }) => Promise<void>;
@@ -0,0 +1,22 @@
1
+ import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/abstractions.js";
2
+ import { NotAuthorizedError } from "@webiny/api-core/features/security/shared/index.js";
3
+ const checkPermissions = async (context, check = {})=>{
4
+ const taskPermissions = await context.container.resolve(IdentityContext).getPermissions("tasks");
5
+ const relevant = taskPermissions.filter((current)=>{
6
+ if (check.rwd && !hasRwd(current, check.rwd)) return false;
7
+ return true;
8
+ });
9
+ if (0 === relevant.length) throw new NotAuthorizedError();
10
+ };
11
+ const hasRwd = (permissions, rwd)=>{
12
+ if (!Array.isArray(permissions)) permissions = [
13
+ permissions
14
+ ];
15
+ if (!rwd) return true;
16
+ const permissionWithoutRwdRestrictions = permissions.some((permission)=>"string" != typeof permission.rwd);
17
+ if (permissionWithoutRwdRestrictions) return true;
18
+ return permissions.some((permission)=>permission.rwd && permission.rwd.includes(rwd));
19
+ };
20
+ export { checkPermissions };
21
+
22
+ //# sourceMappingURL=checkPermissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/graphql/checkPermissions.js","sources":["../../../src/api/graphql/checkPermissions.ts"],"sourcesContent":["import type { Context, TaskPermission } from \"~/api/types.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/abstractions.js\";\nimport { NotAuthorizedError } from \"@webiny/api-core/features/security/shared/index.js\";\n\n/**\n * @throws\n */\nexport const checkPermissions = async (\n context: Context,\n check: { rwd?: string } = {}\n): Promise<void> => {\n const taskPermissions = await context.container\n .resolve(IdentityContext)\n .getPermissions<TaskPermission>(\"tasks\");\n\n const relevant = taskPermissions.filter(current => {\n if (check.rwd && !hasRwd(current, check.rwd)) {\n return false;\n }\n\n return true;\n });\n\n if (relevant.length === 0) {\n throw new NotAuthorizedError();\n }\n};\n\nconst hasRwd = (permissions: TaskPermission | TaskPermission[], rwd: string): boolean => {\n if (!Array.isArray(permissions)) {\n permissions = [permissions];\n }\n\n if (!rwd) {\n return true;\n }\n\n // Is there a permission that doesn't restrict RWD permissions, that means all RWD permissions are allowed.\n const permissionWithoutRwdRestrictions = permissions.some(permission => {\n return typeof permission.rwd !== \"string\";\n });\n\n if (permissionWithoutRwdRestrictions) {\n return true;\n }\n\n // If there is no permission that doesn't restrict RWD permissions, that means we need to check if the RWD.\n return permissions.some(permission => {\n return permission.rwd && permission.rwd.includes(rwd);\n });\n};\n"],"names":["checkPermissions","context","check","taskPermissions","IdentityContext","relevant","current","hasRwd","NotAuthorizedError","permissions","rwd","Array","permissionWithoutRwdRestrictions","permission"],"mappings":";;AAOO,MAAMA,mBAAmB,OAC5BC,SACAC,QAA0B,CAAC,CAAC;IAE5B,MAAMC,kBAAkB,MAAMF,QAAQ,SAAS,CAC1C,OAAO,CAACG,iBACR,cAAc,CAAiB;IAEpC,MAAMC,WAAWF,gBAAgB,MAAM,CAACG,CAAAA;QACpC,IAAIJ,MAAM,GAAG,IAAI,CAACK,OAAOD,SAASJ,MAAM,GAAG,GACvC,OAAO;QAGX,OAAO;IACX;IAEA,IAAIG,AAAoB,MAApBA,SAAS,MAAM,EACf,MAAM,IAAIG;AAElB;AAEA,MAAMD,SAAS,CAACE,aAAgDC;IAC5D,IAAI,CAACC,MAAM,OAAO,CAACF,cACfA,cAAc;QAACA;KAAY;IAG/B,IAAI,CAACC,KACD,OAAO;IAIX,MAAME,mCAAmCH,YAAY,IAAI,CAACI,CAAAA,aAC/C,AAA0B,YAA1B,OAAOA,WAAW,GAAG;IAGhC,IAAID,kCACA,OAAO;IAIX,OAAOH,YAAY,IAAI,CAACI,CAAAA,aACbA,WAAW,GAAG,IAAIA,WAAW,GAAG,CAAC,QAAQ,CAACH;AAEzD"}
@@ -0,0 +1,9 @@
1
+ import { ErrorResponse, ListErrorResponse, ListResponse, Response } from "@webiny/api-graphql";
2
+ import type { CmsEntryMeta } from "@webiny/api-headless-cms/types/index.js";
3
+ export declare const emptyResolver: () => {};
4
+ interface ResolveCallable<T = any> {
5
+ (): Promise<T>;
6
+ }
7
+ export declare const resolve: <T = any>(fn: ResolveCallable<T>) => Promise<ErrorResponse | Response<Awaited<T>>>;
8
+ export declare const resolveList: (fn: ResolveCallable) => Promise<ListErrorResponse | ListResponse<any, CmsEntryMeta>>;
9
+ export {};
@@ -0,0 +1,20 @@
1
+ import { ErrorResponse, ListErrorResponse, ListResponse, Response } from "@webiny/api-graphql";
2
+ const emptyResolver = ()=>({});
3
+ const resolve = async (fn)=>{
4
+ try {
5
+ return new Response(await fn());
6
+ } catch (ex) {
7
+ return new ErrorResponse(ex);
8
+ }
9
+ };
10
+ const resolveList = async (fn)=>{
11
+ try {
12
+ const result = await fn();
13
+ return new ListResponse(result.items, result.meta);
14
+ } catch (ex) {
15
+ return new ListErrorResponse(ex);
16
+ }
17
+ };
18
+ export { emptyResolver, resolve, resolveList };
19
+
20
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/graphql/utils.js","sources":["../../../src/api/graphql/utils.ts"],"sourcesContent":["import { ErrorResponse, ListErrorResponse, ListResponse, Response } from \"@webiny/api-graphql\";\nimport type { CmsEntryMeta } from \"@webiny/api-headless-cms/types/index.js\";\n\nexport const emptyResolver = () => ({});\n\ninterface ResolveCallable<T = any> {\n (): Promise<T>;\n}\n\nexport const resolve = async <T = any>(fn: ResolveCallable<T>) => {\n try {\n return new Response(await fn());\n } catch (ex) {\n return new ErrorResponse(ex);\n }\n};\n\ninterface IListResult {\n items: any[];\n meta: CmsEntryMeta;\n}\n\nexport const resolveList = async (fn: ResolveCallable) => {\n try {\n const result = (await fn()) as IListResult;\n return new ListResponse(result.items, result.meta);\n } catch (ex) {\n return new ListErrorResponse(ex);\n }\n};\n"],"names":["emptyResolver","resolve","fn","Response","ex","ErrorResponse","resolveList","result","ListResponse","ListErrorResponse"],"mappings":";AAGO,MAAMA,gBAAgB,IAAO,EAAC;AAM9B,MAAMC,UAAU,OAAgBC;IACnC,IAAI;QACA,OAAO,IAAIC,SAAS,MAAMD;IAC9B,EAAE,OAAOE,IAAI;QACT,OAAO,IAAIC,cAAcD;IAC7B;AACJ;AAOO,MAAME,cAAc,OAAOJ;IAC9B,IAAI;QACA,MAAMK,SAAU,MAAML;QACtB,OAAO,IAAIM,aAAaD,OAAO,KAAK,EAAEA,OAAO,IAAI;IACrD,EAAE,OAAOH,IAAI;QACT,OAAO,IAAIK,kBAAkBL;IACjC;AACJ"}
@@ -0,0 +1,21 @@
1
+ export interface IIncomingEvent<TEvent> {
2
+ name: string;
3
+ payload: TEvent;
4
+ }
5
+ export interface ITaskEventInput {
6
+ tenant: string;
7
+ webinyTaskId: string;
8
+ webinyTaskDefinitionId: string;
9
+ delay?: number;
10
+ }
11
+ export interface ITaskEvent {
12
+ tenant: string;
13
+ endpoint: string;
14
+ webinyTaskId: string;
15
+ webinyTaskDefinitionId: string;
16
+ executionName: string;
17
+ stateMachineId: string;
18
+ }
19
+ export interface ITaskRawEvent extends ITaskEvent {
20
+ delay?: number;
21
+ }
File without changes
package/api/index.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ export type { Timer } from "./abstractions/Timer.js";
2
+ export { TaskService } from "./domain/TaskService.js";
3
+ export * from "./response/index.js";
4
+ export * from "./types.js";
5
+ export { BackgroundTasksFeature } from "./BackgroundTasksFeature.js";
6
+ export { BackgroundTasksContextualSchema } from "./graphql/BackgroundTasksContextualSchema.js";
7
+ export { TasksCrud } from "./TasksCrud.js";
8
+ export { TriggerTaskUseCase } from "./features/TriggerTask/abstractions.js";
9
+ export { AbortTaskUseCase } from "./features/AbortTask/abstractions.js";
10
+ export { GetTaskUseCase } from "./features/GetTask/abstractions.js";
11
+ export { ListTasksUseCase } from "./features/ListTasks/abstractions.js";
12
+ export { CleanupTaskSubtreeUseCase } from "./features/CleanupTaskSubtree/abstractions.js";
package/api/index.js ADDED
@@ -0,0 +1,11 @@
1
+ export * from "./response/index.js";
2
+ export * from "./types.js";
3
+ export { TaskService } from "./domain/TaskService.js";
4
+ export { BackgroundTasksFeature } from "./BackgroundTasksFeature.js";
5
+ export { BackgroundTasksContextualSchema } from "./graphql/BackgroundTasksContextualSchema.js";
6
+ export { TasksCrud } from "./TasksCrud.js";
7
+ export { TriggerTaskUseCase } from "./features/TriggerTask/abstractions.js";
8
+ export { AbortTaskUseCase } from "./features/AbortTask/abstractions.js";
9
+ export { GetTaskUseCase } from "./features/GetTask/abstractions.js";
10
+ export { ListTasksUseCase } from "./features/ListTasks/abstractions.js";
11
+ export { CleanupTaskSubtreeUseCase } from "./features/CleanupTaskSubtree/abstractions.js";
@@ -0,0 +1,8 @@
1
+ import { ModelFactory } from "@webiny/api-headless-cms/features/modelBuilder/index.js";
2
+ declare class BackgroundTaskSettingsModelFactory implements ModelFactory.Interface {
3
+ execute(builder: ModelFactory.Builder): Promise<import("@webiny/api-headless-cms/features/modelBuilder/index.js").PublicModelBuilder[]>;
4
+ }
5
+ export declare const BackgroundTaskSettingsModel: typeof BackgroundTaskSettingsModelFactory & {
6
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/modelBuilder/abstractions").IModelFactory>;
7
+ };
8
+ export {};
@@ -0,0 +1,27 @@
1
+ import { ModelFactory } from "@webiny/api-headless-cms/features/modelBuilder/index.js";
2
+ import { BACKGROUND_TASK_MAX_RETENTION_DAYS, BACKGROUND_TASK_SETTINGS_MODEL_ID } from "../domain/constants.js";
3
+ class BackgroundTaskSettingsModelFactory {
4
+ async execute(builder) {
5
+ const model = builder.public({
6
+ modelId: BACKGROUND_TASK_SETTINGS_MODEL_ID,
7
+ name: "Background Task Settings",
8
+ group: "hidden"
9
+ }).description("Global settings for the background tasks system.").titleFieldId("retentionDays").singularApiName("BackgroundTaskSettings").pluralApiName("BackgroundTaskSettings").tags([
10
+ "$publishing:false",
11
+ "$hidden:true"
12
+ ]).singleEntry();
13
+ model.fields((fields)=>({
14
+ retentionDays: fields.number().label("Retention (days)").gte(0, "Must be 0 or greater.").lte(BACKGROUND_TASK_MAX_RETENTION_DAYS, `Must be at most ${BACKGROUND_TASK_MAX_RETENTION_DAYS}.`).description(`How long to keep completed task runs. 0 = never delete. Max ${BACKGROUND_TASK_MAX_RETENTION_DAYS} days.`)
15
+ }));
16
+ return [
17
+ model
18
+ ];
19
+ }
20
+ }
21
+ const BackgroundTaskSettingsModel = ModelFactory.createImplementation({
22
+ implementation: BackgroundTaskSettingsModelFactory,
23
+ dependencies: []
24
+ });
25
+ export { BackgroundTaskSettingsModel };
26
+
27
+ //# sourceMappingURL=BackgroundTaskSettingsModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/models/BackgroundTaskSettingsModel.js","sources":["../../../src/api/models/BackgroundTaskSettingsModel.ts"],"sourcesContent":["import { ModelFactory } from \"@webiny/api-headless-cms/features/modelBuilder/index.js\";\nimport {\n BACKGROUND_TASK_SETTINGS_MODEL_ID,\n BACKGROUND_TASK_MAX_RETENTION_DAYS\n} from \"~/api/domain/constants.js\";\n\nclass BackgroundTaskSettingsModelFactory implements ModelFactory.Interface {\n async execute(builder: ModelFactory.Builder) {\n const model = builder\n .public({\n modelId: BACKGROUND_TASK_SETTINGS_MODEL_ID,\n name: \"Background Task Settings\",\n group: \"hidden\"\n })\n .description(\"Global settings for the background tasks system.\")\n .titleFieldId(\"retentionDays\")\n .singularApiName(\"BackgroundTaskSettings\")\n .pluralApiName(\"BackgroundTaskSettings\")\n .tags([\"$publishing:false\", \"$hidden:true\"])\n .singleEntry();\n\n model.fields(fields => ({\n retentionDays: fields\n .number()\n .label(\"Retention (days)\")\n .gte(0, \"Must be 0 or greater.\")\n .lte(\n BACKGROUND_TASK_MAX_RETENTION_DAYS,\n `Must be at most ${BACKGROUND_TASK_MAX_RETENTION_DAYS}.`\n )\n .description(\n `How long to keep completed task runs. 0 = never delete. Max ${BACKGROUND_TASK_MAX_RETENTION_DAYS} days.`\n )\n }));\n\n return [model];\n }\n}\n\nexport const BackgroundTaskSettingsModel = ModelFactory.createImplementation({\n implementation: BackgroundTaskSettingsModelFactory,\n dependencies: []\n});\n"],"names":["BackgroundTaskSettingsModelFactory","builder","model","BACKGROUND_TASK_SETTINGS_MODEL_ID","fields","BACKGROUND_TASK_MAX_RETENTION_DAYS","BackgroundTaskSettingsModel","ModelFactory"],"mappings":";;AAMA,MAAMA;IACF,MAAM,QAAQC,OAA6B,EAAE;QACzC,MAAMC,QAAQD,QACT,MAAM,CAAC;YACJ,SAASE;YACT,MAAM;YACN,OAAO;QACX,GACC,WAAW,CAAC,oDACZ,YAAY,CAAC,iBACb,eAAe,CAAC,0BAChB,aAAa,CAAC,0BACd,IAAI,CAAC;YAAC;YAAqB;SAAe,EAC1C,WAAW;QAEhBD,MAAM,MAAM,CAACE,CAAAA,SAAW;gBACpB,eAAeA,OACV,MAAM,GACN,KAAK,CAAC,oBACN,GAAG,CAAC,GAAG,yBACP,GAAG,CACAC,oCACA,CAAC,gBAAgB,EAAEA,mCAAmC,CAAC,CAAC,EAE3D,WAAW,CACR,CAAC,4DAA4D,EAAEA,mCAAmC,MAAM,CAAC;YAErH;QAEA,OAAO;YAACH;SAAM;IAClB;AACJ;AAEO,MAAMI,8BAA8BC,aAAa,oBAAoB,CAAC;IACzE,gBAAgBP;IAChB,cAAc,EAAE;AACpB"}
@@ -0,0 +1,12 @@
1
+ export declare const BACKGROUND_TASK_PERMISSIONS_SCHEMA: {
2
+ readonly prefix: "backgroundTasks";
3
+ readonly fullAccess: true;
4
+ readonly entities: readonly [{
5
+ readonly id: "task";
6
+ readonly permission: "backgroundTasks.task";
7
+ readonly scopes: readonly ["full"];
8
+ readonly actions: readonly [{
9
+ readonly name: "rwd";
10
+ }];
11
+ }];
12
+ };
@@ -0,0 +1,22 @@
1
+ import { createPermissionSchema } from "@webiny/api-core/exports/api/security.js";
2
+ const BACKGROUND_TASK_PERMISSIONS_SCHEMA = createPermissionSchema({
3
+ prefix: "backgroundTasks",
4
+ fullAccess: true,
5
+ entities: [
6
+ {
7
+ id: "task",
8
+ permission: "backgroundTasks.task",
9
+ scopes: [
10
+ "full"
11
+ ],
12
+ actions: [
13
+ {
14
+ name: "rwd"
15
+ }
16
+ ]
17
+ }
18
+ ]
19
+ });
20
+ export { BACKGROUND_TASK_PERMISSIONS_SCHEMA };
21
+
22
+ //# sourceMappingURL=permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/permissions.js","sources":["../../src/api/permissions.ts"],"sourcesContent":["import { createPermissionSchema } from \"@webiny/api-core/exports/api/security.js\";\n\nexport const BACKGROUND_TASK_PERMISSIONS_SCHEMA = createPermissionSchema({\n prefix: \"backgroundTasks\",\n fullAccess: true,\n entities: [\n {\n id: \"task\",\n permission: \"backgroundTasks.task\",\n scopes: [\"full\"],\n actions: [{ name: \"rwd\" }]\n }\n ]\n});\n"],"names":["BACKGROUND_TASK_PERMISSIONS_SCHEMA","createPermissionSchema"],"mappings":";AAEO,MAAMA,qCAAqCC,uBAAuB;IACrE,QAAQ;IACR,YAAY;IACZ,UAAU;QACN;YACI,IAAI;YACJ,YAAY;YACZ,QAAQ;gBAAC;aAAO;YAChB,SAAS;gBAAC;oBAAE,MAAM;gBAAM;aAAE;QAC9B;KACH;AACL"}